跳到主要内容
极客日志极客日志面向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/7/2049 浏览
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  /etc/apt/sources.list.d/nvidia-container-toolkit.list
 apt-get update
 apt-get install -y nvidia-container-toolkit
tee
sudo
sudo
  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. 总结
  • 免费图片AI生成工具免费生成了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 免费图片视频在线生成30秒,将你的创意变成现实开始设计
  • X/Twitter免费视频下载器免登陆无限额度免费视频解析下载了解详情
  • 100+免费在线小游戏爽一把
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • 大模型幻觉问题深度治理:技术体系与工程实践
  • Kestrel:.NET 跨平台高性能 Web 服务器详解
  • UniApp 集成鸿蒙华为一键登录 Account Kit 实战
  • 基于 Code Server 搭建私有 LaTeX Web 编辑器
  • Android Jetpack Compose 开发应用指南
  • FPGA 加速图像处理:核心算法全解析
  • GitHub 黑客成长技术清单与安全工具资源汇总
  • 企业落地大模型的路径、方法与避坑指南
  • Ubuntu 前端开发环境搭建与 Vue 实战指南
  • ELF Hash 算法原理及 C++ 实现解析
  • ThinkPad T480 安装 macOS 的实用配置笔记
  • Android 及 Java 核心技术面试指南:高频考点与解析
  • 在 Cursor 中配置并使用 MCP 服务实战
  • Gemini Pro 实测:多模态、推理与代码能力的真实表现
  • Ollama 本地 AI 大模型部署完整教程
  • 合唱队形问题:动态规划解法
  • DeepSeek 中冷启动数据与多阶段训练的作用
  • 停车场收入统计算法题解
  • VMware 虚拟机 CentOS 磁盘扩容实战:解决 growpart 报错与 LVM 调整
  • ibbot(智体机灵):国产开源 AI 智能体平台解析

相关免费在线工具

  • 加密/解密文本

    使用加密算法(如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