魔搭社区牵手FastChat&vLLM,打造极致LLM模型部署体验

本文涉及的产品
交互式建模 PAI-DSW,5000CU*H 3个月
简介: FastChat是一个开放平台,用于训练、服务和评估基于LLM的ChatBot。

引言

FastChat是一个开放平台,用于训练、服务和评估基于LLM的ChatBot。


FastChat的核心功能包括:

  • 优秀的大语言模型训练和评估代码。
  • 具有Web UI和OpenAI兼容的RESTful API的分布式多模型服务系统。


vLLM是一个由加州伯克利分校、斯坦福大学和加州大学圣迭戈分校的研究人员基于操作系统中经典的虚拟缓存和分页技术开发的LLM服务系统。他实现了几乎零浪费的KV缓存,并且可以在请求内部和请求之间灵活共享KV高速缓存,从而减少内存使用量。


FastChat开源链接:

https://github.com/lm-sys/FastChat


vLLM开源链接:

https://github.com/vllm-project/vllm


vLLM论文链接:

https://arxiv.org/pdf/2309.06180.pdf


继魔搭社区和vLLM展开合作后【魔搭牵手vLLM,提供更快更高效LLM推理服务】,最近魔搭社区继续FastChat展开合作,联合vLLM一起为中国开发者提供更快更高效的LLM推理和部署服务。开发者可以实现针对魔搭社区的大语言模型,使用vLLM作为FastChat中的推理引擎,提供高吞吐量的模型推理。


魔搭社区最新的镜像已经支持预装vLLM,魔搭官方镜像环境:

registry.cn-hangzhou.aliyuncs.com/modelscope-repo/modelscope:ubuntu22.04-cuda11.8.0-py310-torch2.1.0-tf2.14.0-1.10.0


魔搭社区支持的模型列表:

模型结构

模型名称

实际的模型id样例

AquilaForCausalLM

Aquila

BAAI/AquilaChat2-34B, BAAI/Aquila2-34B, etc.

BaiChuanForCausalLM

Baichuan

baichuan-inc/Baichuan2-7B-Base, baichuan-inc/Baichuan2-13B-Base, etc.

ChatGLMModel

ChatGLM

ZhipuAI/chatglm2-6b, ZhipuAI/chatglm3-6b, etc.

InternLMForCausalLM

InternLM

internlm/internlm-7b, internlm/internlm-chat-7b, etc.

QWenLMHeadModel

Qwen

qwen/Qwen-1_8B-Chat, qwen/Qwen-7B-Chat, qwen/Qwen-14B-Chat,qwen/Qwen-72B-Chat,etc.

LlamaForCausalLM

LLaMa

modelscope/Llama-2-7b-ms,modelscope/Llama-2-13b-ms

modelscope/Llama-2-70b-ms,

etc.

YiForCausalLM

Yi

01ai/Yi-6B-Chat, 01ai/Yi-34B-Chat, etc.


魔搭社区最佳实践

环境配置与安装

本文主要演示的模型推理代码可在魔搭社区免费实例PAI-DSW的配置下运行(显存24G) :


第一步:点击模型右侧Notebook快速开发按钮,选择GPU环境

镜像选择:Ubuntu22.04-cuda11.8.0-py310-torch2.1.0-tf2.14.0-1.10.0



第二步:进入terminal环境



第三步:安装FastChat最新包

git clone https://github.com/lm-sys/FastChat.git
cd FastChat
pip install .


环境变量设置

在vLLM和FastChat上使用魔搭的模型需要设置两个环境变量:

export VLLM_USE_MODELSCOPE=True
export FASTCHAT_USE_MODELSCOPE=True


之后在需要填入模型id的地方使用魔搭的模型id即可。下面我们给出几个代码范例,来展示在vLLM+FastChat上如何快速地加载魔搭模型进行推理。


模型部署

使用FastChat实现发布model worker(s)

首先我们使用FastChat实现发布一个model worker(s),首先启动一个controller:

python -m fastchat.serve.controller



发布一个model worker(s),以vicuna模型和千问模型为例

#以vicuna-7B-v1.5为例,在A10运行
python -m fastchat.serve.model_worker --model-path AI-ModelScope/vicuna-7b-v1.5 --revision v1.0.0


#以qwen-1.8B为例,在A10运行
python -m fastchat.serve.model_worker --model-path qwen/Qwen-1_8B-Chat --revision v1.0.0



体验问答效果:



也可以使用命令行客户端启动服务

python3 -m fastchat.serve.test_message --model-name Qwen-1_8B-Chat --message hello


然后启动gradio服务,开始网页端WebUI的问答:


python3 -m fastchat.serve.gradio_web_server --host 0.0.0.0 --port 8000


使用FastChat和vLLM实现发布model worker(s)

可以结合FastChat和vLLM搭建一个网页Demo或者类OpenAI API服务器,首先启动一个controller:

python -m fastchat.serve.controller

然后启动vllm_worker发布模型。如下给出单卡推理的示例,运行如下命令:

千问模型示例:

#以qwen-1.8B为例,在A10运行
python -m fastchat.serve.vllm_worker --model-path qwen/Qwen-1_8B-Chat --trust-remote-code --dtype bfloat16



vicuna模型示例:

#以vicuna-7B-v1.5为例,在A10运行
python -m fastchat.serve.vllm_worker --model-path AI-ModelScope/vicuna-7b-v1.5 --trust-remote-code --dtype bfloat16


启动vLLM优化worker后,本次实践启动页面端demo展示:

python -m fastchat.serve.gradio_web_server --host 0.0.0.0 --port 8000


效果体验

让我们体验极致推理优化的效果吧!

中文案例(千问1.8B)

中文 00_00_00-00_00_30.gif


英文案例(vicuna-7B-v1.5)

英文 00_00_00-00_00_30.gif

相关文章
|
5天前
|
机器学习/深度学习 人工智能 JSON
LLM 大模型学习必知必会系列(二):提示词工程-Prompt Engineering 以及实战闯关
LLM 大模型学习必知必会系列(二):提示词工程-Prompt Engineering 以及实战闯关
LLM 大模型学习必知必会系列(二):提示词工程-Prompt Engineering 以及实战闯关
|
5天前
|
机器学习/深度学习 人工智能 自然语言处理
LLM 大模型学习必知必会系列(一):大模型基础知识篇
LLM 大模型学习必知必会系列(一):大模型基础知识篇
LLM 大模型学习必知必会系列(一):大模型基础知识篇
|
6天前
|
存储 安全 数据安全/隐私保护
【大模型】如何确保负责任地开发和部署 LLM?
【5月更文挑战第7天】【大模型】如何确保负责任地开发和部署 LLM?
|
8天前
|
机器学习/深度学习 人工智能 分布式计算
【大模型】在实际应用中大规模部署 LLM 会带来哪些挑战?
【5月更文挑战第5天】【大模型】在实际应用中大规模部署 LLM 会带来哪些挑战?
|
9天前
|
机器学习/深度学习 JSON 自然语言处理
LLM2Vec介绍和将Llama 3转换为嵌入模型代码示例
通过LLM2Vec,我们可以使用LLM作为文本嵌入模型。但是简单地从llm中提取的嵌入模型往往表现不如常规嵌入模型。
34 5
|
11天前
|
机器学习/深度学习 人工智能 搜索推荐
【LLM】深入浅出学习模型中Embedding(嵌入)
【5月更文挑战第2天】人工智能嵌入深入浅出介绍
|
15天前
|
机器学习/深度学习 人工智能 自然语言处理
LLM资料大全:文本多模态大模型、垂直领域微调模型、STF数据集、训练微调部署框架、提示词工程等
LLM资料大全:文本多模态大模型、垂直领域微调模型、STF数据集、训练微调部署框架、提示词工程等
LLM资料大全:文本多模态大模型、垂直领域微调模型、STF数据集、训练微调部署框架、提示词工程等
|
1月前
|
SQL 自然语言处理 算法
NL2SQL基础系列(1):业界顶尖排行榜、权威测评数据集及LLM大模型(Spider vs BIRD)全面对比优劣分析[Text2SQL、Text2DSL]
NL2SQL基础系列(1):业界顶尖排行榜、权威测评数据集及LLM大模型(Spider vs BIRD)全面对比优劣分析[Text2SQL、Text2DSL]
NL2SQL基础系列(1):业界顶尖排行榜、权威测评数据集及LLM大模型(Spider vs BIRD)全面对比优劣分析[Text2SQL、Text2DSL]
|
4天前
|
机器学习/深度学习 人工智能 自然语言处理
【大模型】使用哪些资源来了解 LLM 的最新进展?
【5月更文挑战第9天】【大模型】使用哪些资源来了解 LLM 的最新进展?
|
4天前
|
自然语言处理 搜索推荐 知识图谱
【大模型】描述与 LLM 相关的个人项目或感兴趣的领域
【5月更文挑战第9天】【大模型】描述与 LLM 相关的个人项目或感兴趣的领域
http://www.vxiaotou.com