Dify+Xinference本地部署Embedding和Rerank模型
文章目录
- 1、Xinference介绍
- 2、Xinference安装
- 2.1 Xinference Docker安装
- 2.2 pip安装
- 2.3 设置开启自启动(仅针对pip安装用户)
- 3、部署Embedding和Rerank模型
- 4、Dify调用Xinference模型
1、Xinference介绍
Xinference是一个性能强大且功能全面的分布式推理框架,专为大规模模型推理任务设计。它支持大语言模型(LLM)、多模态模型、语音识别模型等多种模型的推理,极大地简化了大模型部署和推理过程。
主要特点
- 一键部署:Xinference极大简化了大语言模型、多模态模型和语音识别模型的部署过程,用户只需一个命令即可设置和部署模型。
- 内置前沿模型:支持一键下载并部署大量前沿开源模型,如Qwen2、chatglm2等。
- 异构硬件支持:可以利用CPU、GPU和FPGA进行推理,提升集群吞吐量和降低延迟。
- 灵活的API:提供包括RPC和RESTful API在内的多种接口,兼容OpenAI协议,方便与现有系统集成。
- 分布式架构:支持跨设备和跨服务器的分布式部署,允许高并发推理,并简化扩容和缩容操作。
- 第三方集成:与LangChain等流行库无缝对接,快速构建基于AI的应用程序。
2、Xinference安装
本篇文章安装环境:
- Linux Ubuntu16.04
- CUDA11.2
- Driver Version: 450.142.00
2.1 Xinference Docker安装
Nvidia GPU 用户可以使用 Xinference Docker Image 安装和启动 Xinference 服务。在执行安装命令之前,请确保您的系统上已经安装了 Docker 和 CUDA。
docker run --name xinference -d -p 9997:9997 -e XINFERENCE_HOME=/data -v </on/your/host>:/data --gpus all xprobe/xinference:latest xinference-local -H 0.0.0.0
其中</on/your/host>
填写服务器中的目录,-v
表示将服务器上的目录挂载到容器中,实现数据的共享和持久化。
2.2 pip安装
首先使用以下命令来创建 3.11 的 Python 环境:
conda create --name xinference python=3.11
conda activate xinference
以下两条命令在安装 Xinference 时,将安装 Transformers 和 vLLM 作为 Xinference 的推理引擎后端:
pip install "xinference[transformers]"
pip install "xinference[vllm]"
pip install "xinference[transformers,vllm]" # 同时安装
PyPi 在 安装 Transformers 和 vLLM 时会自动安装 PyTorch,但自动安装的 CUDA 版本可能与你的环境不匹配,此时你可以先安装指定版本的torch+cuda:
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
只需要输入如下命令,就可以在服务上启动 Xinference 服务:
xinference-local -H 0.0.0.0
Xinference 默认会在本地启动服务,端口默认为 9997。因为这里配置了-H 0.0.0.0参数,其他电脑可以通过服务器的 IP 地址来访问 Xinference 服务。
接着访问服务器公网地址加上9997端口,即可进入Xinference服务界面。
2.3 设置开启自启动(仅针对pip安装用户)
1、创建xinference.sh文件
sudo vim /etc/systemd/system/xinference.service
2、在文件中添加以下内容
[Unit]
Description=Xinference Service
After=network.target[Service]
Type=simple
ExecStart=/bin/bash -c 'source activate && conda activate xinference && xinference-local --host 0.0.0.0 --port 9997'
Restart=always[Install]
WantedBy=multi-user.target
注意:其中source activate
用于激活base环境,如果设置了开机自动激活base环境则不需要这条命令。
3、启用并启动服务
sudo systemctl daemon-reload
sudo systemctl enable xinference.service
sudo systemctl start xinference.service
尽管设置了Xinference开机自启动,但是下载的模型仍然要进入服务界面重新启动。
3、部署Embedding和Rerank模型
进入Xinference服务界面,依次点击Launch Model->EMBEDDING MODELS->搜索模型或在下方选择。
此处以bge-base-zh为例,填写模型名称->选择下载源(国内用户建议选择modelscope)->点击火箭按钮进行下载和启动模型。下载进度可以在服务器Shell终端查看。
模型成功启动后可以点击Running Models->EMBEDDING MODELS查看。
Xinference下载的模型默认保存位置为/home/user_name/.cache/modelscope/hub/Xorbits/
。
Rerank模型的下载和启动方式与Embedding模型一直,此处不再赘述。
注意:Xinference只能同时启动一个语音模型、图片模型、语音模型,但是可以同时启动多个嵌入模型、重排模型。
4、Dify调用Xinference模型
进入Dify服务界面,依次点击右上角用户->设置->模型供应商,选择Xorbits inference->选择Text Embedding-> 填写模型名称、服务器URL、模型UID,点击保存即可。
注意:模型名称要和Xinference里的保持一致。
接下来可以在Dify知识库中使用Embedding和Rerank模型,点击知识库、创建知识库、选择数据源、选择高质量索引方式、选择Embedding模型和开启Rerank模型,保存并处理。
注意:只有选择高质量索引方式,才能使用Embedding和Rerank模型。
之后在聊天助手界面即可选择刚刚创建的知识库,实现RAG对话。
相关文章:
Dify+Xinference本地部署Embedding和Rerank模型
文章目录 1、Xinference介绍2、Xinference安装2.1 Xinference Docker安装2.2 pip安装2.3 设置开启自启动(仅针对pip安装用户) 3、部署Embedding和Rerank模型4、Dify调用Xinference模型 1、Xinference介绍 Xinference是一个性能强大且功能全面的分布…...
是时候戒掉小游戏了
玩儿这东西没够!去年本来是要备考CPA,但是赶上写毕业论文,就以此为由,没有去备考,结果论文没完成,考试也没准备,都是游戏惹的祸!今年计划备考,看了两个月书,结…...
ECMAScrip 与 ES2015(ES6):JavaScript 现代化编程的里程碑
在 JavaScript 的发展历程中,ECMASCript 和 ES2015(也称为 ES6)无疑是最具革命性的版本之一。它们不仅引入了大量的新特性和语法糖,还极大地提升了代码的可读性、可维护性和性能。本文将深入探讨 ECMASCrip 和 ES2015 的新特性及其…...
iOS swift开发系列 -- tabbar问题总结
1.单视图如何改为tabbar,以便显示2个标签页 右上角➕,输入tabbar 找到控件,然后选中,把entrypoint移动到tabbar控件 2.改成tabbar,生成两个item,配置各自视图后,启动发现报错 Thread 1: “-[p…...
nginx 部署 ModSecurity3
一、查看本地nginx版本 nginx是yum安装的 # nginx -v nginx version: nginx/1.26.2 二、安装依赖工具 # yum install -y gcc-c flex bison yajl lmdb lua curl-devel curl GeoIP-devel zlib-devel pcre-devel pcre2-devel libxml2-devel ssdeep-devel libtool autoconf aut…...
websocket_asyncio
WebSocket 和 asyncio 指南 简介 本指南涵盖了使用 Python 中的 websockets 库进行 WebSocket 编程的基础知识,以及 asyncio 在异步非阻塞 I/O 中的作用。它提供了构建高效 WebSocket 服务端和客户端的知识,以及 asyncio 的特性和优势。 1. 什么是 WebS…...
一级考试真题(2019)
一级考试真题(2019)...
OpenCV相机标定与3D重建(20)将单应性矩阵分解为旋转矩阵、平移向量和法向量函数decomposeHomographyMat()的使用
操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 将单应性矩阵分解为旋转矩阵、平移向量和法向量。 cv::decomposeHomographyMat 是 OpenCV 库中的一个函数,用于将单应性矩阵…...
题解 - 取数排列
题目描述 取1到N共N个连续的数字(1≤N≤9),组成每位数不重复的所有可能的N位数,按从小到大的顺序进行编号。当输入一个编号M时,就能打印出与该编号对应的那个N位数。例如,当N=3时,可…...
LVGL9.2 鼠标悬停处理
文章目录 前言鼠标悬停处理功能简介使用场景1. **按钮悬停效果**2. **图标高亮**3. **动态工具提示** 实现原理使用方法1. 设置控件样式2. 监听悬停事件 功能亮点注意事项总结 前言 在 v9.2 版本中,新增了许多功能,其中鼠标悬停处理(Mouse H…...
每日计划-1213
1. 完成 SQL2 查询多列 https://www.nowcoder.com/exam/oj?page1tabSQL%E7%AF%87topicId199 2. 八股部分 1) C 中面向对象编程如何实现数据隐藏? 在c中,可以将数据成员声明为私有或受保护,并提供公有的成员函数来访问和修改这些数据成员&am…...
gz中生成模型
生成模型 通过服务调用生成 还记得parameter_bridge 吗? 我们在生成桥接的时候调用了这个cpp文件。 一个 parameter_bridge 实例用于消息传递(传感器数据)。之前的例子 另一个 parameter_bridge 实例用于服务桥接(动态生成模型…...
三相电机不转,如何判断好坏?
在现代工业生产中,三相电机被广泛应用于各类机械设备中,由于其高效能和稳定性,成为驱动设备的首选。然而,在实际使用过程中,三相电机有时会出现不转动的情况,这不仅会影响生产效率,还可能对设备…...
使用观测云排查数据库死锁故障
故障发现 核心应用 pod 发生重启,同时接收到对应使用者反馈业务问题,开始排查。 观测云排查现场 1、根据重启应用信息,查询 APM 执行数据库 update 操作大量报错,执行时间在 5min 以上。 分析 APM 链路异常,发现是触…...
STM32 USB通信知识与应用详解
在嵌入式系统开发中,STM32作为一款性能卓越的微控制器,其USB通信功能的应用十分广泛。本文将深入探讨STM32 USB的相关知识,从基础概念到实际应用,为读者呈现一个全面的STM32 USB通信知识体系。 一、USB基础知识 USB(…...
IoTDB 集群扩容方法
问题 问题1:当时序数据库 IoTDB 集群的存储占用达到多少时,建议增加节点?是等到存储完全满,还是达到一半时就进行扩容?如果集群存储已满,是否需要手动进行数据清理,比如设置 TTL,还…...
控制台报错:Uncaught (in promise):XXXXX问题定位以及前端文件流excel文件下载方法
今天对接上传文件的接口时,明明接口是通的,也正常返回了文件流,然而,控制台就是打印不出返回值,而且一直报错Uncaught (in promise):XXXXX 去查看axios的封装函数,这个internal error是从返回值…...
.NET平台使用C#设置Excel单元格数值格式
设置Excel单元格的数字格式是创建、修改和格式化Excel文档的关键步骤之一,它不仅确保了数据的正确表示,还能够增强数据的可读性和专业性。正确的数字格式可以帮助用户更直观地理解数值的意义,减少误解,并且对于自动化报告生成、财…...
6.2 MapReduce工作原理
MapReduce工作原理涉及将大数据集分割成小块并行处理。Map任务读取数据块并输出中间键值对,而Reduce任务则处理这些排序后的数据以生成最终结果。MapTask工作包括读取数据、应用Map函数、收集输出、内存溢出时写入磁盘以及可选的Combiner局部聚合。ReduceTask工作则…...
C语言指针
1,指针是什么 指针是内存中一个最小内存单元(一个字节)的编号,也就是地址通常口语中说的指针,通常是指指针变量也就是用来存放内存中地址的变量 每个内存单元都有一个地址,这个地址不需要存起来࿰…...
前端(async 和await)
1 async async 将 function 变为成为 async 函数 ●async 内部可以使用 await,也可以不使用,因此执行这个函数时,可以使用 then 和 catch 方法 ●async 函数的返回值是一个 Promise 对象 ●Promise 对象的结果由 async 函数执行的返回值决…...
打造高效的HIS与DAT文件解析工具
在工业数据采集和存储中,HIS 和 DAT 文件是非常常见的二进制数据格式。然而,解析这些固定块大小的二进制文件并将其转换为易读的 CSV 格式并非易事。本文将深入讲解如何使用 Python 和 PyQt5 打造一款图形化工具,轻松解析和转换这些文件&…...
YOLO系列:二、基于yolov8和labelme制作数据集及模型训练
YOLO系列:二、基于yolov8和labelme制作数据集及模型训练 1.新建一个项目1.数据集标注及类型转换1. 1 使用labelme进行数据标注1.1.1打开labelme1.1.2图像标注及存储 1. 2 将数据集转换成yolo类型 2.模型训练的配置文件2. 1打开labelme标注图像2.1.1三级目录 3.模型训…...
PHP搭建环境
一、安装apache 1、获取Apache安装软件 2、双击安装即可:指定对应的路径:E:server/apache 3、选择安装模式:使用自定义模式 4、选择安装位置 二、Apache的目录结构说明 三、Httpd.exe的详细应用 1、服务器进程:运行之后才能够工作...
LeetCode hot100-69-N
https://leetcode.cn/problems/valid-parentheses/description/?envTypestudy-plan-v2&envIdtop-100-liked 20. 有效的括号 已解答 简单 相关标签 相关企业 提示 给定一个只包括 (,),{,},[,] 的字符串 s &#x…...
14:00面试,14:06就出来了,问的问题有点变态。。。
从小厂出来,没想到在另一家公司又寄了。 到这家公司开始上班,加班是每天必不可少的,看在钱给的比较多的份上,就不太计较了。没想到5月一纸通知,所有人不准加班,加班费不仅没有了,薪资还要降40%…...
ubuntu20.04复现 Leg-KILO
这里写目录标题 opencv版本问题下载3.2.0源代码进入解压后的目录创建构建目录运行 CMake 配置 配置时指定一个独立的安装目录,例如 /opt/opencv-3.2:出错: 使用多线程编译错误1: stdlib.h: 没有那个文件或目录错误2:er…...
Redis应用—1.在用户数据里的应用
大纲 1.社区电商的业务闭环 2.Redis缓存架构的典型生产问题 3.用户数据在读多写少场景下的缓存设计 4.热门用户数据的缓存自动延期机制 5.缓存惊群与穿透问题的解决方案 6.缓存和数据库双写不一致问题分析 7.基于分布式锁保证缓存和数据库双写一致性 8.缓存和数据库双写…...
MySQL InnoDB 中的数据页
文章目录 1. 数据库的存储结构概述1.1 表空间(Tablespace)1.2 段(Segment)1.3 区(Extent)1.4 页(Page) 2. InnoDB 数据页的深入解析2.1 数据页的物理结构2.2 数据页中的行存储2.3 数…...
React Fiber
React Fiber 是 React 16 引入的全新重写的协调(Reconciliation)算法的实现,旨在改善 React 的更新机制和性能,尤其是在复杂应用和大量更新的场景下。它使得 React 更加灵活、可调度,能够实现优先级控制和中断更新等特…...
hive 小文件分析
1、获取fsimage文件: hdfs dfsadmin -fetchImage /data/xy/ 2、从二进制文件解析: hdfs oiv -i /data/xy/fsimage_0000000019891608958 -t /data/xy/tmpdir -o /data/xy/out -p Delimited -delimiter “,” 3、创建hive表 create database if not exists…...
大模型运用-Prompt Engineering(提示工程)
什么是提示工程 提示工程 提示工程也叫指令工程,涉及到如何设计、优化和管理这些Prompt,以确保AI模型能够准确、高效地执行用户的指令,如:讲个笑话、java写个排序算法等 使用目的 1.获得具体问题的具体结果。(如&…...
Linux(网络协议和管理)
后面也会持续更新,学到新东西会在其中补充。 建议按顺序食用,欢迎批评或者交流! 缺什么东西欢迎评论!我都会及时修改的! 在这里真的很感谢这位老师的教学视频让迷茫的我找到了很好的学习视频 王晓春老师的个人空间…...
前端项目打包部署
打包和部署前端项目是将开发环境中的代码转化为生产环境可直接运行的静态文件,并将其部署到服务器上的过程。 # 项目打包 pnpm run build# 上传文件至远程服务器 将本地打包生成的 dist 目录下的所有文件拷贝至服务器的 /usr/share/nginx/html 目录。# nginx.cofig…...
Linux驱动开发(12):中断子系统–按键中断实验
本章我们以按键为例讲解在驱动程序中如何使用中断, 在学习本章之前建议先回顾一下关于中断相关的裸机部分相关章节, 这里主要介绍在驱动中如何使用中断,对于中断的概念及GIC中断控制器相关内容不再进行讲解。 本章配套源码和设备树插件位于“…...
C语言(函数指针与指针函数)
函数指针 定义:函数指针本质上是指针,它是函数的指针(定义了一个指针变量,变量中存储了函数的地 址)。函数都有一个入口地址,所谓指向函数的指针,就是指向函数的入口地址。这里函数名就代 表入…...
中国计算机学会计算机视觉专委会携手合合信息举办企业交流活动,为AI安全治理打开“新思路”
近期,《咬文嚼字》杂志发布了2024年度十大流行语,“智能向善”位列其中,过去一年时间里,深度伪造、AI诈骗等话题屡次登上热搜,AI技术“野蛮生长”引发公众担忧。今年9月,全国网络安全标准化技术委员会发布了…...
MacOs 日常故障排除troubleshooting
1. 关闭开机自启动 app X macOs 15.1 System settings -> General -> Login Items & Extensions->Open at Login -> Select app X and click -...
ArcGIS字符串补零与去零
我们有时候需要 对属性表中字符串的补零与去零操作 我们下面直接视频教学 下面看视频教学 ArcGIS字符串去零与补零 推荐学习 ArcGIS全系列实战视频教程——9个单一课程组合 ArcGIS10.X入门实战视频教程(GIS思维) ArcGIS之模型构建器(Mod…...
【FLASH、SRAM和DRAM、CISC和RISC、冯诺依曼和哈佛】单片机内存结构的了解
【FLASH、SRAM和DRAM、CISC和RISC、冯诺依曼和哈佛】单片机内存结构的了解 一、单片机概念 单片机:Single-Chip Microcomputer,单片微型计算机,是一种集成电路芯片 1.1RAM里的SRAM和DRAM SRAM(Static Random Access Memory&…...
ionic capacitor JSValueEncodingContainer报错
try to clean the build folder. exit Xcode. upgrade your capacitor core libraries update cocoapods to 1.13.0 do “pod install --repo-udpdate” after that: ionic build --prodnpx cap updatenpx cap syncnpx cap open ios capacitor ios最低版本要求13 [Bug]:…...
pdf merge
在 Ubuntu 22.04 上,你可以使用以下命令行工具来合并多个 PDF 文件: 1. pdftk pdftk 是一个强大的 PDF 工具,支持合并、拆分和其他操作。安装和使用方法如下: sudo apt install pdftk pdftk file1.pdf file2.pdf cat output me…...
【Trouble Shooting】Oracle ADG hung,出现ORA-04021
异常问题: 突然收到告警,ADG实例状态异常。 环境: 版本:Oracle 11.2.0.4.201020 状态:Active Dataguard 问题: 查看Oracle实例alert日志,发现有异常报错: Thu Dec 12 22:15:23 …...
奇怪的知识又增加了:ESP32下的Lisp编程=>ULisp--Lisp for microcontrollers
ESP32下有MicroPython,那么我就在想,有Lisp语言支持吗?答案是果然有!有ULisp,专门为MCU设计的Lisp! 网址:uLisp - Lisp for microcontrollers 介绍:用于微控制器的 Lisp 适用于 Ar…...
什么是CRM系统?CRM系统的功能、操作流程、生命周期
CRM系统作为企业管理和维护客户关系的重要工具,在商业活动中扮演着越来越重要的角色。今天,就让我们一起揭开它的神秘面纱,看看这个“幕后英雄”到底是怎么工作的。 什么是CRM系统? 首先,我们要了解什么是CRM。简单来…...
[每日一练]转换日期格式
#该题目来源于力扣: 1853. 转换日期格式 - 力扣(LeetCode) 题目要求: 表: Days------------------- | Column Name | Type | ------------------- | day | date | ------------------- day 是这个表的主键。给定一个Da…...
LSM Tree 底层设计理念
场景:设计一个海量读写的的kv数据库,优先保证写入速度,但是读取速度也不能很慢 因为海量数据存储,不能使用内存,得存到文件里。 Q:对已经落盘的文件,怎么根据key修改value A:读取文件…...
面向对象设计规则和各类设计模式
面向对象设计(Object-Oriented Design, OOD)是一种软件设计方法论,它使用对象、类、继承、封装、多态等概念来组织代码。面向对象设计的核心目标是提高软件的可维护性、可扩展性和复用性。在面向对象设计中,遵循一定的设计原则和模…...
Artec Leo3D扫描仪在重型机械设备定制中的应用【沪敖3D】
挑战:一家加拿大制造商需要有效的方法,为富于变化且难度较高的逆向工程,快速、安全、准确地完成重型机械几何采集。 解决方案:Artec Leo, Artec Studio, Geomagic for SOLIDWORKS 效果:Artec Leo三维扫描代替过去的手动…...
Linux下socket广播通讯的实现
概念大家都很清楚,不赘述。 广播必然用UDP这套东西。 setsockopt() 函数及其在广播中的应用: 在 C 网络编程中,setsockopt() 函数用于设置套接字选项,这些选项可以控制套接字的各种行为。对于广播通信,我们特别关心…...