总结
来源:互联网
时间:2026-08-02 13:22:10
Ollama 默认直接支持很多模型,只需要一条简单的 `ollama run` 命令就能搞定。比如这样:
```
ollama run gemma:2b
```
就可以直接安装、启动并使用对应的模型了。
通过这种方式直接支持的模型,可以在 Ollama 的官方模型库(https://ollama.com/library)里找到。不过问题来了——Hugging Face 上有数万个模型(https://huggingface.co/models),Ollama 官方列表显然不可能全覆盖。那么,要如何支持那些不在默认列表里的模型?
## 模型选择
这次我们选一个比较特殊的模型来做演示:**CausalLM-14B**(https://huggingface.co/TheBloke/CausalLM-14B-GGUF)。它的特点是没有内容审核限制。
这个模型是在 Qwen-14B 的基础上,部分借用了 Qwen-14B 的权重,又加入了一些中文数据集,最终炼出了一个“无审核”版本。经过量化之后,完全可以在本地运行,隐私方面也更有保障。
考虑到大多数人本地机器的配置,这里用 7B 的版本演示就好:https://huggingface.co/TheBloke/CausalLM-7B-GGUF
至于 GGUF 格式的说明,可以参考专门的文档。我们这次使用的是 `causallm_7b.Q5_K_S.gguf` 这个文件,作者对它的评价是:“体积大,质量损失小,推荐使用”。直接下载到本地即可。
## Ollama 加载GGUF模型文件
用 Ollama 加载自定义模型文件其实也很容易,分三步走。
### 1、创建模型配置文件
先创建一个模型配置文件,比如命名为 `causallm7bq5.mf`,文件内容就写一行:
```
FROM ./causallm_7b.Q5_K_S.gguf
```
这里的 `FROM` 参数用来指定要加载的具体模型文件路径。
### 2、构建对应的Ollama模型
接下来,用以下命令来构建模型:
```
cd githubollama
ollama create c7b -f ./causallm7bq5.mf
```
这里的 `c7b` 就是我们在 Ollama 中给这个模型起的别名。这个命令的通用格式是:
```
ollama create choose-a-model-name -f
```
### 3、使用这个模型
模型构建完成之后,就可以直接用了。因为是无内容审核的模型,玩法就自由多了:
```
ollama run c7b "请写一个情色幽默笑话"
```
每次运行得到的结果都不太一样——毕竟这些模型本质上是随机的。下面是我某次尝试时得到的输出:
(此处应有图片)
不同的尝试会带来不同的惊喜。当然,考虑到训练数据的差异,使用不同的关键字 Prompt,效果可能截然不同。
## 模型配置常见的参数
熟悉了基本流程之后,不妨来看看已有模型的 Modelfile 长什么样,从中可以学到很多配置技巧。
### 查看默认模型的底层Modelfile
使用 `ollama show` 可以打印任何本地模型的 Modelfile,比如:
```
ollama show --modelfile gemma:2b
```
命令输出结果如下:
```
# Modelfile generated by "ollama show"
# To build a new Modelfile based on this one, replace the FROM line with:
# FROM gemma:2b
FROM C:UsersAdministrator.ollamamodelsblobssha256-c1864a5eb19305c40519da12cc543519e48a0697ecd30e15d5ac228644957d12
TEMPLATE """user
{{ if .System }}{{ .System }} {{ end }}{{ .Prompt }}
model
{{ .Response }}
"""
PARAMETER repeat_penalty 1
PARAMETER stop ""
PARAMETER stop ""
```
### Modelfile 指令介绍
上面的例子涉及下面几个关键指令:
#### FROM (必需)
`FROM` 指令定义创建模型时要使用的基本模型。可以是绝对路径或相对路径的文件名,也可以直接指定模型名和 TAG 标签。下面几种写法都行:
```
FROM :
FROM llama2
FROM ./ollama-model.bin
```
#### TEMPLATE
`TEMPLATE` 指令用来传递完整的提示模板。它可以包含(可选)系统消息、用户消息和模型的响应。注意:语法可能因模型而异,模板使用 Go 模板语法。
详细的说明可以参考官方文档:https://github.com/ollama/ollama/blob/main/docs/modelfile.md#template
#### PARAMETER
`PARAMETER` 指令定义了模型运行时可以设置的参数,格式为:
```
PARAMETER
```
上面示例中涉及的参数包括:
- `stop`:设置停止序列。当遇到此模式时,LLM 会停止生成文本并返回。可以通过在模型文件中指定多个单独的 stop 参数,设置多个停止模式。
- `repeat_penalty`:设置惩罚重复的强度。较高的值(如 1.5)会对重复进行更严厉的惩罚,较低的值(如 0.9)则更宽松,默认值为 1.1。
更多参数可以查阅:https://github.com/ollama/ollama/blob/main/docs/modelfile.md#valid-parameters-and-values
## 总结
通过简单的 `ollama run` 命令,可以快速安装、启动和使用各种官方支持的模型。对于 Ollama 不直接支持的模型,通过设置模型配置文件就能灵活加载。这正是 Ollama 强大的地方——它让我们能够方便地探索和利用各类模型,为各种应用场景找到最合适的解决方案。