本地部署开源大语言模型框架 Ollama 入门指南
Ollama 是一个本地部署开源大语言模型的框架,支持 Mac、Windows 和 Linux。本文介绍了 Ollama 的安装方法、服务启动、模型运行及 API 调用方式,包括生成模式和聊天模式的代码示例。详细说明了日志查看、局域网访问、GPU 指定及存储路径修改等配置技巧,并补充了自定义模型创建方法和系统硬件要求,帮助用户快速在本地构建 AI 应用环境。

Ollama 是一个本地部署开源大语言模型的框架,支持 Mac、Windows 和 Linux。本文介绍了 Ollama 的安装方法、服务启动、模型运行及 API 调用方式,包括生成模式和聊天模式的代码示例。详细说明了日志查看、局域网访问、GPU 指定及存储路径修改等配置技巧,并补充了自定义模型创建方法和系统硬件要求,帮助用户快速在本地构建 AI 应用环境。

Ollama 是一个可以在本地部署和管理开源大语言模型的框架。它极大地简化了开源大语言模型的安装和配置细节,一经推出就广受好评。目前已在 GitHub 上获得了大量 Star。
不管是著名的 Llama 系列,还是最新的 AI 新贵 Mistral,等等各种开源大语言模型,都可以用 Ollama 实现一键安装并运行。支持的更多模型的列表可以查看 Ollama 官网。
| Model | Parameters | Size | Download |
|---|---|---|---|
| Llama 2 | 7B | 3.8GB | ollama run llama2 |
| Mistral | 7B | 4.1GB | ollama run mistral |
本文就让我们一起入门 Ollama。
Ollama 支持各个平台:Mac、Windows 和 Linux,也提供了 Docker Image。在 Ollama 官网或者 GitHub 可以下载,然后一键安装 Ollama 框架。
curl -fsSL https://ollama.com/install.sh | shbrew install ollama由于 Ollama 刚支持 Windows 不久,在 Windows 上的相关配置还不够完善,以下我将主要以 Linux 上运行 Ollama 来举例说明。
在 Ollama 安装完成后,一般会自动启动 Ollama 服务,而且会自动设置为开机自启动。安装完成后,可以使用如下命令查看是否 Ollama 是否正常启动。如下例子中显示'Active: active (running)'表示 Ollama 已经正常启动。
systemctl status ollama
输出示例:
os
● ollama.service - Ollama Service
Loaded: loaded (/etc/systemd/system/ollama.service; enabled; vendor preset: enabled)
Drop-In: /etc/systemd/system/ollama.service.d
└─environment.conf
Active: active (running) since Thu 2024-03-07 09:09:39 HKT; 4 days ago
Main PID: 19975 (ollama)
Tasks: 29 (limit: 69456)
Memory: 1.1G
CPU: 14min 44.702s
CGroup: /system.slice/ollama.service
└─19975 /usr/local/bin/ollama serve
在 Linux 上,如果 Ollama 未启动,可以用如下命令启动 Ollama 服务:ollama serve,或者 sudo systemctl start ollama。
通过分析 Linux 的安装脚本 install.sh,就会看到其中已经将 ollama serve 配置为一个系统服务,所以可以使用 systemctl 来 start / stop ollama 进程。
启动 Ollama 服务后,可以查看当前的 Ollama 版本,以及常用命令。
ollama -v
ollama --help
至此,已经完成 Ollama 框架的安装,接下来,可以用一条命令在本地运行大语言模型。以著名的羊驼举例:ollama run llama2。
如果还没有下载过指定的大语言模型,这条命令将会先执行 ollama pull llama2,将大语言模型下载到本地,再在本地运行大语言模型。
下载完成后,运行效果如下:
ollama run llama2
>>> who are you?
I am LLaMA, an AI assistant developed by Meta AI that can understand and respond to human input in a conversational manner...
>>> Send a message (/? for help)
Ollama 还提供了 API 接口,方便开发者集成。
curl http://localhost:11434/api/generate -d '{
"model": "llama2",
"prompt":"Why is the sky blue?",
"stream": false
}'
返回结果如下:
{
"model": "llama2",
"created_at": "2024-02-26T04:35:10.787352404Z",
"response": "The sky appears blue because of a phenomenon called Rayleigh scattering...",
"done": true,
"total_duration": 7001870820,
"load_duration": 4930376,
"prompt_eval_duration": 60907000,
"eval_count": 309,
"eval_duration": 6931593000
}
除了生成模式,Ollama 还支持聊天模式(Chat),适合多轮对话场景。
curl http://localhost:11434/api/chat -d '{
"model": "llama2",
"messages": [
{"role": "user", "content": "Hello!"}
],
"stream": false
}'
使用 API 接口,就可以实现更多灵活的功能,比如与 IDE 插件配合,实现本地的编程助手。
在 Linux 上运行命令 journalctl -u ollama,即可查看运行日志。
在 Linux 上创建如下配置文件,并配置环境变量 OLLAMA_HOST 来指定对局域网提供服务的地址,再重启 Ollama 服务即可。
[Service]
Environment=OLLAMA_HOST=0.0.0.0:11434
如此配置后,即可由一台 GPU 服务器为本地局域网提供大语言模型的服务。
在 Linux 上创建如下配置文件,并配置环境变量 CUDA_VISIBLE_DEVICES 来指定运行 Ollama 的 GPU,再重启 Ollama 服务即可。
[Service]
Environment=CUDA_VISIBLE_DEVICES=1,2
默认情况下,不同操作系统存储的路径如下:
~/.ollama/models/usr/share/ollama/.ollama/modelsC:\Users\<username>\.ollama\modelsLinux 平台安装 Ollama 时,默认安装时会创建用户 ollama,再将模型文件存储到该用户的目录。但由于大模型文件往往特别大,有时需要将大模型文件存储到专门的数据盘,此时就需要修改大模型文件的存储路径。
官方提供的方法是设置环境变量 OLLAMA_MODELS。如果在 Linux 上尝试后没有成功,可能是因为权限问题。可以通过以下步骤来实现修改大模型文件的存储路径:
OLLAMA_MODELS。指定存储路径,再用此安装文件来安装 ollama。
[Service]
Environment=OLLAMA_MODELS=/home/user/lab/LLM/ollama/OLLAMA_MODELS
或者在安装完成后,创建如下配置文件,并配置环境变量 OLLAMA_MODELS 来指定存储路径,再重启 Ollama 服务。
Ollama 允许用户通过 Modelfile 创建自定义模型。Modelfile 类似于 Dockerfile,用于定义模型的基础参数。
Modelfile 的文件。FROM llama2
SYSTEM "You are a helpful coding assistant."
PARAMETER temperature 0.7
ollama create my-custom-model -f Modelfile
ollama run my-custom-model
为了获得较好的推理体验,建议硬件配置如下:
address already in use,检查 11434 端口是否被其他程序占用,或修改 OLLAMA_HOST 端口。sudo 运行相关命令,或检查 systemd 服务配置中的 User 字段。
微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 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