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

简介: 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

相关文章
|
3月前
|
数据采集 自然语言处理 供应链
LLM安全新威胁:为什么几百个毒样本就能破坏整个模型
数据投毒通过在训练数据中植入恶意样本,将后门永久嵌入大模型,仅需数百份毒样本即可触发数据泄露、越狱等行为,防御需结合溯源、聚类分析与自动化检测。
355 2
LLM安全新威胁:为什么几百个毒样本就能破坏整个模型
|
3月前
|
存储 人工智能 数据中心
138_绿色计算:碳排放优化 - 估算部署的碳足迹与LLM环境友好型部署最佳实践
随着大语言模型(LLM)在各个行业的广泛应用,其计算需求和环境影响正日益受到关注。根据最新研究,训练一个大型LLM模型可能产生数百吨二氧化碳当量的排放,这相当于普通家庭几十年的碳足迹。在全球气候变化和可持续发展的背景下,如何优化LLM部署的碳足迹,实现环境友好型AI应用,已成为行业面临的重要挑战。
|
3月前
|
机器学习/深度学习 缓存 监控
139_剪枝优化:稀疏模型压缩 - 分析结构化剪枝的独特速度提升与LLM部署加速实践
随着大语言模型(LLM)规模的不断增长,模型参数量已从最初的数亿扩展到数千亿甚至万亿级别。这种规模的模型在推理过程中面临着巨大的计算和内存挑战,即使在最先进的硬件上也难以高效部署。剪枝优化作为一种有效的模型压缩技术,通过移除冗余或不重要的参数,在保持模型性能的同时显著减少计算资源需求。
|
3月前
|
人工智能 自然语言处理 TensorFlow
134_边缘推理:TensorFlow Lite - 优化移动端LLM部署技术详解与实战指南
在人工智能与移动计算深度融合的今天,将大语言模型(LLM)部署到移动端和边缘设备已成为行业发展的重要趋势。TensorFlow Lite作为专为移动和嵌入式设备优化的轻量级推理框架,为开发者提供了将复杂AI模型转换为高效、低功耗边缘计算解决方案的强大工具。随着移动设备硬件性能的不断提升和模型压缩技术的快速发展,2025年的移动端LLM部署已不再是遥远的愿景,而是正在成为现实的技术实践。
|
3月前
|
缓存 物联网 PyTorch
使用TensorRT LLM构建和运行Qwen模型
本文档介绍如何在单GPU和单节点多GPU上使用TensorRT LLM构建和运行Qwen模型,涵盖模型转换、引擎构建、量化推理及LoRA微调等操作,并提供详细的代码示例与支持矩阵。
921 2
|
3月前
|
存储 监控 安全
132_API部署:FastAPI与现代安全架构深度解析与LLM服务化最佳实践
在大语言模型(LLM)部署的最后一公里,API接口的设计与安全性直接决定了模型服务的可用性、稳定性与用户信任度。随着2025年LLM应用的爆炸式增长,如何构建高性能、高安全性的REST API成为开发者面临的核心挑战。FastAPI作为Python生态中最受青睐的Web框架之一,凭借其卓越的性能、强大的类型安全支持和完善的文档生成能力,已成为LLM服务化部署的首选方案。
|
3月前
|
机器学习/深度学习 缓存 PyTorch
131_推理加速:ONNX与TensorRT深度技术解析与LLM模型转换优化实践
在大语言模型(LLM)时代,高效的推理加速已成为部署高性能AI应用的关键挑战。随着模型规模的不断扩大(从BERT的数亿参数到GPT-4的数千亿参数),推理过程的计算成本和延迟问题日益突出。ONNX(开放神经网络交换格式)和TensorRT作为业界领先的推理优化框架,为LLM的高效部署提供了强大的技术支持。本文将深入探讨LLM推理加速的核心原理,详细讲解PyTorch模型转换为ONNX和TensorRT的完整流程,并结合2025年最新优化技术,提供可落地的代码实现与性能调优方案。
|
3月前
|
机器学习/深度学习 PyTorch 算法框架/工具
118_LLM模型量化与压缩:从理论到2025年实践技术详解
大型语言模型(LLM)在自然语言处理领域取得了前所未有的成功,但模型规模的快速增长带来了巨大的计算和存储挑战。一个典型的大型语言模型(如GPT-4或LLaMA 3)可能包含数千亿甚至万亿参数,需要数百GB甚至TB级的存储空间,并且在推理时需要大量的计算资源。这种规模使得这些模型难以在边缘设备、移动设备甚至资源有限的云服务器上部署和使用。
|
3月前
|
Kubernetes Cloud Native 异构计算
133_云端扩展:Kubernetes scaling - 设置自动缩放的阈值与LLM部署最佳实践
在大语言模型(LLM)部署的时代,如何高效地管理计算资源、应对动态负载并优化成本,成为了每个AI工程师必须面对的挑战。随着LLM应用的普及,用户请求模式变得日益复杂且难以预测,传统的静态资源配置方式已无法满足需求。Kubernetes作为云原生时代的容器编排平台,其强大的自动扩展能力为LLM部署提供了理想的解决方案。

热门文章

最新文章