Axolotl是什么?
Axolotl是一款功能强大的、由配置驱动的工具,旨在简化大型语言模型(LLM)的微调过程。它提供了一个灵活高效的命令行界面(CLI),简化了在自定义数据上训练模型的复杂过程。Axolotl支持多种模型和技术,如LoRA、QLoRA和全量微调,是开发人员和研究人员在不编写大量训练脚本的情况下创建专用模型的首选。
主要特点
- 基于YAML的配置: 在一个易于阅读的YAML文件中定义您的整个微调过程——从模型选择到数据集路径和超参数。
- 广泛的模型支持: 原生支持Hugging Face Hub上的大量模型,包括Llama、Mistral等。
- 多种训练技术: 在全量微调、LoRA、QLoRA和ReLoRA等不同微调方法之间轻松切换,以找到满足您需求的最佳方法。
- 灵活的数据集集成: 从Hugging Face Hub、本地存储或云源加载数据集,支持多种格式选项(例如Alpaca、ShareGPT)。
- 高级训练功能: 包括对多GPU训练、高级量化方法(如bitsandbytes)以及用于长序列训练的高效打包的支持。
使用案例
- 领域特定的聊天机器人: 在您公司的文档上微调基础模型,以创建一个知识渊博的内部支持机器人。
- 专门的代码生成: 在特定的编程语言或框架上训练模型,以构建一个高精度的代码助手。
- 创意写作和内容创作: 使模型适应特定作者的风格,以生成创意文本。
- 研究与实验: 快速迭代不同的模型、数据集和微调策略,以推动LLM能力的边界。
入门指南
开始使用Axolotl需要克隆仓库、安装依赖项并创建一个配置文件。这是一个“Hello World”风格的示例,使用简单的YAML配置来微调模型。
- 克隆仓库并安装:
git clone https://github.com/OpenAccess-AI-Collective/axolotl.git cd axolotl pip install -e . - 创建一个YAML配置文件(
my-config.yml):base_model: mistralai/Mistral-7B-v0.1 model_type: MistralForCausalLM tokenizer_type: LlamaTokenizer datasets: - path: mhenrichsen/alpaca_2k_test type: alpaca dataset_prepared_path: last_run_prepared val_set_size: 0.05 adapter: lora lora_r: 16 lora_alpha: 32 lora_dropout: 0.05 sequence_len: 2048 sample_packing: true num_epochs: 2 micro_batch_size: 2 gradient_accumulation_steps: 4 optimizer: adamw_bnb_8bit learning_rate: 0.0002 bf16: true - 开始微调过程:
accelerate launch -m axolotl.cli.train my-config.yml此命令将根据您的配置开始训练过程,训练完成后将保存生成的微调模型(适配器)。
定价
Axolotl是完全开源的,可在Apache 2.0许可下免费使用。您只需承担在您自己的硬件或云提供商上运行训练作业所产生的计算成本。