Uber发布开源AI工具包Ludwig,开发者无需编程即可完成模型搭建

WechatIMG72_meitu_1

【猎云网(微信号:)】2月12日报道(编译:一晌贪欢)

想紧跟人工智能的发展,却发现其中的编程环节令人望而生畏吗?别担心,Uber帮你找到了解决方案。这家网约车巨头发布了一款开源工具包Ludwig,它基于谷歌的TensorFlow框架,让用户可以在无需编写代码的情况下训练和测试AI模型。

Uber表示,经过两年时间在应用领域精简AI系统部署,才推出Ludwig,公司内部利用该工具包完成了不少任务,比如从驾驶执照中提取信息,在司机和司机、司机和乘客的沟通中发现商务要点,预测外卖送达时间等等。

Uber在一篇博客文章中写道:“Ludwig的独特之处在于,它能够帮助非专业人士更容易地理解深度学习,并为有经验的机器学习开发人员和研究人员提供更快的模型改进迭代周期。通过使用Ludwig,专家和研究人员可以简化原型测试流程、精简数据处理,这样他们就可以专注于开发深入的学习架构,而不是花时间做数据整理。”

2.jpg

Ludwig应用的可视化方案

据Uber解释,Ludwig提供了一组AI架构,它可以组合起来为给定的情况创建端到端模型。启动训练只需要表格数据集文件(如CSV)和YAML配置文件,指定前者的哪些列符合输入特征(即观察中的个体属性或现象),哪些列是输出目标变量。如果指定多个输出目标变量,Ludwig会学习同时预测所有输出。

新的模型定义可以包含附加信息,包括数据集中每个特征的预处理数据和模型训练参数。并且在Ludwig中训练的模型会被保存,且能够在以后加载以获得对新数据的预测。

新奇的是,对于Ludwig支持的每种数据类型,工具包都提供数据类型特定的编码器,将原始数据映射到张量(线性代数中使用的数据结构),同时解码器会映射张量到原始数据。内置组合器自动将所有输入编码器的张量拼接在一起,对其进行处理,并将它们返回以用于输出解码器。

Uber写道:“通过编写这些特定数据类型的组件,用户可以在各种任务上制作Ludwig训练模型。例如,通过组合文本编码器和类别解码器,用户可以获得文本分类器,而组合图像编码器和文本解码器将使用户能够获得图像字幕模型。这种多功能且灵活的编码器/解码器架构使经验不足的深度学习从业者能够轻松地训练各种机器学习任务模型,例如文本分类、对象分类、图像字幕、序列标记、回归模型、语言建模、机器翻译、时间序列预测和问答。”

此外,Ludwig还提供了以下工具:1)一套用于培训、测试模型和预测获得的命令行实用程序;2)通过可视化方案来评估模型、比较模型预测的工具;3)Python应用程序编程接口。这些可以让用户训练或加载模型,并使用该模型获得对新数据的预测。另外,Ludwig能够通过使用Uber的Horovod(一个支持多图形卡和机器的框架)来进行分布式模型培训。

目前,Ludwig包含的编码器/解码器支持二进制值、浮点数、类别、离散序列、集合、数据包、图像、文本和时间序列,Ludwig还支持选择预训练模型。未来,Uber计划添加新的编码器,用于处理文本、图像、音频、点云数据和图表,并集成“更具可扩展性的解决方案”来管理大数据集。

Uber表示:“我们决定开放Ludwig源代码,因为我们相信对于非专业的机器学习从业者、有经验的深度学习开发人员和研究人员,这是一个非常有用的工具。非专业人士可以快速地训练和测试深度学习模型,而不必编写代码。专业人士可以获得强大的基线模型来比较他们的模型,也可以进行实验设置,通过执行标准的数据预处理和可视化,能够容易地测试新的想法和分析模型。”

2017年Uber发布了Pyro,这是一款建立在Facebook PyTorch机器学习框架上的深度概率编程语言,现在Uber又推出了Ludwig。今后无代码AI开发工具将会持续涌现,比如百度的EZDL和微软的AI模型构建器。