原贴链接

嗨。在最近一个类似的问题中,有人讨论过,由于4位量化之后性能提升可以忽略不计,所以通常情况下,与其将量化级别从4位提升到8位,不如选择更大的参数量。但反过来呢,即在大模型2/3位量化和小模型4位量化之间做选择是如何操作的呢?例如,运行2位量化的Gemma 27B好,还是4位量化的9B好呢?是否存在某种公式或者经验法则呢?谢谢。

讨论总结

原帖提出在大模型低比特量化(2/3 - bit)和小模型高比特量化(4 - bit)之间选择的疑惑,例如是运行2位量化的Gemma 27B还是4位量化的9B更好,是否有相关公式或经验法则。评论者们从不同角度进行了回应,有的分享自己使用特定模型时不同量化位下的性能情况,有的从量化对模型质量的影响给出建议,还有人提到模型选择与任务、使用场景以及个人需求相关。整体讨论较为理性,热度较低。

主要观点

  1. 👍 2位量化会有严重性能下降
    • 支持理由:有评论指出在2位量化后能明显看到性能的严重下降
    • 反对声音:无
  2. 🔥 模型选择取决于任务和模型大小
    • 正方观点:不同任务和模型大小适用不同的量化方式,大模型在特定任务下适用较小量化,小模型低量化对质量影响大,应根据任务尝试不同量化模型
    • 反方观点:无
  3. 💡 一般不建议每个权重低于3位量化
    • 支持理由:权重低于3位量化时模型质量会严重下降
    • 反对声音:无
  4. 💡 大模型(70及以上)低量化更优
    • 支持理由:在质量、上下文贴合度和逻辑连贯性方面表现较好
    • 反方观点:无
  5. 💡 对于有高编程需求的情况,不会运行低于q4_K_M的模型
    • 支持理由:自身高编程需求决定
    • 反方观点:无

金句与有趣评论

  1. “😂 你可以清楚地看到2位量化后性能的严重下降。”
    • 亮点:直接指出2位量化的性能下降问题,是关于量化性能影响的典型表述
  2. “🤔 非常有趣,多谢!而且27B相对于9B的“下降”更为显著,这相当有趣。”
    • 亮点:对比不同模型在2位量化下性能下降的差异,为讨论提供了更多信息
  3. “👀 我发现对于我使用工具和llama 3.1 70b的情况,我不能使用8位以下的量化。”
    • 亮点:基于自身使用特定模型和工具的经验,给出量化可用性的信息
  4. “😉 对于精确任务像代码采取你能得到的最好量化,如果可能的话q8。”
    • 亮点:针对精确任务给出量化选择的建议
  5. “🤓 我任何时候都更倾向于低量化的123b微调而不是小模型。”
    • 亮点:表达了在大模型低量化和小模型之间的选择倾向

情感分析

总体情感倾向为中性。主要分歧点较少,大多数评论者都是基于自己的经验或者知识给出关于模型量化选择的观点,没有出现明显的争论或反驳。可能的原因是这个话题比较专业,大家更多是分享信息而不是辩论。

趋势与预测

  • 新兴话题:关于2位量化与二元嵌入的相似性推测可能引发后续讨论。
  • 潜在影响:如果进一步深入研究模型量化与二元嵌入的关系,可能对优化模型量化策略、提高模型性能等方面有积极影响。

详细内容:

标题:关于模型量化选择的热门讨论

在 Reddit 上,一个题为“Two-bit quantisation or smaller model?”的帖子引发了广泛关注。该帖提出了在模型量化选择上的疑问,即在大型模型的 2/3 位量化和较小模型的 4 位量化之间该如何抉择,比如是选择 Gemma 27B 的 2 位量化,还是 9B 的 4 位量化,是否存在某种经验法则或公式。此帖获得了众多回复,引发了热烈讨论。

讨论焦点与观点分析:

有人指出,从[AaronFeng47]提供的链接(https://www.reddit.com/r/LocalLLaMA/comments/1etzews/comment/likahvu/)可以清楚看到 2 位量化会导致性能严重下降。

有人觉得非常有趣,并惊讶于在 27B 和 9B 之间的“下降”差异更为显著。

[koalfied-coder]表示,就自己使用工具和 llama 3.1 70b 的情况而言,低于 8 位量化就无法使用,4 位量化会搞乱 json 或无法执行,而对于对话等 4 位量化是可行的,无法想象 2 位量化的可用性,也许其他模型有所不同。

[Herr_Drosselmeyer]认为,通常不建议每权重低于 3 位量化,除非无法避免,因为在这个水平质量会急剧下降。

[synw_]认为这取决于任务和模型的大小,模型越大,可用的小量化就越多。对于 70b 会使用 IQ2_XS 量化,对于给定的案例,会尝试获取最佳量化,运行 Gemma 9b 对比 27b 的 q2,但这高度依赖于想要实现的任务。

[Helpful-Desk-8334]表示这很大程度上取决于前端以及是公共还是私人使用。大多数提供商服务时不会低于 8 位量化,这确实取决于使用情况。自己只是用于小型对话,所以不需要像爱因斯坦那样精确,使用 8B 在 6bpw 觉得可以,也能想象微调 12B 可能是一个选择,但仍希望是 4 - 8 位量化,否则无法同时服务太多人。并强调最终精度越高体验越好,这是个人经验。

[Healthy-Nebula-3603]认为选择较小的模型。

[-my_dude]坦诚地说,不会运行 27b 的 3 位量化,会尝试较小的模型。

[Few_Professional6859]表示由于有高编程需求,不会运行低于 q4_K_M 的模型。

[fantasticRewards]认为对于较大的模型(70 及以上),较低的量化更可取。任何时候都更喜欢低量化的 123b 微调而不是较小的模型,即使量化较低,质量、上下文依从性和逻辑一致性也要好得多。然而,对于较小的模型(如 27B),较低的量化对质量有更大的影响。建议最好尝试 27B 模型并将其与 9B 模型并排比较,看看哪一个感觉最好。

[Inevitable_Fan8194]虽然没有直接回答问题,但提到刚读的关于二进制嵌入的这篇文章,假设 Q2 对权重做的基本上是同样的事情,因为嵌入只是权重的输出。

可以看出,在这个讨论中,对于模型量化的选择没有达成完全的共识。不同的用户根据自己的使用场景、需求和经验给出了各自的观点。但大家普遍认同模型量化的选择需要综合考虑多种因素,包括任务需求、模型大小、精度要求等。