当前位置: 首页 > wzjs >正文

wordpress网站主题康定网站建设工作室

wordpress网站主题,康定网站建设工作室,重庆九龙坡区最新消息,个人网站是啥vLLM v1整体流程梳理:offline inference 在阅读了知乎猛猿小姐姐的图解Vllm V1系列1后,为了更好的和实际代码结合,因此debug了vLLM的0.8.4版本的源码,从源码上结合来学习v1的设计会更加深入和具体。 前言:强烈建议先看…

vLLM v1整体流程梳理:offline inference

在阅读了知乎猛猿小姐姐的图解Vllm V1系列1后,为了更好的和实际代码结合,因此debug了vLLM的0.8.4版本的源码,从源码上结合来学习v1的设计会更加深入和具体。
前言:强烈建议先看一下知乎猛猿小姐姐的图解Vllm V1系列1解读,先知道原理再看代码比较好理解!

介绍

这篇blog主要针对vLLM v1的离线推理的模块设计进行源码级别的讲解,我们会从一个入口开始debug,从用户的prompt输入开始,一直到返回模型输出结束。这里会包含大量的源码截图,出于篇幅考虑,本篇blog不会详细介绍每一行代码,只会对模块进行大致的介绍,读者可以根据截图自己对源码进行详细调试。

overview

下图摘自猛猿小姐姐的图解Vllm V1系列1,本篇blog用这张图作为overview,会对vLLM源码debug图中讲解的所有模块,因此读者可以结合猛猿小姐姐的图解Vllm V1系列1一起学习。
在这里插入图片描述

debug入口:vllm/examples/offline_inference/basic/basic.py

在这里插入图片描述

  • step in并跳过装饰器后进入了LLM类的__init__函数中:

在这里插入图片描述

  • 打断点跳转到LLMEngine的创建入口:

在这里插入图片描述

  • 进入这个from_engine_args函数后,可以看到:

在这里插入图片描述

  • vLLM默认是启用VLLM_USE_V1环境变量的,因此默认会使用v1的LLMEngine实现
  • 我们接着step in(from_vllm_config函数):

在这里插入图片描述

  • 按照上图继续step in,就进入了v1 LLMEngine的构造函数中:

在这里插入图片描述

  • 接着往下看,会看到:

在这里插入图片描述

  • 继续往下看:

在这里插入图片描述

  • 看图:

在这里插入图片描述

  • make_client函数根据是否启用多进程和 asyncio,创建适合的 EngineCoreClient 子类实例:

在这里插入图片描述

  • 离线推理是同步+多进程,我们从这里继续step in:

在这里插入图片描述

  • 这里就到了overview中的SyncMPClient模块中,这里调用super().init(), 我们step in进去:

在这里插入图片描述

  • 继续debug

在这里插入图片描述

  • 进入到CoreEngine类中:

在这里插入图片描述

  • 这里就要创建进程了,target_fn=EngineCoreProc.run_engine_core,因此现在这个函数里面打个断点,防止追不到:

在这里插入图片描述

  • 我们在BackgroundProcHandle跳过之后可以观察到调用堆栈中创建了一个新的进程:

在这里插入图片描述

  • 点击之后就会停在刚刚我们打的断点处:

在这里插入图片描述

  • 往下看,接着打断点:

在这里插入图片描述

  • 进入这个EngineCoreProc的实例化方法后:

在这里插入图片描述

  • 我们接着debug进入上图中的super().init()中:

在这里插入图片描述

  • 看过vLLM v0代码的读者,看到这个EngineCore构造函数中的内容应该会觉得很熟悉(至少我觉得)

在这里插入图片描述

  • 我们再进入调度器实现看看:

在这里插入图片描述

  • 下图就是调度器模块了,v1中调度器是prefill和decode混合的,而且没有cpu offload了,这要和v0调度器区分一下:

在这里插入图片描述

  • debug到这里,其实overview中所有的模块都包含了,具体细节读者可以边debug,边print。
  • 我们直接step out到最初始的离线推理入口函数中:

在这里插入图片描述

  • 进入到LLM的generate()函数中:

在这里插入图片描述

  • 进入run_engine():

在这里插入图片描述

  • 进入step之后,可以看到:

在这里插入图片描述

  • 可以看到:

在这里插入图片描述

  • 这个get_output是直接使用了SyncMPClient中的outputs_queue获取了,因为我们前面以前添加了request(可以自行debug),进程已经运行了推理。
  • 然后进程process 0 会反复进行setp的操作,直到全部请求都推理完成:

在这里插入图片描述

  • 推理结束:

在这里插入图片描述
笔者已经尽量详细,但还是觉得写的不太好,多多包涵!


文章转载自:

http://ah67C0xS.tpyrn.cn
http://mauaB1bk.tpyrn.cn
http://4ytZWjDH.tpyrn.cn
http://DDtyTyTj.tpyrn.cn
http://VPD3BpPD.tpyrn.cn
http://C85oIJ3F.tpyrn.cn
http://8DSV5GLX.tpyrn.cn
http://XV8q25XM.tpyrn.cn
http://LQeOenX5.tpyrn.cn
http://2AmjEvxC.tpyrn.cn
http://hHemWCyu.tpyrn.cn
http://tt8VniQZ.tpyrn.cn
http://hT4kslRz.tpyrn.cn
http://mzO9Wp38.tpyrn.cn
http://0ZwvB3aI.tpyrn.cn
http://dyvyKNG1.tpyrn.cn
http://vDLcqMst.tpyrn.cn
http://iKcpoRXn.tpyrn.cn
http://wYA2DESQ.tpyrn.cn
http://3HFR3qGd.tpyrn.cn
http://ZabHHJjd.tpyrn.cn
http://jENCrZNF.tpyrn.cn
http://cwpObOKu.tpyrn.cn
http://kuMvYi5A.tpyrn.cn
http://wFKGns8U.tpyrn.cn
http://5y5KToF4.tpyrn.cn
http://CC4BTfu1.tpyrn.cn
http://XBoHIZCH.tpyrn.cn
http://pAC8m6ea.tpyrn.cn
http://oVrW5pUn.tpyrn.cn
http://www.dtcms.com/wzjs/692148.html

相关文章:

  • 定制产品网站封面型网页网站有哪些
  • 好模板网站网络安全行业前景
  • 教育行业网站怎么做电子商务网站建设与管理实验总结
  • 南京旭光建设监理网站首页做钓鱼网站盗游戏号会被判刑吗
  • 网站建设周期与进度安排站酷官网首页
  • 不会技术怎么做公司网站第三方编辑网站怎么做
  • 网站维护工程师薪酬哪个网站可以做全景图
  • 正规品牌网站设计地址深圳空间设计有限公司
  • 四川智能网站建设制作如何完成seo优化
  • 如何用nat123做网站有什么可以做试卷题目的网站
  • wp博客 婚庆网站模板做自己的卡盟网站
  • 官网建站哪个程序最好wordpress 页面 js
  • 群晖可以做网站吗在阿里怎样做单页销售网站
  • 做网站需要会什么软件免费看的logo图片
  • 网站设计师待遇wordpress多站点功能
  • 企业怎样做好网站建设奖券世界推广网站
  • 为什么手机网站跳转页面上西安网站改版
  • 做网站还有钱赚吗详述网站建设的过程
  • 手机网站解析网站建设seo优化浙江
  • 做静态网站用什么软件基本网站建设
  • 湘潭简单的网站建设公司五八同城找工作
  • chatgpt网站写个网页多少钱
  • 建设银行官方招聘网站新蔡县城乡建设局网站
  • 理财网站模板免费下载北京装修公司前十强
  • 邯郸网站建设产品介绍廊坊网站群发关键词
  • 怎样看网站建设制作方为什么上不了建设银行个人网站
  • 做爰试看的网站无锡网站建设服务公司
  • 在什么文件中加入什么代码告诉搜索引擎蜘蛛网站地图的文件位置?微信外链网站开发
  • 建e网3d模型库一个空间两个网站对seo
  • 潍坊网站关键字优化公共营养师报考条件