fbpx

github 專案介紹 – 將 SQL 和 AI 整合在一起

專案網址

網址:sqlflow

專案簡介

以下簡介翻譯自專案的 README

什麼是 SQLFlow?

SQLFlow 是一個橋樑,使用 TensorFlow 和其它機器學習工具套件連接 SQL 引擎,例如 MySQL、 Hive、 SparkSQL 或 SQL Server。 SQLFlow 擴充了 SQL 語言,以支援模型訓練、預測和推斷。

這個專案的開發動機

當前基於機器學習的應用程式開發需要一個由資料工程師、資料科學家、業務分析師組成的團隊,同時還需要大量的高階語言和程式設計工具,如 Python、 SQL、 SAS、 SASS、 Julia、 R。 工具和開發環境的碎片化給模型的訓練 / 調整帶來了額外的工程困難。 如果我們將最廣泛使用的資料管理 / 處理語言 SQL 與機器學習 / 系統功能結合起來,讓具有 SQL 技能的工程師開發基於機器學習的高階應用程式會怎樣?

這個業界已經有一些工作在進行中。 我們可以使用像 DOT product 這樣的操作工具在 SQL 中編寫簡單的機器學習預測(或評分)演算法。 但是,這需要將模型參數從訓練程式複製到 SQL 語句。 在商業領域,我們看到一些專有的 SQL 引擎提供了支援機器學習能力的擴充套件。

  • Microsoft SQL Server: Microsoft SQL Server 有一個機器學習服務,可以執行 R 或 Python 語言的機器學習程式作為外部指令碼( external script )
  • Teradata SQL for DL:Teradata 還提供一個 RESTful 服務,可以從擴充 SQL SELECT 語法呼叫該服務
  • Google BigQuery : 透過引入 CREATE MODEL 語句來讓 Google BigQuery 有機器學習的功能

現有的解決方案都不能解決我們的問題,取而代之,我們希望它是完全可擴充的。

  1. 此解決方案應該相容許多 SQL 引擎,而不是特定的版本或類型
  2. 它應該支援複雜的機器學習模型,包括用於深度學習的 TensorFlow 和 xgboost for trees
  3. 我們還希望能夠靈活地配置和執行最新的 機器學習演算法,包括指定 feature crosses, 至少,SQL 語句中沒有內嵌 Python 或 R 程式碼,並且完全使用超引數估計( hyperparameter estimation ) 整合

快速概觀

以下是使用樣本數據 Iris.train 訓練Tensorflow DNNClassifer 模型,並使用訓練模型運行預測的範例。 您可以看到使用 SQL 編寫一些優雅的機器學習程式碼有多酷:

sqlflow> SELECT *
FROM iris.train
TRAIN DNNClassifier
WITH n_classes = 3, 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
PREDICT iris.predict.class
USING sqlflow_models.my_dnn_model;

...
Done predicting. Predict table : iris.predict

相關線上課程

 歡迎使用 e-mail 訂閱 Soft & Share 

發表迴響

這個網站採用 Akismet 服務減少垃圾留言。進一步瞭解 Akismet 如何處理網站訪客的留言資料

Powered by WordPress.com.

Up ↑

%d 位部落客按了讚: