2026年7月9日 周四晚上19:30,报名腾讯会议了解“如何构建自进化的动态知识库(Brain)”(限30人)
免费POC, 零成本试错
FDE知识库

FDE知识库

学习大模型的前沿技术与行业落地应用


收藏

如何准确且可解释地评估大模型量化效果?

发布日期:2024-08-15 06:36:26 浏览次数: 4092
作者:OneFlow

微信搜一搜,关注“OneFlow”



随着Llama 3.1的发布,关于不同量化方法的优缺点的讨论变得相当热烈。模型量化质量的评估一向是个难题,本文将分享Fireworks如何处理量化以及评估其中的权衡。


以下是本文内容摘要:

  • 量化没有通用的标准——量化技术多种多样,模型中可以量化的部分也各不相同。Fireworks与Cursor和Superhuman等客户有密切合作,根据个别使用场景量身定制量化方案。

  • 使用KL散度衡量量化质量——为了衡量量化质量,作者倾向于使用散度指标。这些指标的准确性和可解释性很强,并且得到了相关文献的支持。

  • 其他评估方法——Fireworks通过散度指标和任务指标来细致地评估模型,以确保质量与参考模型(reference model)匹配。然而,作者并不建议使用基于任务的方法来衡量量化质量,因为高噪声会限制精度。

  • 你就是质量的最佳评判者——不同的量化技术对不同的使用场景有不同的影响。因此,开发者是量化质量的最佳评判者。


(本文经授权后由OneFlow编译发布,转载请联系授权。来源:https://fireworks.ai/blog/fireworks-quantization)


1

引言


对于通用的LLM推理和量化,我们认为没有一种通用的解决方案能适用于所有LLM推理。推理和量化设置在理想情况下应该是针对特定的使用场景进行特别定制。


一个关于量化的常见误解是:量化是非黑即白的,要么模型被很好地量化了,要么就没有被量化。然而,实际上却存在以下两种情况:


  1. 多种可能的量化技术,其激进程度各不相同。例如,我们可能会使用SmoothQuant、GPTQ以及异常值减少变换(如Hadamard、SpinQuant)等技术来将量化模型的质量最大化。扩展因子的粒度可以从每个整个张量一个到每个小值组一个不等。在运行时,量化模型可能会使用在线Hadamard技术来减少KV缓存的不一致性,或使用在线扩展来进行线性变换。

  2. 模型的各种层/部分可以被量化,例如QKV投影、注意力或KV缓存。一些层可能会被跳过或不进行量化。




通常,随着量化激进程度的增加,性能会提高,但质量会下降。然而,在只对质量产生微小影响的情况下,获得显著的性能提升,也是有可能的。质量与性能之间的权衡取决于以下因素:


(a) 特定模型(甚至是模型的微调)
(b) 使用场景——量化对代码生成等使用场景的影响可能与函数调用不同,请参见下面的假设图示。


一般来说,量化的目标是找到质量与速度之间的帕累托曲线(一种用于表示资源分配优化的曲线,常用于描述两者之间的权衡关系)上的最佳点。我们会与企业客户单独合作,找到这一最佳点。然而,对于我们的公共端点来说,由于平台上存在各种使用场景,并没有一个完美的配置。


2

KL散度——评估量化质量


如何衡量量化后的模型质量?由于质量取决于具体的使用场景,所以开发者还是评估其应用程序质量的最佳人选。然而,为了衡量模型的综合质量,我们更倾向于关注散度指标(量化对特定模型输出的改变程度),而不是单纯的能力指标(例如量化模型在通用基准测试如MMLU上的分数)。


这一理念在微软研究院最近的论文《准确性并不是唯一指标(https://arxiv.org/abs/2407.09141)》中得到了很好的表述。简单来说,量化引入的噪声可能会导致一些正确答案变为错误答案,但也可能会使一些错误答案变为正确答案(特别是在模型“不确定”的情况下)。这会影响准确性。对量化前后模型输出的概率分布的变化进行更精准地观察,可以帮助我们更清晰地理解不同量化技术的效果。


具体来说,我们专注于两个散度指标:


  • Kullback-Leibler散度 (KLD)——衡量词元概率分布的变化程度(即使每个位置上选择的词元相同)

  • 词元拒绝率——衡量不同选择的最高概率词元的数量(可以将其视为使用量化模型作为草稿模型的准确性(β))


我们对这些指标进一步细分,以便在预填充和生成阶段(推理的不同部分可能使用不同的量化技术)理解散度:


  • 预填充KL散度

  • 生成KL散度

  • 预填充拒绝率

  • 生成拒绝率


我们的方法如下:


  1. 参考模型生成:为了计算散度,我们让参考的16位模型根据各种提示生成词元直到完成。假设词元数量足够,散度指标对初始提示的选择具有很强的稳定性。

  2. 参考分布创建:在每个位置,我们记录前N个对数概率值并将其归一化为一个分布。作为经验法则,我们选择N使得前N个词元覆盖分布的0.99,我们发现N=16是一个不错的值。

  3. “强制”量化模型生成和分布创建:然后,我们在相同的提示上运行量化模型并构建一个类似的分布。重要的是,即使量化模型倾向于选择其他词元,我们仍然坚持使用参考模型所生成的输出。这可以防止量化模型生成一个完全不同的结果,这个结果可能质量较差但困惑度指标(例如,重复性)很好。

  4. 散度分析:随后我们可以分析所有样本的预期散度、相对于位置的预期散度等。重要的是,我们可以同时查看这些指标在预填充和生成阶段的情况,因为不同的技术对每个部分的影响不同。




我们在Llama 3.1 8B Instruct模型上对4种不同的“量化级别(levels of quantization)”进行了KL散度评估,在这些量化级别中,我们对模型的不同部分进行量化。为了进行对比,我们还与MMLU进行了比较。Fireworks平台提供了对数概率值(logprobs),因此我们鼓励大家自行评估散度结果。我们也鼓励其他提供商公开对数概率值,以帮助分析量化的权衡。结果如下所示。


  • 级别 1:量化MLP矩阵乘法,除去第一层和最后一层(最少激进的量化)

  • 级别 2:级别 1 + 量化省略的层和QKV

  • 级别 3:级别 2 + 量化KV缓存

  • 级别 4:级别 3 + 量化预填充中的注意力(最激进的量化)


量化级别的指标(由于模板差异,可能与Meta报告的结果不完全匹配。粗体数字是高噪声MMLU指标的一个例子)



一些值得注意的要点


  • 量化引起的散度比例增加:正如预期的那样,我们发现散度指标在相互之间以及与量化级别的关系中是单调增长(Increase monotonically)的。相比之下,基于任务的指标(如MMLU)噪声较大,我们看到量化模型(级别2)的MMLU性能实际上比FP16参考模型更高。

  • 可解释性:不同的模型需要不同的量化选择,因为瓶颈(包括信息和性能)可能不同。通过对我们的指标进行分段和进行消融测试,我们可以看到不同类型的量化是如何影响推理的不同方面,从而为选择最佳量化方法提供依据。例如,我们发现:

    • 量化模型的MLP层对模型的影响相对较小,而量化QKV值的影响较大。

    • 量化注意力预填充操作对长预填充模型的速度提升比对长生成模型的速度提升更明显。

  • 质量降级很小——虽然难以定义单一的可接受散度值,但通常KL散度小于0.007会带来高质量的部署。


3

确保质量


在Fireworks,我们对部署的模型与参考模型进行了细致的比较,发现了HuggingFace实现中的错误(https://x.com/dzhulgakov/status/1806561582627045669)。像MMLU这样的基于任务的准确性指标对区分量化类型不够敏感。然而,这些指标仍然可以作为一致性检查的有用工具。


我们使用Helm-Lite评估套件(https://crfm.stanford.edu/helm/lite/latest/)和其他测试对Fireworks和TogetherAI端点上的Llama 3.1 70B进行了测试。随着Llama 3.1的发布,Meta发布了包含完整格式提示的官方参考评估(https://huggingface.co/datasets/meta-llama/Meta-Llama-3.1-405B-Instruct-evals),我们对此进行了重现。我们发现模型在各个维度上几乎没有差异。要使用Meta的官方评估,请查看我们下方的重现脚本(https://github.com/fw-ai/llm_eval_meta)。


4

其他量化质量评估方法的问题


即使我们在MMLU和其他基于任务的基准测试上取得了不错的结果,但我们建议不要从这些基准测试中的小差异来得出关于量化质量的结论。基于任务的指标在分析基础模型质量方面效果良好。然而,由于评分方法噪声大、全有或全无的性质,它们在比较不同量化技术时敏感性较差。


基于任务的评估将正确性判断为一个阶跃函数。我们可以考虑一种情况:参考模型对正确答案和错误答案的分布是0.51/0.49。一个量化模型可能有相似的分布0.49/0.51,但基于任务的评估会将模型评分为0/1的分布。


这种全有或全无的方法导致了大量的不准确性。例如,我们发现量化模型在某些基准测试中的质量有时会有所提高。例如,在下图来自TogetherAI的示例中,量化模型(Turbo)在GSM8K和MMLU EM上的结果实际上比非量化模型高出几个百分点。




实际上,量化并没有奇迹般地提高模型质量,而是基准测试中的噪声在起作用。明显的高噪声水平意味着从基准测试中的小差异(特别是小于1%的差异)得出的结论是有误导性的。


困惑度


困惑度是衡量LLM在给定文本分布上预测效果的综合指标。它的一个缺点是:如果模型对其输出过于自信,在其自身生成的文本上评估困惑度可能会产生偏差。此外,还存在平均偏差的问题。用《准确性并不是唯一指标》中的话来说就是:


“我们观察到,两个模型输出的词元值之间的差异会相互抵消,从而使平均指标结果保持不变,这也适用于困惑度。特别是,由于困惑度可以解释为词元概率的几何平均值的倒数,因此测试数据集中某些词元的较低概率可能会被其他词元的较高概率所抵消。”


上述描述的KL散度指标与困惑度密切相关,但解决了这两个缺点。


AlpacaEval和用LLM自身作为评估者的方法


让人类对LLM生成的两个答案进行盲选投票代表了LLM评估的黄金标准。这种方法由LMsys Chatbot Arena带头推广,到目前为止已经收到了超过150万投票。尽类评估成本高昂,所以像AlpacaEval这样的指标选择用强大的LLM(例如GPT-4)来选择优选答案,这种方法也逐渐流行起来。然而,这种方法也有局限性:


  • 样本量小(805个样本),导致置信区间较宽。

  • 用LLM做评估者的方法倾向于生成更冗长的内容。Alpaca Eval 2.0旨在通过拟合人类偏好的回归模型并应用基于长度的调整来纠正这一点。然而,这种修正并未针对量化等较小的变化进行专门评估。

  • 由于采样设置的不同,结果可能难以重现。

  • 默认设置优化了评估成本,但以牺牲准确性为代价。即,给LLM的提示是一个简单的偏好问题,而不是思维链。


我们在实际操作中观察到,这个基准测试的结果相当嘈杂,波动很大且没有明确的原因。例如,我们观察到在一些情况下,量化模型被评估为优于参考模型。


Arena-Hard-Auto是由LMsys Chatbot Arena团队创建的一个较新的基准测试,旨在解决一些局限性:


  • 精心策划并更新提示集,尽量减少污染
  • 使用思维链提示对LLM进行更精确的评估
  • 技术报告(https://arxiv.org/pdf/2406.11939)指出,与AlpacaEval 2.0相比,其分离能力更强,与人类偏好的对齐差距几乎减小了一半


我们对Llama 3.1 405b Instruct进行了多个量化模型配置的Arena-Hard-Auto v0.1测试。结果没有明显差异,差距都被置信区间掩盖了。


5

结论

由于量化对不同使用案例的影响各不相同,量化质量的评判者最终是开发者自己。我们鼓励你在使用案例上尝试量化模型和未量化模型(标记为“-hf”)。我们为多家企业客户进行模型量化,以最大化应用程序的速度、质量和成本,这些应用程序覆盖了数百万用户。


Superhuman的AI负责人Roland Gavrilescu写道:


“我们对Fireworks的FP8模型很满意,这系列的模型使Superhuman能够提供更好的用户体验,使Ask AI实现低延迟和高响应质量。部署的服务效率也使我们能够提供卓越的客户体验。”


我们的量化方法使Fireworks能够提供行业领先的速度和成本。例如,我们帮助Cursor的Fast Apply功能达到了每秒1000个词元。


正如Anysphere的联合创始人Sualeh Asif所说:


“Fireworks使我们的Fast Apply和Copilot++模型高效运行,是一个了不起的合作伙伴。他们的产品在性能上远超我们测试过的其他竞争对手的产品。我们对其量化模型的质量进行了广泛测试,并发现质量下降非常小。此外,Fireworks还在帮助我们实现任务特定的加速和新架构方面发挥了关键作用,使我们的模型达到了前沿性能水平!”


我们在速度和质量之间实现了平衡,这使得我们能够以其他提供商的10倍成本效率发布Llama 3.1 405B。

53AI,企业落地大模型首选服务商

产品:场景落地咨询+大模型应用平台+行业解决方案

承诺:免费POC验证,效果达标后再合作。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

添加专属顾问

回到顶部

加载中...

扫码咨询

扫码登录
登录即表示您同意《53AI网站服务协议》
服务协议

欢迎您使用【53AI 官方网站】(以下简称“本网站”或“我们”)。本《会员服务协议》(以下简称“本协议”)是您(以下简称“会员”或“用户”)与【深圳市博思协创网络科技有限公司】之间关于注册、登录及使用本网站会员服务所订立的法律协议。

在您注册或登录前,请务必审慎阅读、充分理解各条款内容,特别是免除或限制责任的条款、知识产权条款、争议解决条款等。此类条款将以加粗形式提示您注意。 当您通过微信公众号授权、手机验证码验证或其他方式成功登录本网站时,即视为您已完全理解并同意接受本协议的全部内容。

一、 定义

本网站:指由【深圳市博思协创网络科技有限公司】运营的,域名为【53ai.com】的网站及相关移动端页面。

会员服务:指本网站向注册会员提供的知识库文章查阅、内容检索及其他相关增值服务。

知识库内容:指本网站发布的包括但不限于文字、图表、数据、研究报告、行业分析等数字化内容资源。

二、 账号注册与登录

登录方式:本网站支持以下登录方式,您可根据实际情况选择:

微信公众号授权登录:您同意将您的微信OpenID信息授权给本网站,用于创建或关联会员账号。

手机验证码登录:您需提供真实有效的手机号码,并通过短信验证码完成身份验证与登录/注册。

账号安全:您的账号仅限您本人使用,禁止赠与、借用、租用、转让或售卖。因您保管不善导致的账号被盗、密码泄露等损失,由您自行承担。

实名认证:根据相关法律法规要求,我们可能要求您在特定功能下完成实名认证。如您拒绝提供,可能无法使用部分或全部服务。

未成年人保护:若您未满18周岁,请在法定监护人的陪同下阅读本协议,并在征得监护人同意后使用本服务。

三、 服务内容与规范

知识库查阅权限:会员登录后,有权按照其会员等级对应的权限范围,在线浏览、检索本网站知识库中的相关文章及内容。

服务变更:我们有权根据业务发展需要,调整、变更或终止部分服务内容,并将以网站公告、公众号消息等方式提前通知。

禁止行为:您在使用服务时不得实施以下行为:

利用技术手段批量爬取、下载、转存知识库内容;

将知识库内容用于商业目的或未经授权地向第三方传播;

干扰本网站正常运行或侵犯其他用户合法权益;

发布违法违规信息或从事违反公序良俗的活动。

四、 知识产权声明

权利归属:本网站知识库中的排版设计、软件代码等内容的知识产权均归【公司全称】或原权利人所有,受《中华人民共和国著作权法》等法律保护。

有限许可:本网站授予会员一项非独占、不可转让、不可转授权的普通许可,仅限于个人学习、研究之目的在线查阅知识库内容。

侵权追责:未经书面许可,任何单位或个人不得以任何形式复制、转载、摘编、镜像、汇编或以其他方式使用上述内容。一经发现,我们保留追究其法律责任的权利。

五、 个人信息保护

我们重视对您个人信息的保护。关于我们如何收集、使用、存储和保护您的个人信息,请单独阅读 《隐私政策》。

您通过微信公众号授权或手机号验证所提供的信息,我们将严格按照《个人信息保护法》的规定处理,仅用于身份识别、服务提供及安全验证等必要用途。

您可以随时通过网站设置或联系客服行使查阅、更正、删除个人信息及撤回授权同意的权利。

六、 免责声明

内容准确性:知识库内容仅供参考,不构成专业建议。我们不对其完整性、准确性、时效性作任何明示或暗示的保证,您应自行判断并承担使用风险。

不可抗力:因自然灾害、政策法规变化、网络故障、第三方平台接口异常(如微信接口维护、运营商短信通道故障)等不可抗力导致的服务中断或延迟,我们不承担违约责任。

第三方链接:本网站可能包含指向第三方网站的链接,该等网站的内容和服务不受我们控制,请您自行甄别风险。

七、 违约责任

如您违反本协议约定,我们有权视情节采取警告、限制功能、暂停服务、注销账号等措施,并保留要求赔偿损失的权利。

如因您的违约行为导致我们遭受行政处罚、第三方索赔或商誉损失,您应承担全部赔偿责任(包括但不限于罚款、赔偿金、律师费、公证费等)。

八、 法律适用与争议解决

本协议的订立、执行和解释均适用中华人民共和国大陆地区法律。

因本协议产生的或与本协议有关的任何争议,双方应友好协商解决;协商不成的,任何一方均可向【公司所在地】有管辖权的人民法院提起诉讼。

九、 其他

本协议构成双方就本服务达成的完整协议,取代此前任何口头或书面约定。

本协议任一条款被认定为无效或不可执行的,不影响其他条款的效力。

我们对本协议享有最终解释权,并在法律允许的范围内保留随时修改的权利。修改后的协议一经公布即生效,继续使用服务即视为同意修订内容。


已查阅