Ollama 可以说是我遇到过的最简单的部署大语言模型的方式。支持模型数量极多,部署所需要做的只需要一行指令。
美中不足的是 Ollama 的文档相当粗糙。对于 linux 部署,Ollama 文档提到在 /etc/systemd/system/ollama.service
文件中编写配置项目,能够把环境变量配置写进去。然而具体的配置项只字不提,还得翻项目代码才能看到。
当前版本(0.5.12)可配置的主要项目有这些。
配置项 | 描述 |
---|---|
OLLAMA_DEBUG | 显示额外的调试信息(例如 OLLAMA_DEBUG=1) |
OLLAMA_FLASH_ATTENTION | 启用 flash_attention |
OLLAMA_KV_CACHE_TYPE | K/V 缓存的量化类型(默认:f16) |
OLLAMA_GPU_OVERHEAD | 为每个 GPU 保留一定的 VRAM(字节) |
OLLAMA_HOST | ollama 服务器的IP地址(默认:127.0.0.1:11434) |
OLLAMA_KEEP_ALIVE | 模型在内存中保持加载状态的时长(默认"5m") |
OLLAMA_LLM_LIBRARY | 设置LLM库以绕过自动检测 |
OLLAMA_LOAD_TIMEOUT | 允许模型加载暂停的最长时间(默认"5m") |
OLLAMA_MAX_LOADED_MODELS | 每个GPU加载的最大模型数 |
OLLAMA_MAX_QUEUE | 队列中允许的最大请求数 |
OLLAMA_MODELS | 模型目录的路径 |
OLLAMA_NOHISTORY | 不保存 readline 历史记录 |
OLLAMA_NOPRUNE | 启动时不裁剪模型 blob |
OLLAMA_NUM_PARALLEL | 并行请求的最大数量 |
OLLAMA_ORIGINS | 允许的源列表(用逗号分隔) |
OLLAMA_SCHED_SPREAD | 始终在所有 GPU 上调度模型 |
OLLAMA_MULTIUSER_CACHE | 为多用户场景优化提示缓存 |
OLLAMA_CONTEXT_LENGTH | 默认使用的上下文长度(默认 2048) |
OLLAMA_NEW_ENGINE | 启用新的 Ollama 引擎 |
就可以在 /etc/systemd/system/ollama.service
内用 Environment=...
的形式填写配置了。像是这样子:
[Unit]
Description=Ollama Service
After=network-online.target
[Service]
ExecStart=/usr/bin/ollama serve
User=ollama
Group=ollama
Restart=always
RestartSec=3
Environment="OLLAMA_MODELS=/media/dolen/red_3t/models/ollama"
Environment="OLLAMA_KEEP_ALIVE=2h"
Environment="OLLAMA_HOST=0.0.0.0"
Environment="OLLAMA_FLASH_ATTENTION=1"
[Install]
WantedBy=default.target
修改后别忘了重启 Ollama 服务。
sudo systemctl daemon-reload
sudo systemctl restart ollama.service