回到笔记
AILLMLlama工具

在 Ollama 中运行中文 Llama 模型

下载中文 Llama 权重、借助 llama.cpp 转换并量化为 GGUF,最后通过 Modelfile 导入 Ollama。

把 Hugging Face 上的模型导入 Ollama,大致需要三步:确认模型格式、必要时转换或量化为 GGUF,再通过 Modelfile 创建本地模型。

先判断是否真的需要转换

如果模型仓库已经提供 GGUF 文件,可以直接下载合适的量化版本,省去本地转换。只有 PyTorch 或 safetensors 权重时,才需要借助 llama.cpp 转换。

选择模型时先确认:

  • 架构是否被当前 llama.cpp 支持;
  • tokenizer 文件是否完整;
  • 模型许可证是否允许你的用途;
  • 内存是否容得下所选参数量和量化等级。

转换为 GGUF

克隆并构建 llama.cpp 后,使用仓库提供的 Hugging Face 转换脚本:

python convert_hf_to_gguf.py <model-directory> \
  --outfile model-f16.gguf \
  --outtype f16

脚本名称和参数可能随仓库调整,运行前先查看当前帮助:

python convert_hf_to_gguf.py --help

量化

量化可以降低内存与磁盘占用,但会牺牲一定精度。先保留一份 F16 或 BF16 原始 GGUF,再生成量化副本:

./llama-quantize model-f16.gguf model-q4_k_m.gguf Q4_K_M

Q4 通常是体积和质量之间的起点;对代码、数学或长上下文敏感的任务,应实际比较更高精度版本。

创建 Ollama 模型

新建 Modelfile

FROM ./model-q4_k_m.gguf

PARAMETER temperature 0.7
PARAMETER num_ctx 4096

SYSTEM 你是一名清晰、克制的中文助手。

然后创建并运行:

ollama create my-llama -f Modelfile
ollama run my-llama

对于带有特定聊天模板的模型,应优先沿用模型作者提供的模板。模板不匹配时,常见表现是重复输出、无法停止或角色标记泄漏。

排错顺序

  1. 先用 llama.cpp 自带命令验证 GGUF 能否加载;
  2. 再确认 Ollama 能否创建模型;
  3. 检查聊天模板、停止词和上下文长度;
  4. 最后调整温度、top-p 等生成参数。

模型“中文能力不好”不一定是部署问题,也可能来自底模、微调数据或量化损失。使用固定测试问题对比原始权重与量化版本,才能判断损失发生在哪一步。