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

news2024/11/23 7:33:35

文章目录

  • 前言
  • 一、显卡驱动配置
    • 1.检测显卡
    • 2.安装驱动
  • 二、安装nvidia-docker
  • 二、安装Xinference
    • 1.拉取镜像
    • 2.运行Xinference
    • 3.模型部署
  • 三、安装Dify
    • 1.下载源代码
    • 2.启动 Dify
    • 3.访问 Dify
  • 四、Dify构建应用
    • 1.配置模型供应商
    • 2.聊天助手
    • 3.Agent


前言

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

一、显卡驱动配置

1.检测显卡

首先检查有没有驱动

nvidia-smi

没有驱动则安装

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

ubuntu-drivers devices 

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

2.安装驱动

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

 sudo ubuntu-drivers autoinstall

也可以直接安装最新的

sudo apt install nvidia-driver-550

运行nvidia-smi查看驱动信息

在这里插入图片描述

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

二、安装nvidia-docker

请先确保安装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

配置 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/
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2164623.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MySQL: 数据类型介绍

文章目录 数据类型数值类型字符串类型日期类型 数据类型 数值类型 分为整型和浮点型: BIT类似于数据结构中的位图,BIT可以认为是一组二进制bit位. BIT(10)表示这个类型里就存最多10个bit位. 虽然TINYINT和SMALLINT更节省空间,但是还是更推荐使用INT或者BIGINT. 如果存储空间…

MySql语言操作数据库---增删改查数据库,表,数据

思维导图 SQL语言共分为四大类: 数据定义语言DDL:数据定义语言DDL用来创建数据库中的各种对象-----[库]、[表]、[视图]、[索引]、 数据操纵语言DML:(1) 插入:INSERT (2) 更新:UPDATE (3) 删除:DELETE 数据查询语言DQL:数据查询语…

Android 深层链接利用

为了能够从我们的应用程序打开另一个应用程序,我们通常通过声明我们想要访问的 Activity 类的名称来实现这一功能。但是,如果我们要打开的 Activity 在其清单文件中设置了android:exported"false" ,则无法使用此方法。而其中一种替…

人工智能有助于解决 IT/OT 集成安全挑战

思科的一项研究表明,信息技术 (IT) 和运营技术 (OT) 融合所带来的安全问题可以通过人工智能 (AI) 解决,尽管该技术也可能被恶意行为者利用。 该报告由思科和 Sapio Research 联合发布,对 17 个国家的 1,000 名行业专业人士进行了调查&#x…

基于Java,SpringBoot和Vue的仓库管理商品管理电商后台管理系统

摘要 基于Java、Spring Boot和Vue的仓库管理系统是一个现代化的库存管理解决方案,旨在提高仓库运营效率和准确性。系统采用Java作为后端开发语言,结合Spring Boot框架简化配置和部署过程,实现业务逻辑和数据处理。前端使用Vue.js构建用户界面…

2024.9.25 数据分析学习

资料: 【开课吧哩堂】数据挖掘项目之用户流失预警系统_哔哩哔哩_bilibili 五万字 | Spark吐血整理,学习与面试收藏这篇就够了!-腾讯云开发者社区-腾讯云 (tencent.com) 黑马程序员Spark全套视频教程,4天spark3.2快速入门到精通…

**CentOS7安装配置mysql**

CentOS7安装配置mysql 首先先将mysql57-community-release-el7.rpm解压出来 rpm -ivh mysql57-community-release-el7.rpmls /etc/yum.repos.d/ -l // 检查是否解压成功安装mysql yum install -y mysql-community-server可能会出现 GPG 密钥过期 rpm --import https://r…

一个可以免费上传样本图册的网站

在数字化时代,图像和样本图册的重要性不言而喻。无论是设计师、摄影师、艺术家还是普通用户,都需要一个可靠的平台来上传、分享和存储自己的作品。今天,给大家推荐一个可以免费上传样本图册的网站——【FLBOOK】,它为用户提供了无…

UE学习篇ContentExample解读------Blueprint_Communication-上

文章目录 总览描述批次阅览1.1 Basic communication with a target blueprint1.2 Basic communication via actor casting1.3 Blueprint communication via actor casting to child Blueprint1.4 Communicating with all actors of a specific class 概念总结致谢: …

关于预处理详解 #define 宏 #和##

#和## #运算符 #运算符将宏的⼀个参数转换为字符串字⾯量。它仅允许出现在带参数的宏的替换列表中。 #运算符所执⾏的操作可以理解为”字符串化“。 当我们有⼀个变量 int a 10; 的时候,我们想打印出: the value of a is 10 . 就可以写&#xff…

MySQL函数:流程函数

1.IF函数 基本语法:IF(expr1,expr2,expr3) 功能:如果value为true,返回t, 否则返回f 例如:这个里面expr1里面是false,返回的是Error,如果是true,返回OK select if(false, OK, Err…

开通微信视频号直播的流程

首先我们要了解什么是视频号? 视频号其实就是腾讯家的“抖音”/“快手”,可以发布视频和直播(包括直播带货)。 微信视频号不同于订阅号、服务号,它是一个全新的内容记录与创作平台,也是一个了解他人、了解…

适合二开的web组态软件

技术文档 官网网站:http://www.hcy-soft.com 体验地址:by组态[web组态插件] 可以广泛应用于化工、石化、制药、冶金、建材、市政、环保、电力等几十个行业。 一、产品简介 BY组态是完全自主研发的集实时数据展示、动态交互等一体的全功能可视化平台。帮…

OJ在线评测系统 后端基础部分开发 完善CRUD相关接口

完善相关接口 判斷编程语言是否合法 先从用户的请求拿到Language package com.dduo.dduoj.service.impl;import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.dduo.dduoj…

OpenHarmony(鸿蒙南向)——平台驱动开发【SDIO】

往期知识点记录: 鸿蒙(HarmonyOS)应用层开发(北向)知识点汇总 鸿蒙(OpenHarmony)南向开发保姆级知识点汇总~ 持续更新中…… 概述 功能简介 SDIO(Secure Digital Input and Outpu…

【Faster-Rcnn】训练与测试

✨ Blog’s 主页: 白乐天_ξ( ✿>◡❛) 🌈 个人Motto:他强任他强,清风拂山冈! 💫 欢迎来到我的学习笔记! 1.提前准备 1.1. mobaxterm(远程连接服务器) 链接&#xff1a…

达索系统SOLIDWORKS2025新版本即将来袭

达索系统SOLIDWORKS2025新版本即将来袭 北京众联亿诚是达索官方授权的SOLIDWORKS经销商,专业经销SOLIDWORKS正版软件并提供免费试用、培训认证、二次开发等增值服务。 在CAD软件领域,SOLIDWORKS作为达索系统旗下的旗舰产品,一直以其优越的三…

CTF学习路线(非常详细)零基础入门到精通,收藏这一篇就够了

**CTF概述:**CTF(夺旗赛)是一种网络安全竞赛,通过解决一系列安全问题来测试参赛者的技能和经验。对于网络安全爱好者和从业者来说,学习CTF是一个不错的选择。 下面是从零开始学习CTF的详细规划和路线: 1 基础知识 要开始学习C…

问题:机器字长为n位的二进制数可以用补码来表示()个不同的有符号定点整数。

一、概念 概念:无论原码、反码、补码,n位二进制数可以表示2^n个数值 二、从范围证明 有符号的情况下,表格如下: 其中,原码、反码含有-0、0 , 而补码不划分0 由此,可知: ① 原码…

Ubuntu 编译安装 ImageMagick 来处理图片

一:克隆 ImageMagick cd /tools git clone https://github.com/ImageMagick/ImageMagick.git cd ImageMagick 二:安装编译 ImageMagick 所需的软件包 sudo apt -y install build-essential libltdl-dev libjpeg-dev libpng-dev libtiff-dev libgif-dev…