TensorFlow 框架的开源工具箱 Ludwig

TensorFlow 框架的开源工具箱 Ludwig

Apache
Python
跨平台
Uber
2019-05-12
红薯

网约车服务商 Uber 开源并发布了它们开发的 Ludwig,这是一款基于 Google TensorFlow 框架上的开源工具箱。藉由 Ludwig,用户无需再编写任何代码即可进行深度学习的开发。

 

Ludwig Screenshots

在过去的十年中,人们证明了深度学习在视觉、语音和语言方面执行各种各样的机器学习任务非常有效。Uber 将这些深度学习模型用于各种任务,包括客户支持、对象检测、改进地图、简化聊天沟通、预测和防止欺诈。

现在有很多开源库,包括 TensorFlow、PyTorch、CNTK 和 Chainer 等,已经实现了构建此类模型所需的构件,从而可以进行更快、更不易出错的开发。而这些反过来又推动了机器学习研究界和行业从业者采用这种模型,从而在架构设计和行业解决方案方面取得了快速的进展。

Uber AI 决定避免重新发明轮子,在开源库所提供的强大基础之上开发软件包。为此,Uber AI 于 2017 年发布了 Pyro,这是一种基于 PyTorch 的深度概率编程语言,并借助开源社区的力量继续改进。Uber 开发的另一个主要开源人工智能工具是 Horovod,这是由 LF 深度学习基金会(LF Deep Learning Foundation)托管的一个框架,允许在多个 GPU 和多台机器上对深度学习模型进行分布式训练。

Uber 在 TensorFlow 的基础上开发了一款开源深度学习工具箱,命名为 Ludwig,允许用户在无需编写代码的情况下即可训练并测试深度学习模型。

Ludwig 的独特之处在于它能够帮助非专家更容易地理解深度学习,并为经验丰富的机器学习开发者和研究人员提供更快的模型改进迭代周期。通过使用 Ludwig,专家和研究人员可以简化原型设计过程及数据处理,这样他们就可以专注于开发深度学习体系架构,而不是深陷数据整理。

Ludwig

在过去两年里,为了简化应用项目中深度学习模型的使用,因为它们通常需要在不同架构和快速迭代之间进行比较,Uber 内部一直在开发 Ludwig。Uber 已经见证了 Ludwig 对 Uber 自有的几个项目带来的价值,包括人工智能客服助理平台(Customer Obsession Ticket Assistant ,COTA)、驾照的信息提取、司乘之间对话兴趣点的识别、送餐速度预测等等。出于这些原因,Uber 决定开源并发布 Ludwig,因为他们认为目前还没有任何其他解决方案具有相同的易用性和灵活性。

Uber 最初将 Ludwig 设计为通用工具,用于在处理新的应用机器学习问题时简化模型开发和比较过程。为实现这一目标,Uber 从其他机器学习软件汲取了灵感:Weka 和 MLlib,它们直接处理原始数据并提供一定数量的预构建模型的想法;Caffe 定义文件的声明性;scikit-learn,一套简单的编程 API。这些灵感混合在一起,使得 Ludwig 迥异于常见的深度学习库,后者提供张量代数(tensor algebra)原语和很少的其他工具来编码模型,同时使 Ludwig 比 PyText、StanfordNLP、AllenNLP 和 OpenCV 等其他专业库更加通用。

Ludwig 提供了一组模型架构,这些架构可以组合在一起,为给定的用例创建端到端模型。打个比方,如果说深度学习库为你的建筑提供了构建块,那么 Ludwig 就相当于构建城市的构建块,你可以选择可用的建筑物或你自己的建筑物添加到可用的建筑中。

Uber 在 Ludwig 工具箱中提出的核心设计原则是:

  • 无需编码:该工具无需编码技能即可训练模型并将其用于获取预测。
  • 通用性:一种新的基于数据类型的深度学习模型设计方法,使该工具可用于许多不同的用例。
  • 灵活性:经验丰富的用户可以对模型构建和训练进行广泛的控制,而对新手而言,该工具易于使用。
  • 可扩展性:该工具易于添加新的模型架构和新的特征数据类型。
  • 可理解性:深度学习模型内部通常被认为是 “黑盒”,但 Uber 提供了标准的可视化来理解它们的性能并比较它们的预测。

Ludwig 允许用户通过仅提供包含数据的表格文件(如 CSV)和 YAML 配置文件来训练深度学习模型,YAML 配置文件指定表格文件的哪些列是输入特征,哪些列是输出目标变量。配置文件的简单性可以加快原型设计速度,从而有望将编码时间减少到几分钟。如果指定了多个输出目标变量,Ludwig 将执行多任务学习,学习同时预测所有的输出,而这通常需要定制代码。

模型定义可以包含附加信息,尤其是数据集中每个特征的预处理信息,用于每个特征的编码器或解码器,每个编码器和解码器的架构参数以及训练参数。预处理、训练和各种模型架构参数的默认值是依据 Uber 的经验选择的,或者是根据学术文献改变的,这样新手就可以轻松训练复杂的模型。同时,在模型配置文件中分别设置每一项的能力,为专家提供了充分的灵活性。使用 Ludwig 训练的每个模型都将会被保存,并且可以在以后加载来获得对新数据的预测。比如,模型可以被加载到服务环境中,这样就可以在软件应用中提供预测。

image

图 1:可以在 Ludwig 的模型描述文件中指定几个输入和输出特征,它们的组合涵盖了许多机器学习任务。


Ludwig 引入的主要新思想是数据类型特定编码器和解码器的概念,这为 Uber 带来了高度模块化和可扩展的架构:支持的每种数据类型(文本、图像、类别等)都有特定的预处理功能。简言之,编辑器将原始数据映射到张量,而解码器则将张量映射到原始数据。

通过这种设计,用户可以访问组合器(架构的胶合组件),他们组合了来自所有输入编码器的张量,并进行处理,然后返回用于输出解码器的张量。例如,Ludwig 的默认合并多个数据组合器连接不同编码器的输出,将它们传递到完全连接的层,并提供最终激活作为输出解码器的输入。其他组合器可用于其他用例,通过实现简单的函数接口即可轻松添加更多的组合器。

通过组合这些特定于数据类型的组件,用户可以在各种任务上构建 Ludwig 训练模型。例如,通过组合文本编码器和类别编码器,用户可以获得文本分类器;而组合图像编码器和文本解码器则可获得图像字幕模型。

每种数据类型可以有多个编码器和解码器。例如,文本可以使用卷积神经网络(CNN)、递归神经网络(RNN)或其他编码器进行编码。然后,用户可以直接在模型定义文件中指定要使用的参数及超参数,而无需编写任何代码。

这种灵活多样的编码器 - 解码器架构使经验不足的深度学习从业者能够轻松地训练各种机器学习任务的模型,例如文本分类、对象分类、图像字幕、序列标记、回归、语言建模、机器翻译、时间序列预测和问答系统等。这就开启了各种用例,而这些用例对毫无经验的从业者而言通常是遥不可及的,并且还允许在一个领域中有经验的用户去接触新的领域。

目前,Ludwig 包含了二进制值、浮点数、类别、离散序列、集合、包、图像、文本和时间序列的编码器和解码器,以及加载一些预训练的模型(例如词嵌入)的功能。Uber 还计划在未来版本中继续扩展支持的数据类型。

除了可用性和灵活的架构外,Ludwig 还为非程序员提供了额外的好处。Ludwig 集成了一组用于训练、测试模型和获取预测的命令行实用程序。为了进一步提高可用性,工具箱还提供了一套编程 API,用户可以只需几行代码即可训练和使用模型。

此外,它还包括一套其他工具,用户评估模型,通过可视化来比较它们的性能和预测,并从中提取出模型权重和激活。

最后,通过使用开源分布式训练框架 Horovod,在多个 GPU 上以本地和分布式的方式训练模型,这一做法使得在模型上迭代和快速获得结果成为可能。

介绍内容来自 InfoQ

的码云指数为
超过 的项目
加载中

评论(2)

LGBoy
LGBoy
..

Uber 上市背后那些开源软件

当地时间5月10日上午,出行巨头Uber在纽交所挂牌上市,股票代码为“UBER”。这可能是2019年美股市场规模最大的IPO。Uber 上市的表现以及公司巨亏的现状等等跟技术无关的问题交给华尔街的那些...

05/12 09:11

没有更多内容

加载失败,请刷新页面

没有更多内容

暂无问答

虽然我不会写代码,但是搞定深度学习和人工智能只是小菜一碟

人工智能、深度学习、爬虫算法、架构框架、Java、PHP、C++……听起来好像都很厉害的样子,但是如果我不是一名程序员,不会写代码,怎么能轻松玩转这些高级关键词,和 IT 领域的大咖进行深入交...

03/29 14:55
6
0
上市的Uber背后有哪些强大的开源项目

当地时间5月10日上午,出行巨头Uber在纽交所挂牌上市,Uber崛起背后的技术文化,也是众多专家们研究的对象之一,本文将和大家盘点下Uber都开源了哪些项目 1.deck.gl https://github.com/ube...

05/17 15:42
0
0
2018年度自动机器学习框架盘点

自动机器学习在过去的一年里呈爆发式的增长态势,一个又一个新的自动化学习框架的诞生让人眼花缭乱,目不暇接 为了方便持续关注该领域的动态,我在这里将目前发现和关注的框架再汇总一下,算...

04/27 11:32
43
0
2016年,哪些大数据预测不容错过?

2016年大数据领域会发生什么?考虑到如今在深层神经网络和规范性分析方面取得的进展,你可能觉得这个问题很好回答。而实际上,来自业界的大数据预测大不相同,下面就来看看到底哪些大数据预测...

2016/01/07 23:52
9
0
BCH(比特币现金)的货币流通速度是BTC的6倍

货币流通速度是决定其经济活动的经济信号。一般来说,速度越高,发生的活动越多,反之亦然。一项新的速度趋势分析显示,比特币现金(BCH)的增速比比特币(BTC)高出约6倍。 货币流通速度的简单定...

03/19 10:10
1
0
天才人物的最完美范例

哲学,维特根斯坦,罗素,逻辑哲学论,语言学派

2015/06/09 00:22
18
0
熵的社会学意义

熵的社会学意义 作者: 阮一峰 日期: 2013年4月 9日 1. 上周,我读完了《熵:一种新的世界观》。 总体上,我不推荐这本书。因为作者是两个经济学家,他们写了一本物理学的书! 正如经济学家...

2013/05/07 22:28
42
0
2016年最值得关注的大数据领域33大预测

2016年大数据领域会发生什么情况?考虑到如今在深层神经网络和规范性分析方面取得的进展,你可能觉得这个问题很好回答。而实际上,来自业界的大数据预测大不相同,本文精选出了最值得关注的3...

2016/01/04 18:42
12
0
大数据领域33个预测,开启未知的2016

导读:2016年大数据领域会发生什么情况?考虑到如今在深层神经网络和规范性分析方面取得的进展,你可能觉得这个问题很好回答。而实际上,来自业界的大数据预测大不相同,本文精选出了最值得关...

2016/01/08 14:45
8
1
你真的理解“去中心化”吗?

导语: 编译完这篇文章,我有点明白为什么Vitalik Buterin 这个94年出生的小伙子能在20岁的时候创办以太坊了。 我不敢说 Vitalik 的认识都是正确的,但我的确从这篇文章中感受到了他的某种过...

2018/05/23 08:26
13
0

没有更多内容

加载失败,请刷新页面

返回顶部
顶部