# Axolotl

[Axolotl](https://docs.axolotl.ai/) は、大規模言語モデル向けのファインチューニングおよびポストトレーニングフレームワークです。アダプターベースのチューニング、ND-並列分散学習、GRPO、QAT をサポートしています。[TRL](./trl) を通じて、Axolotl は好み学習、強化学習、報酬モデリングのワークフローも処理します。

YAML設定ファイルでトレーニング実行を定義します。

```yaml
base_model: NousResearch/Nous-Hermes-llama-1b-v1
model_type: AutoModelForCausalLM
tokenizer_type: AutoTokenizer

datasets:
  - path: tatsu-lab/alpaca
    type: alpaca

output_dir: ./outputs
sequence_len: 512
micro_batch_size: 1
gradient_accumulation_steps: 1
num_epochs: 1
learning_rate: 2.0e-5
```

[train](https://docs.axolotl.ai/docs/cli.html#train) コマンドで学習を開始します。

```bash
axolotl train my_config.yml
```

## Transformers の統合

Axolotlの[ModelLoader](https://docs.axolotl.ai/docs/api/loaders.model.html#axolotl.loaders.model.ModelLoader)は、Transformersのロードフローをラップします。

- モデルのconfigは[AutoConfig.from_pretrained()](/docs/transformers/main/ja/model_doc/auto#transformers.AutoConfig.from_pretrained)から構築されます。Preload setupでは、[device map](https://huggingface.co/docs/accelerate/concept_guides/big_model_inference#designing-a-device-map)、[quantization config](../main_classes/quantization)、[attention backend](../attention_interface)を設定します。

- `ModelLoader` は、[AutoModel](/docs/transformers/main/ja/model_doc/auto#transformers.AutoModel) クラス（[AutoModelForCausalLM](/docs/transformers/main/ja/model_doc/auto#transformers.AutoModelForCausalLM)、[AutoModelForImageTextToText](/docs/transformers/main/ja/model_doc/auto#transformers.AutoModelForImageTextToText)、[AutoModelForSequenceClassification](/docs/transformers/main/ja/model_doc/auto#transformers.AutoModelForSequenceClassification)）またはマルチモーダルマッピングからのモデル固有のクラスを自動的に選択します。重みは、選択されたローダーの `from_pretrained` で読み込まれます。`reinit_weights` が設定されている場合、Axolotl は `from_config` を使用してランダム初期化を行います。

- Axolotl は、LoRA や QLoRA などの PEFT ベースの手法が有効な場合、モデルの初期化後にアダプターを適用するために Transformers、[PEFT](https://huggingface.co/docs/peft/index)、および [bitsandbytes](https://huggingface.co/docs/bitsandbytes/index) を使用します。パッチマネージャーは、モデルの読み込み前後に追加の最適化を適用します。

- [AxolotlTrainer](https://docs.axolotl.ai/docs/api/core.trainers.base.html#axolotl.core.trainers.base.AxolotlTrainer) は [Trainer](/docs/transformers/main/ja/main_classes/trainer#transformers.Trainer) を継承し、Axolotl のミックスインを追加するとともに、[Trainer](/docs/transformers/main/ja/main_classes/trainer#transformers.Trainer) のトレーニングループと API を利用します。

## リソース

- [Axolotl](https://docs.axolotl.ai/) ドキュメント

