ollama推理框架


官网:https://ollama.com/search

安装

curl -fsSL https://ollama.com/install.sh | sh
ollama --version #查看版本

用法

ollama list 列出所有模型
ollama pull <model_name> 下载模型
ollama show <model_name> 查看模型信息
ollama run <model_name> 运行模型
ollama stop <model_name> 停止模型
ollama ps 查看运行中的模型
ollama rm <model_name> 删除模型
ollama serve /home/ubuntu/.cache/modelscope/hub/models/Qwen\Qwen3-4B-Instruct-2507

api地址

http://localhost:11434/v1

列出所有模型:
http://127.0.0.1:11434/v1/models

常用模型

ollama pull gpt-oss:20b
ollama pull qwen3:30b-a3b-instruct-2507-q8_0
ollama pull dengcao/Qwen3-Embedding-4B:Q5_K_M

Hugging Face/Transformers格式转gguf

创建llama.cpp项目

git clone https://github.com/ggml-org/llama.cpp
打开项目,并创建一个虚拟环境
uv pip install torch --index-url https://download.pytorch.org/whl/cu129 根据自己环境单独安装pytorch

允许跨索引综合匹配
UV_INDEX_STRATEGY=unsafe-best-match
安装依赖时指定优先索引
uv pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple --extra-index-url https://pypi.org/simple --extra-index-url https://download.pytorch.org/whl/cu129 --prerelease=allow
如果遇到错误,因为它的包依赖很多使用了~=限定版本号,可以将它改成>=来安装更高版本,有好几个包会有这种情况,或者单独向安装这个包例如`uv pip install "protobuf>=4.21"``

hf转gguf(确保自己在llama.cpp项目下)

bash
python ./convert_hf_to_gguf.py --outfile /home/ubuntu/qwen3diy-f16.gguf --outtype f16 --verbose /home/ubuntu/qwen3diy

gguf量化
https://github.com/ggml-org/llama.cpp/releases 中下载,根据合适的包选择二进制包,将build文件夹放入项目目录
chmod +x ./build/bin/llama-quantize 赋予文件可执行权限
开始量化:
./build/bin/llama-quantize <原权重路径>.gguf <保存路径>.gguf Q4_K_M
量化方法

  • q8_0 几乎接近 FP16 的一致性(代价是体积/显存大)
  • q5_k_m(常见平衡点,对身份记忆通常显著好于 q4_k_m)
  • q4_k_m 最小量化,对微调后的模型效果不好,如果不是硬件极限要求这样,不建议使用此量化

防止量化变笨待验证
llama.cpp 支持 IQ 家族(如 IQ4_NL / IQ4_XS)。配合重要性矩阵(imatrix)

bash
# 1) 用领域文本跑一遍重要性矩阵(尽量包含你的自我介绍/身份问答)
./llama-imatrix -m /path/to/model-f16.gguf -f /path/to/calib.txt -o /path/to/imatrix.dat -c 4096
# 中文注释:calib.txt 放几百~几千条你业务域的对话/文档,含“你是谁”等提示

# 2) 带 imatrix 做 IQ4 量化
./llama-quantize -imatrix /path/to/imatrix.dat \
  /path/to/model-f16.gguf /path/to/model-iq4_xs.gguf iq4_xs
# 中文注释:iq4_xs 或 iq4_nl 都可试;结果常优于 q4_k_m

将gguf添加到ollama

写一个Modelfile文件:

python
FROM /本地基座模型路径 # 基座(需与训练LoRA的基座一致,含safetensors + config + tokenizer)
ADAPTER /LoRA路径 # 可选如果lora是独立的话
PARAMETER num_ctx 8192 # 可选:上下文长度
# qwen3对话模板,防止无休止聊天(务必添加)
TEMPLATE """<|im_start|>system
{{ .System }}<|im_end|>
<|im_start|>user
{{ .Prompt }}<|im_end|>
<|im_start|>assistant
"""

然后
ollama create <模型名> -f Modelfile 创建一个自定义模型到服务
ollama run <模型名> 运行推理
ollama rm <模型名> 删除服务上注册的模型
ollama show --modelfile qwen3:8b 抄已有的模型Modelfile,它们的工具调用和对话模板等