⚠️トラブルシューティング & FAQ

問題解決のヒントとよくある質問。

バージョンや依存関係でまだ問題が発生する場合は、どうぞ私たちの を使って Unsloth をインストールすることもできます。 をご利用ください。すべてが事前にインストールされています。

circle-check

Unsloth がサポートしていない新しいモデルをファインチューニングしますか?

Unsloth は、がサポートする任意のモデルで動作します transformers。もしモデルが私たちのアップロードに無い、あるいはそのままでは動かない場合でも、通常はサポートされています。いくつかの新しいモデルは最適化のために小さな手動調整が必要なだけです。

ほとんどの場合、互換性を有効にするには trust_remote_code=True をファインチューニングスクリプトで設定すれば良いです。以下はの例です DeepSeek-OCR:

Unslothでの実行はうまくいきますが、エクスポートして他のプラットフォームで実行すると結果が悪い

モデルがUnsloth上では正しく動作して良い結果を出すのに、OllamaやvLLMのような別のプラットフォームで使うと結果が悪くなったり、意味不明な出力や終わりのない/無限の生成が発生することがあります。 または 繰り返し出力.

  • このエラーの最も一般的な原因は、 誤ったチャットテンプレート. です。Unslothでモデルを訓練したときに使用したのと同じチャットテンプレートを、llama.cppやOllamaなど別のフレームワークで実行する際にも必ず使用することが重要です。保存されたモデルから推論する場合、正しいテンプレートを適用することが不可欠です。

  • また、推論エンジンが不要な「シーケンス開始」トークンを追加している(あるいは逆に欠如している)ことが原因の可能性もあるため、両方の仮説を確認してください!

  • チャットテンプレートを強制する私たちの会話用ノートブックを使用してください — これでほとんどの問題が解決します。

GGUF / vLLM 16bit への保存がクラッシュする

保存中の最大GPU使用量を減らすには、 maximum_memory_usage.

のデフォルトは model.save_pretrained(..., maximum_memory_usage = 0.75)です。ピークGPUメモリの50%を使うように0.5などに下げるか、それ以下にしてください。これにより保存中のOOMクラッシュを減らせます。

手動で GGUF に保存するにはどうすればよいですか?

まず次でモデルを16ビットで保存します:

以下のようにソースから llama.cpp をコンパイルします:

次に、モデルを F16 に保存します:

なぜ Q8_K_XL は Q8_0 GGUF より遅いのか?

Mac デバイスでは BF16 の方が F16 より遅いように見えることがあります。Q8_K_XL は一部のレイヤーを BF16 にアップキャストするため、遅くなります。性能低下を抑えるために、Q8_K_XL のデフォルト選択を F16 にするよう、変換プロセスを積極的に変更しています。

評価(Evaluation)の方法

トレーニング実行で評価を設定するには、まずデータセットをトレーニング用とテスト用に分割する必要があります。あなたは データセットの選択は常にシャッフルするべきです、そうしないと評価が間違ってしまいます!

次に、評価を有効にするためにトレーニング引数を設定できます。補足として、評価は非常に非常に遅くなることがあり、特に eval_steps = 1 と設定すると各ステップで評価を行うことになります。もしそうしているなら、eval_dataset のサイズを例えば 100 行などに減らしてみてください。

評価ループ - メモリ不足(OOM)やクラッシュ

OOM が発生する一般的な原因はバッチサイズを高く設定しすぎていることです。VRAM を節約するには 2 未満に設定してください。また fp16_full_eval=True を使用して評価に float16 を使うとメモリが半分になります。

まずトレーニングデータセットをトレインとテストに分割してください。評価のためにトレーナー設定を以下のようにします:

これにより OOM を回避し、若干高速化されます。次も使用できます bf16_full_eval=True bf16 マシン用です。デフォルトでは Unsloth は 2025 年 6 月以降これらのフラグをデフォルトで設定しているはずです。

早期終了(Early Stopping)はどう行いますか?

評価損失が減少しないためにファインチューニング/トレーニングを停止したい場合、トレーニングプロセスを停止する早期停止(early stopping)を使用できます。使用してください EarlyStoppingCallback.

通常どおり trainer と評価用データセットを設定します。以下は、 eval_loss (評価損失)が約3ステップ後に減少しない場合にトレーニングを停止するために使用されます。

次にコールバックを追加します。コールバックはカスタマイズも可能です:

その後、通常どおり次でモデルを訓練します trainer.train() 。

ダウンロードが 90〜95% で止まる

モデルのダウンロードが 90〜95% で長時間止まる場合、一部の高速ダウンロードプロセスを無効にして同期ダウンロードに強制し、より多くのエラーメッセージを出力させることができます。

単純に次を使用してください UNSLOTH_STABLE_DOWNLOADS=1 を Unsloth のインポートより前に設定してください。

RuntimeError: CUDA error: device-side assert triggered

再起動してすべて実行し直してください。ただし Unsloth のインポートより前にこれを置いてください。また、できるだけ早くバグレポートを提出してください、ありがとうございます!

データセット内のすべてのラベルが -100 になっています。トレーニング損失はすべて 0 になります。

これは、あなたの train_on_responses_only の使用方法がその特定のモデルに対して誤っていることを意味します。train_on_responses_only はユーザーの質問をマスクし、アシスタントの応答をより高い重みで出力するようモデルを訓練することを可能にします。これは精度を 1% 以上向上させることが知られています。詳細は私たちの LoRA ハイパーパラメータガイド で詳細を確認できます。

Llama 3.1、3.2、3.3 タイプのモデルについては、以下を使用してください:

Gemma 2、3、3n モデルの場合は、以下を使用してください:

Unsloth が期待より遅いですか?

最初は速度が遅く感じられる場合、考えられる理由は torch.compile が通常ウォームアップとコンパイルの完了に約5分(またはそれ以上)かかるためです。スループットを計測する際は必ず その後に 完全にロードされた状態で計測してください。長時間の実行では Unsloth ははるかに高速になるはずです。

無効にするには次を使用してください:

Gemma3nForConditionalGeneration の一部の重みがモデルチェックポイントから初期化されていませんでした

これは重大なエラーです。いくつかの重みが正しく解析されていないことを意味し、誤った出力を引き起こします。通常は Unsloth をアップグレードすることで修正できます。

pip install --upgrade --force-reinstall --no-cache-dir --no-deps unsloth unsloth_zoo

次に transformers と timm をアップグレードしてください:

pip install --upgrade --force-reinstall --no-cache-dir --no-deps transformers timm

それでも問題が続く場合は、できるだけ早くバグレポートを提出してください!

NotImplementedError: UTF-8 ロケールが必要です。ANSI が検出されました

参照: https://github.com/googlecolab/colabtools/issues/3409

新しいセルで、以下を実行してください:

Unsloth の引用(Citing Unsloth)

私たちのモデルアップロードの使用を引用する場合は、以下の Bibtex を使用してください。これは Qwen3-30B-A3B-GGUF Q8_K_XL 用です:

私たちの Github パッケージや私たちの研究・成果全般を引用するには:

最終更新

役に立ちましたか?