Press "Enter" to skip to content

《LLM Fine-Tuning初学者指南》

如何使用一个工具来微调Llama和其他LLM

Image by author

对大型语言模型(LLMs)的兴趣日益增长,导致了许多旨在简化它们的训练过程的工具和封装器的涌现。

流行的选项包括LMSYS的FastChat(用于训练Vicuna)和Hugging Face的transformers/trl库(在我之前的文章中使用)。此外,每个大型LLM项目(如WizardLM)都倾向于有自己的训练脚本,受原始的Alpaca实现启发。

在本文中,我们将使用由OpenAccess AI Collective创建的Axolotl工具。我们将使用它在一个由1000个Python代码样本组成的evol-instruct数据集上对Code Llama 7b模型进行微调。

🤔 为什么选择Axolotl?

Axolotl的主要吸引力在于它提供了一站式解决方案,包括众多功能、模型架构和一个活跃的社区。以下是我对它的一些喜爱之处的快速列表:

  • 配置:用于训练LLM的所有参数都整洁地存储在yaml配置文件中。这使得共享和复现模型变得方便。你可以在这里看到Llama 2的一个示例。
  • 数据集灵活性:Axolotl允许指定多个数据集,这些数据集具有不同的提示格式,例如alpaca({"instruction": "...", "input": "...", "output": "..."})、sharegpt:chat({"conversations": [{"from": "...", "value": "..."}]})和原始补全({"text": "..."})。合并数据集是无缝的,统一提示格式的麻烦被消除了。
  • 功能:Axolotl集成了最先进的技术,如FSDP、deepspeed、LoRA、QLoRA、ReLoRA、sample packing、GPTQ、FlashAttention、xformers和rope scaling。
  • 实用工具:集成了许多用户友好的实用工具,包括添加或修改特殊标记或自定义wandb配置。

使用此工具训练的一些知名模型包括OpenAccess AI Collective的Manticore-13b和Eric Hartford的Samantha-1.11–70b。与其他封装器一样,它构建在transformers库之上,并使用了其中的许多功能。

⚙️ 创建自己的配置文件

Leave a Reply

Your email address will not be published. Required fields are marked *