Ollama 本地大模型
Ollama 是一个轻量级的本地大语言模型运行框架,让你可以在自己的服务器上轻松运行 Llama 3、Qwen2、Gemma 等开源大模型,无需依赖云端 API。它提供了简洁的命令行工具和兼容 OpenAI 的 REST API,非常适合在企业内网部署私有化 AI 服务。
- CentOS Stream 9 & 10 / AlmaLinux 9.x & 10.x / Rocky Linux 9.x & 10.x
- 至少 8 GB 内存(运行 7B 模型);16 GB 以上推荐
- 如需 GPU 加速:NVIDIA 显卡 + 已安装驱动和 CUDA(参考 NVIDIA 驱动与 CUDA)
- CPU 模式也可运行,但速度较慢
安装 Ollama
Section titled “安装 Ollama”Ollama 提供了一键安装脚本,适用于所有主流 Linux 发行版:
curl -fsSL https://ollama.com/install.sh | sh安装完成后,Ollama 会自动注册为 systemd 服务并启动。验证安装:
ollama --version检查服务状态:
sudo systemctl status ollama手动安装(离线环境)
Section titled “手动安装(离线环境)”如果服务器无法访问外网,可以手动安装:
# 下载对应架构的二进制文件curl -L https://ollama.com/download/ollama-linux-amd64.tgz -o ollama-linux-amd64.tgz
# 解压到 /usr 目录sudo tar -C /usr -xzf ollama-linux-amd64.tgz
# 验证ollama --version创建专用用户和组:
sudo useradd -r -s /bin/false -U -m -d /usr/share/ollama ollamasudo usermod -a -G ollama $(whoami)Ollama 使用类似 Docker 的方式管理模型。使用 ollama pull 拉取模型。
# 拉取 Meta Llama 3.1 8B(约 4.7 GB)ollama pull llama3.1
# 拉取阿里通义千问 Qwen2.5 7B(约 4.7 GB)ollama pull qwen2.5
# 拉取 Google Gemma 2 9B(约 5.4 GB)ollama pull gemma2
# 拉取更小的模型,适合低配机器ollama pull llama3.2:3bollama pull qwen2.5:1.5b查看已下载的模型列表:
ollama list删除不需要的模型:
ollama rm llama3.1# 启动交互式对话ollama run llama3.1进入对话后直接输入问题即可。输入 /bye 退出对话。
# 通过管道传入问题echo "用一句话解释什么是 Linux" | ollama run qwen2.5在交互模式中,使用 """ 开始和结束多行输入:
>>> """请将以下内容翻译为英文:Ollama 是一个强大的本地大模型框架。"""API 使用
Section titled “API 使用”Ollama 默认在 http://localhost:11434 提供 REST API 服务。
生成文本(Generate)
Section titled “生成文本(Generate)”curl http://localhost:11434/api/generate -d '{ "model": "qwen2.5", "prompt": "请解释 Linux 中的 SELinux 是什么", "stream": false}'对话接口(Chat)
Section titled “对话接口(Chat)”curl http://localhost:11434/api/chat -d '{ "model": "qwen2.5", "messages": [ { "role": "system", "content": "你是一个 Linux 系统管理专家。" }, { "role": "user", "content": "如何查看 CentOS 的系统版本?" } ], "stream": false}'OpenAI 兼容接口
Section titled “OpenAI 兼容接口”Ollama 同时提供兼容 OpenAI API 格式的接口,方便对接已有工具:
curl http://localhost:11434/v1/chat/completions -d '{ "model": "qwen2.5", "messages": [ {"role": "user", "content": "你好"} ]}'这意味着你可以将 Ollama 作为 OpenAI API 的替代后端,只需将 API 地址指向 http://localhost:11434/v1。
列出可用模型
Section titled “列出可用模型”curl http://localhost:11434/api/tagssystemd 服务管理
Section titled “systemd 服务管理”安装脚本会自动创建 systemd 服务。如果你是手动安装的,需要自行创建服务文件:
sudo tee /etc/systemd/system/ollama.service > /dev/null <<'EOF'[Unit]Description=Ollama ServiceAfter=network-online.target
[Service]ExecStart=/usr/bin/ollama serveUser=ollamaGroup=ollamaRestart=alwaysRestartSec=3Environment="HOME=/usr/share/ollama"Environment="OLLAMA_HOST=0.0.0.0"
[Install]WantedBy=default.targetEOF启用并启动服务:
sudo systemctl daemon-reloadsudo systemctl enable --now ollama常用服务管理命令:
# 查看状态sudo systemctl status ollama
# 查看日志sudo journalctl -u ollama -f
# 重启服务sudo systemctl restart ollama
# 停止服务sudo systemctl stop ollama环境变量配置
Section titled “环境变量配置”通过 systemd 的 override 机制修改配置:
sudo systemctl edit ollama在编辑器中添加需要的环境变量:
[Service]# 监听所有网络接口(默认仅 localhost)Environment="OLLAMA_HOST=0.0.0.0"# 修改模型存储目录Environment="OLLAMA_MODELS=/data/ollama/models"# 设置并发请求数Environment="OLLAMA_NUM_PARALLEL=4"# 设置最大已加载模型数量Environment="OLLAMA_MAX_LOADED_MODELS=2"修改后重新加载并重启:
sudo systemctl daemon-reloadsudo systemctl restart ollamaGPU 加速(NVIDIA CUDA)
Section titled “GPU 加速(NVIDIA CUDA)”Ollama 会自动检测 NVIDIA GPU 并使用 CUDA 加速。前提是已正确安装 NVIDIA 驱动。
确认 GPU 已识别
Section titled “确认 GPU 已识别”# 检查 NVIDIA 驱动nvidia-smi
# 检查 Ollama 是否识别到 GPUollama ps运行一个模型后,通过 nvidia-smi 可以看到 GPU 显存被占用:
# 先运行模型ollama run llama3.1 "hello" && nvidia-smi指定 GPU
Section titled “指定 GPU”如果有多块 GPU,可以通过环境变量指定使用哪些:
sudo systemctl edit ollama[Service]# 仅使用 GPU 0 和 GPU 1Environment="CUDA_VISIBLE_DEVICES=0,1"仅使用 CPU
Section titled “仅使用 CPU”如果你有 GPU 但希望强制使用 CPU 运行:
CUDA_VISIBLE_DEVICES="" ollama run llama3.1自定义模型(Modelfile)
Section titled “自定义模型(Modelfile)”你可以通过 Modelfile 创建自定义模型配置:
cat > ~/Modelfile <<'EOF'FROM qwen2.5
SYSTEM """你是一名资深 Linux 系统管理员,专门负责 CentOS/AlmaLinux/Rocky Linux 服务器运维。回答问题时请给出具体的命令和步骤。"""
PARAMETER temperature 0.3PARAMETER num_ctx 4096EOF
# 创建自定义模型ollama create linux-assistant -f ~/Modelfile
# 运行自定义模型ollama run linux-assistant如果需要从其他机器访问 Ollama API,需要开放端口:
sudo firewall-cmd --permanent --add-port=11434/tcpsudo firewall-cmd --reload模型下载缓慢
Section titled “模型下载缓慢”可以设置代理加速下载:
sudo systemctl edit ollama[Service]Environment="HTTPS_PROXY=http://your-proxy:7890"Environment="HTTP_PROXY=http://your-proxy:7890"Environment="NO_PROXY=localhost,127.0.0.1"如果遇到 OOM(内存不足),可以尝试使用更小的量化模型:
# 使用 4-bit 量化的小模型ollama pull llama3.2:3bollama pull qwen2.5:1.5b查看模型详细信息
Section titled “查看模型详细信息”ollama show llama3.1ollama show llama3.1 --modelfile