自然语言处理: 第十三章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://xiahunao.cn/news/2815112.html

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

相关文章

MySQL 篇-深入了解 DML、DQL 语言(二)

&#x1f525;博客主页&#xff1a; 【小扳_-CSDN博客】 ❤感谢大家点赞&#x1f44d;收藏⭐评论✍ 文章目录 1.0 DML、DQL 语言说明 2.0 使用 DML 实现对数据管理和操作 2.1 DML - 增添数据 insert 2.2 DML - 修改数据 update 2.3 DML - 删除数据 delete 3.0 使用 DQL 实现对…

Data Leakage and Evaluation Issues inMicro-Expression Analysis 阅读笔记

IEEE Transactions on Affective Computing上的一篇文章&#xff0c;做微表情识别&#xff0c;阅读完做个笔记。本文讨论了Data Leakage对模型准确度评估的影响&#xff0c;及如何融合多个微表情数据集&#xff0c;从而提升模型的准确度。工作量非常饱满&#xff0c;很认真&…

信息学竞赛CSP中组合数学知识进阶及经典题目

组合数学 组合数卷积&#xff08;范德蒙德卷积&#xff09; ∑ i 0 k ( n i ) ( m k − i ) ( n m k ) \sum_{i0}\limits^k\dbinom{n}{i}\dbinom{m}{k-i}\dbinom{nm}{k} i0∑k​(in​)(k−im​)(knm​) 组合意义&#xff1a;有 n n n 个红球以及 m m m 蓝球&#xff0c;…

线上故障的排查清单

线上故障主要会包括CPU、磁盘、内存以及网络问题&#xff0c;而大多数故障可能会包含不止一个层面的问题&#xff0c;所以进行排查时候尽量四个方面依次排查一遍。 同时例如 jstack、jmap 等工具也是不囿于一个方面的问题的&#xff0c;基本上出问题就是df、free、top 三连&am…

全网最详细Python自动化测试(从零搭建完整python自动化测试框架)

&#x1f345; 视频学习&#xff1a;文末有免费的配套视频可观看 &#x1f345; 关注公众号&#xff1a;互联网杂货铺&#xff0c;回复1 &#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 自动化测试介绍 自动化测试(Automated Testing)&#x…

基于java Springboot实现课程评分系统设计和实现

基于java Springboot实现课程评分系统设计和实现 博主介绍&#xff1a;多年java开发经验&#xff0c;专注Java开发、定制、远程、文档编写指导等,csdn特邀作者、专注于Java技术领域 作者主页 央顺技术团队 Java毕设项目精品实战案例《1000套》 欢迎点赞 收藏 ⭐留言 文末获取源…

SpringMVC 学习(五)之域对象

目录 1 域对象介绍 2 向 request 域对象共享数据 2.1 通过 ServletAPI (HttpServletRequest) 向 request 域对象共享数据 2.2 通过 ModelAndView 向 request 域对象共享数据 2.3 通过 Model 向 request 域对象共享数据 2.4 通过 map 向 request 域对象共享数据 2.5 通过…

Ant for Blazor做单个表的增删查改

Ant for Blazor做单个表的增删查改 2024年02月27日花了一天时间弄出来了&#xff0c;基本弄好了&#xff0c;vs2022blazor servernet8,引用的AntDesign版本是0.17.4 代码里的model和repository是用自己牛腩代码生成器生成的东西&#xff0c;sqlsugar的&#xff0c;记得在prog…

分布式一致性算法-Paxos翻译和注解

Paxos是解决不可靠处理器&#xff08;不可靠是指处理器可能故障&#xff09;网络中一致性问题(consensus)的一个协议族。一致性&#xff08;或者共识&#xff09;是在一组参与者之间对一个结果达成共识的过程。当参与者或者它们的交互媒介可能发生故障的时候&#xff0c;这个问…

幻兽帕鲁(Palworld 1.4.11.5.0)私有服务器搭建(docker版)

文章目录 说明客户端安装服务器部署1Panel安装和配置docker服务初始化设置设置开机自启动设置镜像加速 游戏服务端部署游戏服务端参数可视化配置 Palworld连接服务器问题总结 服务端升级&#xff08;1.5.0&#xff09; 说明 服务器硬件要求&#xff1a;Linux系统/Window系统&a…

JS总览-JS高级程序设计4-学习笔记

JS简史 1995年 JS 问世&#xff0c;彼时其主要任务是替代服务器端语言处理输入验证 1995年网景公司的 Brendan Eich 开发了一个脚注Live Script的脚步语言&#xff0c;后来网景公司与 Sun 公司结盟&#xff0c;更名 Live Script 为 Java Script 由于微软发布 IE3 时包含了自己…

iMazing 3.0.0.3 for mac 中文破解版2024最新图文安装教程

我们刚刚发布了iMazing 3.0.0.3 for mac 中文版本。Windows和macOS用户现在都可以试驾并体验iPhone管理的未来。 备受期待的第一个Windows版本得益于过去几个月macOS测试版的所有改进&#xff0c;使其成为一个稳定的初始版本。 我们的开发团队创造了一种无缝的外观和体验&#…

关于uniapp小程序的分包问题

开发uniapp小程序时&#xff0c;在打包上传代码时会出现超出2M的打包限制不能上传&#xff0c;那么我们该怎么做呢&#xff1f; 1.对于图片&#xff0c;将图片从后端服务取&#xff0c;尽量不要放在静态资源&#xff0c;图片体积会影响打包大小。 2.使用分包&#xff0c;tabb…

LNMP 架构

PHP(Hypertext Preprocessor 超文本预处理器)是通用服务器端脚本编程语言&#xff0c;主要用于web开发实现动态web页面&#xff0c;也是最早实现将脚本嵌入HTML源码文档中的服务器端脚本语言之一。同时&#xff0c;php还提供了一个命令行接口&#xff0c;因此&#xff0c;其也可…

哪个牌子的电视盒子好用?2024超强电视盒子排名

最近很多朋友问我电视盒子的相关问题&#xff0c;就目前来说&#xff0c;电视盒子的地位依然是不可取代的。我近来要发布的测评内容是哪个牌子的电视盒子好用&#xff0c;耗时两周进行对比后整理了电视盒子排名&#xff0c;看看哪些电视盒子是最值得入手的吧。 NO.1——泰捷新品…

安装极狐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…

ChatGPT提示词工程师AI大神吴恩达2023年视频课程学习实践

前言 刚才看了一个视频系列教程&#xff0c;很短&#xff0c;但收获很大&#xff0c;毕竟是一手知识来源&#xff0c;吴恩达大神亲自讲解&#xff0c;他说的话&#xff0c;我都信。这里写个笔记&#xff0c;顺便把知识点实践一下。视频可以去B站上搜索 吴恩达 prompt &#xf…

log4j 基础使用入门教程

一、Log4j介绍 在项目中&#xff0c;不管是开发人员写代码还是测试人员写的测试代码一般都需要做一些日志来记录项目的行为&#xff0c;以便更好的跟踪项目中的一些交互和问题。 Log4j ( Logger For Java ) , Java 日志的记录包。 官方网站 。Log4j 是 Apache 的一个开源项目…

C++之标准库中string的底层实现方式

目录 1、Eager Copy(深拷贝) 2、COW(Copy-On-Write)写时复制 2.1写时复制的实现 3、SSO&#xff08;Short String Optimization)短字符串优化 4、最佳策略 5、线程安全性 我们都知道&#xff0c; std::string的一些基本功能和用法了&#xff0c;但它底层到底是如何实现的…

李沐动手学习深度学习——3.4练习

理解极大似然估计 很巧妙的解释了为什么使用均方误差&#xff0c;因为均方误差是一种似然估计的变种&#xff0c;而对于逻辑回归softmax而言&#xff0c;更好的解释了其中存在exp 1. 我们可以更深入地探讨指数族与softmax之间的联系。 1. 计算softmax交叉熵损失l(y, ˆy)的二阶…