はじめに
Unslothは、大規模言語モデル(LLM)の微調整と学習のための効率的なツールを提供するために設計されたオープンソースプロジェクトです。このプロジェクトは、Llama、Mistral、Phi、Gemmaなどの有名なモデルを幅広くサポートしています。Unslothの主な特徴は、メモリ使用量を大幅に削減し、学習を高速化する機能で、ユーザーはより短時間でモデルの微調整と学習を完了することができます。さらに、Unslothは、ユーザーがすぐに使い始め、その機能を最大限に活用できるように、豊富なドキュメントとチュートリアルを提供しています。
機能一覧
- 効率的な微調整Llama、Mistral、Phi、Gemmaなど複数のモデルをサポートし、微調整を2~5倍高速化し、メモリ使用量を50~80%削減。
- 利用無料データセットを追加し、すべてのコードを実行するだけで、微調整されたモデルを得ることができます。
- 複数のエクスポート形式: GGUF、Ollama、vLLMへの微調整されたモデルのエクスポート、またはHugging Faceへのアップロードをサポート。
- 動的定量化メモリの追加を10%未満に抑えながら、モデル精度を向上させる動的4ビット量子化をサポート。
- ロング・コンテクスト・サポートLlama 3.3 (70B)では89K、Llama 3.1 (8B)では342Kのコンテキストウィンドウをサポート。
- ビジュアル・モデリング・サポートLlama 3.2 Vision (11B)、Qwen 2.5 VL (7B)、Pixtral (12B)などのビジョンモデルをサポートしています。
- 推論の最適化推論速度を大幅に向上させる様々な推論最適化オプションを提供します。
ヘルプの使用
設置プロセス
- 依存関係のインストールPython 3.8以上がインストールされ、以下の依存関係がインストールされていることを確認してください:
bash
pip install torch transformers datasets
- クローン倉庫Git を使って Unsloth リポジトリをクローンする:
bash
git clone https://github.com/unslothai/unsloth.git
cd unsloth
- アンスロスを設置する以下のコマンドを実行して、Unslothをインストールしてください:
bash
pip install -e .
チュートリアル
- 積載モデルPythonスクリプトで事前に訓練されたモデルをロードします:
from transformers import AutoModelForCausalLM, AutoTokenizer model_name = "unslothai/llama-3.3" model = AutoModelForCausalLM.from_pretrained(model_name) tokenizer = AutoTokenizer.from_pretrained(model_name)
- モデルの微調整モデルの微調整にはUnslothが提供するノートブックを使ってください。簡単な例を挙げよう:
from unsloth import Trainer, TrainingArguments training_args = TrainingArguments( output_dir="./results", num_train_epochs=3, per_device_train_batch_size=4, save_steps=10_000, save_total_limit=2, ) trainer = Trainer( model=model, args=training_args, train_dataset=train_dataset, eval_dataset=eval_dataset, ) trainer.train()
- 輸出モデル微調整が完了したら、モデルをさまざまなフォーマットにエクスポートできます:
python
model.save_pretrained("./finetuned_model")
tokenizer.save_pretrained("./finetuned_model")
詳細な機能操作
- 動的定量化Unslothは、微調整プロセスにおいてダイナミックな4ビット量子化をサポートしており、10%以下のメモリ使用量でモデルの精度を大幅に向上させることができます。この機能は学習パラメータで有効にすることができます:
training_args = TrainingArguments( output_dir="./results", num_train_epochs=3, per_device_train_batch_size=4, save_steps=10_000, save_total_limit=2, quantization="dynamic_4bit" )
- ロング・コンテクスト・サポートUnsloth は Llama 3.3 (70B) モデルの 89K コンテキストウィンドウと Llama 3.1 (8B) モデルの 342K コンテキストウィンドウをサポートしています。これにより、このモデルは長いテキストを扱うのがさらにうまくなりました。ユーザーは、モデルの読み込み時に、コンテキスト・ウィンドウのサイズを指定することができます:
model = AutoModelForCausalLM.from_pretrained(model_name, context_window=89000)
- ビジュアル・モデリング・サポートUnsloth は、Llama 3.2 Vision (11B)、Qwen 2.5 VL (7B)、Pixtral (12B)などの様々なビジョンモデルもサポートしています。ユーザーはこれらのモデルを画像生成や画像処理タスクに使用することができます:
python
model_name = "unslothai/llama-3.2-vision"
model = AutoModelForImageGeneration.from_pretrained(model_name)