LLM-Adapters
AGI-Edgerunners/LLM-Adapters加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
做参数高效微调时,几乎每个人都遇到过这样的场景:LoRA 跑通了,Adapter 跑通了,Prefix Tuning 也跑通了——但每次都是换一份代码、换一套超参、换一种数据处理方式。等到想写论文说"Adapter 比 LoRA 在某任务上好 2%"的时候,才发现两边连评测口径都不一样。
LLM-Adapters 的价值就在于:把这一堆方法关进同一个笼子,让它们在同一套训练与评测流程下公平比拼。
这是 HuggingFace 团队开源的框架,已被 EMNLP 2023 收录(论文 arXiv:2304.01933)。作者在 README 里写得很直白:这是对 PEFT 库的扩展,感谢 PEFT 库本身"amazing work"。

LLM-Adapters 框架标识
论文的出发点是一个方法论问题:参数高效微调领域方法众多,但每篇论文各自实现训练循环与评测脚本,导致横向比较不可靠。LLM-Adapters 把主流方法统一到同一套接口下——切换适配器类型只需要改一个配置项,数据加载、训练循环、评测流程完全复用。
它同时支持 LLaMA、OPT、BLOOM、GPT-J 等主流开源基座,以及后续补充的 GPT-Neo 与 ChatGLM。
七种适配器方法全部实现,覆盖了参数高效微调的主要技术路线:
实现方式值得注意:仓库在 peft/ 目录下内嵌了一份 PEFT 早期源码副本(peft/src/peft/),并在其上扩展出 Parallel、Prefix、P-Tuning、Prompt Tuning 等非官方实现,peft/src/peft/tuners/ 下的文件结构清晰可读。
两个自建数据集是项目的另一个贡献:
数据集以 JSON 直接落盘在 dataset/ 目录(含 AQuA、ARC-Challenge、ARC-Easy、AddSub、MultiArith、SVAMP、SingleEq、boolq 等十类),评测时无需联网下载。
README 中一段"特别说明"体现了学术诚信:math_10k 包含 MAWPS 的组成部分,因此 AddSub、MultiArith、SingleEq 不能作为评测集,作者改用 MAWPS 测试集并更新了结果表,同时提供 math_7k 与 math_14k 两个变体。
门槛中等。requirements.txt 里包含 gradio,但代码树中并没有真正启动 Web UI 的入口,主要仍是命令行脚本:
export BASE_MODEL=yahma/llama-7b-hf
python finetune.py --base_model yahma/llama-7b-hf --task commonsense --output_dir output
需要说明的是,仓库的 requirements.txt 直接依赖 git+https://github.com/huggingface/transformers.git(主分支),这意味着版本不可复现,今天装和明天装可能是两套东西。落地前务必锁定 commit。
最大问题是"研究代码"的定位与生产需求之间的落差。仓库里没有 CI 流水线,peft/tests/ 下的测试只覆盖配置解析与模型包装这类基础路径,微调主流程与评测流程完全没有测试覆盖。
内嵌 PEFT 副本是双刃剑。它让框架能自由扩展非官方方法,但也意味着这些代码不会自动获得上游的安全与 bug 修复。这是一个已经持续两年多的维护负担。
55 个 open issue 悬而未决,加上最后一次代码推送是 2024 年 3 月,说明项目已进入维护停滞状态。
数据集的许可需要单独确认。仓库里专门放了 DATA_LICENSE 文件,说明作者意识到了数据再分发的问题——使用自建数据集前请务必阅读它。
LLM-Adapters 的历史价值在于,它和 PEFT、Prefix Tuning、Adapter 系列论文一起,在 2023 年前后把参数高效微调从"论文技巧"变成了"工程标配"。今天几乎所有主流微调框架都默认支持其中多数方法,功劳有目共睹。
更实用的一点是它的对照实验方法论:当你需要为团队选定一种微调方案时,与其看十篇论文各自的表格,不如用一套统一流程跑一遍。这个思路今天依然成立,只是你更可能直接用 Transformers + PEFT 原生 API 来做这件事——框架更现代、维护更活跃,代价是失去了 LLM-Adapters 那种"横向比较"的便利性。