Home
Login

AIモデルの事後学習に使用されるオープンソースツール。ファインチューニング、LoRA、QLoRAなど、さまざまなトレーニング方法をサポート。

Apache-2.0Python 9.7kaxolotl-ai-cloud Last Updated: 2025-06-19

Axolotl - 強力なAIモデル事後学習ツール

プロジェクト概要

Axolotlは、様々なAIモデルの事後学習プロセスを簡素化するために特別に設計されたオープンソースツールです。事後学習とは、事前学習済みモデルに対して行われるあらゆる修正または追加の学習を指し、全モデルのファインチューニング、パラメータ効率の良いチューニング(LoRAやQLoRAなど)、教師ありファインチューニング(SFT)、指示チューニング、アライメント技術などが含まれます。このツールは、多様なモデルアーキテクチャと学習構成をサポートしており、ユーザーはこれらの高度な学習技術を簡単に使い始めることができます。

主要な特徴

モデルサポート

  • 多様なモデルアーキテクチャ: LLaMA、Pythia、Falcon、MPT、Mistral、Mixtralなど、主要な大規模言語モデルを含む、様々なHugging Faceモデルの学習をサポート
  • 柔軟な学習方法: 全量ファインチューニング(Full Fine-tuning)、LoRA、QLoRA、ReLoRA、GPTQなど、多様な学習方式をサポート

設定管理

  • YAML設定ファイル: データセットの事前処理、モデルの学習/ファインチューニング、モデルの推論または評価など、必要なすべての設定をシンプルなYAMLファイルに含める
  • CLIオーバーライド: コマンドライン引数を通じて設定ファイルの設定を上書きすることをサポート
  • 柔軟な設定: 様々な学習パラメータとモデル設定をカスタマイズ可能

データ処理能力

  • 多形式データセット: ローカル、HuggingFace、およびクラウド(S3、Azure、GCP、OCI)データセットのロードをサポート
  • カスタム形式: カスタム形式を使用するか、トークン化されたデータセットを直接インポート可能
  • データセット事前処理: 強力なデータ事前処理機能を内蔵

性能最適化

  • 先進的な最適化技術: xformers、Flash Attention、Liger Kernel、ロープのスケーリング、およびマルチパッケージング技術を統合
  • マルチGPUサポート: FSDPまたはDeepSpeedを通じて、シングルGPUまたはマルチGPU学習をサポート
  • 効率的な学習: NVIDIA GPU(Ampere以降、bf16とFlash Attentionをサポート)およびAMD GPU向けに最適化

デプロイと監視

  • クラウド対応: DockerイメージとPyPIパッケージを提供し、クラウドプラットフォームとローカルハードウェアで使用可能
  • 結果記録: 結果とチェックポイントをWandB、MLflow、またはCometに記録することをサポート
  • 監視サポート: 様々な実験追跡および監視ツールを統合

技術要件

ハードウェア要件

  • NVIDIA GPU(Ampere以降、bf16とFlash Attention用)またはAMD GPU
  • モデル学習に十分なGPUメモリ

ソフトウェア要件

  • Python 3.11
  • PyTorch ≥2.4.1
  • 関連する依存パッケージ

インストール方法

簡易インストール

pip3 install -U packaging==23.2 setuptools==75.8.0 wheel ninja
pip3 install --no-build-isolation axolotl[flash-attn,deepspeed]

# サンプル設定ファイルのダウンロード
axolotl fetch examples
axolotl fetch deepspeed_configs  # オプション

ソースコードからのインストール

git clone https://github.com/axolotl-ai-cloud/axolotl.git
cd axolotl
pip3 install -U packaging setuptools wheel ninja
pip3 install --no-build-isolation -e '.[flash-attn,deepspeed]'

Docker方式

docker run --gpus '"all"' --rm -it axolotlai/axolotl:main-latest

使用方法

基本的な使用フロー

  1. サンプル設定の取得:

    axolotl fetch examples
    
  2. モデルの学習:

    axolotl train examples/llama-3/lora-1b.yml
    
  3. カスタム設定: 必要に応じてYAML設定ファイルのパラメータを修正

設定ファイル構造

AxolotlはYAML設定ファイルを使用して、モデルの選択とパラメータ、データセットの設定と事前処理、学習ハイパーパラメータ、オプティマイザ設定、監視とログ記録など、学習プロセス全体を制御します。

サポートされているモデル互換性マトリックス

モデル fp16/fp32 LoRA QLoRA GPTQ Flash Attn xformers
LLaMA
Mistral
Mixtral-MoE
Pythia
Falcon
Qwen
Gemma

✅: サポート ❌: サポートしない ❓: 未テスト

応用シーン

研究分野

  • 大規模言語モデルのファインチューニング研究
  • パラメータ効率の良い学習方法の実験
  • モデルのアライメントと安全性研究

産業応用

  • 企業レベルのモデルカスタマイズ
  • 特定分野のモデル学習
  • 製品機能モデルの最適化

教育研修

  • AI/MLコースの教育
  • 実践プロジェクトの開発
  • 技術能力の向上

プロジェクトの利点

  1. 使いやすさ: シンプルなYAML設定ファイルを通じて複雑な学習プロセスを制御
  2. 柔軟性: 多様なモデルアーキテクチャと学習方法をサポート
  3. 性能: 最新の最適化技術を統合し、効率的な学習体験を提供
  4. 拡張性: シングルGPUからマルチノードまで、様々な学習規模をサポート
  5. オープンソース: Apache 2.0ライセンス、完全にオープンソースで無料で使用可能