Ollama 简介
Ollama 是一个基于 Go 语言开发的可以本地运行大模型的开源框架。
Ollama 是基于 Go 语言开发的本地大模型运行框架。本文介绍了 Ollama 的安装步骤、常用命令及模型下载方法。支持 Llama 3、Mistral 等多种模型,可通过终端直接对话或使用 API 进行流式/非流式调用。适用于本地部署、隐私保护及离线场景的开发需求。

Ollama 是一个基于 Go 语言开发的可以本地运行大模型的开源框架。
在 Ollama 官网根据操作系统类型选择对应的安装包,这里以 macOS 为例进行下载和安装。

安装完成后,在终端输入 ollama 命令,可以看到 ollama 支持的命令列表。
Usage:
ollama [flags]
ollama [command]
Available Commands:
serve Start ollama
create Create a model from a Modelfile
show Show information for a model
run Run a model
pull Pull a model from a registry
push Push a model to a registry
list List models
cp Copy a model
rm Remove a model
help Help about any command
Flags:
-h, --help help for ollama
-v, --version Show version information
Use "ollama [command] --help" for more information about a command.
查看 ollama 版本:
ollama -v
# Output: ollama version is 0.1.31
查看已下载模型:
ollama list
# Output shows NAME, ID, SIZE, MODIFIED
我本地已经有一个大模型,接下来我们看一下怎么下载大模型。

安装完后默认提示安装 llama2 大模型,下面是 Ollama 支持的部分模型:
| Model | Parameters | Size | Download Command |
|---|---|---|---|
| Llama 3 | 8B | 4.7GB | ollama run llama3 |
| Llama 3 | 70B | 40GB | ollama run llama3:70b |
| Mistral | 7B | 4.1GB | ollama run mistral |
| Dolphin Phi | 2.7B | 1.6GB | ollama run dolphin-phi |
| Phi-2 | 2.7B | 1.7GB | ollama run phi |
| Neural Chat | 7B | 4.1GB | ollama run neural-chat |
| Starling | 7B | 4.1GB | ollama run starling-lm |
| Code Llama | 7B | 3.8GB | ollama run codellama |
| Llama 2 Uncensored | 7B | 3.8GB | ollama run llama2-uncensored |
| Llama 2 13B | 13B | 7.3GB | ollama run llama2:13b |
| Llama 2 70B | 70B | 39GB | ollama run llama2:70b |
| Orca Mini | 3B | 1.9GB | ollama run orca-mini |
| LLaVA | 7B | 4.5GB | ollama run llava |
| Gemma | 2B | 1.4GB | ollama run gemma:2b |
| Gemma | 7B | 4.8GB | ollama run gemma:7b |
| Solar | 10.7B | 6.1GB | ollama run solar |
Llama 3 是 Meta 于 2024 年 4 月 19 日开源的大语言模型,共 80 亿和 700 亿参数两个版本,Ollama 均已支持。更多模型可以在官方文档中查看,包括中文模型如阿里的通义千问。
这里选择安装 gemma 2b,打开终端执行以下命令:
ollama run gemma:2b
pulling manifest
pulling c1864a5eb193... 100% ▕██████████████████████████████████████████████████████████▏ 1.7 GB
pulling 097a36493f71... 100% ▕██████████████████████████████████████████████████████████▏ 8.4 KB
pulling 109037bec39c... 100% ▕██████████████████████████████████████████████████████████▏ 136 B
pulling 22a837ceb7fb... 100% ▕██████████████████████████████████████████████████████████▏ 84 B
pulling 88743b8990... 100% ▕██████████████████████████████████████████████████████████▏ 483 B
verifying sha256 digest
writing manifest
removing any unused layers
success
经过一段时间等待,显示模型下载完成。
下载完成后,可以直接在终端进行对话,例如提问'介绍一下 React'。
>>> 介绍一下 React
输出内容如下:

>>> /?
Available Commands:
/set Set session variables
/show Show model information
/load <model> Load a session or model
/save <model> Save your current session
/bye Exit
/?, /help Help for a command
/? shortcuts Help for keyboard shortcuts
Use """ to begin a multi-line message.
>>> /show
Available Commands:
/show info Show details for this model
/show license Show model license
/show modelfile Show Modelfile for a model
/show parameters Show parameters for a model
/show system Show system message
/show template Show prompt template
>>> /show info
Model details:
Family gemma
Parameter Size 3B
Quantization Level Q4_0
除了在终端直接对话外,ollama 还可以以 API 的方式调用。执行 ollama show --help 可以看到本地访问地址为 http://localhost:11434。
下面介绍主要介绍两个 API:generate 和 chat。
curl http://localhost:11434/api/generate -d '{
"model": "gemma:2b",
"prompt":"介绍一下 React,20 字以内"
}'
响应数据为流式 JSON 对象,包含 done: false 直到结束。
通过设置 stream: false 参数可以设置一次性返回完整结果。
curl http://localhost:11434/api/generate -d '{
"model": "gemma:2b",
"prompt":"介绍一下 React,20 字以内",
"stream": false
}'
curl http://localhost:11434/api/chat -d '{
"model": "gemma:2b",
"messages": [
{ "role": "user", "content": "介绍一下 React,20 字以内" }
]
}'
可以看到终端输出结果:
{"model":"gemma:2b","created_at":"2024-04-19T08:45:54.86791Z","message":{"role":"assistant","content":"React"},"done":false}
...
{"model":"gemma:2b","created_at":"2024-04-19T08:45:56.415904Z","message":{"role":"assistant","content":"."},"done":true,"total_duration":2057551864,...}
默认流式返回,同样可以通过
stream: false参数一次性返回。
generate 和 chat 的区别在于,generate 是一次性生成的数据,而 chat 可以附加历史记录,支持多轮对话。

Ollama 提供了便捷的本地大模型部署方案,支持多种主流模型。通过命令行或 API 均可轻松集成到开发流程中,适合需要隐私保护或离线运行的场景。开发者可以利用其丰富的模型库快速验证想法,无需依赖云端服务即可体验大模型能力。

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online
生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online
基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online
将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online