自然语言处理: 第十三章Xinference部署

news2025/1/23 19:09:51

项目地址: Xorbitsai/inference

理论基础

正如同Xorbits Inference(Xinference)官网介绍是一个性能强大且功能全面的分布式推理框架。可用于大语言模型(LLM),语音识别模型,多模态模型等各种模型的推理。通过 Xorbits Inference,你可以轻松地一键部署你自己的模型或内置的前沿开源模型。无论你是研究者,开发者,或是数据科学家,都可以通过 Xorbits Inference 与最前沿的 AI 模型,发掘更多可能。

介绍这个项目主要是为了后面在dify能够快速部署接入API。

在这里插入图片描述

下图是xinference的与其他开源集成大模型框架的对比,可以看到xinference相比于其他开源框架还是有很多有点的。而且本人使用下来发现确实上手简单,

在这里插入图片描述



本地搭建

本人使用的是autodl上,所以相对应的无论是在linxu还是windows系统都差不多

1 安装

安装的时候由于xinference直接安装的时候会装pytorch的cpu版本,所以装完之后还需要重新装一下GPU版本的torch

# 新建环境
conda create -n xinference python=3.10

# 激活环境
conda activate xinference

# 安装xinference所有包
pip3 install "xinference[all]"

# 安装GOU版的torch
pip3 install torch==2.0.0+cu118 torchvision==0.15.1+cu118 -f https://download.pytorch.org/whl/torch_stable.html --trusted-host=pypi.python.org --trusted-host=pypi.org --trusted-host=files.pythonhosted.org


2. 启动xinference 服务

-host 如果不指定0.0.0.0 就只能本地访问了, -port 指定接口,默认是9997, 我是在autodl上使用的所以必须是6006

$ xinference-local --host 0.0.0.0 --port 6006

输入后,正常启动的话输出应该如下

2024-02-27 17:17:29,313 xinference.core.supervisor 1504 INFO     Xinference supervisor 0.0.0.0:14154 started
2024-02-27 17:17:29,433 xinference.core.worker 1504 INFO     Starting metrics export server at 0.0.0.0:None
2024-02-27 17:17:29,437 xinference.core.worker 1504 INFO     Checking metrics export server...
2024-02-27 17:17:33,903 xinference.core.worker 1504 INFO     Metrics server is started at: http://0.0.0.0:34531
2024-02-27 17:17:33,905 xinference.core.worker 1504 INFO     Xinference worker 0.0.0.0:14154 started
2024-02-27 17:17:33,906 xinference.core.worker 1504 INFO     Purge cache directory: /root/.xinference/cache
2024-02-27 17:17:33,910 xinference.core.utils 1504 INFO     Remove empty directory: /root/.xinference/cache/bge-reranker-large
2024-02-27 17:17:42,827 xinference.api.restful_api 1496 INFO     Starting Xinference at endpoint: http://0.0.0.0:6006


3. 启动大模型

xinference 提供了两种部署模型的方式

  1. 从http://127.0.0.1:<端口>启动交互,在web交互界面中启动服务
  2. 命令端启动 , 至于选择哪种方式看个人。这里由于交互界面比较简单,主要还是介绍下终端的方式

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

上面如果修改了端口,可以根据下面对应的修改端口

# https://hf-mirror.com/ 
export HF_ENDPOINT=https://hf-mirror.com
export XINFERENCE_MODEL_SRC=modelscope
# log缓存地址
export XINFERENCE_HOME=/root/autodl-tmp
# 端口修改了重新设置环境变量
export XINFERENCE_ENDPOINT=http://127.0.0.1:6006

修改完了就可以对应的启动相对应的服务,下面是分别启动chat / embedding / rerank 三种模型的cmd命令, 其他模型命令可以参考xinference主页。 启动完了,会返回对应模型的UID(后期在Dify部署会用到)

# 部署chatglm3
xinference launch --model-name chatglm3 --size-in-billions 6 --model-format pytorch --quantization 8-bit
# 部署 bge-large-zh embedding
xinference launch --model-name bge-large-zh --model-type embedding
# 部署 bge-reranker-large rerank
xinference launch --model-name bge-reranker-large --model-type rerank
  

如果想测试模型是否已经部署到本地,以rerank模型为例可以执行下面这个脚本, 或者执行

from xinference.client import Client

# url 可以是local的端口 也可以是外接的端口
url = "http://172.19.0.1:6006"
print(url)

client = Client(url)
model_uid = client.launch_model(model_name="bge-reranker-base", model_type="rerank")
model = client.get_model(model_uid)

query = "A man is eating pasta."
corpus = [
    "A man is eating food.",
    "A man is eating a piece of bread.",
    "The girl is carrying a baby.",
    "A man is riding a horse.",
    "A woman is playing violin."
]
print(model.rerank(corpus, query))

或者执行查看已经部署好的模型

xinferencelist

如果需要释放资源

xinferenceterminate--model-uid"my-llama-2"

最后如果需要外网访问,需要查找本地IP地址 即 http://<Machine_IP>:<端口port> , 查找IP地址的方式如下。

# Windows
ipconfig/all

# Linux
hostname -I

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

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

相关文章

安装极狐GitLab Runner并测试使用

本文继【新版极狐安装配置详细版】之后继续 1. 添加官方极狐GitLab 仓库&#xff1a; 对于 RHEL/CentOS/Fedora&#xff1a; curl -L "https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.rpm.sh" | sudo bash2. 安装最新版本的极狐G…

node.js 用 xml2js.Parser 读 Freeplane.mm文件,生成测试用例.csv文件

Freeplane 是一款基于 Java 的开源软件&#xff0c;继承 Freemind 的思维导图工具软件&#xff0c;它扩展了知识管理功能&#xff0c;在 Freemind 上增加了一些额外的功能&#xff0c;比如数学公式、节点属性面板等。 编写 mm_xml2js_csv.js 如下 // 用 xml2js.Parser 读 F…

设计模式-代理模式(静态代理,动态代理)

定义 代理模式Proxy是⼀种结构型设计模式&#xff0c;能够增强一些功能&#xff0c;不会影响到之前核心功能的流程。 结构图 1 通过实现接口的方式 2 通过继承类的方式 代理模式与装饰器模式 IT老齐白话设计模式 装饰和代理有着相似的结构&#xff0c; 但是其意图却⾮常…

腾讯云4核8G服务器优惠价格表(轻量+CVM)

腾讯云4核8G服务器多少钱&#xff1f;轻量应用服务器4核8G12M带宽一年446元、646元15个月&#xff0c;云服务器CVM标准型S5实例4核8G配置价格15个月1437.3元&#xff0c;5年6490.44元&#xff0c;标准型SA2服务器1444.8元一年&#xff0c;在txy.wiki可以查询详细配置和精准报价…

DAY12_VUE基本用法详细版

目录 0 HBuilderX酷黑主题修改注释颜色1 VUE1.1 VUE介绍1.2 Vue优点1.3 VUE入门案例1.3.1 导入JS文件1.3.2 VUE入门案例 1.4 VUE基本用法1.4.1 v-cloak属性1.4.2 v-text指令1.4.3 v-html指令1.4.4 v-pre指令1.4.5 v-once指令1.4.6 v-model指令1.4.7 MVVM思想 1.5 事件绑定1.5.1…

C# OpenCvSharp DNN Yolov8-OBB 旋转目标检测

目录 效果 模型信息 项目 代码 下载 C# OpenCvSharp DNN Yolov8-OBB 旋转目标检测 效果 模型信息 Model Properties ------------------------- date&#xff1a;2024-02-26T08:38:44.171849 description&#xff1a;Ultralytics YOLOv8s-obb model trained on runs/DOT…

【.Net 使用阿里云OSS 存储文件】

一、使用NuGet安装【Aliyun.OSS.SDK】 注意&#xff1a;如果有多个项目&#xff0c;需要在具体使用的项目跟启动项目都安装同一版本的Aliyun.OSS.SDK 二、上传代码 using Aliyun.OSS; using System.IO; using System; using CadApplication.Service.Dto; using System.Net; us…

Excel 使用空格或TAB分列

1 选择“数据”>“分列”。 在“文本分列向导”中&#xff0c;选择“分隔符号”>“下一步”。 选择数据的“分隔符”。 例如&#xff0c;“逗号”和“空格”。 可在“数据预览”窗口预览数据。 选择“下一步”&#xff0c;在工作表 目标&#xff0c;在工作表中想显示拆分…

51单片机-(定时/计数器)

51单片机-&#xff08;定时/计数器&#xff09; 了解CPU时序、特殊功能寄存器和定时/计数器工作原理&#xff0c;以定时器0实现每次间隔一秒亮灯一秒的实验为例理解定时/计数器的编程实现。 1.CPU时序 1.1.四个周期 振荡周期&#xff1a;为单片机提供定时信号的振荡源的周期…

go环境安装-基于vscode的Windows安装

1、vscode安装 官网链接&#xff1a;https://code.visualstudio.com/ 选择相应的版本&#xff0c;这里选择Windows下的 下载得到一个VSCodeUserSetUp-x64的可执行文件&#xff0c;双击执行&#xff0c;选择要安装的路径&#xff0c;下一步。 2、go语言安装 官网链接&#x…

node.js提取excel中的信息填充到word文件,批量生成合同

1.npm下载 npm i pizzip docxtemplater xlsx 2.excel模板 3.word模板 4.代码 // 引入所需模块 var PizZip require(pizzip); var Docxtemplater require(docxtemplater); var fs require(fs); var path require(path); var xl require(xlsx);// 读取并导出Excel文件 …

langChain学习笔记(待续)

目录 IntroductionLLM的限制扩展理解&#xff1a;什么是机器学习扩展阅读&#xff1a;机器学习的流程 LangChain Introduction LLM的限制 大型语言模型&#xff0c;比如ChatGpt4&#xff0c;尽管已经非常强大&#xff0c;但是仍然存在一些限制&#xff1a; 知识更新&#xff…

开源现场总线协议栈(ethercat、ethernet/ip、opc ua、profinet、canopen、modbus)

ecat主站及其相关&#xff1a; 1.soem&#xff1a;GitHub - OpenEtherCATsociety/SOEM: Simple Open Source EtherCAT MasterSimple Open Source EtherCAT Master. Contribute to OpenEtherCATsociety/SOEM development by creating an account on GitHub.https://github.com/…

ARM系列 -- 虚拟化(一)

今天来研究一个有意思的话题&#xff0c;虚拟化&#xff08;virtualization&#xff09;。 开始前&#xff0c;先闲扯一下&#xff0c;最近一个词比较火&#xff0c;“元宇宙&#xff08;Metaverse&#xff09;”。在维基百科里面是这么定义元宇宙的&#xff0c;“The Metaver…

MSSQL 获取表对应的列明,备注,字段类型

旧系统代码CV多了想解放一下双手写个代码生成器&#xff0c;这时候就需要获取到表的某一些信息了 SELECT a.NAME AS colname,CONCAT(UPPER(SUBSTRING(b.name, 1, 1)), LOWER(SUBSTRING(b.name, 2,LEN(b.name)-1))) AS typename,a.length AS length,a.scale AS scale, a.prec A…

京东数据分析(电商数据分析):2024年1月京东白酒TOP10品牌销量销额排行榜

在公布2024年1月京东白酒品牌排行榜之前&#xff0c;分享一个有点意思的现象&#xff1a;在今年龙年春晚“黄金5分钟”的广告片里&#xff0c;白酒局知名的品牌基本都亮相了&#xff08;茅台、五粮液、洋河股份、郎酒、古井贡酒、水井坊&#xff09;&#xff0c;但今年汾酒却缺…

Thread多线程(创建,方法,安全,通信,线程池,并发,并行,线程的生命周期)【全详解】

目录 1.多线程概述 2.多线程的创建 3.Thread的常用方法 4.线程安全 5.线程同步 6.线程通信 7.线程池 8.其它细节知识&#xff1a;并发、并行 9.其它细节知识&#xff1a;线程的生命周期 1.多线程概述 线程是什么&#xff1f; 线程(Thread)是一个程序内部的一条执行…

安全运营中心(SOC)综合指南

什么是安全运营中心&#xff08;SOC&#xff09; 安全运营中心&#xff0c;也称为信息安全运营中心 &#xff08;ISOC&#xff09;&#xff0c;是结构良好的网络安全战略的核心。安全运营中心是一个集中式枢纽&#xff0c;无论是在组织内部还是外包&#xff0c;都致力于对整个…

非线性优化资料整理

做课题看了一些非线性优化的资料&#xff0c;整理一下&#xff0c;以方便查看&#xff1a; 优化的中文博客 数值优化|笔记整理&#xff08;8&#xff09;——带约束优化&#xff1a;引入&#xff0c;梯度投影法 (附代码)QP求解器对比对于MPC的QP求解器 数值优化| 二次规划的…

Linux命名管道

Linux匿名管道-CSDN博客 目录 1.原理 2.接口实现 3.模拟日志 Linux匿名管道-CSDN博客 这上面叫的是匿名管道&#xff0c;不要将两者搞混&#xff0c;匿名管道说的是两个有血缘关系的进程相互通信&#xff0c;但是命名管道就是两个没有关系的管道相互通信。 1.原理 和匿名…