跳到主要內容

Axolotl

Axolotl:基於 YAML 的大語言模型(LLM)微調工具(支持 LoRA、DPO、GRPO)。

技能元數據

來源可選 — 使用 hermes skills install official/mlops/axolotl 安裝
路徑optional-skills/mlops/training/axolotl
版本1.0.0
作者Orchestra Research
許可證MIT
依賴項axolotl, torch, transformers, datasets, peft, accelerate, deepspeed
平臺linux, macos
標籤Fine-Tuning, Axolotl, LLM, LoRA, QLoRA, DPO, KTO, ORPO, GRPO, YAML, HuggingFace, DeepSpeed, Multimodal

參考:完整 SKILL.md

信息

以下是 Hermes 在觸發此技能時加載的完整技能定義。當技能處於活動狀態時,代理(agent)會將此內容視為指令。

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 的 micro_batch_size 為 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 - Dataset-Formats 文檔
  • other.md - 其他文檔

需要詳細信息時,使用 view 命令讀取特定的參考文件。

使用此技能

對於初學者

從 getting_started 或 tutorials 參考文件開始,瞭解基礎概念。

對於特定功能

使用相應的類別參考文件(api、guides 等)獲取詳細信息。

對於代碼示例

上述快速參考部分包含從官方文檔中提取的常見模式。

資源

references/

從官方來源提取的組織化文檔。這些文件包含:

  • 詳細解釋
  • 帶有語言標註的代碼示例
  • 指向原始文檔的鏈接
  • 用於快速導航的目錄

scripts/

在此處添加用於常見自動化任務的輔助腳本。

assets/

在此處添加模板、樣板代碼或示例項目。

注意事項

  • 此技能是從官方文檔自動生成的
  • 參考文件保留了源文檔的結構和示例
  • 代碼示例包含語言檢測以提供更好的語法高亮顯示
  • 快速參考模式是從文檔中的常見用法示例中提取的

更新

要使用更新的文檔刷新此技能:

  1. 使用相同的配置重新運行爬蟲程序
  2. 技能將使用最新信息重建