Sqlflow

一、简介

最近,蚂蚁正式了开源其机器学习工具SQLFlow。SQLFlow=SQL引擎+AI引擎。其抽象出端到端从数据到模型的研发过程,配合底层的引擎及自动优化,让具备基础SQL知识的技术人员,也能轻松完成大部分的人工智能工作,如机器学习、模型训练和预测等。用户仅需几行SQL代码就能描述整个应用或者产品背后的数据流和 AI 构造.SQLFlow通过对基本的SQL语法进行扩展来实现AI功能。如在SELECT语句后面,加上一个扩展语法的 TRAIN 从句,即可实现 AI 模型的训练。或者加上一个 PREDICT 从句即可实现用现有模型做预测。此外,SQLFlow也提供一些基本功能,可以供各种 submitter 翻译插件使用,用来根据数据的特点,推导如何自动地把数据转换成features,这样用户就不需要在 TRAIN 从句里描述这个转换。

问题:目前,SQLFlow还很初级,还存在很多的问题,如语法解析问题,SQLFlow 目前已经对接 MySQL,正在对接 Hive 和阿里云上的MaxCompute,将来还希望能对接更多公司正在使用的 SQL 引擎。SQLFlow目前依赖TensorFlow 等底层引擎来实现训练和预测,但TensorFlow 原生支持分布式训练,但不支持容错,一个进程挂了,整个作业就挂了。而PyTorch、XGBoost、LibLinear 这些 AI 引擎的分布式计算能力也都有一些问题,因此,未来的路还很遥远。

二、整体架构


整体架构

三、安装教程

步骤:

1.把repo clone到本地

git  clonehttps://github.com/sql-machine-learning/sqlflow

2.使用docker启动mysql并导入数据 

cd  example/datasets

docker  build -t sqlflow:data .

build mysql镜像并启动

docker  run --rm -d --name sqlflowdata {color}-p 3306:3306 -e MYSQL_ROOT_PASSWORD=root -e MYSQL_ROOT_HOST=% \sqlflow:data


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

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

3.启动主程序

docker  pull sqlflow/sqlflow:latest

拉取镜像并启动 


docker  run -rm -it -p8888:8888sqlflow/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"


四、使用说明

登陆网址

http://192.168.210.19:8888/tree

token为74a72bf64a32b0b03aaa11aefba7bdbed36c709aadc00808

输入74a72bf64a32b0b03aaa11aefba7bdbed36c709aadc00808

然后输入:

%%sqlflow

select * from iris.train limit 5;


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容