MergeKit:一个用于合并预训练语言模型的开源工具包
Mergekit是什么?
Mergekit 是一个 Python 工具,能将多个大模型合并成一个,发挥各自优势。比如,模型A写作厉害,模型 B 编程出色,mergekit 就能把它们合起来,变成一个更强的模型。它还能在 CPU 或 GPU 上合并,建议先用高精度模型合并,之后再量化和校准。这个ai项目很受开发者欢迎,比如有人用它把教育内容改成游戏主题,让创作更高效、更有趣。
Mergekit主要功能
模型合并:将多个预训练语言模型合并为一个多功能模型,无需额外训练或集成计算开销。
多种合并算法:支持多种合并方法,如线性插值、球面线性插值(SLERP)、任务算术(Task Arithmetic)、TIES、DARE 等。
硬件友好:支持在 CPU 或 GPU 上运行,最低只需 8GB 显存。
低内存使用:采用惰性加载张量技术,降低内存占用。
参数插值:支持参数值的插值梯度,提供更细粒度的控制。
分层组装:支持从不同模型的层片段中拼接组装语言模型(“Frankenmerging”)。
专家混合合并:将多个密集模型合并为专家混合模型。
LoRA 提取:从微调模型中提取 PEFT 兼容的低秩近似。
进化合并方法:包含一些实验性的进化合并方法。
Mergekit主要特点
跨平台执行:支持GPU和CPU执行,最低8GB VRAM即可加速。
低内存使用:通过懒加载张量实现。
多种合并算法:包括线性插值、SLERP、任务算术等,未来还会增加更多算法。
图形用户界面(GUI):提供基于Arcee的GUI,简化合并过程。
安装与使用
安装
git clone https://github.com/arcee-ai/mergekit.git cd mergekit pip install -e .
使用
mergekit-yaml config.yml ./output-dir --cuda
Mergekit应用场景
模型能力融合:将不同专业领域的模型合并为一个多功能模型。
性能优化:结合不同模型的优势,提升整体性能。
资源受限环境下的优化:在计算资源有限的情况下创建更小但功能强大的模型。
个性化模型定制:根据特定需求定制模型。
模型研究与实验:为研究人员提供灵活的平台,探索不同的合并策略。
Github:https://github.com/arcee-ai/mergekit