首页 > 其他分享 >大模型-大模型推理部署-08

大模型-大模型推理部署-08

时间:2024-11-07 16:11:26浏览次数:6  
标签:框架 模型 Llama cpp vLLM 推理 08

目录

    大模型常见推理框架:Transformers、Llama.cpp、Llamafile、Ollama、vLLM、TGI(Text Generation Inference)、DeepSpeed。
    vLLM,deepspeed是重点

    1. Hugging Face的Transformers
      强大的Python库,专为简化本地运行LLM而设计。其优势在于自动模型下载、提供丰富的代码片段,以及非常适合实验和学习。

    2.Llama.cpp
    基于C++的推理引擎,专为Apple Silicon打造,能够运行Meta的Llama2模型。它在GPU和CPU上的推理性能均得到优化。Llama.cpp的优点在于其高性能,支持在适度的硬件上运行大型模型(如Llama 7B),并提供绑定,允许您使用其他语言构建AI应用程序。其缺点是模型支持有限,且需要构建工具。

    1. Llamafile
      Mozilla开发的C++工具,基于llama.cpp库,为开发人员提供了创建、加载和运行LLM模型所需的各种功能。它简化了与LLM的交互,使开发人员能够轻松实现各种复杂的应用场景。Llamafile的优点在于其速度与Llama.cpp相当,并且可以构建一个嵌入模型的单个可执行文件。然而,由于项目仍处于早期阶段,不是所有模型都受支持,只限于Llama.cpp支持的模型。

    2. ollama
      作为Llama.cpp和Llamafile的用户友好替代品,Ollama提供了一个可执行文件,可在您的机器上安装一个服务。安装完成后,只需简单地在终端中运行即可。其优点在于易于安装和使用,支持llama和vicuña模型,并且运行速度极快。

    3. vLLM
      vLLM是一个高吞吐量、内存高效的大型语言模型(LLMs)推理和服务引擎。
      目标是为所有人提供简便、快捷、经济的LLM服务。vLLM的优点包括高效的服务吞吐量、支持多种模型以及内存高效。然而,为了确保其性能,用户需要确保设备具备GPU、CUDA或RoCm。
      基于操作系统中经典的虚拟(Virtual)内存和分页(Page)技术,提出了一个新的注意力算法 PagedAttention,并打造了一个LLM服务系统——vLLM。
      vLLM通过借鉴虚拟(Virtual)内存的原理,采用固定大小的块和动态映射的方式,有效地管理了内存,减少了内存浪费。从原理实现来看,我个人觉得 其命名中的 v 即这里的虚拟(Virtual)含义。

    对于模型的批量推理/并行推理,需要解决如下的几个问题:
    对Early-finished Requests的处理:不同请求所生成的文本长度不一致,可能差别很大,并且不易预测。如果没有一个将已生成结束的请求从Batch中移除并提前返回结果的机制,那么只能等一个Batch内所有请求都完成生成后才返回生成结果,导致生成短文本的用户则需要多“陪跑”数秒到数十秒才能得到结果,这对于服务响应时间是不利的;
    对Late-joining Requests的处理:完整生成一段文本需要长达数秒或数十秒的时间,是漫长的。所以如果没有一个将新请求插入到推理Batch的机制,那么只能像CV业务那样,等前面的请求都完成推理了才进行后续请求的推理。这会导致请求需要在系统中长时间等待排队,表现为服务响应时间过长甚至不可接受;
    Batching an arbitrary set of requests:每个请求对应的QKV Tensor的Length维度各不相同,在批量计算Attention时,需要处理此问题。诚然Padding+Masking的方法可以解决,但严重浪费算力和显存,对于算力和显存均有限的推理GPU是不利的。

    在这个过程中,vLLM通过PagedAttention技术和“先来先服务(FCFS),后来先抢占,gpu不够就先swap到cpu上”的调度策略(Scheduler),在1个推理阶段处理尽可能多的请求,解决高并发场景下的推理吞吐问题。这就是整个vLLM运作的核心思想。

    vLLM推理框架的关键点:

    • 分区(Partitioning):vLLM推理框架通过将大型语言模型分解为多个部分来实现推理加速。这些部分可以是在不同设备上执行的,例如在CPU、GPU或TPU上。通过这种方式,可以并行处理模型的不同部分,从而加快推理速度。
    • 虚拟内存(Virtual Memory):vLLM推理框架利用虚拟内存技术来管理模型在内存中的数据。通过将模型所需的数据加载到虚拟内存中,可以减少实际内存的使用,并提高数据访问的速度。
    • 量化(Quantization):vLLM推理框架通过将模型参数和输入数据从浮点数转换为低精度表示(如8位整数或4位整数)来实现推理加速。量化可以减少模型的参数量和计算量,从而加快推理速度。
    • 蒸馏(Distillation):vLLM推理框架还可以通过蒸馏技术来减少模型的大小和计算复杂度。蒸馏是一种将大型教师模型(teacher model)的知识传递给小型学生模型(student model)的技术。学生模型具有较少的参数,但在性能上与教师模型相似。通过蒸馏,vLLM推理框架可以加速模型的推理速度。
    • 混合精度(Mixed Precision):vLLM推理框架还可以使用混合精度技术,将模型中的某些部分保持为浮点数,而其他部分则使用低精度表示。这种方法可以在不牺牲太多性能的情况下,提高推理速度。
    • 并行计算(Parallel Computing):vLLM推理框架可以利用并行计算技术来加速模型的推理。通过在多个处理器核心或多台设备上同时执行模型的一部分,可以显著提高推理速度。
    1. DeepSpeed
      即是训练加速框架,又能用于推理上线,
      微软精心打造的开源深度学习优化库,以系统优化和压缩为核心,深度优化硬件设备、操作系统和框架等多个层面,更利用模型和数据压缩技术,极大提升了大规模模型的推理和训练效率。

    总结:择部署框架时,我们应该深入了解框架的特性、优缺点以及适用场景,综合考虑项目规模、技术栈、资源等因素,从而选择最适合的框架来支撑项目的实施。这样不仅可以提高开发效率,还能降低项目风险,确保项目的顺利推进和最终成功。

    • 追求高性能推理?DeepSpeed是您的理想之选。其独特的ZeRO(零冗余优化器)、3D并行(数据并行、模型并行和流水线并行的完美融合)以及1比特Adam等技术,都极大提高了大模型训练和推理的效率。
    • 处理大规模的自然语言处理任务,如文本分类、情感分析等?vLLM将是您的得力助手。作为大规模的预训练模型,它在各种NLP任务中都能展现出色的性能。

    标签:框架,模型,Llama,cpp,vLLM,推理,08
    From: https://www.cnblogs.com/cavalier-chen/p/18532496

    相关文章

    • 中国各省环境污染指数(原始数据、结果)(2008-2022年)
      环境污染综合指数利用熵值法计算得出的综合性评估指标,旨在全面反映中国各省区环境污染的整体状况。该指数的数据主要来源于《中国统计年鉴》及各省的统计年鉴,通过收集并分析多项环境污染相关指标(废水排放总量、废气中二氧化硫排放量、一般工业固体废物产生量),运用熵值法这一客观......
    • 文生图大模型
      简介Dall-E由OpenAI发布,是一种基于深度学习的生成模型,它是一种改进的GPT模型,专门用于图像生成。Dall-E可以根据文本描述生成与之相符合的原创性、真实的图像。Dall-E通过一个拥有120亿参数的Transformer模型来理解自然语言的输入,并生成相应的图片。这些图片不仅限于......
    • 大模型-大模型训练框架-07
      目录1.训练框架概述2.重点Deepspeed框架介绍3.DeepSpeed框架实践4.debug5.扩展1.训练框架概述100亿10^1010B参数量是模型具备涌现能力的基本门槛如何充分的利用显卡的能力充分的使用显存分布式训练框架对比MegatronandDeepSpeed是目前主流的训练加速框架训......
    • Mit6.S081笔记Lab6: Lab6: Copy-on-Write Fork for xv6 写时复制
      课程地址:https://pdos.csail.mit.edu/6.S081/2020/schedule.htmlLab地址:https://pdos.csail.mit.edu/6.S081/2020/labs/cow.html我的代码地址:https://github.com/Amroning/MIT6.S081/tree/cowxv6手册:https://pdos.csail.mit.edu/6.S081/2020/xv6/book-riscv-rev1.pdf相关翻译......
    • 惊呆!大模型工程师均薪达39607元/月,现在入还来得及吗?
      前言一年前的11月30日,在ChatGPT发布的夜里,一位软件创业者感叹:「过去20年白干了,我感觉全部都可以丢掉。」在2023年阿里云峰会上,阿里巴巴集团CEO张勇表示“AI时代,所有的产品都值得用大模型重新做一遍”。大模型的风刮了一年多,历经了百模大战、Llama3.2开源、GPTs发布等......
    • 关于离散概率模型的一些介绍
      离散概率模型是概率论中的一类重要模型,专门用于描述随机变量取离散值的情况。这类模型在许多领域都有广泛的应用,比如统计学、机器学习、数据挖掘等。在这篇文章中就将介绍离散概率模型有关的东西,具体包括:马尔科夫链、部件与系统的可靠性建模以及线性回归等内容。一、马尔科夫......
    • 1.0 RK3588上运行AI模型
      瑞星微是需要RKNN模型的,我们安装他的工具rknn-toolkit2,下面会将如何生成模型文件.1.模型转换当前系统是Ubuntu20.04使用python虚拟环境软件 Minicondasudoaptupdatesudoaptinstallwgetwgethttps://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64......
    • stable diffusion 大模型
      本节内容,给大家带来的是stablediffusion的基础模型课程。基础模型,我们有时候也称之为大模型。在之前的课程中,我们已经多次探讨过大模型,并且也见识过一些大模型绘制图片的独特风格,相信大家对stablediffusion大模型已经有了一定的了解。使用不同的大模型,绘制的图片风格,内容,精细......
    • 超详细解读:《中国人工智能大模型技术白皮书》,看完你算是学完了半个大模型!
      近期,中国人工智能协会发布了《中国人工智能大模型技术白皮书》,系统梳理了大模型技术演进,深入探讨关键技术要素,并剖析当前挑战及未来展望。我为大家做了简要总结,并附上原文供深入阅读。目录第1章大模型技术概述...................................51.1大模型技术的......
    • 程序员为什么要转行做大模型?中年危机?职场发展?升职加薪?
      最近研究了一下大模型相关的内容,决定从互联网的推荐算法转行做大模型推理工程化相关的工作。所以简单说说我在这个决定中的思考过程。1.推荐算法岗的现状我本来是一个在大厂做推荐算法的工程师。收入在行业里面算是中游水平,就这么一直干着似乎也没什么问题。但是互......