2、Ollama模型管理:模型下载与删除、模型列表查看、模型参数配置、自定义模型创建(Modelfile)

模型管理,说白了就是Ollama的日常操作核心。你下载模型、删模型、调参数、甚至自己造一个模型,全得靠这套东西。我刚开始接触Ollama时,觉得不就是个拉模型跑推理嘛,结果发现里面的门道还挺多。今天咱们就把这块彻底捋清楚。

2.1 模型下载与删除

先说说最基础的操作——下载模型。Ollama的模型都托管在官方仓库里,你只需要一条命令就能拉下来。

# 下载一个模型,比如 llama3.2
ollama pull llama3.2

# 或者指定版本标签
ollama pull llama3.2:1b
ollama pull llama3.2:3b

我个人习惯是先看看模型有哪些版本。你可以在Ollama官网的模型库页面查,也可以用命令行直接搜:

# 搜索模型
ollama search llama

下载完成后,模型会存在本地。想看看本地都有哪些模型?用这个:

ollama list

输出大概长这样:

名称 ID 大小 修改时间
llama3.2:latest abc123def456 4.9 GB 2024-10-15
mistral:7b 789ghi012jkl 4.1 GB 2024-10-12

删除模型也很简单:

# 删除指定模型
ollama rm llama3.2:1b

# 删除整个模型(所有版本)
ollama rm llama3.2
⚠️ 注意:删除操作不可逆。我曾经手滑删了一个调了好几天的微调模型,那叫一个心疼。建议删除前先用 ollama list 确认一下。

2.2 模型参数配置

模型下载完了,直接跑当然可以。但你想过没有?同样的模型,不同参数跑出来的效果天差地别。Ollama允许你在运行时调整这些参数。

常用的参数有这么几个:

参数 说明 默认值 建议范围
temperature 控制输出的随机性。越高越有创意,越低越保守 0.8 0.1 ~ 2.0
top_p 核采样,只从概率最高的前p%的token中选 0.9 0.5 ~ 1.0
top_k 只从概率最高的前k个token中选 40 10 ~ 100
num_predict 最大生成token数 128 视任务而定
repeat_penalty 重复惩罚,防止模型一直说同样的话 1.1 1.0 ~ 2.0

怎么用呢?两种方式:

方式一:命令行直接传参

ollama run llama3.2 --temperature 0.7 --top_p 0.95

方式二:通过API传参

curl http://localhost:11434/api/generate -d '{
  "model": "llama3.2",
  "prompt": "写一首关于秋天的诗",
  "options": {
    "temperature": 0.7,
    "top_p": 0.9,
    "num_predict": 256
  }
}'
💡 我的经验:做代码生成时,temperature设低一点(0.1~0.3),模型更听话。做创意写作时,设到0.8~1.2,效果更好。我曾经在项目里把temperature设到1.8,结果模型开始写诗了...嗯,跑题了。

2.3 自定义模型创建(Modelfile)

这才是今天的重头戏。Ollama最强大的地方在于,你可以通过Modelfile自定义模型。说白了,Modelfile就像Dockerfile,你定义好规则,Ollama帮你构建一个新模型。

先看一个最简单的例子:

# 基础模型
FROM llama3.2

# 设置系统提示词
SYSTEM "你是一个专业的Python编程助手。回答要简洁、准确,并给出代码示例。"

# 设置默认参数
PARAMETER temperature 0.3
PARAMETER top_p 0.9
PARAMETER num_predict 512

保存为 Modelfile,然后构建:

ollama create my-python-assistant -f ./Modelfile

运行试试:

ollama run my-python-assistant

你会发现,这个模型已经自动带上了系统提示词,而且参数也预设好了。省得每次都要手动传参。

Modelfile 支持的指令

指令 说明 示例
FROM 指定基础模型 FROM llama3.2
SYSTEM 设置系统提示词 SYSTEM "你是一个翻译助手"
PARAMETER 设置模型参数 PARAMETER temperature 0.7
TEMPLATE 自定义对话模板 TEMPLATE "{{ .Prompt }}"
LICENSE 添加许可证信息 LICENSE MIT
MESSAGE 添加示例对话 MESSAGE user "你好"

来个复杂点的例子,创建一个带few-shot示例的模型:

FROM llama3.2

SYSTEM "你是一个情感分析助手。请判断用户输入的情感是正面、负面还是中性。"

PARAMETER temperature 0.1
PARAMETER top_p 0.8

# 添加示例对话
MESSAGE user "今天天气真好,阳光明媚"
MESSAGE assistant "正面"

MESSAGE user "我讨厌下雨天"
MESSAGE assistant "负面"

MESSAGE user "今天周三"
MESSAGE assistant "中性"

构建并运行:

ollama create sentiment-analyzer -f ./Modelfile
ollama run sentiment-analyzer

现在你输入「这个电影太棒了」,模型就会自动输出「正面」。这就是few-shot学习的威力。

🎯 核心思路:Modelfile的本质是「配置即模型」。你不用重新训练,只需要定义好规则和示例,Ollama就能帮你生成一个专用模型。我在项目中经常用这个技巧,给不同客户定制不同的助手模型,省时省力。

Modelfile 的进阶用法

你还可以在Modelfile里引用本地文件:

FROM llama3.2

# 从本地文件加载系统提示词
SYSTEM FILE ./system_prompt.txt

# 从本地文件加载示例对话
MESSAGE FILE ./examples.txt

这样方便管理大型提示词和大量示例。我一般会把提示词单独放一个文件,方便团队协作修改。

⚠️ 注意:Modelfile里的路径是相对于构建命令执行目录的。如果你在 /home/user/projects 下执行 ollama create,那 ./system_prompt.txt 就指向 /home/user/projects/system_prompt.txt。我曾经因为路径搞错,折腾了半天才发现是文件没找到。

2.4 模型管理实战流程图

下面这张图帮你理清整个模型管理的流程:

Ollama 模型管理流程图 开始 下载还是自定义? 下载模型 编写Modelfile 查看模型列表 构建模型 配置参数 运行模型 删除模型

这张图把整个流程串起来了。你从「开始」出发,先决定是下载现成模型还是自己写Modelfile自定义。下载完可以查看列表,自定义完要构建。最后都能配置参数、运行模型,用完了还能删掉。

2.5 避坑指南

最后分享几个我踩过的坑:

  • 模型下载慢?Ollama默认从国外仓库拉模型,国内网络可能很慢。我建议配置镜像源,或者用代理。具体配置方法可以看Ollama官方文档的环境变量部分。
  • Modelfile构建失败?检查一下FROM指定的基础模型是否存在。我试过拼写错误,结果构建了半天报错。
  • 参数调了没效果?有些模型对参数不敏感,尤其是小模型。我建议先跑几个测试用例,确认参数确实生效了。
  • 模型删了还能恢复吗?不能。Ollama没有回收站机制。我建议定期用 ollama list 导出模型列表,做个备份。
💡 我的习惯:每次创建自定义模型后,我都会在Modelfile旁边放一个README文件,记录这个模型的用途、参数设置原因、以及测试结果。这样过几个月回头看,还能想起来当时为什么这么配。

好了,模型管理这块就聊到这儿。你掌握了下载、删除、查看列表、配置参数、以及用Modelfile自定义模型,基本上日常开发就够用了。下一节咱们会聊怎么用Ollama的API做更高级的集成,到时候这些模型管理技能全都能用上。


公众号:蓝海资料掘金营,微信deep3321