如果在运行或保存模型时遇到问题。
有时您可能会遇到这样的情况:您的模型在 Unsloth 上运行并产生良好结果,但当您在另一个平台(例如 Ollama 或 vLLM)上使用它时,结果很差,或者可能出现乱码、无限/无尽生成 或 重复输出.
此错误最常见的原因是使用了 不正确的对话模板. 在 Unsloth 中训练模型时使用的对话模板与随后在另一个框架(例如 llama.cpp 或 Ollama)中运行时使用的模板必须相同。当从已保存的模型进行推理时,应用正确的模板至关重要。
您必须使用正确的 eos 标记。否则,在较长的生成中可能会出现乱码。
eos 标记
这也可能是因为您的推理引擎添加了不必要的“序列开始”标记(或者相反地缺少该标记),因此请务必检查这两种情况!
使用我们的对话笔记本来强制设置对话模板——这将解决大多数问题。
Qwen-3 14B 对话笔记本 在 Colab 中打开arrow-up-right
Gemma-3 4B 对话笔记本 在 Colab 中打开arrow-up-right
Llama-3.2 3B 对话笔记本 在 Colab 中打开arrow-up-right
Phi-4 14B 对话笔记本 在 Colab 中打开arrow-up-right
Mistral v0.3 7B 对话笔记本 在 Colab 中打开arrow-up-right
更多笔记本在我们的 notebooks 仓库arrow-up-right.
safetensors
bin
我们在 Colab 中保存为 .bin ,这样大约快 4 倍,但设置 safe_serialization = None 以强制保存为 .safetensors。所以 model.save_pretrained(..., safe_serialization = None) 或 model.push_to_hub(..., safe_serialization = None)
.bin
safe_serialization = None
.safetensors
model.save_pretrained(..., safe_serialization = None)
model.push_to_hub(..., safe_serialization = None)
您可以尝试通过更改来减少保存时的最大 GPU 使用率 maximum_memory_usage.
maximum_memory_usage
默认值是 model.save_pretrained(..., maximum_memory_usage = 0.75)。将其降低到例如 0.5 以使用 50% 的 GPU 峰值内存或更低。这可以减少保存时的 OOM 崩溃。
model.save_pretrained(..., maximum_memory_usage = 0.75)
最后更新于1个月前
这有帮助吗?