一个框架轻松微调各种 AI 大模型

大家好,又见面了,我是 GitHub 精选君!

背景介绍

在人工智能(AI)模型的开发过程中,通常需要对模型进行微调以适应特定任务和数据集。然而,各种模型的微调过程和配置各不相同,差异很大,涉及到的参数众多,微小的改变可能导致模型的性能有显著的差距。这使得微调成为一项耗时耗力却又关键至极的过程。如何用更少的时间和更低的复杂度细调模型,并在多个配置和架构中流畅无阻,是 AI 开发者一直在探索和实践的问题。

今天要给大家推荐一个 GitHub 开源项目 axolotl,该项目在 GitHub 有超过 2.8k Star,用一句话介绍该项目就是:“Go ahead and axolotl questions”。

项目介绍

Axolotl 能帮你轻松地微调各种 AI 模型,无论是各种 Huggingface 模型,如 llamapythiafalconmpt,还是其他一些主流架构如 loraqlorareloragptq,Axolotl 都能提供全面的支持。

你可以通过简易的 yaml 文件或者命令行覆写来定制配置,支持加载不同的数据集格式,甚至可以携带自定义的分词数据集。Axolotl 还与 xformerflash attentionrope scalingmultipacking 等强大功能集成,无论是使用单个 GPU 还是通过 FSDPDeepspeed 使用多个 GPU,Axolotl 都能处理。其过程可以轻松地在本地或云端通过 Docker 运行,并且你还可以将结果以及可选的检查点记录到 wandb

如何使用

安装 Axolotl 只需要拥有Python 3.9 或以上版本以及 Pytorch 2.0 或以上版本。你可以直接从 GitHub 下载源代码并运行 install 命令,或者在项目目录文件夹下通过 pip 运行 install 命令。

配置完成后,你就可以开始进行微调操作了,无论是训练、推理还是其他操作,只需要一行命令,轻松完成。以下是一些示例:

# preprocess datasets - optional but recommended
CUDA_VISIBLE_DEVICES="" python -m axolotl.cli.preprocess examples/openllama-3b/lora.yml

# finetune lora
accelerate launch -m axolotl.cli.train examples/openllama-3b/lora.yml

# inference
accelerate launch -m axolotl.cli.inference examples/openllama-3b/lora.yml \
    --lora_model_dir="./lora-out"

# gradio
accelerate launch -m axolotl.cli.inference examples/openllama-3b/lora.yml \
    --lora_model_dir="./lora-out" --gradio
项目推介

项目的开发团队来自 OpenAccess AI Collective,这是一个主张 AI 开放的团体。Axolotl 有一队长期维护并保障其运行稳定和功能更新的工程师团队,你无需担心项目的维护和更新问题,并可以享受到这个开源项目带来的所有优点。

以下是该项目 Star 趋势图(代表项目的活跃程度):

更多项目详情请查看如下链接。

开源项目地址:https://github.com/OpenAccess-AI-Collective/axolotl

开源项目作者:OpenAccess-AI-Collective

以下是参与项目建设的所有成员:

关注我们,一起探索有意思的开源项目。


更多精彩请扫码关注如下公众号。

Written on December 22, 2023