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