SQLFlow是一個編譯器,可將SQL程序編譯為在Kubernetes上運行的工作流程。該輸入是一個SQL程序,它寫在我們的擴展SQL語法中,以支持AI工作,包括培訓,預測,模型評估,模型說明,自定義作業和數學編程。輸出是一個Argo工作流,該工作流程在分佈的Kubernetes群集上運行。
SQLFlow支持各種數據庫系統,例如MySQL,Mariadb,Tidb,Hive,MaxCompute和許多機器學習工具包,例如Tensorflow,Keras,Xgboost。
立即在我們的操場上嘗試SQLFlow https://playground.sqlflow.tech/,然後查看其中的方便教程。
當前基於ML的應用程序的經驗要求數據工程師,數據科學家,業務分析師以及高級語言和編程工具的擴散,例如Python,SQL,SQL,SAS,Sass,Julia,R。工具和開發環境的分裂為工程培訓的額外困難帶來了模型培訓/調查。如果我們將最廣泛使用的數據管理/處理語言SQL與ML/系統功能結合在一起,並讓具有SQL技能的工程師開發基於高級ML的應用程序怎麼辦?
該行業已經在進行一些工作。我們可以使用DOT_PRODUCT
等操作員在SQL中編寫簡單的機器學習預測(或評分)算法。但是,這需要從培訓程序到SQL語句的複制N-Pasting模型參數。在商業世界中,我們看到一些專有的SQL發動機提供擴展以支持機器學習能力。
CREATE MODEL
語句來啟用SQL中的機器學習。現有的解決方案都無法解決我們的疼痛點,而是希望它完全可擴展。
以下是使用示例數據IRIS.TRAIN訓練TensorFlow DNNClassifier模型的示例,並使用訓練有素的模型運行預測。您可以看到使用SQL編寫一些優雅的ML代碼是多麼酷:
sqlflow > SELECT *
FROM iris . train
TO TRAIN DNNClassifier
WITH model . n_classes = 3 , model . hidden_units = [ 10 , 20 ]
COLUMN sepal_length, sepal_width, petal_length, petal_width
LABEL class
INTO sqlflow_models . my_dnn_model ;
...
Training set accuracy: 0 . 96721
Done training
sqlflow > SELECT *
FROM iris . test
TO PREDICT iris . predict .class
USING sqlflow_models . my_dnn_model ;
...
Done predicting. Predict table : iris . predict
SQLFlow會喜歡支持盡可能多的主流ML框架和數據源,但是我們覺得很難僅憑我們自己進行擴展,因此我們很想听到您在您當前正在使用和建立的ML框架和數據源上的選擇。請參閱我們的路線圖以獲取特定時間表,還請我們知道您圍繞SQLFlow項目的當前情況和興趣,以便我們可以根據社區的反饋來確定優先級。
您的反饋是我們繼續前進的動力。請通過提出GitHub問題,讓我們知道您的問題,疑慮和問題。
Apache許可證2.0