本篇文章旨在记录Ubuntu24.04下基于Docker运行Dify+Ollama+Xinference部署本地大模型工程,仅供参考。

目录

一、概述

二、部署前操作

2.1 卸载系统自带显卡驱动

2.2 安装显卡驱动

2.3 安装nvidia-container-toolkit服务

​编辑

 2.4 安装Docker服务

三、安装部署服务

3.1、部署Ollama服务

3.1.1 脚本一键部署

3.1.2 手动部署

3.1.3 Ollama常用命令

3.2 部署Dify服务 

3.2.1 下载Dify,使用Docker运行

​编辑 3.2.2 添加模型

 3.3 部署Xinference服务


一、概述

操作系统环境: 

cat /etc/os-release 
PRETTY_NAME="Ubuntu 24.04.2 LTS"
NAME="Ubuntu"
VERSION_ID="24.04"
VERSION="24.04.2 LTS (Noble Numbat)"
VERSION_CODENAME=noble
ID=ubuntu

显卡:NVIDIA GeForce RTX 4090  

Ollama:版本 0.6.5

        作用:Ollama 是一个开源的本地大语言模型运行框架,专为在本地机器上便捷部署和运行大型语言模型(LLM)而设计。

Dify:版本1.1.3

        Dify 是一个开源的大语言模型(LLM)应用开发平台,它致力于为开发者提供一站式、低代码甚至无代码的 AI 应用开发体验。

Xinference: v1.4.0

        Xorbits Inference(Xinference)是一个性能强大且功能全面的分布式推理框架。可用于大语言模型(LLM),语音识别模型,多模态模型等各种模型的推理。通过Xorbits Inference,你可以轻松地一键部署你自己的模型或内置的前沿开源模型。

二、部署前操作

2.1 卸载系统自带显卡驱动

# 卸载系统自带驱动
sudo apt-get --purge remove nvidia*
sudo apt autoremove

# 禁用系统自带的nouveau nvidia驱动
sudo vim /etc/modprobe.d/blacklist.conf 

# --------在配置文件最后添加下列参数--------#
blacklist nouveau 
options nouveau modeset=0 

# 更新系统参数
sudo update-initramfs -u

# 查看系统是否屏蔽成功,如果没有结果返回,即屏蔽成功
lsmod | grep nouveau

2.2 安装显卡驱动

# 方式1:使用系统工具自动安装
# 使用这个方法会安装带有recommended字段的驱动,即推荐的驱动
ubuntu-drivers devices
sudo ubuntu-drivers autoinstall

# 方式2:
# 或者你想要安装特定版本的驱动,你只需要这样
ubuntu-drivers devices
sudo apt install nvidia-driver-550
# 使用apt命令再加上上面"ubuntu-drivers devices"里列表任意一个驱动

# 方式3:手动下载驱动文件,并手动安装
sudo apt install gcc & make 

# 驱动下载地址:https://www.nvidia.cn/geforce/drivers/ 

wget https://cn.download.nvidia.cn/XFree86/Linux-x86_64/570.144/NVIDIA-Linux-x86_64-570.144.run

# 执行安装
sudo chmod a+x NVIDIA-Linux-x86_64-570.133.07.run
sudo ./NVIDIA-Linux-x86_64-570.133.07.run -no-x-check -no-nouveau-check -no-opengl-files
# -no-x-check: 安装时关闭X服务;
# -no-nouveau-check: 安装时禁用nouveau;
# -no-opengl-files: 只安装驱动文件,不安装OpenGL文件。

 

如果遇到报错:NVIDIA-SMI has failed because it couldn't communicate with the NVIDIA driver. Make sure that the latest NVIDIA driver is installed and running.

解决方法:重启进入BIOS,关闭secure boot  

2.3 安装nvidia-container-toolkit服务

# 1. 配置源
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 tee /etc/apt/sources.list.d/nvidia-container-toolkit.list

# (可选)配置存储库以使用实验包:   
sed -i -e '/experimental/ s/^#//g' /etc/apt/sources.list.d/nvidia-container-toolkit.list    

# 2. 更新列表
sudo apt-get  update 

# 3. 安装
sudo apt-get install -y nvidia-container-toolkit

#安装完成后重启服务器

 2.4 安装Docker服务

#安装依赖包
sudo apt-get install ca-certificates curl gnupg lsb-release

##安装docker官方秘钥
sudo curl -fsSL http://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo apt-key add -

#添加docker源
sudo add-apt-repository "deb [arch=amd64] http://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable"

#安装docker
sudo apt-get install docker-ce docker-ce-cli containerd.io

# 设置开机启动和启动服务
sudo systemctl enable docker & sudo systemctl start docker 

三、安装部署服务

3.1、部署Ollama服务

3.1.1 脚本一键部署

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

3.1.2 手动部署

#下载并解压与操作系统匹配的安装包
curl -L https://ollama.com/download/ollama-linux-amd64.tgz -o ollama-linux-amd64.tgz
sudo tar -C /usr -xzf ollama-linux-amd64.tgz

#启动 Ollama并验证
sudo ollama serve 

# 查看版本
sudo ollama -v

# 将 Ollama 添加为自启动服务(推荐)
sudo useradd -r -s /bin/false -U -m -d /usr/share/ollama ollama
sudo usermod -a -G ollama $(whoami)

# 在该位置:/etc/systemd/system/ollama.service 创建服务文件
[Unit]
Description=Ollama Service
After=network-online.target

[Service]
ExecStart=/usr/bin/ollama serve
User=ollama
Group=ollama
Restart=always
RestartSec=3
Environment="PATH=$PATH" #修改成你想要存储的位置
Environment="OLLAMA_HOST=0.0.0.0:11434"

[Install]
WantedBy=default.target

# 加载服务
sudo systemctl daemon-reload

# 设置成开机启动
sudo systemctl enable ollama &  sudo systemctl start ollama

3.1.3 Ollama常用命令

可用命令 解释 可用命令 解释
serve 启动 ollama 服务。 stop 停止一个正在运行的模型。
create 根据一个 Modelfile 创建一个模型。 pull 从一个模型仓库(registry)拉取一个模型。
show 显示某个模型的详细信息。 push 将一个模型推送到一个模型仓库。
run 运行一个模型。 list 列出所有模型。
ps 列出所有正在运行的模型。 rm 删除一个模型。
cp 复制一个模型。 help

获取关于任何命令的帮助信息。

        Ollama 指定源拉取模型,以魔塔社区为例

ollama run modelscope.cn/Qwen/QwQ-32B-GGUF:q4_k_m

        查看模型详细内容,使用命令ollama show 模型名称

ubuntu@ubuntu:~$ ollama show deepseek-r1:14b
  Model
    architecture        qwen2      # 模型架构
    parameters          14.8B      # 参数量
    context length      131072     # 上下文长度
    embedding length    5120       # 嵌入维度
    quantization        Q4_K_M     # 量化方式

3.2 部署Dify服务 

3.2.1 下载Dify,使用Docker运行

#下载dify
https://github.com/langgenius/dify


#修改.env文件
cp .env.example .env


#执行启动命令
docker compose -f docker-compose.yaml -p dify up -d

 3.2.2 添加模型

        Dify添加模型时,模型名称必须与Ollama模型名称一致,不然会无法添加。查看模型名称可以使用命令:ollama list

 3.3 部署Xinference服务

        本次部署Xinference服务,是用于运行Rerank模型,以增加知识库检索和召回能力。,

# 下载容器
docker pull xprobe/xinference

# 运行容器
sudo docker run  -d  --name xinference --gpus all  \
-v /Model-Software/Xinference/models:/root/models  \
-v /Model-Software/Xinference/.xinference:/root/.xinference  \
-v /Model-Software/Xinference/.cache/huggingface:/root/.cache/huggingface  \
-e XINFERENCE_HOME=/root/models  -p 9997:9997 \
--restart=always  xinference:latest  xinference-local -H 0.0.0.0

# -v /Model-Software/Xinference/models:/root/models 将宿主机目录挂载到宿主机,目录路径和名称可以按照自己的环境去定义

        下载模型可以选择国内的魔塔社区,Huggingface需要科学上网才可以下载。点击下载后不要刷新页面,可以通过一下命令观察下载进度。

docker logs -f # 你的容器名称
docker logs -f xinference

每次重启Docker或者系统后,Xinference都需要登录Web页面手动启动模型。当前此问题我查了很多文章,暂时没发现有什么好的解决办法。如果大家有方法解决这个问题,麻烦也告诉我一下。感谢。 

         Dify添加Xinference模型

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐