Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help


title: “Axolotl — Axolotl: YAML LLM fine-tuning (LoRA, DPO, GRPO)” sidebar_label: “Axolotl” description: “Axolotl: YAML LLM fine-tuning (LoRA, DPO, GRPO)”

{/* 本页面由 website/scripts/generate-skill-docs.py 根据技能对应的 SKILL.md 文件自动生成。请直接编辑源文件 SKILL.md,而非此页面。 */}

Axolotl

Axolotl:基于 YAML 的 LLM 微调工具(支持 LoRA、DPO、GRPO 等技术)。

技能元数据

来源可选 — 通过 hermes skills install official/mlops/axolotl 命令安装
路径optional-skills/mlops/training/axolotl
版本1.0.0
开发者Orchestra Research
许可协议MIT
依赖项axolotltorchtransformersdatasetspeftacceleratedeepspeed
支持平台linux、macos
标签微调AxolotlLLMLoRAQLoRADPOKTOORPOGRPOYAMLHuggingFaceDeepSpeed多模态

参考:完整的 SKILL.md 文件

:::info 以下是当触发该技能时 Hermes 会加载的完整技能定义。当技能处于激活状态时,智能体看到的指令即为此内容。
::

Axolotl 技能

功能概述

提供使用 Axolotl 工具进行 LLM 微调的专家级指导 — 包含 YAML 配置文件、100 多种预训练模型,以及 LoRA/QLoRA、DPO/KTO/ORPO/GRPO 等微调方法,同时还支持多模态处理。

基于官方文档整理,为 Axolotl 的开发工作提供全面的支持与帮助。

何时使用此技能

在以下情况下可触发此技能:

  • 使用 Axolotl 工具进行开发
  • 咨询有关 Axolotl 的功能或 API 信息
  • 实现基于 Axolotl 的解决方案
  • 调试 Axolotl 相关代码
  • 学习 Axolotl 的最佳实践

快速参考

常见用法模式

模式 1: 为确认训练任务的数据传输速度是否达标,可通过运行 NCCL 测试来定位潜在瓶颈,例如:

./build/all_reduce_perf -b 8 -e 128M -f 2 -g 3

模式 2: 在 Axolotl 的 YAML 配置文件中设置模型以使用 FSDP。例如:

fsdp_version: 2
fsdp_config:
  offload_params: true
  state_dict_type: FULL_STATE_DICT
  auto_wrap_policy: TRANSFORMER_BASED_WRAP
  transformer_layer_cls_to_wrap: LlamaDecoderLayer
  reshard_after_forward: true

模式 3: context_parallel_size 的值必须能整除 GPU 的总数。例如:

context_parallel_size

模式 4: 例如:- 当拥有 8 块 GPU 且不启用序列并行处理时,每步会处理 8 个不同的批次;- 当拥有 8 块 GPU 且设置 context_parallel_size=4 时,每步仅处理 2 个不同的批次(每个批次分配到 4 块 GPU 上);- 如果每块 GPU 的微批次大小为 2,则全局批次大小会从 16 减少到 4。

context_parallel_size=4

模式 5: 在配置中将 save_compressed 设置为 true,即可以压缩格式保存模型。这样做的好处包括:- 减少约 40% 的磁盘空间占用;- 保持与 vLLM 的兼容性,从而实现更快速的推理速度;- 保留与 llmcompressor 的兼容性,便于进一步优化(例如量化处理)。

save_compressed: true

模式 6: 注意,无需将您的集成代码放入 integrations 文件夹中。只要它被封装在 Python 环境中的某个包里,位于任何位置均可。相关示例可参考此仓库:https://github.com/axolotl-ai-cloud/diff-transformer

integrations

模式 7: 支持处理单个样本数据与批量数据。- 单个样本:sample[‘input_ids’] 的类型为 list[int] - 批量数据:sample[‘input_ids’] 的类型为 list[list[int]]

utils.trainer.drop_long_seq(sample, sequence_len=2048, min_sequence_len=2)

示例代码模式

示例 1(Python):

cli.cloud.modal_.ModalCloud(config, app=None)

示例 2(Python):

cli.cloud.modal_.run_cmd(cmd, run_folder, volumes=None)

示例 3(Python):

core.trainers.base.AxolotlTrainer(
    *_args,
    bench_data_collator=None,
    eval_data_collator=None,
    dataset_tags=None,
    **kwargs,
)

示例 4(Python):

core.trainers.base.AxolotlTrainer.log(logs, start_time=None)

示例 5(Python):

prompt_strategies.input_output.RawInputOutputPrompter()

参考文档

该技能在 references/ 目录中提供了完整的文档资料:

  • api.md - API文档
  • dataset-formats.md - 数据集格式文档
  • other.md - 其他文档

当需要详细信息时,可使用 view 命令来读取特定的参考文档。

使用该技能的方法

对于初学者

建议先阅读 getting_started 或教程类参考文档,以掌握基础概念。

针对特定功能

可查阅对应类别的参考文档(如API文档、指南等)以获取详细信息。

代码示例

上方的快速参考部分汇总了从官方文档中提取的常见模式。

资源目录

references/

此处整理了从官方来源摘录的文档资料,包含以下内容:

  • 详细说明
  • 带有语言标注的代码示例
  • 对应原始文档的链接
  • 便于快速导航的目录结构

scripts/

可在该目录中添加用于常见自动化任务的辅助脚本。

assets/

此处可用于存放模板、基础代码框架或示例项目。

备注事项

  • 该技能是根据官方文档自动生成的。
  • 参考文档保留了源文档的结构与示例内容。
  • 代码示例会进行语言检测,以实现更精准的语法高亮显示。
  • 快速参考模式是从文档中的常见使用案例中提取而来的。

更新说明

如需用最新文档更新此技能:

  1. 使用相同的配置重新运行抓取工具。
  2. 该技能将基于最新信息重新生成。