蚂蚁金服开源机器学习工具SQLFlow,机器学习比SQL还简单

人工智能 机器学习
5月6日,蚂蚁金服副 CTO 胡喜正式宣布开源机器学习工具 SQLFlow:“未来三年,AI 能力会成为每一位技术人员的基本能力。我们希望通过开源 SQLFlow,降低人工智能应用的技术门槛,让技术人员调用 AI 像 SQL 一样简单。”

5月6日,蚂蚁金服副 CTO 胡喜正式宣布开源机器学习工具 SQLFlow:“未来三年,AI 能力会成为每一位技术人员的基本能力。我们希望通过开源 SQLFlow,降低人工智能应用的技术门槛,让技术人员调用 AI 像 SQL 一样简单。”

 

 

目前,SQLFlow已经在GitHub上获得1636个Star,236个Fork。(GitHub地址:https://github.com/sql-machine-learning/sqlflow)

SQLFlow 的目标是将 SQL 引擎和 AI 引擎连接起来,让用户仅需几行 SQL 代码就能描述整个应用或者产品背后的数据流和 AI 构造。其中所涉及的 SQL 引擎包括 MySQL、Oracle、Hive、SparkSQL、Flink 等支持用 SQL 或其某个变种语言描述数据,以及描述对数据的操作的系统。而这里所指的 AI 引擎包括 TensorFlow、PyTorch 等深度学习系统,也包括 XGBoost、LibLinear、LibSVM 等传统机器学习系统。

从 SQL 到机器学习

SQLFlow 可以看作一个翻译器,它把扩展语法的 SQL 程序翻译成一个被称为 submitter 的程序,然后执行。 SQLFlow 提供一个抽象层,把各种 SQL 引擎抽象成一样的。SQLFlow 还提供一个可扩展的机制,使得大家可以插入各种翻译机制,得到基于不同 AI 引擎的 submitter 程序。

 

 

SQLFlow 对 SQL 语法的扩展意图很简单:在 SELECT 语句后面,加上一个扩展语法的 TRAIN 从句,即可实现 AI 模型的训练。或者加上一个 PREDICT 从句即可实现用现有模型做预测。这样的设计大大简化了数据分析师的学习路径。

此外,SQLFlow 也提供一些基本功能,可以供各种 submitter 翻译插件使用,用来根据数据的特点,推导如何自动地把数据转换成 features。这样用户就不需要在 TRAIN 从句里描述这个转换。

 

 

以上这些设计意图在 SQLFlow 的开源代码中都有体现。当然,SQLFlow 开发时间还比较短,仍然存在很多做的不够细致的地方。蚂蚁金服将其开源的另一个目的,就是希望能够和各个 SQL 引擎团队和各个 AI 团队一起打造这座横跨数据和 AI 的桥梁。

以下是使用样本数据Iris.train 训练Tensorflow DNNClassifer模型,并使用训练模型运行预测的示例。你可以看到使用SQL编写一些优雅的ML代码有多酷:

  1. sqlflow> SELECT * 
  2. FROM iris.train 
  3. TRAIN DNNClassifier 
  4. WITH n_classes = 3, hidden_units = [10, 20] 
  5. COLUMN sepal_length, sepal_width, petal_length, petal_width 
  6. LABEL class 
  7. INTO sqlflow_models.my_dnn_model; 
  8.  
  9. ... 
  10. Training set accuracy: 0.96721 
  11. Done training 
  1. sqlflow> SELECT * 
  2. FROM iris.test 
  3. PREDICT iris.predict.class 
  4. USING sqlflow_models.my_dnn_model; 
  5.  
  6. ... 
  7. Done predicting. Predict table : iris.predict 
  8. ... 
  9. Training set accuracy: 0.96721 
  10. Done training 

 

责任编辑:庞桂玉 来源: 人工智能与大数据技术
相关推荐

2020-06-12 08:19:21

机器学习技术工具

2020-10-18 07:19:47

低代码机器学习低代码工具

2017-04-06 10:40:49

机器学习开源Python库

2019-03-18 10:57:42

开源技术 软件

2020-10-15 17:57:45

开源工具机器学习开发

2020-10-13 14:54:11

机器学习技术工具

2019-05-13 09:22:21

微软开源机器学习

2020-10-30 08:53:34

机器学习任务编排

2021-02-03 09:21:59

SQL机器学习ML

2018-10-11 10:37:31

JavaScript开源 机器学习

2022-05-18 16:24:36

PythonPyCaret机器学习

2014-12-23 14:57:42

开源项目机器学习

2015-10-15 21:03:04

蚂蚁金服

2018-05-17 16:01:00

蚂蚁金服金融数字化转型

2021-03-15 11:35:28

人工智能机器学习

2021-04-12 10:46:15

人工智能机器学习

2022-03-28 09:00:00

SQL数据库机器学习

2022-09-19 09:53:37

机器学习实践

2015-04-14 10:40:31

云计算机器学习

2017-05-05 09:56:08

神经网络模型绘画
点赞
收藏

51CTO技术栈公众号