什么是 Byzer-lang ? 一門面向大數(shù)據(jù)和 AI 的開源云原生編程語言

什么是 Byzer ?

Byzer ,又稱為 Byzer-lang,一門面向 Data 和 AI 的低代碼、云原生的開源編程語言。

Byzer 這一名稱源于中國古代神獸“白澤”,其能言語,通萬物之情,知鬼神之事。Byzer 語言創(chuàng)始人祝海林曾提到:“我們希望 Byzer 可以像神獸白澤一樣,讓數(shù)據(jù)說‘人’話。”

Byzer 是一門結(jié)合了聲明式編程和命令式編程的混合編程語言,其低代碼且類 SQL 的編程邏輯配合內(nèi)置算法及插件的加持,能幫助數(shù)據(jù)工作者們高效打通數(shù)據(jù)鏈路,完成數(shù)據(jù)的清洗轉(zhuǎn)換,并快速地進(jìn)行機(jī)器學(xué)習(xí)相關(guān)的訓(xùn)練及預(yù)測(cè)。

Byzer 希望能夠提供一套語言、一個(gè)引擎,就能覆蓋整個(gè)數(shù)據(jù)鏈路,同時(shí)可以提供各種算法、模型訓(xùn)練等開箱即用的能力。

為什么我們需要開發(fā) Byzer-lang ?

在 ABC (AI、BigData、Cloud Native)蓬勃發(fā)展的大數(shù)據(jù)時(shí)代,隨著云基礎(chǔ)設(shè)施、基礎(chǔ)軟件、算法模型等逐漸完善,低效的跨平臺(tái)數(shù)據(jù)運(yùn)轉(zhuǎn)逐漸成為工程師落地?cái)?shù)據(jù)平臺(tái)和完成 AI 工程化的痛點(diǎn)。無論是基礎(chǔ)設(shè)施的更換,更易用框架層面的升級(jí),還是更優(yōu)秀研發(fā)人才的招聘,都無法有效、高速地提升效率。

我們認(rèn)為只有在編程語言層面進(jìn)行革新,才能從根本上提高數(shù)據(jù)平臺(tái)落地和 AI 工程化的效率。

  • SQL for AI?? ,聲明式融合命令式語言,SQL-like 語法簡單又靈活
  • 云原生設(shè)計(jì),充分利用云上算力和便宜的存儲(chǔ)
  • 一套語言,一個(gè)引擎,覆蓋 Data + AI 的能力,開箱即用

Byzer 四大特性降低成本,釋放員工生產(chǎn)力

Byzer 旨在幫助用戶以低成本和高效率的方式落地?cái)?shù)據(jù)平臺(tái)和完成 AI 工程化,釋放數(shù)據(jù)分析師、工程師以及運(yùn)維人員的生產(chǎn)力。其主要有以下四點(diǎn)特征:

  • 萬物皆表(Everything is a table):

Byzer 語言的核心設(shè)計(jì)是萬物皆表(Everything is a table),我們希望用戶可以非常容易的將任何實(shí)體對(duì)象通過 Byzer 來抽象成二維表,從而能夠基于表來進(jìn)行數(shù)據(jù)處理或模型訓(xùn)練等進(jìn)一步操作。Byzer 可以通過虛擬表串聯(lián)數(shù)據(jù)流,做到多數(shù)據(jù)源無縫對(duì)接,并同時(shí)支持模型的批,流,API的一鍵部署。

  • 類 SQL 語法(SQL-like Language):

在語言設(shè)計(jì)層面,Byzer 采用了聲明式融合命令式語言編程設(shè)計(jì),SQL-like 語法簡單又靈活。

  • 內(nèi)置算法和插件(Built-in Algorithms and Plugins):

支持 Python、標(biāo)準(zhǔn)庫、使用自定義 UDF(Scala/Java)。內(nèi)置大量算法和特征工程工具,幫助平民分析師更快上手機(jī)器學(xué)習(xí)。

  • 可定制,簡單,強(qiáng)大(Customizable, Simple and Powerful):

Byzer 通過一套語言、一個(gè)引擎,就能覆蓋整個(gè)數(shù)據(jù)鏈路,開箱即用。且 Byzer 從 Day1 起就是云原生設(shè)計(jì),同時(shí)原生分布式引擎(Spark 引擎和可插拔 Ray引擎)的設(shè)計(jì),可以讓 Byzer 充分實(shí)現(xiàn)算力和存儲(chǔ)的云端擴(kuò)展。

Byzer 架構(gòu)圖.png

上圖為 Byzer 架構(gòu)圖,我們可以看到 Byzer 作為一個(gè)解釋型語言,擁有解釋器(Interpreter)以及運(yùn)行時(shí)環(huán)境 (Runtime),Byzer 的 Interpreter 會(huì)對(duì) Byzer 的腳本做詞法分析,預(yù)處理,解析等,然后生成 Java/Scala/Python/SQL 等代碼,最后提交到 Runtime 上進(jìn)行執(zhí)行。

Byzer 使用 Github 作為包管理器(Package Manager),有內(nèi)置 lib 庫和第三方 lib 庫(lib 庫是使用 Byzer 語言編寫出的功能模塊)。

從上述設(shè)計(jì)理念實(shí)現(xiàn)而來,Byzer 既保留了 SQL 的優(yōu)勢(shì),簡潔易懂,還允許用戶通過擴(kuò)展點(diǎn)來進(jìn)行更多的進(jìn)階操作,提供更多可編程能力。

Byzer IDE 支持 —— Byzer Notebook

作為一門語言,需要能夠支持編輯器或者 IDE 來方便用戶開發(fā)和使用, 完成諸如高亮,代碼提示,運(yùn)行等能力。目前比較流行的方式是實(shí)現(xiàn) LSP (language server protocol),這樣在編輯器層或者是 IDE 層,可以直接基于 LSP 完成相關(guān)功能。比如在代碼提示功能的實(shí)現(xiàn)上,可以使用內(nèi)置宏函數(shù) !show 來實(shí)現(xiàn)參數(shù)自省,通過 code suggestion API 返回給調(diào)用方,完成代碼的提示功能。

Byzer-lang 目前不僅支持官方 Web 版本 IDE:Byzer Notebook , 也支持用戶在 VSCode 中下載插件來啟用代碼編輯以及 Notebook 的能力,詳情可參考 Byzer 官網(wǎng) 中的下載地址。

Byzer Notebook 是基于 Byzer 引擎搭建的網(wǎng)頁交互計(jì)算(Web IDE)應(yīng)用平臺(tái)。Byzer Notebook 同時(shí)也是 Byzer-lang 的 dubugger(調(diào)試器),通過 Notebook 簡單易用的調(diào)試功能,省去了初學(xué)者安裝配置開發(fā)環(huán)境的門檻。

Byzer Notebook 截圖.png

貢獻(xiàn) Byzer 社區(qū)

如果 Byzer-Lang 和 Byzer Notebook 對(duì)您有幫助,或您有興趣想要貢獻(xiàn)自己的一份力量,Byzer 白澤社區(qū) Byzer Org 非常期待您的加入。

也歡迎大家加入 Byzer Slack 社區(qū) 開發(fā)討論組,參與 Byzer 社區(qū)的前沿技術(shù)話題討論。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容