这里这张图非常的清晰,借鉴至这篇文章(https://medium.com/squeezebits-team-blog/vllm-vs-tensorrt-llm-1-an-overall-evaluation-88f281bf01c7),主要就是涉及 TTFT、TPOT、Total Inference Time (Latency) 以及图中没有提及的 TPS,这几个大模型的性能指标不只是适用于纯语言大模型 LLM,也适用于多模态大模型 MLLM,所以还是比较通用。
定义:从向模型输入 prompt 开始到模型生成第一个输出 token 所花费的时间。
作用:从业务角度来说是反映模型的初始响应速度,对于实时交互式应用非常重要,较低的TTFT可以提高用户体验,使用户感觉模型响应迅速;从算法推理角度来说,其实主要是在掐大模型推理的 Prefill 时间,更加准确一些的是上图中的 Queueing Time + Prefill Latency 时间和。
定义:从输入 prompt 到模型生成完整输出所消耗的总时间。
作用:总体的响应时间,包含 TTFT 和生成所有 tokens 的时间,当然对于需要快速响应的应用,延时越低越好。
定义:模型在输出阶段 (Decode 阶段) 每个输出 token 的延时。
计算方式:
作用:衡量模型生成阶段自回归蹦出来输出的效率。
定义:模型每秒生成的tokens数量。
计算方式:
作用:直接衡量模型的生成速度 (还是指 decode 阶段)。TPS 越高,表示模型生成文本的速度越快。
下面实操在 transformers 中测量 TTFT、TPOT、Latency 和 TPS 数据的代码。
def measure_performance(model, tokenizer, prompt, max_new_tokens=50):
inputs = tokenizer(prompt, return_tensors="pt")
input_ids = inputs.input_ids.to(model.device)
# 测量TTFT
start_time = time.time()
with torch.no_grad():
outputs = model.generate(input_ids, max_new_tokens=1)
ttft = time.time() - start_time
# 测量TPOT和Latency
start_time = time.time()
with torch.no_grad():
outputs = model.generate(input_ids, max_new_tokens=max_new_tokens)
total_time = time.time() - start_time
tpot = (total_time - ttft) / max_new_tokens
latency = total_time
# 计算TPS
tps = max_new_tokens / latency
return ttft, tpot, latency, tps
prompt = "Once upon a time"
ttft, tpot, latency, tps = measure_performance(model, tokenizer, prompt)
print(f"TTFT: seconds")
print(f"TPOT: seconds")
print(f"Latency: seconds")
print(f"TPS: tokens/second")
如果你稍微心细一些可能会发现上述的代码是在掐 max_new_tokens
的时间,而实际的输出 token 数一定会是 <= max_new_tokens
,这应该很好理解。所以更加准确一些的测试方法是掐实际输出 tokens,实际输出 tokens 可以使用类似 len(tokenizer.encode(response))
的代码进行计算。
所以可以看到大模型这种生成的模式测性能,指标和以前的 CV 小模型测性能差别非常之大。
好文章,需要你的鼓励
OpenAI首席执行官Sam Altman表示,鉴于投资者的AI炒作和大量资本支出,我们目前正处于AI泡沫中。他承认投资者对AI过度兴奋,但仍认为AI是长期以来最重要的技术。ChatGPT目前拥有7亿周活跃用户,是全球第五大网站。由于服务器容量不足,OpenAI无法发布已开发的更好模型,计划在不久的将来投资万亿美元建设数据中心。
阿里巴巴团队提出FantasyTalking2,通过创新的多专家协作框架TLPO解决音频驱动人像动画中动作自然度、唇同步和视觉质量的优化冲突问题。该方法构建智能评委Talking-Critic和41万样本数据集,训练三个专业模块分别优化不同维度,再通过时间步-层级自适应融合实现协调。实验显示全面超越现有技术,用户评价提升超12%。
英伟达推出新的小型语言模型Nemotron-Nano-9B-v2,拥有90亿参数,在同类基准测试中表现最佳。该模型采用Mamba-Transformer混合架构,支持多语言处理和代码生成,可在单个A10 GPU上运行。独特的可切换推理功能允许用户通过控制令牌开启或关闭AI推理过程,并可管理推理预算以平衡准确性和延迟。模型基于合成数据集训练,采用企业友好的开源许可协议,支持商业化使用。
UC Berkeley团队提出XQUANT技术,通过存储输入激活X而非传统KV缓存来突破AI推理的内存瓶颈。该方法能将内存使用量减少至1/7.7,升级版XQUANT-CL更可实现12.5倍节省,同时几乎不影响模型性能。研究针对现代AI模型特点进行优化,为在有限硬件资源下运行更强大AI模型提供了新思路。