VMware云平台ubuntu虚拟机配置大模型

一、ESXi 虚拟机配置

项目 建议值 可选
CPU 16 核物理核心 向客户机操作系统公开硬件辅助的虚拟化
内存 64 GB 预留所有客户机内存 (全部锁定)
硬盘 500 GB 精简置备 厚置备快速置零

Ubuntu 22.04安装时配置阿里云ubuntu源


二、Ubuntu 系统初始化(可选)

1. 系统更新

sudo apt update && sudo apt upgrade -y

更新软件包索引并升级所有已安装的软件包,保证系统安全和软件最新
image

2. 关闭图形界面

sudo systemctl set-default multi-user.target
sudo reboot

设置系统启动为命令行模式(无图形界面),重启生效,节省资源
image


三、大页内存与 Swap 配置

1. 配置大页内存(4096 页 ≈ 8GB)

echo 'vm.nr_hugepages=4096' | sudo tee -a /etc/sysctl.conf
sudo sysctl -p

设置系统大页内存数量,提升内存管理效率,立即应用配置
image

2. 配置 64GB Swap

sudo swapoff -a
sudo rm -f /swapfile
sudo fallocate -l 64G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab

关闭旧 swap,删除旧文件,创建新64GB swap文件,设置权限、格式化、启用,开机自动挂载
image


四、中文语言环境配置(防止界面乱码)

sudo apt install -y language-pack-zh-hans
sudo locale-gen zh_CN.UTF-8
sudo update-locale LANG=zh_CN.UTF-8
sudo reboot

安装中文语言包,生成本地化配置,设置系统默认中文环境,重启生效
image


五、llama.cpp 安装(方法一)

llama.cpp 提供 Web 界面基础,适合轻量调试。不支持多用户和持久对话,模型无历史记忆,只通过拼接上下文实现短期记忆。

1. 安装依赖和创建目录

sudo apt install -y build-essential cmake python3-pip git wget curl libcurl4-openssl-dev
mkdir /llm

安装编译工具和网络库,创建存放模型和源码的主目录
image

2. 克隆并编译 llama.cpp

cd /llm
git clone https://github.com/ggerganov/llama.cpp
cd llama.cpp
mkdir -p build && cd build
cmake .. -DLLAMA_NATIVE=ON
make -j$(nproc)

克隆源码,创建构建目录,开启CPU AVX优化编译,使用所有CPU核心加速构建
imageimageimage

若 Git 克隆失败(如 GitHub 无法访问)使用如下方法

  1. 访问 llama.cpp 下载安装包
  2. 上传到 /llm 目录
  3. 解压安装:
sudo apt install -y unzip
unzip /llm/下载的安装包 -d /llm
mv /llm/解压出来的文件夹 /llm/llama.cpp
cd /llm/llama.cpp && mkdir -p build && cd build
cmake .. -DLLAMA_NATIVE=ON
make -j$(nproc)

通过 zip 包解压替代克隆,完成后同样编译构建


六、使用国内镜像下载大模型(hfd 工具)

1. 下载并配置 hfd.sh

cd /llm
wget https://hf-mirror.com/hfd/hfd.sh
chmod a+x hfd.sh
sudo apt install -y aria2

下载 HuggingFace 镜像工具脚本,赋予执行权限,安装 aria2 加速下载
image

2. 设置 HuggingFace 镜像环境变量

临时设置(当前终端有效):

export HF_ENDPOINT=https://hf-mirror.com

永久设置(写入 bash 配置):

echo 'export HF_ENDPOINT=https://hf-mirror.com' >> ~/.bashrc
source ~/.bashrc

image

3. 下载模型(以 DeepSeek-R1-0528-Qwen3-8B-GGUF 为例)

mkdir -p /llm/llama_deepseek/model
cd /llm/llama_deepseek/model
/llm/hfd.sh unsloth/DeepSeek-R1-0528-Qwen3-8B-GGUF \
  --include *Q4_K_M.gguf \
  --tool aria2c -x 8 -j 4

下载指定量化模型文件,使用 aria2 并行下载提高速度
image

下载失败错误处理

401 权限错误(需要登录授权):

/llm/hfd.sh unsloth/DeepSeek-R1-0528-Qwen3-8B-GGUF \
  --hf_username <用户名> \
  --hf_token <token> \
  --include *Q4_K_M.gguf \
  --tool aria2c -x 8 -j 4

使用 HuggingFace 账号和令牌进行授权下载

404 错误说明仓库不存在或隐藏,检查模型名称或访问权限。


七、启动模型 API 服务(REST 接口)

/llm/llama.cpp/build/bin/llama-server \
  -m /llm/llama_deepseek/model/DeepSeek-R1-0528-Qwen3-8B-GGUF/DeepSeek-R1-0528-Qwen3-8B-Q4_K_M.gguf \
  --ctx-size 4096 \
  --threads 16 \
  --port 53738 \
  --host 0.0.0.0

启动模型服务器,指定模型路径,设置上下文大小、线程数、监听端口和地址
image

查找可执行文件路径(如路径不明确)

find /llm/llama.cpp -type f -executable -name "llama-server"

本地 curl 测试示例(另开终端)

curl -X POST http://localhost:53738/completion -d '{
  "prompt": "介绍一下Linux内存管理。",
  "n_predict": 256
}' -H "Content-Type: application/json"

也可通过浏览器访问 http://服务器IP:53738 进行接口测试。
imageimageimage


八、配置开机自启服务(llama-server)

sudo tee /etc/systemd/system/llama.service > /dev/null << EOF
[Unit]
Description=llama.cpp Model Server
After=network.target

[Service]
Type=simple
User=root
ExecStart=/llm/llama.cpp/build/bin/llama-server \
  -m /llm/llama_deepseek/model/DeepSeek-R1-0528-Qwen3-8B-GGUF/DeepSeek-R1-0528-Qwen3-8B-Q4_K_M.gguf \
  --ctx-size 4096 \
  --threads 16 \
  --port 53738 \
  --host 0.0.0.0
Restart=always
RestartSec=10

[Install]
WantedBy=multi-user.target
EOF

sudo systemctl daemon-reload
sudo systemctl enable llama.service
sudo systemctl start llama.service
sudo systemctl status llama.service

创建 systemd 服务,设置开机自动启动,启动服务并检查状态
image


九、Ollama 安装配置(方法二)

一键安装(内网环境可能较慢,不推荐)

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

手动安装(推荐)

注意事项

升级前请先删除旧版:

sudo rm -rf /usr/lib/ollama

下载与安装(通过网页下载上传)

  1. 访问 Ollama Releases 下载 .tgz 安装包
  2. 使用 Xftp 等工具上传到服务器
  3. 解压安装:
sudo tar -C /usr -xzf ollama-linux-amd64.tgz

image

启动 Ollama

ollama serve

image

检查版本确认启动成功(新开终端)

ollama -v

image


配置为系统服务(开机自启)

创建用户和用户组

sudo useradd -r -s /bin/false -U -m -d /usr/share/ollama ollama
sudo usermod -a -G ollama $(whoami)

image

创建 systemd 服务文件

vim /etc/systemd/system/ollama.service

内容:

[Unit]
Description=Ollama Service
After=network-online.target

[Service]
ExecStart=/usr/bin/ollama serve
Environment="OLLAMA_HOST=0.0.0.0"
User=ollama
Group=ollama
Restart=always
RestartSec=3
Environment="PATH=$PATH"

[Install]
WantedBy=multi-user.target

启动并启用服务

sudo systemctl daemon-reload
sudo systemctl enable ollama
sudo systemctl start ollama
sudo systemctl status ollama

image


十、运行和下载 Ollama 模型

  1. 访问 Ollama模型库
  2. 搜索并选择模型,复制下载命令
  3. 运行示例:
ollama run qwen3:8b

第一次运行自动下载模型,后续可直接使用,刚安装好直接运行run命令可能卡住,重启解决问题

Ollama 仅提供命令行对话接口,无自带 Web UI,需要配合第三方界面。

image


十一、Open WebUI

1. 安装 Node.js 20

curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt install -y nodejs

imageimage

验证安装

node -v
npm -v

image


2. 设置 npm 镜像源(可选)

npm config set registry https://registry.npmmirror.com/

网络环境不佳时建议设置,避免安装失败
image


3. 克隆 Open WebUI 仓库

cd /llm
sudo git clone https://github.com/open-webui/open-webui.git
cd open-webui

image

Git 克隆失败解决方案

手动下载 ZIP 并上传服务器

解压:

apt install unzip
unzip open-webui-x.y.z.zip -d /llm
cd /llm
mv 解压文件夹 open-webui

4. 配置环境变量文件

cd /llm/open-webui
cp .env.example .env
nano .env

示例配置:

PORT=3000
HOST=0.0.0.0
# 可配置多个环境
# Ollama API URL
OLLAMA_API_BASE_URL=http://localhost:11434

#llama.cpp参数还未完全验证
# Llama.cpp API URL
LLAMA_API_BASE_URL=http://localhost:53738/completion

# 配置其他设置,例如是否需要认证
# WEBUI_AUTH=false
# 根据需要取消注释

image


5. 安装并构建前端依赖

# 先单独安装 y-protocols 避免模块缺失错误(可选)
npm install y-protocols --legacy-peer-deps

# 安装其余依赖
npm install --legacy-peer-deps

# 构建项目
npm run build

# 出现github报错自己搞个github代理或者多试一下

如网络问题导致失败,建议更换镜像或设置代理

imageimageimage

使用pip安装

add-apt-repository ppa:deadsnakes/ppa -y
apt update
sudo apt install python3-pip
pip install open-webui
rm /etc/apt/sources.list.d/deadsnakes-ubuntu-ppa*.list
apt update

6. 安装 Python3 及后端依赖

add-apt-repository ppa:deadsnakes/ppa -y
apt update
sudo apt install python3.12 python3.12-venv python3.12-dev python3.12-distutils python3.12-venv
rm /etc/apt/sources.list.d/deadsnakes-ubuntu-ppa*.list
apt update
#因为阿里源没有3.12版本所以临时使用官方源,安装完之后恢复阿里源
#当前环境因为是22.04.5 LTS (Jammy Jellyfish)所以自带python3.10.12,若不想安装需要更换系统到Ubuntu 24.04

推荐使用 Python 3.12,避免后端因版本过低报错
image

创建并激活虚拟环境(推荐)

因为自带的python3.10.12因此更推荐使用虚拟环境配置3.12

cd /llm/open-webui/backend
python3.12 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
# 下载慢时可用国内镜像加速
pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple

pip “Can't uninstall 'importlib-metadata'” 警告可忽略
imageimage

物理环境(不推荐)

pip install -r requirements.txt

可加 -i 参数加速下载


7. 启动服务

启动前端服务(仅限测试)

cd /llm/open-webui
npm run preview -- --host 0.0.0.0

运行后会显示访问端口,也可用 --port 指定固定端口

虚拟环境启动后端(推荐)

cd /llm/open-webui/backend
source venv/bin/activate
bash start.sh
#访问ip地址:8080
#他会访问hg下载模型,这个报错可以不管
#进入web会让你注册管理员账号,注册后进入web

imageimageimageimage

物理环境启动后端(不推荐)

cd /llm/open-webui/backend
bash start.sh

9. systemd 后台服务配置

后端服务(虚拟环境)

vim /etc/systemd/system/openwebui-backend.service

内容:

[Unit]
Description=Open WebUI Backend Service (with Python venv)
After=network.target

[Service]
Type=simple
WorkingDirectory=/llm/open-webui/backend
ExecStart=/bin/bash -c "source /llm/open-webui/backend/venv/bin/activate && exec bash /llm/open-webui/backend/start.sh"
Restart=always
User=root

[Install]
WantedBy=multi-user.target

后端服务(物理环境)

vim /etc/systemd/system/openwebui-backend.service

内容:

[Unit]
Description=Open WebUI Backend Service
After=network.target

[Service]
WorkingDirectory=/llm/open-webui/backend
ExecStart=/bin/bash start.sh
Restart=always
User=root

[Install]
WantedBy=multi-user.target

启用启动后端服务

sudo systemctl daemon-reload
sudo systemctl enable openwebui-backend
sudo systemctl start openwebui-backend
sudo systemctl status openwebui-backend

image


前端服务(若无必要不用设置,正常使用调用后端即可)

vim /etc/systemd/system/openwebui-frontend.service

内容:

[Unit]
Description=Open WebUI Frontend Service
After=network.target

[Service]
WorkingDirectory=/llm/open-webui
ExecStart=/usr/bin/npm run preview
Restart=always
User=root
Environment=PORT=3000
Environment=HOST=0.0.0.0

[Install]
WantedBy=multi-user.target

启动并启用前端服务:

sudo systemctl daemon-reload
sudo systemctl enable openwebui-frontend
sudo systemctl start openwebui-frontend
sudo systemctl status openwebui-frontend

10. 访问验证

浏览器访问:

http://服务器IP:8080

image
image

posted @ 2025-08-05 11:17  MiyauchiRenge  阅读(16)  评论(0)    收藏  举报