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
}
}'
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 的进阶用法
你还可以在Modelfile里引用本地文件:
FROM llama3.2
# 从本地文件加载系统提示词
SYSTEM FILE ./system_prompt.txt
# 从本地文件加载示例对话
MESSAGE FILE ./examples.txt
这样方便管理大型提示词和大量示例。我一般会把提示词单独放一个文件,方便团队协作修改。
/home/user/projects 下执行 ollama create,那 ./system_prompt.txt 就指向 /home/user/projects/system_prompt.txt。我曾经因为路径搞错,折腾了半天才发现是文件没找到。
2.4 模型管理实战流程图
下面这张图帮你理清整个模型管理的流程:
这张图把整个流程串起来了。你从「开始」出发,先决定是下载现成模型还是自己写Modelfile自定义。下载完可以查看列表,自定义完要构建。最后都能配置参数、运行模型,用完了还能删掉。
2.5 避坑指南
最后分享几个我踩过的坑:
- 模型下载慢?Ollama默认从国外仓库拉模型,国内网络可能很慢。我建议配置镜像源,或者用代理。具体配置方法可以看Ollama官方文档的环境变量部分。
- Modelfile构建失败?检查一下FROM指定的基础模型是否存在。我试过拼写错误,结果构建了半天报错。
- 参数调了没效果?有些模型对参数不敏感,尤其是小模型。我建议先跑几个测试用例,确认参数确实生效了。
- 模型删了还能恢复吗?不能。Ollama没有回收站机制。我建议定期用
ollama list导出模型列表,做个备份。
好了,模型管理这块就聊到这儿。你掌握了下载、删除、查看列表、配置参数、以及用Modelfile自定义模型,基本上日常开发就够用了。下一节咱们会聊怎么用Ollama的API做更高级的集成,到时候这些模型管理技能全都能用上。
公众号:蓝海资料掘金营,微信deep3321