-
图解vllm-model之model和attention_backend
图解vllm-原理与架构 图解vllm-推理服务与引擎 图解vllm-调度器与Block分配 图解vllm-执行器与worker 图解vllm-model之model和attention_backend 通过上文可以了解到,执行器在调用推理接口后,最终将请求传入worker中的ModelRunner进行推理计算,这时如何使用CUDA加速模型attention和forward的推理。另外,对于我们定制化的model是如何加入到vllm的推理框架来使用的。通过本文你可以了解到这一...…
-
图解vllm-执行器与worker
图解vllm-原理与架构 图解vllm-推理服务与引擎 图解vllm-调度器与Block分配 图解vllm-执行器与worker 图解vllm-model之model和attention_backend 执行器(Executor)是对model worker的一层封装,LLMEngine会根据engine_config来创建确定创建哪个Executor,本文将以RayGPUExecutor为例进行介绍,Ray作为较为常用模型分布式框架,应用场景比较有代表性, 可以实现推理过程...…
-
图解vllm-调度器与Block分配
图解vllm-原理与架构 图解vllm-推理服务与引擎 图解vllm-调度器与Block分配 图解vllm-执行器与worker 图解vllm-model之model和attention_backend 调度器(Scheduler)决定哪些请求可以参与推理,并为这些请求做好逻辑块->物理块的映射。这个过程只是根据目前step(prefill+decode)收集到的所有信息,对目前GPU的显存进行新的内存分配规划,而未实际操作GPU内存。在模型执行器中,这些规划metad...…
-
图解vllm-推理服务与引擎
图解vllm-原理与架构 图解vllm-推理服务与引擎 图解vllm-调度器与Block分配 图解vllm-执行器与worker 图解vllm-model之model和attention_backend 上文介绍了vLLM的分层架构,本节开始介绍vLLM的入口使用开发和引擎的详细设计。引擎层对使用者而言是承上启下的模块,在这一层不仅会对输入的参数、数据进行简单的处理封装,还会初始化核心模块,将源源不断的request组织起来,驱动迭代,最终返回给用户。1. 引擎图解引擎部分主...…
-
图解vllm-原理与架构
图解vllm-原理与架构 图解vllm-推理服务与引擎 图解vllm-调度器与Block分配 图解vllm-执行器与worker 图解vllm-model之model和attention_backend 2024年,我们已经进入大模型全面爆发的时代,作为大模型很重要的工程实践: 推理服务,则成为熟悉和了解大模型工程的关键一环。vLLM是23年开始出现的一款较为优秀的大模型推理框架,很值得学习和研究,我将发布一系列的Blog,针对近期学习vLLM的主要内容,通过图解的方式从工程...…
-
自动驾驶-数据平台简介
在自动驾驶领域中, 数据平台是一个很重要的核心平台, 无论是算法的改进,还是 bug 的解决,场景的重现,以及程序的调试都需要数据平台提供的多维度数据来驱动。本文分析了两个比较完整的开源项目:Apollo Dreamview 和 Uber Streetscape,他们的设计思想并不完全相同,各有优缺点,我会通过三篇文章来介绍他们的这些不通点。数据平台工作流程自动驾驶汽车每天产生的数据量在 PB 级规模的,这对数据的处理和展示退出了更高的要求。所以数据平台一般来讲有:数据转换,数据上传,...…
-
NodeJS观察者模式库(observable-fns)
平时在开发过程中,经常会用到设计模式(Design pattern), 它是前人总结出的宝贵经验和经典实践。常用的设计模式有三类:创建型模式(工厂模式、单例模式、建造者模式)、结构型模式(装饰器模式、适配器模式、代理模式)、行为型模式(监听者模式、观察者模式)。本文介绍一种观察者模式的实现库:Observable-fns, 使用者可以快速在NodeJS环境下使用该模式进行消息分发和订阅。 前言 观察模式整体设计 广播消息 其他消息管理 总结前言Observable-fns是一...…
-
NodeJS多线程库Threads
NodeJS作为server端的运行环境,在低资源占用的情况下,处理高IO有很大的优势。然而对于密集型计算的任务却有些力不从心,虽然早已引入worker线程,但依然依然在使用上有诸多不便。本文介绍一种NodeJS三方库: ThreadsJS, 使用者可以快速使NodeJS具有复杂场景下密集计算的能力。 前言 Threads.js 整体设计 线程封装 工作线程封装函数: expose 主线程封装函数: spawn 线程间信息传递 ...…
-
NodeJS入门基础与线程模型
NodeJS作为一钟广泛使用的服务端运行环境,拥有大量的应用场景。NodeJS设计简单,并兼备高性能, 其设计思想具有很大借鉴意义,本文将介绍NodeJS涉及原理,科普相关知识。 前言 NodeJS的诞生 NodeJS的体系结构 V8引擎 Bindings layer Libuv NodeJS的多线程模型 总结前言NodeJs在不引入其他线程的情况下,可以实现高并发,尤其适用高IO场景。并兼容JavaScript, 前端工程师...…