Transformer加速工具包:探索 vLLM、DeepSpeed 和 CTranslate2【通俗易懂,附代码】

大模型推理引擎vllm,sglang,transformer,exllama详细介绍和区别 在本文中,我们详细介绍了四种大模型推理引擎:vLLM、SG-Lang、Transformer和ExLlama。每种引擎都有其独特的技术特点、应用场景和优缺点。 阅读详情

加速 Transformer 模型:探索 vLLM、DeepSpeed 和 CTranslate2

在我最近的学习中,简单了解了几种用于加速 Transformer 模型的工具包,包括 vLLM、DeepSpeed 和 CTranslate2。每个工具包都有其独特的优势和适用场景,做个笔记,记录一些心得和简单的使用方法(包括了NLP和CV方面的transformer)。

vLLM:高效的推理引擎

vLLM 是一个专为大规模语言模型优化的高效推理引擎。它通过优化内存管理和计算图,大幅提高了模型的推理速度。我发现 vLLM 在处理大型语言模型时非常出色。

使用 vLLM 的步骤:

  1. 安装 vLLM:

    pip install vllm
    
  2. 加载和运行模型:

    from vllm import LLModel
    
    model = LLModel(model_name="gpt-3.5-turbo")
    output = model.generate("Translate English to French: 'Hello, world!'")
    print(output)
    

通过 vLLM,能显著减少推理时间,尤其是在处理大规模文本数据时。

DeepSpeed:全面的训练和推理优化

DeepSpeed 是微软开发的深度学习优化库,支持大规模模型的训练和推理。它提供了如 ZeRO 优化器等多种工具,大幅降低了显存占用,同时提高了计算效率。

使用 DeepSpeed 加速 ViT 模型:

  1. 安装 DeepSpeed:

    pip install deepspeed
    
  2. 定义 ViT 模型:

    from transformers import ViTForImageClassification, ViTFeatureExtractor
    from datasets import load_dataset
    
    model = ViTForImageClassification.from_pretrained("google/vit-base-patch16-224")
    feature_extractor = ViTFeatureExtractor.from_pretrained("google/vit-base-patch16-224")
    dataset = load_dataset("cifar10")
    
    def preprocess_function(examples):
        return feature_extractor(images=examples["img"], return_tensors="pt")
    
    encoded_dataset = dataset.map(preprocess_function, batched=True)
    
  3. 配置 DeepSpeed:
    创建 ds_config.json 文件:

    {
        "train_batch_size": 8,
        "optimizer": {
            "type": "Adam",
            "params": {
                "lr": 0.00015,
                "betas": [0.9, 0.999],
                "eps": 1e-8
            }
        },
        "zero_optimization": {
            "stage": 1
        }
    }
    
  4. 训练模型:

    from transformers import TrainingArguments, Trainer
    
    training_args = TrainingArguments(
        output_dir="./results",
        per_device_train_batch_size=8,
        num_train_epochs=3,
        deepspeed="ds_config.json"
    )
    
    trainer = Trainer(
        model=model,
        args=training_args,
        train_dataset=encoded_dataset["train"],
        eval_dataset=encoded_dataset["test"]
    )
    
    trainer.train()
    

使用 DeepSpeed 后,可以高效地训练 ViT 模型,并且显存占用大幅减少,极大提升了训练效率。

CTranslate2:高效的推理优化

CTranslate2 是一个高效的推理引擎,专为 Transformer 模型优化,特别适用于机器翻译和其他自然语言处理任务。虽然 CTranslate2 主要用于 NLP,但它的优化策略同样值得在其他领域参考。

使用 CTranslate2 进行推理:

  1. 安装 CTranslate2:

    pip install ctranslate2
    
  2. 加载和运行模型:

    import ctranslate2
    
    translator = ctranslate2.Translator("path/to/ctranslate2/model")
    output = translator.translate_batch([["Hello, world!"]])
    print(output)
    

CTranslate2 通过自定义内核和内存优化,实现了非常高效的推理。在处理实时翻译任务时,CTranslate2 表现得尤为出色。

版权声明
本博客内容仅供学习交流,转载请注明出处。

transformers之SFT和VLLM部署Llama3-8b模型 Llama3 微调 阅读详情

相关推荐

LLM部署之vllm vs deepspeed

LLM 模型部署

xiaomu_347的博客 361

DeepSpeed 和 VLLM 模型加速技术详解

vLLM使用了PageAttention技术,对模型推理进行加速。在注意力机制中,每个token有KEY, VALUE两个张量,这两个张量在存储分配显存的时候,预留出大量的空间,导致碎片化的浪费,VLLM通过借鉴操作系统的分页思想,隔离物理和逻辑内存,中间记录处理内存地址,从而降低内存的占用,提高了batch_zize, 吞吐量。

kk的博客 1291

SRAM compiler选项中 Soft Error Repair (SER)

引起的瞬时故障,可能会影响 SRAM 中存储的数据。SER 功能通过某种机制检测并修复这些错误,从而提高存储器的可靠性。在 SRAM 编译器中,

hzmscut的博客 1154

LLMs推理框架总结

LLMs(大模型)推理框架总结

wdn blog 3291

智能车学习日记【二】————十字和斜入十字

智能车学习日记【二】————十字和斜入十字 文章目录 智能车学习日记【二】————十字和斜入十字 前言 一、普通十字补线 二、斜入十字 1.判断是否为斜入十字和斜入十字类型 2.找斜入十字拐点 总结 前言 经过了一个多月的学习,小白的我终于也是能较稳定调出了2.8m以上的四轮车,过程中也遇到了很多困难,其中就有十字补线和斜入十字补线。尤其是斜入十字也是困扰了我快一周,现在和大家分享一下我处理斜入十字的方法(我的方法其实还有很多漏洞需要改进,仅供大家参考理解一下,欢迎各位在评论区指点出可

bsefef的博客 2740

vLLM和DeepSpeed部署模型的优缺点

和都是用于大规模深度学习模型部署和加速的工具,但它们在目标、功能和使用场景上有所不同。

keyboard专栏 2771

FX2N-2AD模块实战:从硬件连接到FROM/TO指令编程详解

本文详细解析FX2N-2AD模拟量输入模块的硬件连接与FROM/TO指令编程技巧,涵盖BFM缓冲存储器配置、梯形图程序设计及工程实战经验。通过实例演示如何实现精准信号采集与数据处理,特别针对PLC系统中的常见故障提供解决方案,助力工业自动化工程师高效完成设备调试与维护。

prometheus9mon的博客 507

transformer大语言模型(LLM)部署方案整理

大模型的基本特征就是大,单机单卡部署会很慢,甚至显存不够用。毕竟不是谁都有H100/A100, 能有个3090就不错了。 目前已经有不少框架支持了大模型的分布式部署,可以并行的提高推理速度。不光可以单机多卡,还可以多机多卡。

yuanlulu的博客 6480

【实用教程】使用AlphaFold2进行蛋白质结构在线预测

使用Colab进行简单快速的AlphaFold2在线的蛋白质三维结构预测

Eumenidus的博客 14万+

使用mmdetection快速复现计算机视觉顶会论文

使用mmdetection中支持的算法运行自定义数据集

m0_56896669的博客 2421

DeepSpeed、vLLM 和 torchrun

DeepSpeedvLLM和torchrun都是与和相关的工具或框架,但它们关注的领域和功能有所不同。

a533855的博客 3280

微博scheme

微博scheme

qq_42278595的博客 319

【大模型推理速度对比】transformers vs vllm框架

【大模型推理速度对比】transformers vs vllm框架

weixin_54648747的博客 3271

瑞芯微RK3588平台YOLOv8Pose模型RKNN部署与C++优化实战:从模型转换到高效推理的全流程指南-附源码

错误码 | 原因 | 解决方案 || -1001 | ONNX算子不支持 | 升级RKNN SDK至最新版 || -2003 | 量化校准数据不足 | 增加校准图片至500张 || -3005 | 输入尺寸不匹配 | 固定模型输入尺寸为640x640 || 资源消耗 | CPU 35% | NPU 90% |

m0_64661770的博客 990

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

LLM的7种推理框架

我们如何在本地安全地运行私有的LLMs呢?开源模型为此提供了可能的解决方案。本文将介绍七种方法。这是一个Python库,可以简化本地运行LLM的过程。特点:Llama.cpp是一个基于C++的推理引擎,专门为Apple Silicon优化,可以运行Meta的Llama2模型。它针对GPU和CPU都做了推理优化。优点:性能高于基于Python的解决方案,支持在适度的硬件上运行大型模型,如Llama 7B,并提供绑定,可以用其他语言构建AI应用程序,同时通过Llama.cpp运行推理。

python122_的博客 2688

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

NLP(十八):LLM 的推理优化技术纵览

目录收起一、子图融合(subgraph fusion)二、模型压缩(Model Compression)2.1 稀疏(Sparsity)2.2 量化(Quantization)2.3 蒸馏(Distillation)三、并行化(Parallelism)3.1 数据并行 (Data Parallelism, DP)3.2 张量并行(Tensor Parallelism, TP)3.3 流水线并行(Pipeline Parallelism, PP)四、Transformer 结构优化。

张伟的专栏 3600

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

架构师炼丹炉 | 大语言模型引擎全解析:Transformers、vLLM、Llama.cpp、SGLang、MLX 和 Ollama

本文将带你深入了解 Transformers、vLLM、Llama.cpp、SGLang、MLX 和 Ollama 这些引擎,帮助你找到最适合的工具,释放大语言模型的全部潜力!

csdn_xmj的博客 2305

浅尝Transformer和LLM

大语言模型势不可挡啊。哲学上来说,语言就是我们的一切,语言所不能到达的地方我们也不能达到。就人类来说,语言或许已经不仅仅是一种工具那么简单,其不仅是人类在物理世界进行活动时不可或缺的媒介,也是我们自身构建精神世界时的一砖一瓦。语言的重要性已经无需多言了。教会计算机人类的语言(用人类的语言进行思考)是一项艰巨的任务,或许从计算机发明之初这一征程就已经开始了,然而直到现在我们还有很长的路要走。最近,大语言模型大放异彩让我们看到了更大的希望。

Milkha的博客 4284

常用推理加速框架及用法(vLLM/DeepSpeed-MII/LightLLM/TensorRT-LLM)

常用推理框架及用法(vLLM/DeepSpeed-MII/LightLLM/TensorRT_LLM)

llptyy的博客 1万+

大语言模型引擎全解析:Transformers、vLLM、Llama.cpp等,最佳选择全攻略!

Transformers 引擎:NLP 领域的瑞士军刀开发者特点: Transformers 是当今最流行的开源 NLP 库,支持数百种预训练模型(如 GPT、BERT、T5 等),并提供了从模型加载、微调到推理的全套工具。优势支持 PyTorch 和 TensorFlow,兼容性强。社区活跃,模型库丰富,文档完善。适用于从研究到生产的各种 NLP 任务。适用场景: 如果你需要快速实现文本分类、生成、翻译等任务,Transformers 是你的不二之选。吸引点。

2401_85343303的博客 2002

深入理解 Transformer:从原理到大模型革命

Transformer 不仅是一个模型架构,更是一场深度学习的范式革命。它以“”的理念,证明了纯注意力机制足以胜任复杂的序列建模任务。从最初的机器翻译,到今天的通用人工智能探索,Transformer 持续推动着技术边界。掌握其原理,不仅有助于理解大模型的工作机制,更能为未来的创新提供无限可能。🚀立即行动:从阅读原始论文开始,动手实现一个 Transformer 模型,开启你的深度学习之旅!

admin_zp的博客 1299

深度学习模型引擎大对决:Transformers vs vLLM vs llama.cpp

提供了全面的功能,适合开发和微调任务。vLLM专注于大模型的高效推理,适合实时生产环境。llama.cpp则为低资源场景提供了轻量级解决方案。通过充分了解它们的优缺点,你可以为自己的项目选择最佳工具,让 AI 应用更加高效和便捷。如果你对某款引擎有特别的兴趣,欢迎在评论区分享你的使用体验!

gs80140的专栏 4061

保姆级LLM训练教程:阿里云平台使用accelerate,deepspeed多机多卡训练Chatglm2-6B

网上的教程,都基本上可能他们自己都能调通,但是,很多细节都没有给出,如何从0到1去搭建多机多卡训练是个很大的难题。本教程是保姆级的教程,搭建数据多机多卡分布式训练,训练的策略是lora

qq_50097745的博客 7627

Transformers 引擎,vLLM 引擎,Llama.cpp 引擎,SGLang 引擎,MLX 引擎

1. Transformers 引擎 开发者:Hugging Face 主要功能:Transformers 库提供了对多种预训练语言模型的支持,包括 BERT、GPT、T5 等。用户可以轻松加载模型进行微调或推理。 特性: 多任务支持:支持文本生成、文本分类、问答、翻译等多种自然语言处理任务。 简单易用:API 设计友好,用户可以用几行代码完成模型的加载、推理和训练。 社区支持:拥有丰富的文档和活跃的社区,提供大量的示例和教程。 2. vLLM 引擎 目标:高效推理大型语言模型。 特性: 混合

keyboard专栏 1805

使用 vLLM 部署本地 LLM 指南

我们输入以下命令启动服务器,–model 为本地模型的路径,–served-model-name 是模型在服务器中的别名,这里我们取简称 openchat,其他都是默认值,当然也可以自己设置。在这里我们不演示了,直接将 vLLM 部署为模仿 OpenAI API 协议的服务器,这使得 vLLM 可以用作使用 OpenAI API 的应用程序的直接替代品。当然,你也可以试一试 ChatCompletions 格式的请求,ChatCompletions API 的请求内容如下,两种的格式还是有一些区别的。

spicy_chicken123的博客 4万+
上一篇: 手撕Transformer!!从每一模块原理讲解到代码实现【超详细!】
下一篇: NeRF:从二维图像到三维重建【初识!原理通俗讲解】
xiaoh_7
博客等级 码龄3年 587粉丝 38原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值