使用 Renate PlatoBlockchain 数据智能自动重新训练神经网络。 垂直搜索。 人工智能。

使用 Renate 自动重新训练神经网络

今天我们宣布全面上市 雷娜特,一个用于自动模型再训练的开源 Python 库。 该库提供持续学习算法,能够在更多数据可用时逐步训练神经网络。

通过开源 Renate,我们希望创建一个场所,让从事现实世界机器学习系统工作的从业者和对推进自动机器学习、持续学习和终身学习的最新技术水平感兴趣的研究人员聚集在一起。 我们相信,这两个社区之间的协同作用将在机器学习研究社区中产生新的想法,并在实际应用中产生切实的积极影响。

模型再训练和灾难性遗忘

增量训练神经网络不是一项简单的任务。 在实践中,在不同时间点提供的数据通常是从不同的分布中采样的。 例如,在问答系统中,问题中主题的分布会随时间发生显着变化。 在分类系统中,当在世界不同地区收集数据时,可能需要添加新类别。 在这些情况下,使用新数据对先前训练的模型进行微调将导致一种称为“灾难性遗忘”的现象。 最近的例子会有很好的表现,但对过去收集的数据所做的预测质量会显着下降。 此外,当重新训练操作定期发生时(例如,每天或每周),性能下降会更加严重。

当可以存储一小块数据时,基于在再训练期间重用旧数据的方法可以部分缓解灾难性遗忘问题。 遵循这个想法已经开发了几种方法。 其中一些只存储原始数据,而更高级的还保存额外的元数据(例如,内存中数据点的中间表示)。 存储少量数据(例如,数千个数据点)并谨慎使用它们会导致下图中显示的卓越性能。

自带模型和数据集

在训练神经网络模型时,可能需要更改网络结构、数据转换和其他重要细节。 虽然代码更改有限,但当这些模型是大型软件库的一部分时,它可能会成为一项复杂的任务。 为了避免这些不便,Renate 让客户能够在预定义的 Python 函数中定义他们的模型和数据集作为配置文件的一部分。 这样做的好处是可以将客户的代码与库的其余部分清楚地分开,并允许不了解 Renate 内部结构的客户有效地使用库。

此外,包括模型定义在内的所有功能都非常灵活。 事实上,模型定义功能允许用户根据自己的需要从头开始创建神经网络,或者从开源库中实例化知名模型,例如 变形金刚 or 火炬视觉. 它只需要将必要的依赖项添加到需求文件中。

有关如何编写配置文件的教程,请访问 如何编写配置文件.

超参数优化的好处

与机器学习中的常见情况一样,持续学习算法带有许多超参数。 它的设置可以对整体性能产生重要影响,仔细调整可以对预测性能产生积极影响。 在训练新模型时,Renate 可以使用 ASHA 等最先进的算法启用超参数优化 (HPO),以利用在 Amazon SageMaker 上运行多个并行作业的能力。 结果示例如下图所示。

使用 Renate PlatoBlockchain 数据智能自动重新训练神经网络。 垂直搜索。 人工智能。

为了启用 HPO,用户需要定义搜索空间或使用库提供的默认搜索空间之一。 请参阅示例 使用 HPO 运行训练作业. 寻求更快重新调整的客户还可以通过选择具有迁移学习功能的算法来利用他们之前调整工作的结果。 通过这种方式,优化器将获悉哪些超参数在不同的调优工作中表现良好,并将能够专注于这些超参数,从而减少调优时间。

在云端运行

Renate 允许用户从用于实验的本地机器上的训练模型快速过渡到使用 SageMaker 训练大规模神经网络。 事实上,在本地机器上运行训练作业是很不寻常的,尤其是在训练大型模型时。 同时,能够在本地验证细节和测试代码非常有用。 为了满足这一需求,Renate 只需更改配置文件中的一个简单标志,即可在本地机器和 SageMaker 服务之间快速切换。

例如,启动调优作业时,可以在本地运行 execute_tuning_job(..., backend='local') 并迅速切换到SageMaker,修改代码如下:

execute_tuning_job(
...,
backend="sagemaker",
role=get_execution_role(),      # requires importing the function from Syne Tune
instance_type="ml.g4dn.2xlarge" # the desired instance type
job_name="name_prefix_",             # a prefix to be used to identify the job
...
)

运行脚本后,可以从 SageMaker Web 界面看到正在运行的作业:

使用 Renate PlatoBlockchain 数据智能自动重新训练神经网络。 垂直搜索。 人工智能。

还可以监控训练作业并读取 CloudWatch 中的日志:

使用 Renate PlatoBlockchain 数据智能自动重新训练神经网络。 垂直搜索。 人工智能。

所有这一切都无需任何额外的代码或努力。

在云中运行训练作业的完整示例可在 如何运行训练作业.

结论

在本文中,我们描述了与再训练神经网络相关的问题以及 Renate 库在此过程中的主要优势。 要了解有关图书馆的更多信息,请查看 GitHub存储库,您将在其中找到对 图书馆 以及 算法, 说明 安装例子 这可以帮助您入门。

我们期待您的 捐款,反馈并与所有感兴趣的人进一步讨论,并看到图书馆集成到现实世界的再培训管道中。


关于作者

使用 Renate PlatoBlockchain 数据智能自动重新训练神经网络。 垂直搜索。 人工智能。乔瓦尼·扎佩拉 是 AWS Sagemaker 从事长期科学研究的高级应用科学家。 他目前从事持续学习、模型监控和 AutoML 方面的工作。 在此之前,他在 Amazon Music 从事多臂老虎机在大规模推荐系统中的应用。

使用 Renate PlatoBlockchain 数据智能自动重新训练神经网络。 垂直搜索。 人工智能。马丁维斯图巴 是 AWS Sagemaker 长期科学团队的应用科学家。 他的研究重点是自动机器学习。

使用 Renate PlatoBlockchain 数据智能自动重新训练神经网络。 垂直搜索。 人工智能。  卢卡斯·巴莱斯 是 AWS 的应用科学家。 他致力于持续学习和与模型监控相关的主题。

使用 Renate PlatoBlockchain 数据智能自动重新训练神经网络。 垂直搜索。 人工智能。塞德里克·阿尔尚博 是 AWS 的首席应用科学家,也是欧洲学习和智能系统实验室的研究员。

时间戳记:

更多来自 AWS机器学习