Asta Lab · 全栈情报站AI FULL-STACK INTELLIGENCE每日 · 全栈 · 精选

AstaNews

AI 全栈每日情报

Demystifying Numerical Instability in LLM Inference (HEAL)

如果你要把大模型部署到对可复现有硬性要求的领域——金融、医疗、法律——这篇说的是一个很容易被忽略、却足以踩坑的工程问题。 问题本身反直觉。很多人以为只要用贪心解码(greedy decoding)把采样的随机性关掉,模型输出就该是确定的。但实际部署里,只要精度是 16-bit,换一块异构(不同型号)的 GPU 跑同样的输入,输出仍会出现灾难性发散——不是细微抖动,而是会跑出明显不同的结果。对需要审计、需要这次和上次一模一样的场景,这是不能接受的。 作者的贡献首先是把根因定位清楚。他们做了 SASS 级(英伟达 GPU 汇编层)的 profiling,结论是:这种不一致从根本上来自在 kernel 边界做精度下采样(downcasting)时引入的截断误差。不同 GPU 的 kernel 实现或硬件路径在这些边界上的取舍不同,误差累积起来就放大成了输出分歧。 那为什么不直接全程上 FP32?因为代价太大,作者把这笔账算给你看:绕开 16-bit 硬件加速器会伤害计算效率(等于不用专门的加速能力),而把 KV cache 也升到 FP32 会让显存开销直接翻倍。这两条都是生产环境难以承受的系统惩罚。 HEAL(Hybrid Error ALleviation,混合误差缓解)就是来弥合这道缝的:在逼近 FP32 精度的同时,用有针对性的手段绕开硬件约束。摘要给出的第一个机制是——注意到浮点格式在表示 Q、K、V 张量时并没有用满它的位宽,于是 HEAL 对这些张量改用 INT16 量化,既稳住了数值稳定性,又不会像升精度那样撑大 KV cache 的占用。第二个机制摘要在此处被截断,未完整给出。 保留也要说清楚:摘要没有给出最终的可复现率、跨 GPU 一致性提升了多少、对端到端延迟和吞吐的影响等量化结果,第二个机制的细节也缺。但对要在异构 GPU 上保证输出可复现、又不想为此牺牲一半显存或推理速度的团队,HEAL 把问题的根因和一个不扩 KV cache 的折中方向讲清楚了,值得在完整论文出来后跟进数字。
相关