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

项目地址: 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.mzph.cn/news/706654.shtml

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

相关文章

Spring中 Unsupported class file major version 61 报错

初学Spring时遇到的一个错误&#xff1a;Unsupported class file major version 61 &#xff0c;如图所示&#xff1a; 网上查了一下大概是JDK的版本与Spring的版本不一致导致的错误&#xff1b;刚开始我用的Spring版本是&#xff1a; <dependencies><dependency>…

StarRocks实战——多维分析场景与落地实践

目录 一、OLAP 系统历史背景 1.1 历史背景与痛点 1.2 组件诉求 二、StarRocks 的特点和优势 2.1 极致的查询性能 2.2 丰富的导入方式 2.3 StarRocks 的优势特点 三、多维分析的运用场景 3.1 实时计算场景 / 家长监控中心 3.2 实时更新模型选择 3.2.1 更新模型UNIQU…

Eureka简介与使用浅析

Eureka 简介 Eureka 是 Netflix 开发的一款开源服务发现组件&#xff0c;主要用于构建云环境下的微服务架构。它是基于 REST (Representational State Transfer) 的服务&#xff0c;扮演了服务注册与发现的角色&#xff0c;在分布式系统中尤为重要。Eureka Server 作为一个中心…

JDK, JRE, 和 JVM 的解释

在Java编程中&#xff0c;JDK&#xff08;Java Development Kit&#xff0c;Java开发工具包&#xff09;、JRE&#xff08;Java Runtime Environment&#xff0c;Java运行环境&#xff09;和JVM&#xff08;Java Virtual Machine&#xff0c;Java虚拟机&#xff09;是三个核心概…

正则表达式常见的应用场景

数据格式验证&#xff1a;正则表达式可以用来验证输入数据的格式是否符合要求。例如&#xff0c;可以使用正则表达式验证一个邮箱地址是否符合邮箱的格式规范&#xff0c;或者验证一个手机号码是否符合手机号码的格式规范。这在开发网站、手机应用程序等需要用户输入数据的场景…

考研数据结构算法机试训练1

中南大学上机压轴题 测试数据&#xff1a; 3 500 0.6 100 0.8 200 0.7 100 输出 390首先要对输入的折扣进行排序&#xff0c;优先使用比率低的z进行支付。 然后用lowcost记录目前多少钱是打过折的。T-lowcost就是剩余没打折的。 每次循环用上一个人的折扣额度。若所有人折扣额…

2402C++,C++使用单链列表

原文 #include <windows.h> #include <malloc.h> #include <stdio.h>//用于列表项的结构;第一个成员是SLIST_ENTRY结构,其他成员是数据.在此,数据只是测试 typedef struct _PROGRAM_ITEM {SLIST_ENTRY ItemEntry;ULONG Signature; } PROGRAM_ITEM, *PPROGR…

nodejs 实现pdf与图片互转

PDF转图片 效果图 代码 const path require(path); const pdf require(pdf-poppler); const fs require(fs); // PDF文件路径 const pdfFilePath ./path/test.pdf; // 转换选项 const opts { format: png, // 输出图片格式&#xff0c;可以是 jpeg, png, ppm…

3d 舞蹈同步

目录 看起来很强大 unity驱动bvh跳舞&#xff1a; 脚飘动问题&#xff1a; bvh和播放关节对应关系 zxy格式 bvh和播放关节对应关系 zyx的对应关系&#xff1a; bvh播放器&#xff1a; 看起来很强大 GitHub - FORTH-ModelBasedTracker/MocapNET: We present MocapNET, a …

AIGC(生成式人工智能)如何掀起数字化转型的巨浪?

数字化转型已成为当下企业发展的必经之路&#xff0c;而生成式AI作为这场变革的强力引擎&#xff0c;正逐渐展现出其无与伦比的价值。今天&#xff0c;我们将深入探讨生成式AI在日志整理、数据清晰、产品设计等方面的应用&#xff0c;揭示它如何为数字化转型注入强大动力&#…

centos7 无网络安装telnet

一、上传压缩包telnet-20240227.zip并解压 unzip -o telnet-20240227.zip 二、依次安装rpm包 rpm -ivh xinetd-2.3.15.el7.x86_64.rpm rpm -ivh telnet-0.17-65.el7.x86_64.rpm rpm -ivh telnet-server-0.17-65.el7.x86_64.rpm 三、查看是否安装成功 rpm -qa | grep telnet…

数据结构-关键路径

介绍 在AOV网的基础上&#xff0c;如果用对应边来表示活动持续时间&#xff0c;这种有向图被称为AOE网在AOE网中&#xff0c;入度为0的为源点&#xff0c;出度为0的为汇点&#xff0c;整张网看做是一件事情完成的过程&#xff0c;那么这两个点就是事情的开始和结束。每个活动持…

WPF的DataGrid自动生成中文列头

直接将一个对象集合绑定到DataGrid上面&#xff0c;设置自动生成列AutoGenerateColumns"True"&#xff0c;DataGrid会自动根据对象类的属性生成对应的列 示例类对象&#xff1a; public class DataModel{public int Id { get; set; }public string Name { get; set;…

Rocky Linux 运维工具yum

一、yum的简介 ​​yum​是用于在基于RPM包管理系统的包管理工具。用户可以通过 ​yum​来搜索、安装、更新和删除软件包&#xff0c;自动处理依赖关系&#xff0c;方便快捷地管理系统上的软件。 二、yum的参数说明 1、install 用于在系统的上安装一个或多个软件包 2、seach 用…

麒麟银河操作系统V10部署ffmpeg

麒麟银河操作系统V10部署ffmpeg 部署ffmpeg用来处理视频的各种操作 想使用ffmpeg&#xff0c;要先安装nasm&#xff0c;yasm&#xff0c;x264之后&#xff0c;否则会报错 nkvers 查看麒麟操作系统版本 cat /proc/version #查看linux版本信息 uname -a #查看linux版本和内核…

在TMP中计算书名号《》高度的问题

1&#xff09;在TMP中计算书名号《》高度的问题 2&#xff09;FMOD设置中关于Virtual Channel Count&Real Channel Count的参数疑问 3&#xff09;Unity 2021.3.18f1 ParticleSystemTrailGeometryJob粒子拖尾系统崩溃 4&#xff09;XLua打包Lua文件粒度问题 这是第375篇UWA…

数据库管理-第156期 Oracle Vector DB AI-07(20240227)

数据库管理156期 2024-02-27 数据库管理-第156期 Oracle Vector DB & AI-07&#xff08;20240227&#xff09;1 Vector相关DDL操作可以在现有的表上新增vector数据类型的字段&#xff1a;可以删除包含vector数据类型的列&#xff1a;可以使用CTAS的方式&#xff0c;从其他有…

Unity Shader - sahder变体剔除

文章目录 吐槽优化方案 - 目前最靠谱的方式shadercsharp 吐槽 我之所以单独写这边文章&#xff0c;是因为之前写的一篇&#xff1a; Unity Shader - Built-in管线下优化变体&#xff0c;编辑后&#xff0c;无法保存&#xff0c;一直提示&#xff1a;操作超时。 等了差不多 3…

vue使用Swiper插件实现卡片化轮播图

1.安装swiper 官网&#xff1a;Swiper中文网-轮播图幻灯片js插件,H5页面前端开发 注意&#xff1a; 下载插件【要5.x】&#xff0c;不然会出现各种BUG。 npm i swiper5.x vue-awesome-swiper4.1.1 -S 2.HTML代码 <div class"examples"><div class"s…

Redis高性能策略以及各种缓存异常问题和解决方案

目录 Day 2.25 异步子线程机制 CPU架构类型&#xff0c;以及可能产生的影响 Day 2.26 redis 缓存与后端 MySQL 数据不一致问题 redis 缓存异常问题 &#xff08;缓存雪崩&#xff0c;缓存击穿&#xff0c;缓存穿透&#xff09;及 解决措施 布隆过滤器实现原理 Day 2.25 …