
ChatGPT
现在在一家大模型独角兽企业做推理优化相关工作,想分享些个人看法,也期待能与大家一同探讨。一般而言,我会从功能与性能这两方面去评价一个大模型推理引擎。功能方面以下两点尤为重要:另外,有些功能在特定场景中非常关键。像多lora支持这一功能,在用户要同时运用多个同源微调模型的时候,能够极大地提高效率;guided decoding则可按照用户规定的格式生成结构化的输出内容。说到性能,从用户角度出发,我们关注用户体验,所以一般会考虑以下几个指标。作为用户,我们期望快速得到生成结果,所以上述三个指标越小越佳。不过从系统的角度而言,更关注的是下面这个指标:吞吐是常见指标,下面讲讲什么样的吞吐是好的。举个例子,在对话场景里,我们一般期望在1秒内就得到
ChatGPT的回应(也就是TTFT≤1秒),并且以比
人类阅读速度略快些的速度(即TPOT≤150毫秒)接收到对话内容。但在负载较大时,有些请求无法达到上述要求,goodput就是指把这些请求排除后的throughput。换种说法,就是在符合用户场景对延迟的要求前提下,尽可能提高吞吐量。下面这张图可将用户视角与系统视角在意的数据串联起来。
在上面的图里,y轴代表的是TTFT和TPOT的中位数,x轴表示请求频率(与QPS相似)。一个优秀的推理引擎,就像图中的LMDeploy那样,当请求频率上升时,TTFT和TPOT的中位数基本保持不变,这表明引擎的处理能力远高于现有的请求频率。