Xinference:大模型部署与分布式推理框架(一)Xinference的基本使用

一、Xinference的基本使用

1、概述

Xorbits Inference(Xinference)是一个性能强大且功能全面的分布式推理框架。可用于大语言模型(LLM),语音识别模型,多模态模型等各种模型的推理。通过Xorbits Inference,你可以轻松地一键部署你自己的模型或内置的前沿开源模型。

GitHub:https://github.com/xorbitsai/inference
官方文档:https://inference.readthedocs.io/zh-cn/latest/index.html

2、安装

Xinference 在 Linux, Windows, MacOS 上都可以通过 pip 来安装。如果需要使用Xinference进行模型推理,可以根据不同的模型指定不同的引擎。

目前Xinference支持以下推理引擎:

vllm
sglang
llama.cpp
transformers

创建一个xinference虚拟环境,使用Python版本3.10

conda create -n xinference python=3.10   

如果希望能够推理所有支持的模型,可以用以下命令安装所有需要的依赖:

pip install "xinference[all]"   

使用其他引擎

# Transformers引擎
pip install "xinference[transformers]"

# vLLM 引擎
pip install "xinference[vllm]"

# Llama.cpp 引擎
# 初始步骤:
pip install xinference
# Apple M系列
CMAKE_ARGS="-DLLAMA_METAL=on" pip install llama-cpp-python
# 英伟达显卡:
CMAKE_ARGS="-DLLAMA_CUBLAS=on" pip install llama-cpp-python
# AMD 显卡:
CMAKE_ARGS="-DLLAMA_HIPBLAS=on" pip install llama-cpp-python

# SGLang 引擎
pip install 'xinference[sglang]'

注意:

在执行安装Xinference过程中,可能会出现异常,可参考下文异常项的异常1异常2,进行解决

3、启动服务

可以在本地运行Xinference,也可以使用Docker部署Xinference,甚至在集群环境中部署Xinference。这里采用本地运行Xinference。

执行以下命令启动本地的Xinference服务

xinference-local

xinference-local --host 0.0.0.0 --port 9997

启动日志如下:

(xinference) root@master:~# xinference-local --host 0.0.0.0 --port 9997
2024-07-22 06:24:11,551 xinference.core.supervisor 312280 INFO     Xinference supervisor 0.0.0.0:50699 started
2024-07-22 06:24:11,579 xinference.model.image.core 312280 WARNING  Cannot find builtin image model spec: stable-diffusion-inpainting
2024-07-22 06:24:11,579 xinference.model.image.core 312280 WARNING  Cannot find builtin image model spec: stable-diffusion-2-inpainting
2024-07-22 06:24:11,641 xinference.core.worker 312280 INFO     Starting metrics export server at 0.0.0.0:None
2024-07-22 06:24:11,644 xinference.core.worker 312280 INFO     Checking metrics export server...
2024-07-22 06:24:13,027 xinference.core.worker 312280 INFO     Metrics server is started at: http://0.0.0.0:35249
2024-07-22 06:24:13,029 xinference.core.worker 312280 INFO     Xinference worker 0.0.0.0:50699 started
2024-07-22 06:24:13,030 xinference.core.worker 312280 INFO     Purge cache directory: /root/.xinference/cache
2024-07-22 06:24:18,087 xinference.api.restful_api 311974 INFO     Starting Xinference at endpoint: http://0.0.0.0:9997
2024-07-22 06:24:18,535 uvicorn.error 311974 INFO     Uvicorn running on http://0.0.0.0:9997 (Press CTRL+C to quit)

注意:

Xinference默认使用<HOME>/.xinference作为主目录存储一些必要信息,如:日志文件和模型文件

通过配置环境变量XINFERENCE_HOME修改主目录, 比如:XINFERENCE_HOME=/tmp/xinference xinference-local --host 0.0.0.0 --port 9997

查看存储信息

(xinference) root@master:~# ls .xinference/
cache  logs
(xinference) root@master:~# ls .xinference/cache/
chatglm3-pytorch-6b
(xinference) root@master:~# ls .xinference/logs/
local_1721628924181  local_1721629451488  local_1721697225558  local_1721698858667

通过访问http://localhost:9777地址来使用Web GUI界面

通过访问http://localhost:9997/docs来查看 API 文档。

4、模型部署


(1)搜索选择模型

点击Launch Model菜单,选择LANGUAGE MODELS标签,输入关键词以搜索需要部署的模型。这里以搜索ChatGLM3 模型为例。

(2)模型参数配置

模型的具体参数配置参考下文:模型参数配置说明

(3)开始部署模型

模型参数填写完成后,点击卡片左下方的火箭图标按钮开始部署模型

后台根据配置参数下载量化或非量化LLM模型

注意:

当运行一个模型时,第一次运行是要从默认或指定的模型站点下载模型参数。当下载完成后,Xinference本地会有缓存的处理,以后再运行相同的模型不需要重新下载。

(4)已部署模型列表

部署完成后,界面自动跳转到Running Models菜单,在LANGUAGE MODELS标签中,可以看到部署好的模型。

(5)LLM模型对话

点击Launch Web UI图标,自动打开LLM模型的Web界面,可以直接与LLM模型进行对话

进行对话测试:

注意:当时在进行对话测试时出现了异常,参考下文异常中的异常3

5、模型参数配置说明

在部署LLM模型时,有以下参数可供选择:

(1)必选配置:

Model Engine:模型推理引擎,根据模型不同,可能支持的引擎不同

Model Format: 模型格式,可以选择量化(ggml、gptq等)和非量化(pytorch)的格式

Model Size:模型的参数量大小,不同模型参数量不同,可能是: 6B、7B、13B、70B等

Quantization:量化精度,有4bit、8bit等量化精度选择

N-GPU:模型使用的GPU数量:可选择Auto、CPU、GPU数量,默认Auto

Replica:模型的副本,默认为1

点击chatglm3卡片,填写部署模型的相关信息

(2)可选配置:

Model UID: 模型的UID,可理解为模型自定义名称,默认用原始模型名称

Request Limits: 模型的请求限制数量,默认为None。None表示此模型没有限制

Worker Ip: 指定分布式场景中模型所在的工作器ip

Gpu Idx: 指定模型所在的GPU索引

Download hub: 模型从哪里下载,可选:none、huggingface、modelscope

(3)Lora配置:

Lora Model Config:PEFT(参数高效微调)模型和路径的列表

Lora Load Kwargs for Image Model:图像模型的 lora 加载参数字典

Lora Fuse Kwargs for Image Model:图像模型的 lora fuse 参数字典

(4)传递给推理引擎的其他参数:


如何学习大模型?

学习AI大模型是一个系统的过程,需要从基础开始,逐步深入到更高级的技术。

这里给大家精心整理了一份全面的AI大模型学习资源,包括:AI大模型全套学习路线图(从入门到实战)、精品AI大模型学习书籍手册、视频教程、实战学习、面试题等,资料免费分享!

1. 成长路线图&学习规划

要学习一门新的技术,作为新手一定要先学习成长路线图方向不对,努力白费

这里,我们为新手和想要进一步提升的专业人士准备了一份详细的学习成长路线图和规划。可以说是最科学最系统的学习成长路线。
在这里插入图片描述

2. 大模型经典PDF书籍

书籍和学习文档资料是学习大模型过程中必不可少的,我们精选了一系列深入探讨大模型技术的书籍和学习文档,它们由领域内的顶尖专家撰写,内容全面、深入、详尽,为你学习大模型提供坚实的理论基础(书籍含电子版PDF)

在这里插入图片描述

3. 大模型视频教程

对于很多自学或者没有基础的同学来说,书籍这些纯文字类的学习教材会觉得比较晦涩难以理解,因此,我们提供了丰富的大模型视频教程,以动态、形象的方式展示技术概念,帮助你更快、更轻松地掌握核心知识

在这里插入图片描述

4. 大模型项目实战

学以致用 ,当你的理论知识积累到一定程度,就需要通过项目实战,在实际操作中检验和巩固你所学到的知识,同时为你找工作和职业发展打下坚实的基础。

在这里插入图片描述

5. 大模型面试题

面试不仅是技术的较量,更需要充分的准备。

在你已经掌握了大模型技术之后,就需要开始准备面试,我们将提供精心整理的大模型面试题库,涵盖当前面试中可能遇到的各种技术问题,让你在面试中游刃有余。

在这里插入图片描述

全套的AI大模型学习资源已经整理打包,有需要的小伙伴可以微信扫描下方优快云官方认证二维码,免费领取【保证100%免费


如有侵权,请联系删除

<think>好的,我现在需要帮助用户找到关于Xinference和Dify的使用教程、示例代码、文档和指南。首先,我得回顾用户提供的引用内容。根据引用[1],用户提到了从Github拉取Xinference代码,以及DIfy集成magic-pdf的文档解析功能。引用[2]详细说明了在Dify中集成Magic-PDF的具体技术方案,用于PDF转Markdown和图文问答。 用户的需求明确是寻找这两个工具的使用教程和示例代码。我需要先分别处理Xinference和Dify的信息,确保每个部分都有清晰的步骤和资源链接。同时,用户希望看到示例代码和操作指南,可能需要分步骤说明安装、配置和基本用法。 首先,关于Xinference,我应该查阅官方文档,确认安装步骤,比如通过pip安装,启动服务的命令,以及如何部署模型。示例代码可能包括启动模型和调用API的Python片段。需要确保这些步骤正确,并引用相关的官方资源。 然后,针对Dify,用户提到集成Magic-PDF,所以需要解释如何在Dify平台上进行配置,可能包括安装Magic-PDF插件,设置API密钥,创建应用流程等步骤。示例代码可能涉及API调用和处理响应。此外,用户需要文档和指南的链接,如Dify官方文档和Magic-PDF的GitHub仓库。 需要检查是否有其他相关的资源或社区教程,比如博客文章或视频教程,以补充官方文档。同时,要确保所有链接有效,并且信息是最新的。可能还需要提醒用户注意版本兼容性和常见问题,比如依赖项安装或配置错误。 最后,生成相关问题时要覆盖安装、配置、集成、高级功能和社区支持等方面,帮助用户进步探索。确保回答结构清晰,分点列出,便于阅读,并正确引用提供的参考文献。</think>以下为关于Xinference和Dify的使用教程集成指南的详细说明: ### Xinference使用教程 1. **安装部署** - 通过pip安装核心包: ```bash pip install "xinference[all]" ``` - 启动本地服务(默认端口9997): ```bash xinference-local ``` 2. **模型部署** - 命令行部署LLM模型示例: ```bash xinference launch --model-name chatglm3 --size-in-billions 6 ``` - 通过Python API启动模型: ```python from xinference.client import Client client = Client("http://localhost:9997") model_uid = client.launch_model(model_name="llama-2-chat", size_in_billions=70) ``` 3. **接口调用** ```python model = client.get_model(model_uid) response = model.chat(prompt="解释量子计算") print(response["choices"][0]["message"]["content"]) ``` > 官方文档:[Xinference GitHub仓库](https://github.com/xorbitsai/inference)[^1] ### 二、Dify集成指南 1. **Magic-PDF集成** - 安装解析器插件: ```bash pip install magic-pdf ``` - 配置环境变量: ```python os.environ["MAGIC_PDF_API_KEY"] = "your_api_key" ``` 2. **创建文档解析Agent** ```python from dify_client import DifyClient client = DifyClient(api_key="dify_key") response = client.create_agent( name="PDF分析专家", tools=["magic_pdf_parser"], instructions="将PDF转换为Markdown格式" ) ``` 3. **多模态问答实现** ```python def pdf_qa(file_path, question): parsed_content = magic_pdf.parse(file_path) return dify.generate_response( context=parsed_content, query=question, vision_model="gpt-4-vision-preview" ) ``` > 技术文档:[Dify × Magic-PDF集成方案](https://github.com/magic-pdf)[^2] ### 三、核心资源导航 | 平台 | 资源类型 | 链接地址 | |-----------|----------------|------------------------------------------| | Xinference | 官方文档 | [xorbitsai/inference](https://github.com/xorbitsai/inference) | | Dify | 快速入门指南 | [docs.dify.ai](https://docs.dify.ai/v/zh-hans/) | | Magic-PDF | 解析SDK文档 | [magic-pdf PyPI](https://pypi.org/project/magic-pdf/) |
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值