离线部署LLM的方法

最近想离线部署一套AI编程工具,以提高生产力。首先研究离线部署LLM的方法,再研究离线部署AI Agent的方法。

Ollama 离线安装

目前LLM主流部署框架与工具主要有:Ollama、llama.cpp、vLLM、LM Studio、Xinference、Hugging Face Transformers。综合考虑,先从最简单的开始,离线部署Ollama。

根据机器的CPU指令集,从github官网下载 Ollama的安装包,这里选择绿色版的ollama-windows-amd64.zip。

安装过程

解压ollama-windows-amd64.zip到安装目录,并将 ollama 的安装目录添加到系统环境变量 PATH 中。

配置过程

  • 修改 Ollama 下载模型保存位置

新建环境变量 OLLAMA_MODELS ,设置其值为 Ollama 下载模型保存位置。

启动过程

打开 cmd 窗口,启动 ollama 服务器实例,如下所示:

1
2
## 启动Ollama服务
ollama serve

再打开一个cmd窗口,执行 ollama 客户端命令,如下所示:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
## 从模型文件创建模型
ollama create
## 显示模型信息
ollama show
## 运行模型
ollama run 模型名称
ollama run deepseek-r1:1.5b
## 从注册表中拉去模型
ollama pull 模型名称
## 将模型推送到注册表
ollama push
## 列出模型
ollama list
## 复制模型
ollama cp
## 删除模型
ollama rm 模型名称
## 获取有关Ollama任何命令的帮助信息
ollama help

离线部署

  • 拷贝ollama-windows-amd64.zip到离线电脑
  • 设置环境变量 PATH 和 OLLAMA_MODELS

离线部署大模型的方法有三种:

  • 方法一,拷贝 Ollama 下载模型文件夹到离线电脑,不推荐作为首选,因为它存在一些限制。
  • 方法二,使用专用工具打包传输,例如 ollamazip 、 ollama-export / ollama-toolkit 等,可以简化打包和迁移过程,它们会自动处理 Manifest 和 Blob 之间的关联。
  • 方法三,使用 GGUF 文件 + Modelfile(推荐)
1
2
3
4
5
# 在有网电脑上获取 GGUF 文件
# 传输文件
# 在离线电脑上创建 Modelfile
# 创建并运行模型
ollama create qwen3.8:27b-ud-k_8_xl -f Modelfile

问题记录

内存访问违规问题

  • 问题描述

运行如下命令时报错:

1
2
3
4
ollama create
ollama run deepseek-r1:1.5b

Error: 500 Internal Server Error: llama-server process has terminated: exit status 0xc0000005: The instruction at 0xp referenced memory at 0xp. The memory could not be s
  • 原因分析
    原因: NVIDIA 显卡驱动过旧:这是非常常见的原因。Ollama 的新版本(如 v0.30.11 及以上)通常需要 NVIDIA 驱动版本在 550.x 或更高。旧版驱动可能与新版的 CUDA 后端不兼容,从而引发内存错误。

  • 解决方案

直接去 NVIDIA 官网,下载并安装最新稳定版驱动。安装后重启电脑。

大语言模型没有在GPU上运行的问题

部署 qwen3.6:9b

  • 问题描述

ollama run qwen3.6:9b 时,大模型没有运行在GPU上,这一点可以通过执行 ollama ps 查看。

  • 原因分析

原因一,没有安装最新的显卡驱动。

  • 解决方案

针对原因一,安装好最新的显卡驱动之后,将 ollama.exe 添加到使用显卡执行的列表中去。

部署 qwen3.8:27b

  • 问题描述

ollama run qwen3.8:27b 时,大模型没有运行在GPU上,这一点可以通过执行 ollama ps 查看。

  • 原因分析

缺少Microsoft Visual C++2015-2022

  • 解决方案

安装 Microsoft Visual C++2015-2022。

远程访问 ollama 部署的大模型

  • 在“用户变量”中新建,变量名 OLLAMA_HOST,变量值 0.0.0.0(若需解决跨域问题,可同时新建 OLLAMA_ORIGINS,值为 *)
  • 验证远程访问是否成功,可以访问 http://<服务器IP>:11434,若返回 “Ollama is running”,即表示远程访问配置成功。

因模型名称问题导致无法访问

  • ollama 创建并运行模型时,要注意模型名称的定义,要类似 qwen3.8:27b-ud-k_8_xl 。
  • 打开浏览器访问 http://<你的IP>:11434/v1/models , 查看模型的精确名称。

调整大模型 KV 缓存的量化精度

  • 设置环境变量 OLLAMA_FLASH_ATTENTION=”1”; $env:OLLAMA_KV_CACHE_TYPE=”q4_0” 。

参考链接

  1. 手把手教你离线安装Ollama,by 张云飞.
  2. Ollama GPU 加速配置:CUDA、ROCm 与 Metal 全平台实战指南,by easton.
  3. 当使用 ollama 本地部署 Error: could not connect to ollama app, is it running?,by 系着秋天的落叶.
  4. 一文读懂大模型推理中的HTTP协议,by 游凯超.
  5. OpenAI API 协议完全指南 - 大模型应用开发的通用标准,by 不想起名字1111111.
  6. OpenAI API格式详解-Chat Completions,by 啤酒泡泡.
  7. 工具调用:OpenAI 工具调用从一到多函数调用,by JPPeng.
  8. 大模型 LLM 缓存机制:从原理到工程实践,by guangzhengli.
  9. 魔塔社区,by modelscope