【.com速译】训练和测试深度学习模型是一个艰难的过程,需要对机器学习和数据基础架构有深刻的理解。从特征建模到超参数优化,训练和测试深度学习模型的方法是现实世界数据科学解决方案面临的最大瓶颈之一。简化这部分有助于简化深度学习技术的采用。虽然深度学习模型的低代码训练是一个新兴领域,但我们已经看到了相关的创新。这个问题最完整的解决方案之一来自优步人工智能实验室。Ludwig(https://ludwig-ai.github.io/ludwig-docs/?from=%40)是一个无需编写代码即可训练和测试机器学习模型的框架。最近,Uber发布了Ludwig的第二个版本,包括重要的功能改进,为机器学习开发人员提供主流的无代码体验。Ludwig的目的是使用声明式无代码体验简化训练和测试机器学习模型的过程。培训是深度学习应用程序中开发人员最密集的方面之一。通常,数据科学家会花费大量时间试验不同的深度学习模型,以在特定的训练数据集上实现更高的性能。这个过程不仅涉及训练,还涉及其他几个方面,例如模型比较、评估和工作量分配。鉴于其高度技术性,训练深度学习模型通常仅限于数据科学家和机器学习专家,并且涉及大量代码。虽然这个问题在任何机器学习解决方案中都很常见,但在深度学习架构中却变得非常尖锐,因为它们通常涉及许多层。Ludwig使用易于修改和版本控制的声明性模型隐藏了训练和测试机器学习程序的复杂性。在功能方面,Ludwig框架用于简化针对特定场景选择、训练和评估机器学习模型的过程。Ludwig提供了一组模型架构,可以组合这些架构以创建针对一组特定需求优化的端到端模型。从概念上讲,Ludwig是基于一组原则设计的:无需编程:Ludwig不需要任何机器学习专业知识来训练模型。多功能性:Ludwig可用于许多不同的机器学习场景。灵活性:Ludwig足够灵活,可供经验丰富的机器学习从业者和缺乏经验的开发人员使用。可扩展性:Ludwig在设计时就考虑到了可扩展性。每个新版本都包含新功能,而不会更改核心模型。可解释性:Ludwig包含可视化元素,可帮助数据科学家了解机器学习模型的性能。数据科学家使用Ludwig来训练深度学习模型,只需提供一个包含训练数据的CSV文件和一个包含模型输入和输出的YAML文件。使用这两个数据点,Ludwig执行多任务学习例程,同时预测所有输出并评估结果。这种简单的结构是支持快速原型制作的关键。在幕后,Ludwig提供了一系列深度学习模型,这些模型会不断进行评估,并可以纳入最终架构。Ludwig背后的主要创新是基于特定数据类型的编码器和解码器的概念。Ludwig为每种支持的数据类型使用特定的编码器和解码器。与其他深度学习架构一样,编码器将原始数据映射到张量,解码器将张量映射到输出。Ludwig的架构还包括组合器的概念:组合器是一个组件,它组合来自所有输入编码器的张量,对其进行处理,并返回张量以供输出解码器使用。图1数据科学家将Ludwig用于两个主要功能:训练和预测。假设我们正在处理具有以下数据集的文本分类场景:图2我们可以开始使用Ludwig,只需使用以下命令安装它:pipinstallludwigpython-mspacydownloaden下一步是配置模型定义YAML文件,该文件指定输入和输出特征。input_features:-name:texttype:textencoder:parallel_cnnlevel:wordoutput_features:-name:classtype:category通过这两个输入(训练数据和YAML配置),我们可以使用以下命令训练深度学习模型:ludwigexperiment\--data_csvreuters-allcats.csv\--model_definition_filemodel_definition.yamlLudwig提供了一系列可在训练和预测期间使用的可视化元素。例如,学习曲线可视化元素使我们能够了解模型的训练和测试性能。图3训练后,我们可以使用以下命令评估模型的预测:ludwigpredict--data_csvpath/to/data.csv--model_path/path/to/model可以使用其他可视化元素来评估模型的性能.图4Ludwig的新特性Uber最近发布了第二版Ludwig,在核心架构中加入了一系列新特性,旨在提升训练和测试模型的无代码体验。Ludwig的许多新功能都是基于与其他机器学习架构或框架的集成。以下是一些主要功能:与Comet.ml集成:Comet.ml是市场上最流行的超参数优化和机器学习实验平台之一。Ludwig与Comet.ml的新集成带来了超参数分析或实时性能评估等功能,这些功能是数据科学家工具箱的必要组成部分。模型服务:模型服务是机器学习程序生命周期的关键部分。新版本的Ludwig提供API端点,以使用简单的REST查询提供经过训练的模型和查询预测。音频/语音功能:Ludwig0.2最重要的新增功能之一是支持音频功能。这使数据科学家能够使用最少的代码构建音频分析模型。BERT编码器:BERT是深度学习史上最流行的语言模型之一。BERT基于Transformer架构,可以执行许多语言任务,例如问答或文本生成。Ludwig现在支持将BERT作为文本分类场景的原生构建块。H3函数:H3是一种非常流行的空间索引,用于将位置编码为64位整数。Ludwig0.2直接支持H3,允许使用空间数据集实现机器学习模型。Ludwig的其他新增功能包括对可视化API的改进、新的日期函数、更好地支持非英语语言的文本标记化以及更好的数据预处理。尤其是数据注入似乎是下一个Ludwig版本的重点领域。Ludwig仍然是一个相对较新的框架,仍然需要大量的工作。然而,支持低代码模型是一个关键的组成部分,可以促进更广泛的开发人员采用机器学习。此外,Ludwig对市面上一些主流机器学习框架的使用进行了抽象和简化。原标题:Uber’sLudwigisanOpenSourceFrameworkforLow-CodeMachineLearning,作者:JesusRodriguez
