目前,全局性的端到端自动驾驶都是基于大语言模型LLM或多模态大模型的。
图片来源:《A Survey for Foundation Models in Autonomous Driving》
这是站在巨人肩上,这种全局性的端到端自动驾驶可以减少95%以上的自动驾驶开发人员,研发成本大幅降低。不过这种设计,对运算芯片的存储带宽要求很高,而算力完全可以忽略不计。
本文主要根据https://www.baseten.co/blog/llm-transformer-inference-guide和https://arxiv.org/pdf/2404.14294之A Survey on Efficient Inference for Large Language Models撰写,大模型或者说LLM的推理延迟95%以上取决于存储带宽,算力大小基本可以忽略不计。
当前的主流 LLM 基本都是 Decoder Only 的 Transformer 模型,其推理过程可分为两个阶段:
图片来源:论文 A Survey on Efficient Inference for Large Language Models
与传统的CNN 模型推理不同,大语言模型的推理通常会分成 prefill 和 decoding 两个阶段。每一个请求发起后产生的推理过程都会先经历一个 Prefill 过程,prefill 过程会计算用户所有的输入,并生成对应的KV 缓存,再经历若干个 decoding 过程,每一个 decoding 过程,服务器都会生成一个字符,并将其放入到 KV 缓存当中,之后依次迭代。由于 decoding 过程是逐个字符生成的,每一段答案的生成都需要很长时间,会生成很多字符,所以 decoding 阶段的数量非常多,占到整个推理过程的 90% 以上。在 Prefill 过程中,虽计算量很大,因为要一次性完成用户输入的所有词的计算,但它只是一次性的过程,所以在整个推理中只占不到 10% 的时间。
Prefill阶段还包括把用户的输入进行向量化即tokenize,Decoding 阶段不需要 tokenize。每一次做 decoding 都会直接从计算开始,整个decoding 过程会占掉 80% 的时间,而后面的 sampling,也就是采样生成词的过程,也要占掉 10% 的时间。但它会有一个 detokenize 的时间,detokenize 是指生成了一个词之后,这个生成的词是个向量,需要把它解码回文本,这一操作大概会占掉 5% 的时间,最后将这个生成的词返回给用户。
图片来源:论文 A Survey on Efficient Inference for Large Language Models
首Token阶段,延迟取决于算力大小,后续decoding阶段,延迟取决于存储带宽。并发量或批处理batch size也很重要,简单地说,batch size越高,计算单元的利用效率就越高,因为它是可以并行的,但中间产生的KV 缓存会很高,batch size高到一定阶段,KV缓存会超过总内存,以至于无法计算,彻底死机。自动驾驶系统的给定时间段内只会有一个任务请求,大致可看成batch size是1,而ChatGPT这样可能会同时接到多个任务需求。自动驾驶系统就无需考虑KV缓存溢出。Batch size太低,意味着计算单元的利用率就很低。
我们来计算自动驾驶系统端到端推理所需要的时间,总推理时间是首个token产生的时间加每秒token与token的乘积。Total generation time = prefill time + number of tokens * time/token。
先来计算prefill time,Prefill time = number of tokens * ( number of parameters / accelerator compute bandwidth),这里的加速器计算带宽就是算力。
图片来源:谷歌论文An Image Is Worth 16x16 Words: Transformers for Image Recognition at Scale
Token数是多少呢?token,它在NLP自然语言处理中指最小的词,在图像领域,指patch,即最小的图像“块”。tokenization指将输入的语言或图像切割为token的过程,这个自然是像素越小越好,很简单的道理,一句话分词分的越细,这句话的语义也就更准确,一句话分的越粗,语义偏差就可能越大。假设我们使用谷歌的ViT-E模型,输入800万像素的视频,采用16*16的patch,那么token数大约是4.08万个,如果是200万像素,那么token差不多是1万个,采用INT8精度,假设大模型的参数量是70亿,芯片算力是77TOPS,那么prefill时间是10000*70亿/77TOPS=886毫秒。
每token所费时间=total number of bytes moved (the model weights) / accelerator memory bandwidth,采用INT8精度,假设大模型的参数量是70亿,芯片存储带宽是68GB/s,可以计算7GB/68=10毫秒,那么总时间为886+10000*10=100886毫秒,即100.9秒钟,首个token所须要的时间不到1%,可以忽略,99%的延迟都由存储带宽决定。同时这个延迟太高了,高速自动驾驶须要的帧率是25Hz-30Hz,也就是说一次推理所消耗的时间不能超过40毫秒,显然,直接用transformer做自动驾驶完全不可能。需要指出谷歌的这个ViT模型本身的参数量是很小的,基础模型只有8600万参数,我们只是用ViT模型将视频tokenization,ViT的二代将16*16扩张为32*32,token数量会减少到原来的1/4,即使如此也无法用于自动驾驶当中。
常见芯片存储带宽统计
直接在自动驾驶领域内用大模型是不可能的,解决办法有两个,一个是减少token输入数量,另一个是降低大模型的参数量。
实际上,目前所有量产车型的图像特征提取都还是10年前就在使用的CNN,即使再多优化,直接用transformer处理视频都完全不可能,而CNN是典型的非端到端。
这是特斯拉2022年AI Day上的图。
图片来源:新思科技
骨干网还是基于CNN的RegNET,国内大多用ResNet50,这是2015年由大神何凯明提出的,至今仍长盛不衰。
至于降低模型参数是不大可能的,众所周知,大模型之所以性能好就是因为参数足够多,目前无论哪个领域,模型的参数量都在飞速增长。
自动驾驶领域很长一段时间内都还是BEV+OCC的天下,实际就算是BEV+OCC时代,存储带宽的重要性也不亚于算力。很简单,数据训练量越大,最后得出的模型参数量自然就越高,算法的不断迭代就是模型参数的不断增长,模型参数越大,存储带宽所造成的延迟就越明显,而端到端大模型时代则是完全可以忽略算力因素。
免责说明:本文观点和数据仅供参考,和实际情况可能存在偏差。本文不构成投资建议,文中所有观点、数据仅代表笔者立场,不具有任何指导、投资和决策意见。
更多佐思报告
产业研究部|符先生 15810027571
赵先生 18702148304
数据服务部|张女士 13716037793
战略咨询部|韩女士 15810133447
推广传播部|廖女士 13718845418
相关阅读
佐思数据 | 2024年1-8月中国乘用车智能车载信息娱乐系统装配量及装配率
2024上半年全球汽车零部件供应商收入排名TOP100
佐思数据 | 2023-2024年 中国乘用车新车L0-L2.9渗透率及排名
2024上半年全球汽车零部件供应商收入排名TOP50
佐思数据 | 2024年1-7月 中国乘用车新车FCTA装配量同比增长222.1%,渗透率增长5.6个百分点
佐思数据 | 2024年7月中国乘用车新车前视模组供应商TOP10
佐思数据 | 2024年1-7月 中国乘用车新车LCA装配量同比增长29.0%,渗透率增长6.6个百分点
佐思数据 | 2023-2024年 中国乘用车新车L0-L2.9渗透率及排名
佐思数据 | 中国乘用车中控屏(≥10″)装配量与装配率
佐思数据 | 2023.8-2024.7 中国乘用车HUD装配量与装配率
佐思数据 | 2023.8-2024.7 中国乘用车一体屏方案装配量与装配率
佐思数据 | 2024年1-6月 中国乘用车新车城市NOA装配量同比增长39.0%,渗透率增长0.3个百分点
佐思数据 | 2024年1-6月 中国乘用车新车HVP or AVP装配量同比增长255.7%,渗透率增长1.1个百分点
佐思数据 | 2024年1-6月 中国乘用车新车ICA装配量同比增长43.8%,渗透率增长10.9个百分点
佐思数据 | 2023年7月-2024年6月 中国乘用车DMS装配量与装配率
佐思数据 | 2023年7月-2024年6月 中国乘用车OMS装配量与装配率
佐思数据 | 2024年1-6月中国乘用车制动系统(ESC/ONE-BOX) TOP10
佐思数据 |中国乘用车新车L2级及以上ADAS集成供应商市场份额TOP10
佐思数据| 2024年1-6月 中国乘用车新车APA融合装配量同比增长54.2%,渗透率增长3.9个百分点