AI・機械学習
中級
Axolotl(アクソロトル)
OpenAccess AI Collectiveが開発するLLMファインチューニング統合フレームワーク。LoRA/QLoRA/DPO/ReLoRA等の多様な学習手法をYAML設定ファイル1つで使い分けられ、Hugging Face ecosystemと完全統合する。
0 回閲覧
0 いいね
2026/6/5 更新
関連タグ
ai
llm
fine-tuning
lora
qlora
training
open-source
Axolotlとは
OpenAccess AI Collectiveが開発するオープンソースのLLMファインチューニングフレームワーク。Hugging Face TransformersとPEFT(Parameter-Efficient Fine-Tuning)ライブラリをラップし、複雑な学習設定をYAMLファイル1つで管理できるシンプルなインターフェースを提供する。2023年にリリースされ、Community-driven fine-tuningの標準的ツールとして広く使われている。
主な特徴
対応学習手法
- Full Fine-tuning: 全パラメータを更新(大型GPU必要)
- LoRA: Low-Rank Adaptationで少数パラメータのみ更新
- QLoRA: 量子化(int4/int8)+LoRAで低VRAMでの学習
- DPO: Direct Preference Optimization(人間フィードバック不要の選好学習)
- ReLoRA: 定期的なLoRAリセットで全パラメータ相当の更新を実現
- ORPO: Odds Ratio Preference Optimization
設定ファイル(YAML)例
base_model: mistralai/Mistral-7B-Instruct-v0.3
model_type: MistralForCausalLM
tokenizer_type: LlamaTokenizer
datasets:
- path: mhenrichsen/alpaca_data_cleaned
type: alpaca
output_dir: ./outputs/mistral-lora
adapter: lora
lora_r: 16
lora_alpha: 32
lora_dropout: 0.05
lora_target_modules:
- q_proj
- v_proj
- k_proj
- o_proj
sequence_len: 4096
batch_size: 4
gradient_accumulation_steps: 4
learning_rate: 0.0002
num_epochs: 3
optimizer: adamw_bnb_8bit
chat_template: chatml
実行コマンド
pip install axolotl
# 学習開始
axolotl train config.yml
# LoRAアダプタをベースモデルにマージ
axolotl merge-lora config.yml --lora-model-dir ./outputs/mistral-lora
# マルチGPU(DeepSpeed)
axolotl train config.yml --deepspeed deepspeed_configs/zero2.json
対応データセットフォーマット
| フォーマット | 説明 | 適用ケース |
|---|---|---|
| alpaca | instruction/input/output形式 | 指示追従学習 |
| sharegpt | conversations配列形式 | マルチターン会話 |
| completion | 単純なテキスト補完 | 言語モデリング |
| jeopardy | Q&A形式 | 知識学習 |
| custom | 独自Python関数で変換 | 独自データ |
分散学習バックエンド
# DeepSpeed ZeRO-2(推奨)
distributed_training:
deepspeed:
stage: 2
offload_optimizer_device: none
# FSDP(PyTorch native)
distributed_training:
fsdp:
sharding_strategy: FULL_SHARD
要件とVRAM目安
| モデルサイズ | 学習手法 | 最低VRAM |
|---|---|---|
| 7B | QLoRA (int4) | 8GB (RTX 3080) |
| 7B | LoRA (fp16) | 16GB (RTX 4080) |
| 13B | QLoRA (int4) | 12GB (RTX 3080 Ti) |
| 70B | QLoRA (int4) | 48GB (A6000 ×1) |
| 70B | LoRA (fp16) | 80GB (A100 ×2) |
UnslothやLLaMA-Factoryとの比較
| 特性 | Axolotl | Unsloth | LLaMA-Factory |
|---|---|---|---|
| 速度 | 標準 | 最速(2-5x) | 標準 |
| 対応手法 | 広い | LoRA中心 | 最広 |
| 設定難易度 | 中(YAML) | 低(GUI有) | 中(YAML/CLI) |
| 分散学習 | ○ | △ | ○ |