跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书AI学习GitHub 精选镜像AI 生图工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
PythonAI算法

Ollama 本地部署与运行大模型完全指南

详细阐述了 Ollama 在本地部署和运行大语言模型的全流程。内容包括 MacOS、Windows、Linux 及 Docker 环境的安装方法,支持 NVIDIA 和 AMD GPU 的加速配置。文章介绍了如何运行内置模型、导入自定义 GGUF 或 PyTorch 模型,并通过 Modelfile 定制系统提示词和参数。此外,还涵盖了 CLI 命令详解、REST API 与 Python SDK 的集成方式、日志调试、并发优化策略以及 OpenAI 接口的兼容性配置。通过合理设置环境变量和硬件资源,可实现高效的数据隐私保护的本地 AI 服务。

RefactorPro发布于 2025/2/7更新于 2026/9/1181 浏览
Ollama 本地部署与运行大模型完全指南

Ollama 本地部署与运行大模型完全指南

本文详细介绍了 Ollama 在本地机器上部署和运行大型语言模型(LLM)的完整流程,涵盖安装、模型管理、自定义配置、API 集成及性能优化等核心内容。

随着大模型技术的发展,越来越多的企业和个人开始关注数据隐私与离线推理能力。虽然线上 API 提供了便利,但本地部署能确保数据不出域,且无需依赖网络状态。Ollama 作为一个开源项目,以其易用性和高性能成为本地运行 LLM 的首选工具之一。

Ollama 介绍

Ollama 是一个专为在本地机器上便捷部署和运行大型语言模型而设计的开源工具。它让用户无需深入了解复杂的底层技术,就能轻松地加载、运行和交互各种 LLM 模型。

核心特点

  • 本地部署:不依赖云端服务,用户可以在自己的设备上运行模型,保护数据隐私。
  • 多操作系统支持:无论是 Mac、Linux 还是 Windows,都能方便地安装使用。
  • 多模型支持:支持多种流行的 LLM 模型,如 Llama、Falcon、Gemma 等,一键运行。
  • 易于使用:提供了直观的命令行界面,操作简单,上手容易。
  • 可扩展性:支持自定义配置,用户可以根据自己的硬件环境和模型需求进行优化。
  • 开源:代码完全开放,用户可以自由查看、修改和分发。

安装指南

MacOS

苹果电脑安装非常简单,下载 Zip 包解压,运行即可。

https://ollama.com/download/Ollama-darwin.zip

安装运行 Ollama.app 之后,系统任务栏上会有一个应用程序图标,点击可以关闭 Ollama 服务。

Windows

Windows 版本目前处于预览版,官方也提供了安装包,安装过程与其他软件类似。

https://ollama.com/download/OllamaSetup.exe

Linux

Linux 系统直接通过 Shell 脚本执行安装命令:

curl -fsSL https://ollama.com/install.sh | sh

Docker 容器化运行

除了直接安装,还可以通过 Docker 运行。官方提供了镜像 ollama/ollama。

CPU 模式

CPU 模式不需要额外配置驱动,直接运行即可:

docker run -d -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama
NVIDIA GPU 模式

若要在容器内使用 Nvidia GPU 进行推理,需要安装 NVIDIA Container Toolkit。

  1. 安装 NVIDIA GPU 驱动程序及工具包(以 Ubuntu 为例):
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \
  && curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
    sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
    sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
sudo apt-get update
sudo apt-get install -y nvidia-container-toolkit
  1. 配置容器运行时并重启 Docker 服务:
sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker
  1. 启动容器时增加 --gpus=all 参数:
docker run -d --gpus=all -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama
AMD GPU 模式

如果使用 AMD GPUs,请使用 rocm 版本的镜像:

docker run -d --device /dev/kfd --device /dev/dri -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama:rocm

运行模型

本地运行

安装成功后,运行模型只需一条命令:

ollama run llama3.1

首次运行会自动从网络下载模型(约 5GB),下载完成后即可进入对话模式。

容器运行

在容器内部运行模型与本机操作一致:

docker exec -it ollama ollama run llama3

支持的模型

使用 ollama run <模型名> 来运行模型。以下是常用模型列表:

模型参数大小模型名
Llama3.18B4.7Gllama3.1
Llama3.1405B231Gllama3.1:405b
GLM49B5.5Gglm4
Qwen27B4.4Gqwen2
Qwen272B41Gqwen2:72b
Llama38B4.7Gllama3
Llama370B40Gllama3:70b
Phi33.8B2.3Gphi3
Gemma29B5.5Ggemma2
Mistral7B4.1Gmistral

完整的模型库可在 Ollama Library 中搜索查看。不同型号模型对内存要求如下:

  • 运行 7B 型号模型至少需要 8 GB RAM。
  • 运行 13B 型号模型至少需要 16 GB RAM。
  • 运行 33B 型号模型至少需要 32 GB RAM。

自定义模型

除了内置模型,Ollama 支持导入自定义模型,主要格式包括 GGUF、PyTorch 和 Safetensors。

从 GGUF 导入

GGUF 是一种二进制格式,旨在快速加载和保存模型。导入步骤如下:

  1. 创建名为 Modelfile 的文件,包含 FROM 指令指向本地文件路径:
FROM ./vicuna-33b.Q4_0.gguf
  1. 在 Ollama 中创建模型,指定名称:
ollama create vicuna-33b-q4 -f Modelfile
  1. 像运行内置模型一样运行新模型:
ollama run vicuna-33b-q4

从 PyTorch 或 Safetensors 导入

如果模型架构支持(如 LlamaForCausalLM, MistralForCausalLM),可直接导入:

FROM /path/to/safetensors/directory

如果不支持,需先使用 llama.cpp 转换为 GGUF 格式。常见转换脚本包括 convert_hf_to_gguf.py 等。

示例:转换 HuggingFace 模型

git clone https://github.com/ggerganov/llama.cpp.git
pip install -r llama.cpp/requirements.txt
python llama.cpp/convert_hf_to_gguf.py vicuna-hf --outfile vicuna-13b-v1.5.gguf --outtype q8_0

定制系统提示

Ollama 允许为每个模型定制系统提示(System Prompt)。以智谱 GLM 为例:

  1. 确保已下载模型:
ollama pull glm4
  1. 创建 Modelfile:
FROM glm4
PARAMETER temperature 1
SYSTEM """
你现在是一个修仙世界的修炼导师,来指导人们修炼。每次回答都以:「渺小的人类」作为开始。
"""
  1. 创建并运行模型:
ollama create glm4xiuxian -f ./Modelfile
ollama run glm4xiuxian

Modelfile 参数详解

  • PARAMETER temperature:控制生成随机性,越高越具创造性。
  • PARAMETER top_p:核采样参数,限制词汇选择范围。
  • PARAMETER repeat_penalty:重复惩罚,防止模型陷入循环。
  • SYSTEM:定义模型的初始角色和指令。

CLI 命令全解

模型管理

  • 创建模型:ollama create mymodel -f ./Modelfile
  • 拉取模型:ollama pull llama3(若存在则更新)
  • 删除模型:ollama rm llama3(节省磁盘空间)
  • 复制模型:ollama cp llama3 my-model(占用双倍空间)

交互与调试

  • 多行输入:使用单引号 ''' 包裹多行文本。
  • 多模态模型:输入图片路径即可上传,例如 /Users/jmorgan/Desktop/smile.png。
  • 非交互式提问:ollama run glm4xiuxian 今天我要做什么
  • 显示信息:ollama show glm4(仅针对已下载模型)

服务启动

默认端口为 11434。如需同时运行多个实例,可通过环境变量指定端口:

OLLAMA_HOST=127.0.0.1:11435 ollama serve

关键环境变量说明:

  • OLLAMA_DEBUG:开启调试日志。
  • OLLAMA_KEEP_ALIVE:模型在内存中保持加载的时间(默认 5 分钟)。
  • OLLAMA_MAX_LOADED_MODELS:每个 GPU 最大加载模型数。
  • OLLAMA_NUM_PARALLEL:并行请求的最大数量。
  • OLLAMA_MODELS:模型存储目录路径。

REST API 介绍

Ollama 启动后自动提供 HTTP API。

生成接口

curl http://localhost:11434/api/generate -d '{
  "model": "llama3",
  "prompt":"Why is the sky blue?"
}'

聊天接口

curl http://localhost:11434/api/chat -d '{
  "model": "llama3",
  "messages": [
    { "role": "user", "content": "why is the sky blue?" }
  ]
}'

流式响应

设置 stream: false 可获取非流式结果,默认通常为流式输出。

Python API 介绍

Ollama 提供了 Python 客户端库,便于集成到应用中。

安装依赖

pip install ollama

基础用法

import ollama
response = ollama.chat(model='llama3', messages=[
  {'role': 'user', 'content': 'Why is the sky blue?',}
])
print(response['message']['content'])

流式处理

stream = ollama.chat(
  model='llama3',
  messages=[{'role': 'user', 'content': 'Why is the sky blue?'}],
  stream=True,
)
for chunk in stream:
  print(chunk['message']['content'], end='', flush=True)

错误处理

try:
  ollama.chat(model)
except ollama.ResponseError as e:
  print('Error:', e.error)
  if e.status_code == 404:
    ollama.pull(model)

自定义客户端

from ollama import Client
client = Client(host='http://localhost:11434')
response = client.chat(model='llama3', messages=[
  {'role': 'user', 'content': 'Say this is a test',}
])

日志与调试

日志文件通常位于 ~/.ollama/logs/server.log。可通过以下命令查看:

cat ~/.ollama/logs/server.log

如果是 Docker 运行,直接查看容器日志:

docker logs <container-name>

上下文窗口调整

默认上下文窗口为 2048 tokens。可通过 /set parameter num_ctx 4096 或在 API 中指定 options.num_ctx 进行调整。

GPU 使用情况检查

使用 ps 命令查看模型加载情况。Processor 列显示:

  • 100% GPU:模型完全加载至显存。
  • 100% CPU:模型完全加载至系统内存。
  • 48%/52% CPU/GPU:模型部分加载至显存和内存。

Ollama 作为服务使用

默认情况下,Ollama 仅监听本地回环地址。若要允许外部访问:

Linux/Server

OLLAMA_HOST=0.0.0.0:11434 ollama serve

macOS

使用 launchctl 设置环境变量:

launchctl setenv OLLAMA_HOST "0.0.0.0"

随后重启 Ollama 应用。

并发与性能优化

服务器设置可用于调整并发处理能力:

  • OLLAMA_MAX_LOADED_MODELS:默认值为 3 * GPU 数量或 3(CPU 推理)。
  • OLLAMA_NUM_PARALLEL:默认根据可用内存自动选择 4 或 1。
  • OLLAMA_MAX_QUEUE:排队请求最大数量,默认 512。

处理逻辑:

  1. 若有足够内存,可同时加载多个模型。
  2. 对于同一模型,若有足够内存,可并发处理请求。
  3. 若内存不足,请求将排队等待,直至有模型空闲释放空间。

OpenAI 兼容性

Ollama 提供实验性的 OpenAI API 兼容性,便于迁移现有应用。

Python 客户端

from openai import OpenAI
client = OpenAI(
  base_url='http://localhost:11434/v1/',
  api_key='ollama',
)
chat_completion = client.chat.completions.create(
  messages=[{'role': 'user', 'content': 'Say this is a test'}],
  model='llama3',
)

JavaScript 客户端

import OpenAI from 'openai'
const openai = new OpenAI({
  baseURL: 'http://localhost:11434/v1/',
  apiKey: 'ollama',
})
const chatCompletion = await openai.chat.completions.create({
  messages: [{ role: 'user', content: 'Say this is a test' }],
  model: 'llama3',
})

模型名称映射

若程序强制依赖特定模型名(如 gpt-3.5-turbo),可复制模型进行重命名:

ollama cp llama3 gpt-3.5-turbo

这样原有程序无需修改即可调用本地模型。

模型存储

不同操作系统的默认存储位置:

  • MacOS:~/.ollama/models
  • Linux:/usr/share/ollama/.ollama/models
  • Windows:C:\Users\%username%\.ollama\models

可通过 OLLAMA_MODELS 环境变量指定其他目录。

总结

Ollama 极大地降低了本地运行大模型的门槛,支持多种硬件环境及开发语言。通过合理的参数配置和环境变量管理,可以实现高效、稳定的私有化部署方案。结合 OpenAI 兼容接口,开发者可以快速构建基于本地大模型的应用生态。

目录

  1. Ollama 本地部署与运行大模型完全指南
  2. Ollama 介绍
  3. 核心特点
  4. 安装指南
  5. MacOS
  6. Windows
  7. Linux
  8. Docker 容器化运行
  9. CPU 模式
  10. NVIDIA GPU 模式
  11. AMD GPU 模式
  12. 运行模型
  13. 本地运行
  14. 容器运行
  15. 支持的模型
  16. 自定义模型
  17. 从 GGUF 导入
  18. 从 PyTorch 或 Safetensors 导入
  19. 定制系统提示
  20. Modelfile 参数详解
  21. CLI 命令全解
  22. 模型管理
  23. 交互与调试
  24. 服务启动
  25. REST API 介绍
  26. 生成接口
  27. 聊天接口
  28. 流式响应
  29. Python API 介绍
  30. 安装依赖
  31. 基础用法
  32. 流式处理
  33. 错误处理
  34. 自定义客户端
  35. 日志与调试
  36. 上下文窗口调整
  37. GPU 使用情况检查
  38. Ollama 作为服务使用
  39. Linux/Server
  40. macOS
  41. 并发与性能优化
  42. OpenAI 兼容性
  43. Python 客户端
  44. JavaScript 客户端
  45. 模型名称映射
  46. 模型存储
  47. 总结

更多推荐文章

查看全部
  • 2025 机构开发栈:14 款 Web 模板与技术选型深度评测
  • Claude Code 安装与使用指南
  • Python + Bright Data MCP 实时抓取 Google 搜索结果实战
  • WebPShop 插件:Photoshop 处理 WebP 格式的完整指南
  • Codex 跨平台安装与登录指南(Windows/macOS/Linux)
  • 华为设备 SSH 远程登录配置实战
  • Claude Sonnet 4.6 API 接入教程:Python/Node.js 完整示例
  • ComfyUI 深度解析:高性能 AI 绘画工作流实践
  • MonkeyCode:重新定义 AI 编程协作流程
  • Python pip 常用命令:版本查看、安装与卸载
  • 清华大学与智谱团队探索 RLHF 的 Scaling Laws
  • 15 个提示词降低 AIGC 检测率,优化写作人类化表达
  • OpenClaw macOS 安装配置教程
  • PyCharm 安装通义灵码插件实现 AI 辅助编码
  • 扩散模型加速:Flow Matching 到 Rectified Flow 再到 Reflow
  • Flowise 物联网融合:智能家居设备联动方案
  • 银发浪潮下的智能护理革命:全球老龄化社会护理机器人发展研究
  • NVIDIA Jetson Thor T5000 解析:产品谱系、架构性能与落地路径
  • OpenClaw 六大开源替代方案深度对比
  • Windows 11 配置 Intel RealSense D435i 深度相机及 Python 开发

相关免费在线工具

  • 加密/解密文本

    使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online

  • RSA密钥对生成器

    生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online

  • Mermaid 预览与可视化编辑

    基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online

  • 随机西班牙地址生成器

    随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online

  • Gemini 图片去水印

    基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online

  • curl 转代码

    解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online