.. image:: https://img.shields.io/pypi/status/Renate :target: # :alt: PyPI - 状态 .. image:: https://img.shields.io/github/v/release/awslabs/Renate :target: https://github.com/awslabs/Renate/releases/tag/v0.5.1 :alt: 最新发布 .. image:: https://img.shields.io/pypi/dm/Renate :target: https://pypistats.org/packages/renate :alt: PyPI - 下载量 .. image:: https://img.shields.io/github/license/awslabs/Renate :target: https://github.com/awslabs/Renate/blob/main/LICENSE :alt: 许可证 .. image:: https://readthedocs.org/projects/renate/badge/?version=latest :target: https://renate.readthedocs.io :alt: 文档状态 .. image:: https://raw.githubusercontent.com/awslabs/Renate/python-coverage-comment-action-data/badge.svg :target: https://htmlpreview.github.io/?https://github.com/awslabs/Renate/blob/python-coverage-comment-action-data/htmlcov/index.html :alt: 覆盖率徽章
Renate:Python中的自动神经网络重训练和持续学习
Renate是一个用于自动重训练神经网络模型的Python包。
它使用先进的持续学习和终身学习算法来实现这一目的。
该实现基于 PyTorch <https://pytorch.org>
_ 和 Lightning <https://www.pytorchlightning.ai>
_ 进行深度学习,以及
Syne Tune <https://github.com/awslabs/syne-tune>
_ 进行超参数优化。
快速链接
- 使用
pip install renate
安装Renate,或查看这些说明 <https://renate.readthedocs.io/en/latest/getting_started/install.html>
_ 本地训练 <https://renate.readthedocs.io/en/latest/examples/train_mlp_locally.html>
_ 和在Amazon SageMaker上训练 <https://renate.readthedocs.io/en/latest/examples/train_classifier_sagemaker.html>
_ 的示例。文档 <https://renate.readthedocs.io>
_支持的算法 <https://renate.readthedocs.io/en/latest/getting_started/supported_algorithms.html>
_
谁需要Renate?
在许多应用中,数据是随时间逐步提供的,而每次有新的数据批次时都从头开始重新训练成本过高。在这些情况下,我们希望使用 提供的新批次数据以有限的成本更新我们之前的模型。 不幸的是,由于不同块中的数据不是按照相同的分布采样的, 仅仅对旧模型进行微调会造成诸如 灾难性遗忘 等问题。 Renate中的算法有助于减轻遗忘的负面影响,并提高模型的整体性能。
.. figure:: https://raw.githubusercontent.com/awslabs/Renate/main/doc/_images/improvement_renate.svg :align: center :alt: Renate与模型微调的对比。
Renate的更新机制优于简单的微调方法。 [#]_
Renate还提供超参数优化(HPO),这是一项在持续更新模型时可能对性能产生重大影响的功能。为此,Renate在底层使用
Syne Tune <https://github.com/awslabs/syne-tune>
_,并可以提供
高级HPO方法,如多保真度算法(ASHA)和迁移学习算法
(用于加速重新调优)。
.. figure:: https://raw.githubusercontent.com/awslabs/Renate/main/doc/_images/improvement_tuning.svg :align: center :alt: HPO对Renate更新算法的影响。
与使用默认设置相比,Renate将从超参数调优中受益。 [#]_
主要特点
- 易于扩展和在云端运行
- 为实际重训练流程设计
- 内置高级HPO功能
- 开放实验
资源
- (博客)
使用Renate自动重训练神经网络 <https://aws.amazon.com/blogs/machine-learning/automatically-retrain-neural-networks-with-renate/>
_ - (论文)
Renate:一个用于实际持续学习的库 <https://arxiv.org/abs/2304.12067>
_
引用Renate
.. code-block:: bibtex
@misc{renate2023,
title = {Renate: A Library for Real-World Continual Learning},
author = {Martin Wistuba and
Martin Ferianc and
Lukas Balles and
Cedric Archambeau and
Giovanni Zappella},
year = {2023},
eprint = {2304.12067},
archivePrefix = {arXiv},
primaryClass = {cs.LG}
}
你在找什么?
-
安装说明 <https://renate.readthedocs.io/en/latest/getting_started/install.html>
_ .. code-block:: bashpip install renate
-
示例:
在MNIST上本地训练MLP <https://renate.readthedocs.io/en/latest/examples/train_mlp_locally.html>
_在SageMaker上训练ResNet <https://renate.readthedocs.io/en/latest/examples/train_classifier_sagemaker.html>
_
-
包含API文档和示例的文档网站 <https://renate.readthedocs.io>
_ -
支持的算法列表 <https://renate.readthedocs.io/en/latest/getting_started/supported_algorithms.html>
_ -
如何使用Renate进行持续学习实验 <https://renate.readthedocs.io/en/latest/benchmarking/index.html>
_ -
贡献者指南 <https://github.com/awslabs/renate/tree/master/CONTRIBUTING.md>
_
如果你没有找到你要找的内容,请提出一个 问题 <https://github.com/awslabs/Renate/issues/new>
_,
我们会尽最大努力改进文档。
.. [#] 为创建此图,我们使用 CLEAR-100 <https://clear-benchmark.github.io/>
_ 模拟了领域增量学习。
训练数据按年份划分,我们按顺序对其进行训练。
微调指的是在第一个分区上从头开始学习的策略,并且
仅在后续分区上进行少量周期的训练。
我们将其与具有无限内存大小的经验回放进行比较。
对于这两种方法,我们使用相同的训练时间,并使用验证集
选择最佳检查点。
报告的结果是在测试集上得出的。
.. [#] 在这个实验中,我们考虑CIFAR-10上的类增量学习。我们比较了 经验回放与其超参数经过调优的版本。