现在这些牛皮研究都不发论文改发博客了?Open AI 前 CTO Mira Murati 的新公司 Thinking Machines 发布重磅研究文章《战胜 LLM 推理中的非确定性》\n\n这篇文章中他们着力于解决从 LLM 几乎无法获得可以复现的结果的问题\n\n\n为什么大型语言模型会出现“非确定性”?\n\n模型的核心部分其实是“确定性”的:研究发现,大型语言模型在处理信息时,最核心的计算步骤本身是“确定性”的\n\n真正的罪魁祸首——“批次不变性”问题:问题出在模型如何同时处理多个请求。\n\n在实际运行中,为了效率,模型会把好几个用户的请求或者一个长请求的不同部分“打包”在一起处理。但如果这些打包操作没有设计好,即使是同样的输入,由于处理顺序、并行计算中数据共享等细微差别,也可能导致最终结果出现差异\n\n\n解决方案:实现“批次不变性核函数”\n\n为了解决“批次不变性”问题,研究团队提出要对模型中的一些关键操作进行改进:\n\nRMSNorm的批次不变性:RMSNorm就是模型里一种类似的“标准化”操作,确保数据在一个稳定的范围内,让模型更好地学习\n\n在并行计算中,RMSNorm通常会将不同的数据部分分配给不同的计算核心处理。如果设计不当,这些核心之间的通信或数据处理方式的细微差异,就可能导致结果不一致\n\n他们提出了一种数据并行RMSNorm策略。确保每个计算核心只处理一个完整的、独立的任务,这样就避免了不同核心之间为了完成同一个任务而进行复杂的通信,从而保证了每个核心内部的计算是完全独立的和可重复的\n\nAttention的批次不变性:\n\nAttention机制是语言模型里的“聚光灯”,它能让模型在生成每个词的时候,知道应该把注意力放在输入文本的哪些部分上\n\n他们采用了FlashAttention2的并行化策略,在处理查询时进行并行,同时在键和值上进行缩减。所有的缩减操作都可以在一个计算核心内部完成,再次实现了“数据并行”,避免了核心间的通信问题\n\n模型在生成每个词语时,查询的长度会变得非常短。在这种情况下,原来的并行策略可能效率不高。他们采用了一种“固定KV维度切分策略”,也就是将键和值维度进行切分,分配给不同的核心处理,以确保足够的并行度\n\n博客:thinkingmachines.ai/blog/defeating-nondeterminism-in-llm-inference
现在这些牛皮研究都不发论文改发博客了?Open AI 前 CTO Mira Murati 的新公司 Thinking Machines 发布重磅研究文章《战胜 LLM 推理中的非确定性》
这篇文章中他们着力于解决从 LLM 几乎无法获得可以复现的结果的问题
为什么大型语言模型会出现“非确定性”?
模型的核心部分其实是“确定性”的:研究发现,大型语言模型在处理信息时,最核心的计算步骤本身是“确定性”的
真正的罪魁祸首——“批次不变性”问题:问题出在模型如何同时处理多个请求。
在实际运行中,为了效率,模型会把好几个用户的请求或者一个长请求的不同部分“打包”在一起处理。但如果这些打包操作没有设计好,即使是同样的输入,由于处理顺序、并行计算中数据共享等细微差别,也可能导致最终结果出现差异
解决方案:实现“批次不变性核函数”
为了解决“批次不变性”问题,研究团队提出要对模型中的一些关键操作进行改进:
RMSNorm的批次不变性:RMSNorm就是模型里一种类似的“标准化”操作,确保数据在一个稳定的范围内,让模型更好地学习
在并行计算中,RMSNorm通常会将不同的数据部分分配给不同的计算核心处理。如果设计不当,这些核心之间的通信或数据处理方式的细微差异,就可能导致结果不一致
他们提出了一种数据并行RMSNorm策略。确保每个计算核心只处理一个完整的、独立的任务,这样就避免了不同核心之间为了完成同一个任务而进行复杂的通信,从而保证了每个核心内部的计算是完全独立的和可重复的
Attention的批次不变性:
Attention机制是语言模型里的“聚光灯”,它能让模型在生成每个词的时候,知道应该把注意力放在输入文本的哪些部分上
他们采用了FlashAttention2的并行化策略,在处理查询时进行并行,同时在键和值上进行缩减。所有的缩减操作都可以在一个计算核心内部完成,再次实现了“数据并行”,避免了核心间的通信问题
模型在生成每个词语时,查询的长度会变得非常短。在这种情况下,原来的并行策略可能效率不高。他们采用了一种“固定KV维度切分策略”,也就是将键和值维度进行切分,分配给不同的核心处理,以确保足够的并行度
博客:thinkingmachines.ai/blog/defeating-nondeterminism-in-llm-inference