离线 Linux 服务器部署 Ollama 并运行 Qwen 大模型教程
介绍在离线 Linux 环境下部署 Ollama 框架及运行 Qwen2.5 大模型的完整流程。涵盖环境检查、Ollama 安装配置、模型格式转换(Safetensors 转 GGUF)、Modelfile 编写及模型导入步骤。同时提供命令行交互、API 调用方式及常见故障排查指南,帮助用户实现本地私有化大模型部署。

介绍在离线 Linux 环境下部署 Ollama 框架及运行 Qwen2.5 大模型的完整流程。涵盖环境检查、Ollama 安装配置、模型格式转换(Safetensors 转 GGUF)、Modelfile 编写及模型导入步骤。同时提供命令行交互、API 调用方式及常见故障排查指南,帮助用户实现本地私有化大模型部署。

Ollama 是一个用于在本地运行大型语言模型(LLM)的开源工具,它简化了模型的下载、管理和推理过程。对于需要数据隐私或网络受限环境的场景,在离线 Linux 服务器上部署 Ollama 并加载如 Qwen2.5 等开源模型是一种高效方案。本文档将详细介绍从环境准备到模型运行的完整技术流程。
在开始部署前,请确保服务器满足以下基本硬件和软件条件:
使用以下命令确认 CPU 架构和系统版本:
# 查看 Linux 发行版版本
cat /etc/os-release
# 查看 CPU 架构
lscpu | grep Architecture
若架构为 x86_64,请下载 ollama-linux-amd64;若为 aarch64 或 arm64,请下载 ollama-linux-arm64。
由于目标服务器处于离线状态,需在联网机器上完成下载,再通过传输介质(如 USB 硬盘、内网 SCP)上传至离线服务器。
在有网络的终端执行下载(以 AMD64 为例):
wget https://github.com/ollama/ollama/releases/download/v0.1.39/ollama-linux-amd64.tgz
*注意:版本号可能随时间更新,请前往 GitHub Releases 页面获取最新稳定版链接。
将下载的 .tgz 文件上传至离线服务器后,执行以下操作:
# 解压到 /usr 目录
sudo tar -C /usr -xzf ollama-linux-amd64.tgz
# 验证安装路径
ls /usr/local/bin/ollama
默认情况下,Ollama 会监听本地端口 11434。启动服务:
# 前台启动测试
ollama serve
若需后台运行,建议使用 systemd 配置服务。创建 /etc/systemd/system/ollama.service 文件:
[Unit]
Description=Ollama Service
After=network-online.target
[Service]
ExecStart=/usr/local/bin/ollama serve
Restart=always
RestartSec=3
User=ollama
Group=ollama
Environment="OLLAMA_HOST=0.0.0.0"
[Install]
WantedBy=default.target
启用并启动服务:
sudo systemctl daemon-reload
sudo systemctl enable ollama
sudo systemctl start ollama
验证服务状态:
systemctl status ollama
Ollama 原生支持部分模型,但对于特定版本的 Qwen2.5,可能需要手动转换格式。我们采用 ModelScope 或 Hugging Face 获取权重,并使用 llama.cpp 工具转换为 GGUF 格式。
推荐使用 Git LFS 克隆仓库:
# 安装 Git LFS
sudo apt-get install git-lfs
sudo git lfs install
# 克隆 Qwen2.5-1.5B-Instruct 模型
mkdir qwen_models && cd qwen_models
git clone https://www.modelscope.cn/Qwen/Qwen2.5-1.5B-Instruct.git
cd Qwen2.5-1.5B-Instruct
*注意:ModelScope 在国内访问较快,Hugging Face 可能需要代理。
Ollama 使用 GGUF 格式存储模型。我们需要利用 Ollama 源码中的 llama.cpp 子模块进行转换。
# 克隆 Ollama 主仓库(仅用于获取转换脚本)
git clone https://github.com/ollama/ollama.git
ollama_dir=$(pwd)/ollama
cd $ollama_dir
# 初始化子模块
git submodule init
git submodule update llm/llama.cpp
# 设置 Python 虚拟环境
python3 -m venv llm/llama.cpp/.venv
source llm/llama.cpp/.venv/bin/activate
pip install -r llm/llama.cpp/requirements.txt
进入模型目录,执行转换脚本:
# 假设模型文件位于 ./Qwen2.5-1.5B-Instruct/model.safetensors
python llm/llama.cpp/convert_hf_to_gguf.py \
--outfile converted.bin \
--outtype f16 \
./Qwen2.5-1.5B-Instruct
生成的 converted.bin 即为 GGUF 格式的模型文件。
Modelfile 是定义模型行为、提示词模板和系统指令的配置文件。
新建一个名为 Modelfile 的文件(无后缀),内容如下:
FROM converted.bin
TEMPLATE """{{ if .System }}<|im_start|>system
{{ .System }}<|im_end|>
{{ end }}{{ if .Prompt }}<|im_start|>user
{{ .Prompt }}<|im_end|>
{{ end }}<|im_start|>assistant
"""
SYSTEM """
你是一个乐于助人的助手,但你会用 20 世纪 30 年代黑手党暴徒的风格去回答问题
"""
PARAMETER temperature 0.7
PARAMETER top_p 0.9
*说明:TEMPLATE 定义了对话的输入输出格式,SYSTEM 设定了角色设定,PARAMETER 调整生成参数。
将 converted.bin 和 Modelfile 放在同一目录下,执行导入命令:
ollama create Qwen2.5-Mafia -f Modelfile
导入成功后,可通过以下命令验证:
ollama list
ollama show Qwen2.5-Mafia
直接在终端运行模型:
ollama run Qwen2.5-Mafia
输入问题后,模型将基于设定的风格返回回答。按 Ctrl+C 退出会话。
Ollama 默认提供 HTTP API,可通过 curl 调用:
curl http://localhost:11434/api/generate -d '{
"model": "Qwen2.5-Mafia",
"prompt": "你好,你是谁?",
"stream": false
}'
# 查看正在运行的进程
ollama ps
为了节省显存和磁盘空间,可使用 llama.cpp 对模型进行量化(如 Q4_K_M)。这会在精度损失极小的情况下大幅减小模型体积。
python llm/llama.cpp/quantize.py converted.bin Q4_K_M.gguf
随后在 Modelfile 中引用新的 .gguf 文件即可。
/usr/local/bin/ollama 及模型文件。ollama serve 是否正常运行,确认防火墙未拦截 11434 端口。在生产环境中部署时,建议绑定特定 IP 而非 0.0.0.0,并配置反向代理(如 Nginx)添加认证机制,防止未授权访问。
通过上述步骤,您可以在离线 Linux 服务器上成功部署 Ollama 并运行自定义配置的 Qwen2.5 模型。此方案适用于对数据隐私要求高、网络环境受限的开发与测试场景。随着社区发展,更多模型格式和优化工具将被集成,建议持续关注 Ollama 官方文档以获取最新特性。

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online
基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online
将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online
将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online