Ollama 本地大模型部署实战:虚拟机环境下的完整操作指南

1. 引言

随着大语言模型技术的快速发展,越来越多的开发者和企业希望在自己的环境中部署本地大模型,以满足数据隐私、定制化和成本控制等需求。Ollama 作为一款开源的大模型管理平台,凭借其简洁的命令行界面和强大的模型管理能力,成为本地部署的首选工具之一。

本文将以一台 Linux 虚拟机为例,从零开始演示 Ollama 的完整部署过程,包括环境准备、安装部署、模型下载与运行、环境变量配置以及常见问题排查,帮助读者在虚拟机环境中快速搭建属于自己的本地大模型服务。

2. 环境准备

2.1 虚拟机硬件要求

在开始部署之前,需要确认虚拟机的硬件配置是否满足运行大模型的基本要求。以下是推荐的配置参考:

配置项 最低要求 推荐配置
CPU 4 核 8 核及以上
内存 8 GB 16 GB 及以上
磁盘 20 GB 可用空间 50 GB 及以上(SSD 更佳)
GPU(可选) NVIDIA 显卡,显存 8 GB 及以上

需要注意的是,如果没有 GPU,Ollama 会以 CPU-only 模式运行,推理速度会相对较慢,但功能不受影响。

2.2 操作系统准备

本文以 CentOS Stream 9 虚拟机为例进行演示。在虚拟机中安装好操作系统后,建议先执行以下命令更新系统软件包:

bash 复制代码
sudo dnf update -y

同时确认系统已安装 wget 和 tar 工具,这两个工具在后续部署过程中会用到:

bash 复制代码
sudo dnf install -y wget tar

3. Ollama 部署方式一:官方脚本安装

官方脚本安装是最简单快捷的方式,适合大多数场景。脚本会自动完成 Ollama 的下载、安装、用户创建以及 systemd 服务配置。

3.1 下载安装脚本

在虚拟机终端中执行以下命令,下载 Ollama 官方提供的安装脚本:

bash 复制代码
wget https://ollama.com/install.sh

3.2 执行安装脚本

下载完成后,使用 sh 命令执行安装脚本:

bash 复制代码
sh install.sh

安装过程中会输出类似如下的日志信息:

bash 复制代码
>>> Installing ollama to /usr/local
>>> Downloading Linux amd64 bundle
################################################################################## 100.0%
>>> Creating ollama user...
>>> Adding ollama user to render group...
>>> Adding ollama user to video group...
>>> Adding current user to ollama group...
>>> Creating ollama systemd service...
>>> Enabling and starting ollama service...
Created symlink /etc/systemd/system/default.target.wants/ollama.service → /etc/systemd/system/ollama.service.
>>> The Ollama API is now available at 127.0.0.1:11434.
>>> Install complete. Run "ollama" from the command line.
WARNING: No NVIDIA/AMD GPU detected. Ollama will run in CPU-only mode.

从日志中可以看到,Ollama 已成功安装到 /usr/local 目录,并自动创建了 systemd 服务。默认 API 监听地址为 127.0.0.1:11434。

3.3 验证安装结果

执行以下命令查看 Ollama 的版本信息,确认安装成功:

bash 复制代码
ollama --version

同时可以通过 systemctl 命令查看 Ollama 服务的运行状态:

bash 复制代码
systemctl status ollama

如果服务状态显示为 active (running),说明 Ollama 已正常运行。

4. Ollama 部署方式二:压缩包手动安装

对于无法访问外网或需要离线部署的场景,可以选择从 GitHub Releases 页面下载 Ollama 的压缩包进行手动安装。这种方式属于绿色安装,安装后需要手动配置 systemd 服务。

4.1 下载压缩包

访问 Ollama 的 GitHub Releases 页面,获取最新版本的下载链接。以 v0.5.11 版本为例,执行以下命令下载 Linux amd64 架构的压缩包:

bash 复制代码
wget https://github.com/ollama/ollama/releases/download/v0.5.11/ollama-linux-amd64.tgz

4.2 解压并验证

创建目录并解压压缩包:

bash 复制代码
mkdir ollama
tar zxf ollama-linux-amd64.tgz -C ollama/
cd ollama

解压后,执行 bin/ollama 命令验证程序是否可用:

bash 复制代码
bin/ollama

如果输出包含 serve、create、run、pull、list 等子命令的帮助信息,说明程序已正常解压。

4.3 配置 systemd 服务

为了让 Ollama 能够以系统服务的方式后台运行,需要手动创建 systemd 服务文件。执行以下命令创建服务文件:

bash 复制代码
vim /etc/systemd/system/ollama.service

在文件中写入以下内容:

bash 复制代码
[Unit]
Description=Ollama Service
After=network-online.target

[Service]
ExecStart=/usr/local/bin/ollama serve
User=ollama
Group=ollama
Restart=always
RestartSec=3
Environment="PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/bin"
Environment="OLLAMA_HOST=0.0.0.0:11434"
Environment="OLLAMA_ORIGINS=*"

[Install]
WantedBy=default.target

保存并退出后,重新加载 systemd 配置并启动服务:

bash 复制代码
sudo systemctl daemon-reload
sudo systemctl enable ollama
sudo systemctl start ollama

需要注意的是,压缩包方式安装后需要手动创建 ollama 用户和用户组,并确保 /usr/local/bin/ollama 路径下存在可执行的 Ollama 二进制文件。相比脚本安装方式,压缩包方式步骤更多,因此推荐优先使用官方脚本安装。

5. 下载并运行本地大模型

5.1 下载模型

Ollama 安装完成后,默认没有任何本地模型。可以通过 ollama pull 命令从模型仓库下载模型到本地。以通义千问 qwen:7b 模型为例,执行以下命令:

bash 复制代码
ollama pull qwen:7b

模型名称的格式为「模型名:参数数量」,其中 b 表示十亿,7b 即 70 亿参数。下载完成后,可以通过 ollama list 命令查看本地已有的模型:

bash 复制代码
ollama list

输出结果类似如下:

bash 复制代码
NAME        ID              SIZE      MODIFIED
qwen:7b     2091ee8c8d8f    4.5 GB    13 minutes ago

5.2 运行模型

模型下载完成后,使用 ollama run 命令启动模型并进行对话测试:

bash 复制代码
ollama run qwen:7b

进入交互式对话界面后,可以直接输入问题与本地大模型进行对话:

bash 复制代码
>>> Linux是什么?
Linux是一种自由和开放源代码的操作系统。最初由芬兰计算机科学家Linus
Torvalds于1991年在互联网上发布,自此Linux开始广泛流传和应用。

Linux操作系统的核心是由许多小型的、免费的软件组成的。这种基于社区的合作模式
使得Linux能够不断发展和完善,并适用于各种不同的硬件设备和应用场景。

对话结束后,输入 /bye 命令退出模型交互界面。

5.3 模型管理常用命令

Ollama 提供了丰富的模型管理命令,常用的包括:

  • ollama serve:启动 Ollama 服务。
  • ollama pull:从模型仓库下载模型。
  • ollama run:运行指定模型。
  • ollama list:列出本地已有的模型。
  • ollama cp:复制模型。
  • ollama rm:删除模型。
  • ollama show:查看模型详细信息。

6. 配置 Ollama 环境变量

6.1 常用环境变量说明

Ollama 支持通过环境变量对服务进行灵活配置。以下是一些常用的环境变量:

变量名称 变量功能 使用实例
OLLAMA_HOST 服务监听地址和端口(默认 127.0.0.1:11434) OLLAMA_HOST=0.0.0.0:11434
OLLAMA_MODELS 模型默认下载保存路径 OLLAMA_MODELS=/data/ollama/models
OLLAMA_KEEP_ALIVE 模型在内存中的保持时间(默认 5 分钟) OLLAMA_KEEP_ALIVE=24h
OLLAMA_NUM_PARALLEL 并发请求数量 OLLAMA_NUM_PARALLEL=2
OLLAMA_MAX_LOADED_MODELS 同时加载的模型数量 OLLAMA_MAX_LOADED_MODELS=2

6.2 修改环境变量

通过编辑 systemd 服务文件来设置环境变量。执行以下命令打开服务文件:

bash 复制代码
vim /etc/systemd/system/ollama.service

Service 部分下添加 Environment 配置行,例如:

bash 复制代码
Environment="OLLAMA_HOST=0.0.0.0:11434"
Environment="OLLAMA_ORIGINS=*"
Environment="OLLAMA_KEEP_ALIVE=24h"

保存退出后,重新加载 systemd 配置并重启 Ollama 服务使配置生效:

bash 复制代码
sudo systemctl daemon-reload
sudo systemctl restart ollama

6.3 允许外部访问

默认情况下,Ollama 只监听 127.0.0.1,即仅允许本机访问。如果需要让局域网内的其他主机访问 Ollama 服务,需要将 OLLAMA_HOST 设置为 0.0.0.0:11434。修改完成后,其他主机即可通过 http://虚拟机IP:11434 访问 Ollama 的 API 接口。

7. 验证服务与常见问题排查

7.1 验证 API 服务

Ollama 服务启动后,可以通过 curl 命令验证 API 是否正常响应:

bash 复制代码
curl http://127.0.0.1:11434

如果服务正常,会返回 Ollama is running 的提示信息。

7.2 查看服务日志

当遇到问题时,可以通过 journalctl 命令查看 Ollama 的运行日志:

bash 复制代码
journalctl -u ollama -f

7.3 常见问题与解决方法

  • 模型下载速度慢:可以配置代理或使用国内镜像源加速下载。
  • 内存不足导致模型加载失败:建议选择参数规模更小的模型,或增加虚拟机内存。
  • 外部主机无法访问:检查 OLLAMA_HOST 是否设置为 0.0.0.0,并确认虚拟机防火墙已放行 11434 端口。
  • CPU-only 模式推理速度慢:这是正常现象,建议为虚拟机配置 GPU 直通或使用更小参数的模型。

8. 利用 Ollama 和 MaxKB 构建企业内部知识库

前面章节完成了 Ollama 本地大模型的部署与运行。本章将在此基础上,结合开源知识库平台 MaxKB,把企业内部的文档、经验与常见问题沉淀为可检索的本地知识库,并通过 Ollama 提供的本地大模型实现智能问答,真正让 AI 成为企业内部的知识助手。下面将按照从环境准备到应用上线的完整流程,逐步演示每一步的具体操作。

8.1 整体架构与实现原理

整个系统由 Ollama 与 MaxKB 两部分组成:Ollama 负责提供本地大模型的推理能力,MaxKB 负责文档管理、文本向量化、知识检索与问答编排。两者可以部署在同一台 CentOS Stream 9 虚拟机,也可以分别部署,通过端口对外提供服务。本教程采用单机部署方案,所有组件均运行在同一台虚拟机中。

MaxKB 基于 RAG(检索增强生成)技术实现知识库问答,其核心流程如下:

  • 知识库构建阶段:上传企业内部文档,系统自动进行文本拆分与向量化,并将向量数据存入本地向量库。
  • 问答阶段:用户提出问题后,系统先将问题向量化,再从知识库中召回相似度较高的分段,最后将召回内容与问题一起提交给 Ollama 本地大模型生成回答。

在开始部署前,请先确认虚拟机满足以下条件:

  • 操作系统:CentOS Stream 9(与前面章节一致)
  • 内存:建议 16 GB 及以上(MaxKB 与 Ollama 同时运行需要较多内存)
  • 磁盘:建议 50 GB 及以上可用空间
  • 网络:能够访问外网以下载 Docker 镜像

8.2 部署 MaxKB

MaxKB 需要运行在 Docker 环境中,因此首先需要安装 Docker。以下命令均在 CentOS Stream 9 虚拟机的 root 用户或具有 sudo 权限的用户下执行。

8.2.1 安装 Docker

**第一步:配置 Docker 的 yum 软件源。**执行以下命令创建仓库文件:

bash 复制代码
vim /etc/yum.repos.d/docker.repo

在文件中写入以下内容:

bash 复制代码
[docker-ce]
name=docker
baseurl=https://mirrors.aliyun.com/docker-ce/linux/rhel/9/x86_64/stable
gpgcheck=0

保存并退出(在 vim 中按 Esc 键,输入 :wq 后回车)。

**第二步:安装 Docker。**执行以下命令:

bash 复制代码
dnf install docker -y

**第三步:启动 Docker 服务并设置为开机自启。**依次执行以下两条命令:

bash 复制代码
systemctl start docker
systemctl enable docker

**第四步:验证 Docker 是否正常运行。**执行以下命令:

bash 复制代码
docker info

如果输出中包含 Server Version 等 Docker 版本信息,说明 Docker 已成功安装并启动。

8.2.2 下载并运行 MaxKB 镜像

**第一步:拉取 MaxKB 镜像。**从官方镜像仓库拉取 MaxKB 镜像,执行以下命令:

bash 复制代码
docker pull registry.fit2cloud.com/maxkb/maxkb

镜像下载需要一定时间,请耐心等待。下载完成后,可以通过 docker images 命令确认镜像已存在:

bash 复制代码
docker images | grep maxkb

**第二步:创建数据持久化目录。**执行以下命令创建目录,避免容器重启后数据丢失:

bash 复制代码
mkdir -p /MaxKB/postgresql/data /MaxKB/python-packages

**第三步:运行 MaxKB 容器。**执行以下命令启动容器,将宿主机 8080 端口映射到容器内部:

bash 复制代码
docker run -d --name=maxkb --restart=always -p 8080:8080 \
-v /MaxKB/postgresql/data:/var/lib/postgresql/data \
-v /MaxKB/python-packages:/opt/maxkb/app/sandbox/python-packages \
registry.fit2cloud.com/maxkb/maxkb:latest

**第四步:验证容器是否正常运行。**执行以下命令查看容器状态:

bash 复制代码
docker ps | grep maxkb

如果输出中 STATUS 列为 Up 状态,说明容器已成功启动。

**第五步:访问 MaxKB 后台。**在浏览器中访问 http://虚拟机IP:8080 进入 MaxKB 后台登录页面。默认登录信息如下:

  • 用户名:admin
  • 默认密码:MaxKB@123..

首次登录后,建议立即修改默认密码以保障系统安全。

8.3 在 MaxKB 中接入 Ollama 本地大模型

登录 MaxKB 后台后,需要先将 Ollama 部署的本地大模型添加到平台中,后续创建应用时才能调用该模型进行问答。具体操作步骤如下:

**第一步:进入模型管理页面。**在 MaxKB 后台左侧菜单中点击【模型管理】。

**第二步:添加模型。**点击【添加模型】按钮,在弹出的配置界面中,选择模型供应商为 Ollama,并填写以下关键信息:

  • 模型名称:自定义名称,例如 qwen:7b。
  • 模型类型:选择大语言模型。
  • API 地址:填写 Ollama 服务的访问地址,例如 http://虚拟机IP:11434
  • 模型名称:填写 Ollama 中已下载的模型名称,例如 qwen:7b。

**第三步:校验连通性。**填写完成后点击【校验】按钮,系统会测试与 Ollama 服务的连通性。如果校验失败,请检查以下事项:

  • 确认 Ollama 服务已启动:在虚拟机中执行 systemctl status ollama 查看服务状态。
  • 确认 OLLAMA_HOST 已设置为 0.0.0.0:11434,允许外部访问。
  • 确认虚拟机防火墙已放行 11434 端口,执行以下命令:
bash 复制代码
firewall-cmd --permanent --add-port=11434/tcp
firewall-cmd --reload

**第四步:保存模型配置。**校验通过后点击【保存】按钮,即可在后续应用编排中使用该本地大模型。

8.4 创建企业知识库并上传文档

**第一步:创建知识库。**在 MaxKB 后台左侧菜单中点击【知识库】,进入知识库列表页面,点击【创建知识库】按钮。

**第二步:填写知识库信息。**在弹出的对话框中,输入知识库名称与描述,选择向量模型,并将知识库类型设置为通用型,然后点击【确定】完成创建。

**第三步:上传文档。**创建完成后,进入知识库详情页,通过拖拽或点击选择文件的方式上传企业内部文档。

MaxKB 支持多种文档格式,包括 Markdown、TXT、PDF、DOCX、HTML、XLS、XLSX、CSV 等。每次最多上传 50 个文件,单个文件不超过 100 MB。

**第四步:选择分段方式。**上传文档后,MaxKB 会自动对文档进行分段与向量化处理。分段方式支持智能分段与高级分段两种:

  • 智能分段:系统根据文档标题结构自动逐级下钻分段,适合结构清晰的文档。
  • 高级分段:用户可自定义分段标识符与分段长度,适合需要精细控制分段边界的场景。

建议在编写文档时,每个问题或知识点之间用空行隔开,这样便于 MaxKB 更准确地进行向量化与分段,提高后续问答的命中率。

8.5 创建应用并编排问答流程

**第一步:创建应用。**在 MaxKB 后台左侧菜单中点击【应用管理】,进入应用列表页面,点击【创建应用】按钮,选择高级编排类型,并填写应用名称与描述。

**第二步:进入编排画布。**新创建的应用会默认生成一个简易工作流,包含基本信息节点与开始节点。

**第三步:添加知识库检索节点。**在编排画布中,通过右上角的【添加组件】按钮,将【知识库检索】节点拖入工作流,并完成以下配置:

  • 关联上一步创建的知识库。
  • 设置检索模式(如向量检索或混合检索)。
  • 设置相似度阈值(建议初始设置为 0.6,后续根据测试结果调整)。
  • 设置引用分段数量(建议设置为 3-5 段)。
  • 检索问题选择开始节点的用户问题。

**第四步:添加 AI 对话节点。**将【AI 对话】节点拖入工作流,并完成以下配置:

  • 选择已接入的 Ollama 本地大模型(如 qwen:7b)。
  • 设置角色与提示词,例如:你是一个企业知识助手,请根据以下知识库内容回答用户问题。
  • 在提示词中引用知识库检索节点的输出结果。

**第五步:连线并发布。**将开始节点、知识库检索节点、AI 对话节点按顺序连线,确保数据流正确传递。编排完成后,点击右上角的【发布】按钮使应用生效。

**第六步:获取访问链接。**发布后即可获得该应用的公开访问链接,企业内部员工可以通过该链接与本地大模型进行知识问答。

8.6 命中测试与效果调优

应用发布后,建议先进行命中测试,验证知识库的检索效果。具体操作如下:

**第一步:进入命中测试页面。**在知识库详情页中,点击【命中测试】标签页。

**第二步:输入测试问题。**在输入框中输入一个典型的业务问题,例如:公司年假政策是什么?点击【测试】按钮,系统会展示命中的分段内容与相似度分数。

**第三步:分析测试结果。**根据测试结果,可以通过以下方式优化问答效果:

  • 调整相似度阈值:如果回答不够准确,可以适当提高直接回答的阈值,例如设置为 0.9,确保只有高置信度的分段才会被直接引用。
  • 优化分段内容:为每个分段补充更完整的问题描述与答案,提高检索命中率。
  • 补充关联问题:在知识库中为常见问题提前配置关联问题,减少因表述差异导致的漏召回。

**第四步:反复迭代。**重复执行命中测试与调优操作,直到问答效果达到预期。通过以上调优,可以让本地大模型结合企业知识库给出更精准、更贴合业务场景的回答,显著降低通用大模型常见的幻觉问题。

8.7 应用场景与价值

利用 Ollama 与 MaxKB 构建的企业内部知识库,可以广泛应用于以下场景:

  • 新人培训:将企业制度、产品文档与历史经验沉淀为知识库,新人可以随时向本地 AI 提问,快速熟悉业务。
  • 技术支持:将常见故障与解决方案录入知识库,当员工遇到同类问题时,可以快速定位问题点并获得处理建议。
  • 数据安全:所有数据均在本地流转与处理,无需上传云端,满足医疗、金融等对数据隐私有严格要求的行业规范。

通过日常积累,企业可以把所有人的智慧、经验与解决方案持续沉淀到本地知识库中,让 AI 真正成为员工的 24 小时指导老师,降低培训成本并提升整体工作效率。

8. 总结

本文详细介绍了在 Linux 虚拟机中部署 Ollama 的完整过程,包括环境准备、两种安装方式、模型下载与运行、环境变量配置以及常见问题排查。通过以上步骤,读者可以在自己的虚拟机中快速搭建一个可用的本地大模型服务。

Ollama 的部署只是本地大模型应用的第一步。后续可以结合 MaxKB 等开源知识库工具,将 Ollama 部署的模型与 RAG 技术结合,构建企业内部的智能问答系统,实现数据隐私保护与高效知识检索的完美结合。

相关推荐
论文复现现场3 小时前
RTX 4090 24GB 能跑 Qwen3.8-27B 吗?单卡显存计算与云端部署指南
人工智能·python·云计算·llama·gpu算力
zhangphil14 小时前
AI大模型生成maxTokens 与上下文context
android·llama
淼澄研学4 天前
英伟达参投Hugging Face,本地部署Llama 3实操指南
llama
qyyyyy5708 天前
PDF 转 JSON 怎么做?从表格和元数据提取到 LLM 结构化处理
数据库·pdf·json·erlang·llama
薛定e的猫咪9 天前
【大模型量化】使用 llama.cpp 完成量化、本地推理与服务化部署
人工智能·深度学习·算法·llama
CODER03049 天前
win11系统编译安装cuda版llama-cpp-python(踩完所有的坑)
开发语言·python·llama
今天吃饺子9 天前
超高创新模型!TF-SAX-Llama 轴承故障诊断
大语言模型·llama·故障诊断
明月千里赴迢遥10 天前
Node搭建代理清洗API请求
llama
Rei224811 天前
使用llama.cpp的Qwen3.6-27B-Q8本地部署详解【Linux GPU】
linux·运维·llama