GPU服务器本地搭建Dify+xinference实现大模型应用


前言

本文使用的GPU服务器为UCloud GPU服务器30块使用7天,显卡Tesla P40

一、显卡驱动配置

1.检测显卡

首先检查有没有驱动

nvidia-smi

没有驱动则安装

检测你的NVIDIA图形卡和推荐的驱动程序的模型。执行命令:

apt install ubuntu-drivers-common
ubuntu-drivers devices 

输出结果为
在这里插入图片描述
从中可以看到,这里有一个设备是Tesla P30。对应的驱动是550。不同驱动不同时间,有时候会有几个可选的,建议选择其中推荐的。

2.安装驱动

你可以选择,安装所有推荐的驱动,如下命令

 sudo ubuntu-drivers autoinstall

也可以直接安装最新的

sudo apt install nvidia-driver-550

运行nvidia-smi查看驱动信息

在这里插入图片描述

执行命令完成后都能看到CUDA版本、显存大小,表示安装成功

二、安装nvidia-docker

这里需要在线安装需要访问外网可能出现下载失败等问题。
离线安装方式:ubuntu离线安装docker及nvidia-container-toolkit

请先确保安装docker。此处不在展示docker安装
Nvidia Docker 是专门针对使用 Nvidia GPU 的容器应用程序而设计的 Docker 工具。它允许用户在容器中使用 Nvidia GPU 进行加速计算,并提供了与 Nvidia GPU 驱动程序和 CUDA 工具包的集成。

地址:https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html#installing-with-apt

配置生产存储库:

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

从存储库更新软件包列表:

sudo apt-get update

安装 NVIDIA Container Toolkit 软件包:

sudo apt-get install -y nvidia-container-toolkit

如果出现Warning: apt-key is deprecated. Manage keyring files in trusted.gpg.d instead (see apt-key(8)).

使用get.docker.com脚本安装Docker,并且在执行过程中遇到了"apt-key is deprecated. Manage keyring files in trusted.gpg.d instead (see apt-key(8))."的警告消息。这是因为apt-key命令已经被弃用,现在应该使用trusted.gpg.d目录来管理密钥文件。

sudo apt-get update
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/debian $(lsb_release -cs) stable"

配置 Docker
使用以下命令配置容器运行时nvidia-ctk:

sudo nvidia-ctk runtime configure --runtime=docker

该nvidia-ctk命令会修改/etc/docker/daemon.json主机上的文件。文件已更新,以便 Docker 可以使用 NVIDIA 容器运行时。

重新启动 Docker 守护进程:

sudo systemctl restart docker

验证
拉取镜像进行验证

docker pull registry.cn-chengdu.aliyuncs.com/rundreams-open/nvidia_tritonserver:21.10-py31

启动docker验证进行:

docker run -it --gpus all registry.cn-chengdu.aliyuncs.com/rundreams-open/nvidia_tritonserver:21.10-py3 /bin/bash

在这里插入图片描述

二、安装Xinference

官网:https://inference.readthedocs.io/zh-cn/latest/index.html

docker部署官方文档:https://inference.readthedocs.io/zh-cn/latest/getting_started/using_docker_image.html

如果不想用docker安装可以查看我另外一篇博客里边记录了Xinference安装及问题:https://blog.csdn.net/qq_43548590/article/details/142251544

1.拉取镜像

运行命令拉取镜像

docker pull registry.cn-hangzhou.aliyuncs.com/xprobe_xinference/xinference

2.运行Xinference

创建目录

#用于挂载数据
mkdir -p /usr/java/docker/xinference/data 
#用于挂载本地模型
mkdir -p /usr/java/docker/xinference/models

运行Xinference

将挂载目录换为自己的
1180ac777a10换位自己的镜像ID。使用docker images查看

docker run \
--name xinference \
-e XINFERENCE_MODEL_SRC=modelscope \
-p 9997:9997 \
-v /usr/java/docker/xinference/data/.xinference:/root/.xinference \
-v /usr/java/docker/xinference/data/.cache/huggingface:/root/.cache/huggingface \
-v /usr/java/docker/xinference/data/.cache/modelscope:/root/.cache/modelscope \
-v /usr/java/docker/xinference/models:/data/models \
--gpus all 1180ac777a10 xinference-local -H 0.0.0.0 --log-level debug

浏览器访问xinference地址:http://IP:9997/
在这里插入图片描述

3.模型部署

1.从xinference中下载模型部署
选择我们需要部署的模型,比如我这里选择Qwen2进行部署。填写相应的参数,进行一键部署。第一次部署会下载模型,可以选择国内通道modelscope下载,速度较快。
在这里插入图片描述
在这里插入图片描述
2.添加本地模型部署
点击Register Model 填写相应的信息
在这里插入图片描述
在这里插入图片描述
如果本地上传到服务器模型使用unzip解压大文件报错需要设置环境变量

UNZIP_DISABLE_ZIPBOMB_DETECTION=TRUE
export UNZIP_DISABLE_ZIPBOMB_DETECTION

三、安装Dify

官网:https://dify.ai/zh
Github开源地址:https://github.com/langgenius/dify

1.下载源代码

克隆 Dify 源代码至本地环境。

git clone https://github.com/langgenius/dify.git

2.启动 Dify

  1. 进入 Dify 源代码的 Docker 目录

    cd dify/docker
    
  2. 复制环境配置文件

    cp .env.example .env
    
  3. 启动 Docker 容器
    根据你系统上的 Docker Compose 版本,选择合适的命令来启动容器。你可以通过 $ docker compose version 命令检查版本,详细说明请参考 Docker 官方文档:

    如果版本是 Docker Compose V2,使用以下命令:

    docker compose up -d
    

    如果版本是 Docker Compose V1,使用以下命令:

    docker-compose up -d
    

检查是否所有容器都正常运行:

docker compose ps

在这个输出中,你应该可以看到包括 3 个业务服务 api / worker / web,以及 6 个基础组件 weaviate / db / redis / nginx / ssrf_proxy / sandbox 。
在这里插入图片描述

3.访问 Dify

你可以先前往管理员初始化页面设置设置管理员账户:
http://your_server_ip/install

Dify 主页面:
http://your_server_ip
在这里插入图片描述

四、Dify构建应用

Dify 中提供了四种应用类型:

  • 聊天助手:基于 LLM 构建对话式交互的助手
  • 文本生成:构建面向文本生成类任务的助手,例如撰写故事、文本分类、翻译等
  • Agent:能够分解任务、推理思考、调用工具的对话式智能助手
  • 工作流:基于流程编排的方式定义更加灵活的 LLM 工作流

文本生成与聊天助手的区别见下表:

文本生成聊天助手
WebApp 界面表单+结果式聊天式
WebAPI 端点completion-messageschat-messages
交互方式表单+结果式多轮对话
流式结果返回支持支持
上下文保存当次持续
用户输入表单支持支持
数据集与插件支持支持
AI 开场白不支持支持
情景举例翻译、判断、索引聊天

1.配置模型供应商

点击头像 > 设置 > 模型供应商

我这里已经配置了Xinference和Ollama
在这里插入图片描述
在 设置 > 模型供应商 > Xinference 中填入:

  • 模型名称:glm4
  • 服务器 URL:http://:9997 替换成您的机器 IP 地址
  • 模型UID:glm4

“保存” 后即可在应用中使用该模型。
在这里插入图片描述

2.聊天助手

对话型应用采用一问一答模式与用户持续对话

对话型应用可以用在客户服务、在线教育、医疗保健、金融服务等领域。这些应用可以帮助组织提高工作效率、减少人工成本和提供更好的用户体验。

在首页点击 “创建应用” 按钮创建应用。填上应用名称,应用类型选择聊天助手。
在这里插入图片描述
创建应用后会自动跳转到应用概览页。点击左侧菜单 编排 来编排应用。

我这里编排了一个面试官提示词并且添加了开场白。
在这里插入图片描述

3.Agent

智能助手(Agent Assistant),利用大语言模型的推理能力,能够自主对复杂的人类任务进行目标规划、任务拆解、工具调用、过程迭代,并在没有人类干预的情况下完成任务。

你可以在 “提示词” 中编写智能助手的指令,为了能够达到更优的预期效果,你可以在指令中明确它的任务目标、工作流程、资源和限制等。

这里我使用Tavily进行搜索https://tavily.com/
在这里插入图片描述

<think>好的,我现在需要帮助用户在Ubuntu系统上部署并使用Xinference本地模型。首先,我应该回顾用户提供的引用内容,看看有什么可用的信息。 根据引用[1],使用Docker可以快速部署Xinference,这可能是推荐的方法。引用[2]和[3]提到了在Ubuntu本地部署的步骤,包括安装依赖、配置虚拟环境、安装Xinference以及加载本地模型。用户希望使用本地模型,所以需要特别注意如何加载它们,而不是在线下载。 首先,我需要确定用户是否有Docker环境。如果有,使用Docker部署可能更简单。但用户可能更倾向于本地安装,所以需要分步骤指导。步骤可能包括安装系统依赖、创建Python虚拟环境、安装Xinference、启动服务,然后通过Web界面注册本地模型。 另外,引用[2]提到执行xinference-local脚本,可能需要检查是否正确安装。加载本地模型时,用户需要指定模型路径,可能需要调整配置信息,比如模型类型、规格和路径。需要注意模型格式,比如是否支持GGUF或其他格式。 可能遇到的问题包括依赖项安装失败,尤其是CUDA驱动,如果使用GPU的话。需要提醒用户确保已安装NVIDIA驱动和CUDA工具包。此外,模型文件需要提前下载并放在指定位置,否则Xinference无法加载。 还需要考虑如何接入Dify或其他应用,可能需要配置API端点。用户可能需要知道Xinference的API地址和端口,以及如何生成访问令牌。 最后,生成相关问题时要围绕部署中的常见问题、优化方法和应用场景展开,帮助用户进一步了解。</think>### 分步指南:Ubuntu系统部署并接入Xinference本地模型 #### 一、环境准备 1. **安装系统依赖** ```bash sudo apt update && sudo apt install -y python3.10-venv python3-pip curl git ``` 确保系统已安装Python 3.10+,推荐使用Ubuntu 22.04 LTS版本[^3]。 2. **配置GPU驱动(可选)** 若需GPU加速,需安装NVIDIA驱动与CUDA工具包: ```bash sudo ubuntu-drivers autoinstall && sudo apt install nvidia-cuda-toolkit ``` 安装后通过`nvidia-smi`验证显卡状态[^3]。 --- #### 二、部署Xinference 1. **创建虚拟环境** ```bash python3 -m venv xinference-env source xinference-env/bin/activate ``` 2. **安装Xinference** ```bash pip install "xinference[all]" ``` 若需GPU支持,需额外安装对应版本的PyTorch(如`pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121`)。 3. **启动服务** ```bash xinference-local --host 0.0.0.0 --port 9997 ``` 服务默认运行在`http://localhost:9997`,可通过`--log-file`指定日志路径[^2]。 --- #### 三、加载本地模型 1. **准备模型文件** 将下载的模型(如Qwen-7B-GGUF)存放至指定路径,例如: ```bash mkdir -p ~/models/qwen7b && wget https://example.com/qwen-7b.gguf -P ~/models/qwen7b ``` 2. **注册本地模型** 访问Web界面(`http://localhost:9997`),按以下步骤操作: - 点击`Register Model` - 填写模型信息: ```json { "model_name": "qwen-7b-custom", "model_type": "LLM", "model_format": "gguf", "model_size": "7B", "model_path": "/home/user/models/qwen7b/qwen-7b.gguf" } ``` 3. **启动模型实例** 在`Launch Model`中选择注册的模型,指定资源配额(如GPU内存),点击启动[^2]。 --- #### 四、接入应用 1. **通过API调用** 使用Python客户端访问: ```python from xinference.client import Client client = Client("http://localhost:9997") model = client.get_model("qwen-7b-custom") print(model.generate("你好,请介绍量子计算")) ``` 2. **集成到Dify等平台** 在Dify的模型设置中填写Xinference的API地址与模型UID,配置鉴权信息即可。 --- #### 常见问题解决 - **模型加载失败**:检查模型路径权限,确保`xinference`进程有读取权限 - **GPU未启用**:通过`xinference-env/bin/pip list | grep xformers`验证CUDA版本兼容性 - **端口冲突**:使用`--port`参数指定其他端口
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值