![**Qwen 3.5 ファインチューニングガイド – Unsloth ドキュメント**
- **前提条件**
- Python 3.10以上
- PyTorch 2.x(GPUで学習する場合はCUDA)
- `unsloth` パッケージ(`pip install unsloth`)
- **データセットの準備**
1. 各行を個別の「instruction–response」ペアとして持つ JSONL ファイルを作成します。
```json
{"instruction":"Translate to French","input":"Hello, world!","output":"Bonjour le monde!"}
```
2. データを学習用と検証用に分割(例:`train.jsonl`, `valid.jsonl`)。
- **モデルのロード**
```python
from unsloth import FastLanguageModel
model_name = "Qwen/Qwen3.5"
model, tokenizer = FastLanguageModel.from_pretrained(
model_name,
load_in_4bit=True,
device_map="auto",
)
```
- **トレーニング設定**
```python
from unsloth import get_peft_config
peft_cfg = get_peft_config(
target_modules=["q_proj", "k_proj", "v_proj", "o_proj"],
lora_r=8,
lora_alpha=32,
lora_dropout=0.05,
)
```
- **ファインチューニングループ**
```python
from unsloth import FastLanguageModel
trainer = FastLanguageModel(
model=model,
tokenizer=tokenizer,
peft_config=peft_cfg,
max_seq_length=2048,
)
trainer.train(
train_file="train.jsonl",
eval_file="valid.jsonl",
learning_rate=1e-4,
num_epochs=3,
batch_size=2,
)
```
- **ファインチューニング済みモデルの保存と読み込み**
```python
trainer.save_pretrained("qwen3.5-finetuned")
# 後でロードする場合:
model, tokenizer = FastLanguageModel.from_pretrained(
"qwen3.5-finetuned",
device_map="auto",
)
```
- **推論例**
```python
prompt = "Translate to Spanish: Good morning."
inputs = tokenizer(prompt, return_tensors="pt").to("cuda")
output_ids = model.generate(**inputs, max_new_tokens=50)
print(tokenizer.decode(output_ids[0], skip_special_tokens=True))
```
- **ヒントとベストプラクティス**
- メモリ使用量を削減するために混合精度(`load_in_4bit`)を利用。
- GPU の稼働率を監視し、OOM が発生したら `batch_size` を調整。
- 過学習を早期検知するために頻繁に検証を実施。
---](/_next/image?url=%2Fscreenshots%2F2026-03-05%2F1772663089062.webp&w=3840&q=75)
2026/03/04 21:04
**Qwen 3.5 ファインチューニングガイド – Unsloth ドキュメント** - **前提条件** - Python 3.10以上 - PyTorch 2.x(GPUで学習する場合はCUDA) - `unsloth` パッケージ(`pip install unsloth`) - **データセットの準備** 1. 各行を個別の「instruction–response」ペアとして持つ JSONL ファイルを作成します。 ```json {"instruction":"Translate to French","input":"Hello, world!","output":"Bonjour le monde!"} ``` 2. データを学習用と検証用に分割(例:`train.jsonl`, `valid.jsonl`)。 - **モデルのロード** ```python from unsloth import FastLanguageModel model_name = "Qwen/Qwen3.5" model, tokenizer = FastLanguageModel.from_pretrained( model_name, load_in_4bit=True, device_map="auto", ) ``` - **トレーニング設定** ```python from unsloth import get_peft_config peft_cfg = get_peft_config( target_modules=["q_proj", "k_proj", "v_proj", "o_proj"], lora_r=8, lora_alpha=32, lora_dropout=0.05, ) ``` - **ファインチューニングループ** ```python from unsloth import FastLanguageModel trainer = FastLanguageModel( model=model, tokenizer=tokenizer, peft_config=peft_cfg, max_seq_length=2048, ) trainer.train( train_file="train.jsonl", eval_file="valid.jsonl", learning_rate=1e-4, num_epochs=3, batch_size=2, ) ``` - **ファインチューニング済みモデルの保存と読み込み** ```python trainer.save_pretrained("qwen3.5-finetuned") # 後でロードする場合: model, tokenizer = FastLanguageModel.from_pretrained( "qwen3.5-finetuned", device_map="auto", ) ``` - **推論例** ```python prompt = "Translate to Spanish: Good morning." inputs = tokenizer(prompt, return_tensors="pt").to("cuda") output_ids = model.generate(**inputs, max_new_tokens=50) print(tokenizer.decode(output_ids[0], skip_special_tokens=True)) ``` - **ヒントとベストプラクティス** - メモリ使用量を削減するために混合精度(`load_in_4bit`)を利用。 - GPU の稼働率を監視し、OOM が発生したら `batch_size` を調整。 - 過学習を早期検知するために頻繁に検証を実施。 ---
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
要約
Qwen 3.5モデル(0.8B–122B)は、UnslothフレームワークとLoRAをbf16精度でローカルにファインチューニングできるようになり、ビジョンおよび多言語テキストタスクの両方が可能です。VRAM使用量は管理しやすく保たれます。
モデルサイズ別 VRAM 要件:
- 0.8B = 3 GB
- 2B = 5 GB
- 4B = 10 GB
- 9B = 22 GB
- 27B = 56 GB
- 35B‑A3B = 74 GB
- 122B‑A10B = 256 GB
完全なファインチューニングには約4倍のVRAMが必要となるため、LoRAははるかに実用的です。
Unslothはトレーニング速度を約1.5倍に向上させ、古いFA2メソッドと比べてVRAM使用量を約50 %削減します。
Qwen 3.5は201言語をサポートしており、多言語ファインチューニングに最適です。
エクスポートオプションには GGUF(llama.cpp / Ollama / LM Studio用)と vLLM があり、UnslothはGGUFを直接Hugging Faceへアップロードできます。
Transformers v5 を使用してください—古いバージョンは互換性がありません。
MoEモデル(35B‑A3B, 122B‑A10B, 397B‑A17B)では bf16でファインチューニングし、量子化の問題を避けるため4ビット QLoRA は使用しないでください。
マルチGPUトレーニングは
device_map="balanced" または提供されているマルチGPUガイド経由でサポートされます。MoEモデルをロードした後に LoRA アダプタを付加できます。
ビジョンファインチューニングは多モーダル Qwen 3.5 モデルで有効です。 torchvision と pillow をインストールし、Transformers を最新の状態に保ちます。その後、視覚レイヤー、言語レイヤー、または注意/MLP レイヤー(デフォルトではすべてオン)を選択的にファインチューニングできます。
OOM(メモリ不足)の対策ヒント
を 1 に減らすper_device_train_batch_size- あるいは
を低く設定するmax_seq_length
vLLM 0.16.0 は Qwen 3.5 をサポートしていません。≥ 0.17を待つか、ナイトリービルドを使用してください。
この簡素化されたアプローチにより、開発者は大規模な多言語またはマルチモーダルモデルを低メモリで効率的にカスタムビジョンや言語アプリケーションへ適応できるようになります。
本文
Qwen 3.5 – ローカル実行ガイド
ファインチューニング概要
- モデルファミリー: 0.8B、2B、4B、9B、27B、35B‑A3B、122B‑A10B
- フレームワーク: Unsloth(ビジョン・テキスト両方のファインチューニングに対応)
- 速度 / VRAM: FA2セットアップより1.5 倍速で約50 %少ないVRAMを使用
bf16 LoRA 用 VRAM 要件
| モデル | VRAM |
|---|---|
| 0.8B | 3 GB |
| 2B | 5 GB |
| 4B | 10 GB |
| 9B | 22 GB |
| 27B | 56 GB |
- 35B‑A3B – 74 GB VRAMで動作
- 122B‑A10B – 256 GB VRAMで動作(
を使ってマルチGPU)device_map="balanced"
訓練のヒント
| ヒント | 詳細 |
|---|---|
| 推論保持 | 推論例と直接回答を混ぜ、推論率≥75 %に保つ。 |
| 完全ファインチューニング (FFT) | 約4倍多くVRAMを消費。 |
| 多言語対応 | 201 言語が利用可能。 |
| エクスポート形式 | GGUF(llama.cpp/Ollama/LM Studio)、vLLM、または Hugging Face Hub。 |
| Transformers バージョン | v5 を使用;旧バージョンでは失敗。Unsloth はデフォルトで v5(Colab 以外)。 |
| カーネルコンパイル | Mamba Triton カーネルは T4 GPU で長時間かかる場合がある。 |
| QLoRA (4‑bit) | 量子化問題のため Qwen 3.5 には推奨されない。 |
| MoE ファインチューニング | bf16 設定を好む;QLoRA 4-bit は避けるべき。 |
| ビジョン依存関係 | 、 をインストール。 |
| OOM 対策 | または を減らす。 |
クイックスタート(テキストのみファインチューニング)
import os import torch from unsloth import FastModel model, tokenizer = FastModel.from_pretrained( model_name="unsloth/Qwen3.5-35B-A3B", max_seq_length=2048, load_in_4bit=False, # MoE QLoRA は推奨されない load_in_16bit=True, # bf16/16‑bit LoRA full_finetuning=False, ) # 保存 / エクスポート model.save_pretrained_gguf("directory", tokenizer, quantization_method="q4_k_m") model.save_pretrained_gguf("directory", tokenizer, quantization_method="q8_0") model.save_pretrained_gguf("directory", tokenizer, quantization_method="f16") # Hugging Face Hub へ model.push_to_hub_gguf("hf_username/directory", tokenizer, quantization_method="q4_k_m") model.push_to_hub_gguf("hf_username/directory", tokenizer, quantization_method="q8_0") # LoRA アダプタを統合(必要なら) model.save_pretrained_merged("finetuned_model", tokenizer, save_method="merged_16bit") # 統合モデルを Hub へアップロード model.push_to_hub_merged("hf/model", tokenizer, save_method="merged_16bit", token="")
ビジョンファインチューニング
- Qwen 3.5 のノートブック(マルチモーダルモデル)を利用。
- ビジョン層、言語層、または注意力/MLP 層のみを選択的にファインチューニング可能(デフォルトではすべて有効)。
エクスポートとデプロイ
| ランタイム | エクスポート方法 |
|---|---|
| llama.cpp / Ollama / LM Studio | で必要な量子化を指定 |
| vLLM | または を使用。注意:vLLM 0.16.0 は Qwen 3.5 に非対応;0.17.0または nightly リリース待ち。 |
| Hugging Face Hub | (統合版)または (GGUF)。 |
追加メモ
- マルチGPU 訓練:
を付けるか、マルチGPU ガイドに従う。device_map="balanced" - ビジョン/テキストのみファインチューニング切替: 設定フラグで訓練対象を指定可能。
- 一般的なランタイム問題: チャットテンプレートや EOS トークンが誤っているときは、訓練時と同じ設定を使用するように確認。
最終更新: 44 分前。