登录社区云,与社区用户共同成长
邀请您加入社区
很多人学完 Self-Attention、QKV、FFN 之后,一打开 vLLM / SGLang 源码,立刻懵了。
Transformer是一种序列到序列(Seq2Seq)深度学习模型,专为处理大数据量的序列数据(文本、语音、时序数据等)设计,核心解决传统RNN/LSTM串行计算、长距离依赖建模困难的问题。🏆 并行计算:摆脱RNN串行依赖,适配大数据量高效处理🏆 长距离依赖:自注意力机制精准捕捉全局关联🏆 通用适配:跨NLP/CV/多模态/时序的通用架构🏆 可扩展:支持深层堆叠、海量参数扩展,适配大模型
本文深入解析了Transformer架构及其在大模型时代的核心地位。文章首先回顾了RNN的局限性(无法并行、长程依赖丢失、状态压缩瓶颈),并指出2017年Transformer通过Self-Attention机制解决了这些问题,实现了完全并行计算和长序列直接关联。核心内容包括: 架构原理:详细拆解Self-Attention、多头注意力、位置编码(重点分析RoPE优势)和完整Transformer
这份笔记重写自 Harvard NLP 的 The Annotated Transformer,并使用官方 GitHub 中的源码作为讲解对象。源码块按原文代码顺序保留,讲解部分用中文重新组织,不做英文逐字翻译。读这篇时建议同时打开前一篇Transformer详解,前一篇偏“看图理解 Transformer 是什么”,这一篇偏“看代码理解 Transformer 怎么跑起来”。最重要的学习路线是:
Day07 | BERT 中文微调实战:Transformer 的另一半
Transformer架构详解摘要 Transformer是2017年提出的革命性模型,彻底改变了序列建模方式。与RNN/LSTM不同,它完全基于注意力机制,解决了传统模型的三大痛点:序列依赖导致的无法并行训练、长期依赖问题和计算效率低下。Transformer采用编码器-解码器结构,核心创新包括: 自注意力机制:允许模型直接建立任意位置间的关联 多头注意力:并行学习多种注意力模式 位置编码:弥补
因工作需要,在一台windows台式机里塞了一块4090显卡,来做大模型推理的简单demo。网上看到了部署神器Ollama, 于是准备试一下。
前面一篇已经讲了LLM和LLMEngine的初始化阶段,包括设备初始化,模型加载和cache初始化等等,本篇来讲解LLMEngine的生成阶段,功能包括请求的调度以及模型的推理,初步分析调度器Scheduler是怎么工作的,也就是下图的Scheduler部分。本篇介绍了和这两个方法。尤其是后者,其中调度器Scheduler扮演了非常重要的角色,在调度预算和显存限制下,按照指定策略调度了用户请求,进
报错信息为“ValueError: The model's max seq len (4096) is larger than the maximum number of tokens that can be stored in KV cache (2704). Try increasing。设置了最大模型长度为4096,这个有的时候会因为硬件原因超出KV缓存的最大长度。然后切换到LlamaFac
一个request请求通常对应一个或者多个序列,在vllm中,使用Sequence来表达一个序列,同一个请求中的所有序列构成了一个序列组,用来表达。尽管它们本身并不难懂,但是涉及到了序列的状态标记(是WAITING还是FINISHED)、所处阶段(是Prefill还是Decode)以及对应的逻辑块等等。理解它们,对后续分析vllm调度以及block的分配等问题有着重要作用。另外,本系列之前没有对(
本文介绍了vLLM和LMDeploy两种大模型推理工具的安装部署步骤。主要内容包括:1) vLLM的环境要求(Linux系统、Python 3.9-3.12、兼容GPU)及安装流程(创建conda环境、安装PyTorch和vLLM);2) 从魔塔社区下载模型的方法;3) vLLM的启动和测试方法;4) LMDeploy的安装步骤与vLLM类似,同样需要创建虚拟环境并下载模型。两种工具都支持通过AP
经过前面两篇的铺垫,终于来到了解析LLMEngine的篇章。如下图所示,LLMEngine主要有两部分构成,右边部分包括Worker和等重要的类,它们在LLMEngine的初始化阶段就会用到,工作内容包括模型加载,KV Cache初始化等等,这是本文中重点;左边部分包括Scheduler和,用于调度用户请求,并在过程中管理显存和内存,这部分发生在LLMEngine的(generate)生成阶段,将
vLLM调度器核心机制解析 本文详细剖析了vLLM(v0.11.0)中调度器(Scheduler)的工作原理。调度器通过两个关键队列(waiting和running)管理prompt请求,采用基于token预算(token_budget)的动态分配策略。当新请求进入时,会先存入waiting队列;执行时首先处理running队列中的请求,为每个请求计算所需token数并尝试分配显存块,若分配失败则
ModelScope是一个由阿里巴巴集团推出的开源模型即服务(MaaS)平台,旨在简化模型应用的过程,为AI开发者提供灵活、易用、低成本的一站式模型服务产品。该平台汇集了多种最先进的机器学习模型,涵盖自然语言处理、计算机视觉、语音识别等多个领域,并提供丰富的API接口和工具,使开发人员能够轻松地集成和使用这些模型。官方网站。
但是上面引发的另一个问题就是当参数logprobs >= 1时,由于返回的是一个List[Dict]类型,那sample出来的token和probability前logprobs的token的顺序是什么样的呢?vllm中的文档好像并没有明确说明这个细节,我在查了网上资料好像也没有,openai api对应的logprobs返回逻辑好像与这个不一致。
vLLM:大模型推理的吞吐量革命 大模型推理常受限于显存瓶颈,导致GPU利用率低下。vLLM通过创新性技术PagedAttention(分页KV缓存管理),将显存碎片率降至1%以下,实现连续批处理和高效并行解码。相比传统框架,vLLM无需修改代码即可提升吞吐量3-10倍,如70B模型单机吞吐从300请求/分钟跃升至2000+。其优势包括: 显存优化:分块复用显存,支持更大模型(如70B)在有限GP
如果对比过 vllm 进行大模型推理 和 直接调用模型generate 就会知道 vllm可以让推理速度比直接调用模型generate快2-4倍。那问题来了,?
使用 vLLM 本地化部署大模型,。创建虚拟环境ModelScope 下载 LLM👀。
本文主要介绍PyTorch的基础知识,PyTorch的优点,案例,PyTorch和Tensorflow的对比,让我们对PyTorch的框架有一个基本的了解。
如果你需要让局域网内的其他设备也能访问你的 Ollama 服务,可以配置 OLLAMA_HOST 环境变量。变量值可以设置为0.0.0.0:11434 (或者指定的端口号,默认端口是 11434)。可以像其他软件一样在电脑上完成一键安装,不同的是,建议按照实际需求配置下系统环境变量参数。当然不设置也可以,系统会自动下载到C盘。OLLAMA_ORIGINS也需要新建环境变量,表示HTTP 客户端的请
Llama-factory是一种常用的模型微调框架,之前一直知道有这样一款产品,但是没有尝试过。本文记录了本地基于Llama-factory的模型微调过程,方便后续进行复盘。
10 分钟,教你如何用 LLama-Factory 训练和微调 LLama3 模型
在人工智能(AI)领域,尤其是自然语言处理(NLP)技术迅速发展的今天,如何高效地微调和部署大型语言模型(LLM)成为了研究和应用的热点。Llama-Factory 作为一个开源的微调框架,正是在这一背景下应运而生。它旨在为开发者提供一个简便、高效的工具,以便在现有的预训练模型基础上,快速适应特定任务需求,提升模型表现。Llama-Factory 支持多种流行的语言模型,如 LLaMA、BLOOM
之前投的那篇教程回去翻了翻看了一遍,结构自己都不太搞得明白,从新梳理一遍原文链接。
使用llama-factory完成模型的微调训练后,需要开启其api服务进行调用,参考官方。下述为启动api服务示例,此处展示的为直接使用原始本地模型进行api服务启动。是llama-factory文件中提供的api服务文件 确认好路径和文件名。1、需注意transformer版本和llama-factory版本适配问题。llama-factory,所以就弃用了vllm的方法,把vllm卸掉了。2
大模型推理引擎经过一年多发展,进入了一个关键的调整期。一方面,针对定制集群的分离式架构出现,很多业务方自己定制更复杂的并行和调度方案。另一方面,LLM的用法更加复杂,催生了LLM Programs使用范式。此外,非NVIDIA的NPU如雨后春笋般涌现,它们独特的硬件特性亟待新的系统架构来充分挖掘与利用。在这一背景下,以vLLM为代表的开源LLM推理引擎正面临着前所未有的进化压力。而SGLang此次