什么是 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)換,并快速地進行機器學習相關(guān)的訓練及預測打洼。
Byzer 希望能夠提供一套語言龄糊、一個引擎,就能覆蓋整個數(shù)據(jù)鏈路募疮,同時可以提供各種算法炫惩、模型訓練等開箱即用的能力。
為什么我們需要開發(fā) Byzer-lang ?
在 ABC (AI阿浓、BigData他嚷、Cloud Native)蓬勃發(fā)展的大數(shù)據(jù)時代,隨著云基礎(chǔ)設施芭毙、基礎(chǔ)軟件筋蓖、算法模型等逐漸完善,低效的跨平臺數(shù)據(jù)運轉(zhuǎn)逐漸成為工程師落地數(shù)據(jù)平臺和完成 AI 工程化的痛點稿蹲。無論是基礎(chǔ)設施的更換扭勉,更易用框架層面的升級,還是更優(yōu)秀研發(fā)人才的招聘苛聘,都無法有效涂炎、高速地提升效率忠聚。
我們認為只有在編程語言層面進行革新,才能從根本上提高數(shù)據(jù)平臺落地和 AI 工程化的效率唱捣。
- SQL for AI?? 两蟀,聲明式融合命令式語言,SQL-like 語法簡單又靈活
- 云原生設計震缭,充分利用云上算力和便宜的存儲
- 一套語言赂毯,一個引擎,覆蓋 Data + AI 的能力拣宰,開箱即用
Byzer 四大特性降低成本党涕,釋放員工生產(chǎn)力
Byzer 旨在幫助用戶以低成本和高效率的方式落地數(shù)據(jù)平臺和完成 AI 工程化,釋放數(shù)據(jù)分析師巡社、工程師以及運維人員的生產(chǎn)力膛堤。其主要有以下四點特征:
- 萬物皆表(Everything is a table):
Byzer 語言的核心設計是萬物皆表(Everything is a table),我們希望用戶可以非常容易的將任何實體對象通過 Byzer 來抽象成二維表晌该,從而能夠基于表來進行數(shù)據(jù)處理或模型訓練等進一步操作肥荔。Byzer 可以通過虛擬表串聯(lián)數(shù)據(jù)流,做到多數(shù)據(jù)源無縫對接朝群,并同時支持模型的批燕耿,流,API的一鍵部署姜胖。
- 類 SQL 語法(SQL-like Language):
在語言設計層面誉帅,Byzer 采用了聲明式融合命令式語言編程設計,SQL-like 語法簡單又靈活谭期。
- 內(nèi)置算法和插件(Built-in Algorithms and Plugins):
支持 Python堵第、標準庫、使用自定義 UDF(Scala/Java)隧出。內(nèi)置大量算法和特征工程工具,幫助平民分析師更快上手機器學習阀捅。
- 可定制胀瞪,簡單,強大(Customizable, Simple and Powerful):
Byzer 通過一套語言饲鄙、一個引擎凄诞,就能覆蓋整個數(shù)據(jù)鏈路,開箱即用忍级。且 Byzer 從 Day1 起就是云原生設計帆谍,同時原生分布式引擎(Spark 引擎和可插拔 Ray引擎)的設計,可以讓 Byzer 充分實現(xiàn)算力和存儲的云端擴展轴咱。
上圖為 Byzer 架構(gòu)圖汛蝙,我們可以看到 Byzer 作為一個解釋型語言烈涮,擁有解釋器(Interpreter)以及運行時環(huán)境 (Runtime),Byzer 的 Interpreter 會對 Byzer 的腳本做詞法分析窖剑,預處理坚洽,解析等,然后生成 Java/Scala/Python/SQL 等代碼西土,最后提交到 Runtime 上進行執(zhí)行讶舰。
Byzer 使用 Github 作為包管理器(Package Manager),有內(nèi)置 lib 庫和第三方 lib 庫(lib 庫是使用 Byzer 語言編寫出的功能模塊)需了。
從上述設計理念實現(xiàn)而來跳昼,Byzer 既保留了 SQL 的優(yōu)勢,簡潔易懂肋乍,還允許用戶通過擴展點來進行更多的進階操作鹅颊,提供更多可編程能力。
Byzer IDE 支持 —— Byzer Notebook
作為一門語言住拭,需要能夠支持編輯器或者 IDE 來方便用戶開發(fā)和使用挪略, 完成諸如高亮,代碼提示滔岳,運行等能力杠娱。目前比較流行的方式是實現(xiàn) LSP (language server protocol),這樣在編輯器層或者是 IDE 層谱煤,可以直接基于 LSP 完成相關(guān)功能摊求。比如在代碼提示功能的實現(xiàn)上,可以使用內(nèi)置宏函數(shù) !show 來實現(xiàn)參數(shù)自省刘离,通過 code suggestion API 返回給調(diào)用方室叉,完成代碼的提示功能。
Byzer-lang 目前不僅支持官方 Web 版本 IDE:Byzer Notebook 硫惕, 也支持用戶在 VSCode 中下載插件來啟用代碼編輯以及 Notebook 的能力茧痕,詳情可參考 Byzer 官網(wǎng) 中的下載地址。
Byzer Notebook 是基于 Byzer 引擎搭建的網(wǎng)頁交互計算(Web IDE)應用平臺恼除。Byzer Notebook 同時也是 Byzer-lang 的 dubugger(調(diào)試器)踪旷,通過 Notebook 簡單易用的調(diào)試功能,省去了初學者安裝配置開發(fā)環(huán)境的門檻豁辉。
貢獻 Byzer 社區(qū)
如果 Byzer-Lang 和 Byzer Notebook 對您有幫助令野,或您有興趣想要貢獻自己的一份力量,Byzer 白澤社區(qū) Byzer Org 非常期待您的加入徽级。
也歡迎大家加入 Byzer Slack 社區(qū) 開發(fā)討論組气破,參與 Byzer 社區(qū)的前沿技術(shù)話題討論。