Google Colab
Google Colab 上で Unsloth をインストールして実行するには、以下の手順に従ってください:
最終更新
役に立ちましたか?
Google Colab 上で Unsloth をインストールして実行するには、以下の手順に従ってください:
最終更新
役に立ちましたか?
役に立ちましたか?
from unsloth import FastLanguageModel, FastModel
import torch
from trl import SFTTrainer, SFTConfig
from datasets import load_dataset
max_seq_length = 2048 # 内部で RoPE スケーリングをサポートしているので、任意の値を選んでください!
# LAION データセットを取得
url = "https://huggingface.co/datasets/laion/OIG/resolve/main/unified_chip2.jsonl"
dataset = load_dataset("json", data_files = {"train" : url}, split = "train")
# 4bit 事前量子化モデルはダウンロードが4倍高速で OOM を防ぎます。
fourbit_models = [
"unsloth/gpt-oss-20b-unsloth-bnb-4bit", # または任意のモデルを選択
] # 詳細は https://huggingface.co/unsloth を参照
model, tokenizer = FastModel.from_pretrained(
model_name = "unsloth/gpt-oss-20b",
max_seq_length = 2048, # 長いコンテキストには任意の値を選択!
load_in_4bit = True, # 4ビット量子化。False = 16ビットLoRA。
load_in_8bit = False, # 8ビット量子化
load_in_16bit = False, # [新機能!] 16 ビット LoRA
full_finetuning = False, # フルファインチューニングに使用します。
# token = "hf_...", # ゲート付きモデルを使う場合は指定してください
)
# モデルパッチ適用と高速LoRA重みの追加を行う
model = FastLanguageModel.get_peft_model(
model,
r = 16,
target_modules = ["q_proj", "k_proj", "v_proj", "o_proj",
"gate_proj", "up_proj", "down_proj",],
lora_alpha = 16,
lora_dropout = 0, # 任意をサポートしますが = 0 が最適化されています
bias = "none", # 任意をサポートしますが = "none" が最適化されています
# [NEW] "unsloth" は VRAM を30%節約し、2倍大きなバッチサイズに対応します!
use_gradient_checkpointing = "unsloth", # 非常に長いコンテキストには True または "unsloth"
random_state = 3407,
max_seq_length = max_seq_length,
use_rslora = False, # ランク安定化LoRAをサポートします
loftq_config = None, # および LoftQ
)
trainer = SFTTrainer(
model = model,
train_dataset = dataset,
tokenizer = tokenizer,
args = SFTConfig(
max_seq_length = max_seq_length,
per_device_train_batch_size = 2,
gradient_accumulation_steps = 4,
warmup_steps = 10,
max_steps = 60,
logging_steps = 1,
output_dir = "outputs",
optim = "adamw_8bit",
seed = 3407,
),
)
trainer.train()
# 詳細なヒントは https://docs.unsloth.ai を参照してください。例えば
# (1) GGUF に保存 / vLLM 用に 16bit にマージする方法
# (2) 保存した LoRA アダプターからの継続トレーニング
# (3) 評価ループの追加 / OOM(メモリ不足)対策
# (4) カスタマイズされたチャットテンプレート