OpenDelta 项目介绍
项目概述
OpenDelta 是一个开源框架,专注于参数高效微调(被称为 Delta 调优)。通过使用 OpenDelta,用户可以灵活地分配(或增加)少量参数以进行更新,而大多数参数保持不变。这种方式让用户能够轻松实现前缀调优、适配器、LoRA 及其他类型的 Delta 调优,兼容多种预训练模型。
该项目的最新版本在 Python 3.8.13、PyTorch 1.12.1 和 transformers 4.22.2 上进行了测试,如果使用其他版本,也可能兼容。如果用户在使用自己的包版本时遇到问题,可以反馈,团队会尽快调查解决。
版本更新动态
OpenDelta 的开发团队一直致力于不断更新和改进。以下是项目的一些重要更新:
- 2022年10月25日:发布了 v0.3.2 版本,支持 BMTrain,并改进了文档和添加了检查工具。
- 2022年10月14日:发布了 v0.3.0,优化了每种 Delta 调优方法的默认配置使用体验。
- 2022年10月10日:将 v0.2.4 长期开发分支合并入主分支,统一了 Delta 调优和提示调优的范例。
- 2022年3月下旬:修复了 Soft Prompt 调优和前缀调优中的若干个问题。
- 2022年2月中旬:在基于名称的参数配置中支持了正则表达式。
安装指南
用户可以选择以下任一种方式进行安装:
-
创建一个虚拟环境(可选):
conda create -n opendelta_env python=3.8 conda activate opendelta_env
-
安装最新版本:
pip install git+https://github.com/thunlp/OpenDelta.git
-
或安装最新的稳定 pip 版本:
pip install opendelta
-
或从源码构建:
git clone git@github.com:thunlp/OpenDelta.git cd OpenDelta python setup.py install
功能亮点
OpenDelta 提供了多种功能,使其用户可以便捷地进行模型微调。比如用户可以通过简单的代码来查看如何冻结主干模型的参数,仅对 Delta 模型进行训练。同时,还可以轻松地保存并加载 Delta 模型而不是整个预训练模型,从而节省存储空间。
默认配置支持
OpenDelta 设计上可以用于任何基于 PyTorch 的主干模型。不过要注意,有的小机率一些主干模型的子模块接口可能尚不被支持。目前,OpenDelta 已验证可支持一些常用模型,我们将持续测试更多新兴模型。
我们欢迎用户将自己成功应用 OpenDelta 的主干模型通过 Pull requests 与社区分享。
引用信息
如需引用 OpenDelta 项目,可以参考以下文献:
@article{hu2023opendelta,
title={OpenDelta: A Plug-and-play Library for Parameter-efficient Adaptation of Pre-trained Models},
author={Hu, Shengding and Ding, Ning and Zhao, Weilin and Lv, Xingtai and Zhang, Zhen and Liu, Zhiyuan and Sun, Maosong},
journal={arXiv preprint arXiv:2307.03084},
year={2023}
}
@article{ding2022delta,
title={Delta tuning: A comprehensive study of parameter efficient methods for pre-trained language models},
author={Ding, Ning and Qin, Yujia and Yang, Guang and Wei, Fuchao and Yang, Zonghan and Su, Yusheng and Hu, Shengding and Chen, Yulin and Chan, Chi-Min and Chen, Weize and others},
journal={arXiv preprint arXiv:2203.06904},
year={2022}
}
总之,OpenDelta 为寻求高效模型调优的研究人员和开发者提供了一个便捷强大的工具,帮助他们更好地适应和使用大型预训练模型。