开源机器学习工具SQLFlow试用

开源机器学习工具SQLFlow试用

五月 07, 2019

SQLFlow介绍

SQLFlow是昨天蚂蚁金服开源的一个机器学习工具,主要是为了连接SQL引擎和AI引擎。

具体介绍请参考: 重磅!蚂蚁金服开源机器学习工具SQLFlow,技术架构独家解读

官网: sqlflow

安装

安装文档: installation

步骤:

1.把repo clone到本地

1
git clone https://github.com/sql-machine-learning/sqlflow

2.使用docker启动mysql并导入数据
文档: Running a MySQL Server Container with Test Data

1
2
cd example/datasets
docker build -t sqlflow:data .

build mysql镜像并启动

1
2
3
4
5
docker run --rm -d --name sqlflowdata \
-p 3306:3306 \
-e MYSQL_ROOT_PASSWORD=root \
-e MYSQL_ROOT_HOST=% \
sqlflow:data

进去镜像内并按照文档说明导入数据

这样,SQLFlow依赖的mysql环境和数据已经准备完成。

3.启动主程序

1
docker pull sqlflow/sqlflow:latest

拉取镜像并启动

1
2
3
docker run --rm -it -p 8888:8888 sqlflow/sqlflow:latest \
bash -c "sqlflowserver --datasource='mysql://root:root@tcp(host.docker.internal:3306)/?maxAllowedPacket=0' &
SQLFLOW_SERVER=localhost:50051 jupyter notebook --ip=0.0.0.0 --port=8888 --allow-root"

从docker run的命令可以看到sqlflow中启动了一个jupyter
使用浏览器打开URL就得到一个jupyter,然后新建一个Python3 Notebook。
这样,我们的试用环境就算搭建完成了。

使用

在Jupyter中,代码中指定%%sqlflow+sql 才能使用sqlflow。

查询iris数据集

从iris训练集中查询数据训练一个分类器并保存为my_dnn_model
从SQL语句中可以都看到,可以使用SQL指定分类器的参数,还有训练数据的特征等。


训练完成,开始预测。

从上面的语句可以看到SQL引擎增加了适应AI的一些关键字来和AI引擎交互。


最后查询预测结果。

使用场景

目前SQL+AI的工具已有几个,包括Google的BigQueryML,SQLServer的AI扩展,还有国内个人开发者开发的MLSQL等等,处于最接近用户的层。

此类工具的主要应用场景大数据分析领域。加速数据导入导出,数据清洗,模型部署等这些工作,适合长期稳定的数据流服务。对一些熟悉SQL的分析师来说,降低了应用AI模型的难度。期待此类工具后面更好的发展。