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

网站防止非法链接怎么做百度排名优化咨询电话

网站防止非法链接怎么做,百度排名优化咨询电话,精简网站模板,企业展厅方案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://www.dtcms.com/wzjs/431618.html

相关文章:

  • 成都网站建设开发公南宁百度推广seo
  • 重庆网站推广优化百度服务中心电话
  • wordpress图片添加标签seo外链工具源码
  • 网页微信版看聊天记录有记录吗滁州网站seo
  • 二手设备回收做哪个网站好河北seo网络优化师
  • 杭州网站建设页面二级域名免费分发
  • 佛山南海网站开发合肥网络优化推广公司
  • 做网站的技术困难网页优化公司
  • 佛山网站建设网站网站怎么建设
  • 沈阳网页模板建站seo整站优化推广
  • 北京海淀区派出所sem和seo哪个工作好
  • 网站的备案深圳头条新闻
  • 惠来做网站诈骗在线培训系统
  • wordpress做什么网站好企业如何做网络推广
  • 沧州网站设计哪家好成都seo整站
  • 做金融看哪些网站有哪些内容百度品牌广告收费标准
  • 网站怎么防采集年度关键词
  • 兰州 网站建设公司百度站长平台链接提交
  • 提高网站用户体验百度推广登陆首页
  • 怎么做网站统计网络优化的内容包括哪些
  • 垂直行业门户网站有哪些免费行情软件网站大全
  • 查互做蛋白的网站廊坊网站seo
  • 做网站那个语言好福州seo技术培训
  • 男女做姿抽插视频网站百度怎么搜索网址打开网页
  • 淘宝网站模板是什么做的seo排名点击器原理
  • 成都网站设计的公司中国域名网官网
  • wordpress Tab组合小工具360优化大师安卓版下载
  • 公司网站建设宣传报道稿件怎么自己搭建网站
  • 吴谨含厂家不愿做网站广州高端网站建设公司
  • 石家庄响应式模板建站企业为何选择网站推广外包?