原贴链接

事实证明,三元模型的2倍速度提升无需定制硬件是可能的,这是真实且不再是猜测。这个数字并未夸大;我与Q8_0进行比较,后者在我的CPU上已经比F16快2倍以上(https://ark.intel.com/content/www/us/en/ark/products/185282/intel-core-m3-8100y-processor-4m-cache-up-to-3-40-ghz.html)。

详情请见:https://github.com/ggerganov/llama.cpp/pull/8151#issuecomment-2259330479

最近几天,我一直在为llama.cpp尝试一些新的三元量化类型,我认为在AVX2性能方面取得了突破。

我原以为_mm256_sign_epi8非常适合三元-int8点积,但事实证明,我之前仅用作扩展水平加法的_mm256_maddubs_epi16也可以直接用于乘以无符号三元值{0, 1, 2},并通过单独偏移总和将有效三元值恢复为{-1, 0, 1}。这使得原本比Q8_0快50%的vec_dot再快33%,使其速度翻倍(这些是乘积关系,150% × 133% ≈ 200%)。

这意味着任何具有快速SIMD扩展有符号乘法的CPU都应该能快速运行此代码(至少在代码移植到你的硬件使用的SIMD变体之后)。

TQ2_0类型使得3.9B TriLM模型的运行速度与2B Q8_0模型相当,而权重仅使用1GB。

但请注意,这些类型的格式尚未最终确定,在合并之前可能会发生变化(破坏现有转换)。我只是非常高兴这比我预期的性能要好得多。

拉取请求尚未完成,至少一周内不会完成。我还需要将此移植到ARM NEON和(可能的)AVX512。

我真的希望在未来几个月内会有更大的三元模型出现,现在我们应该能够实际运行它们了;)

但请希望它们的行大小是256的倍数。

讨论总结

本次讨论主要围绕三元模型(ternary models)的速度提升问题展开,特别是在无需定制硬件的情况下,通过优化算法和利用现有的CPU指令集(如AVX2),实现了三元模型的运行速度提升。具体来说,作者通过使用_mm256_maddubs_epi16指令,而不是传统的_mm256_sign_epi8,成功地将三元模型的点积性能提高了两倍。这一突破意味着可以在普通CPU上更高效地运行大型三元模型,而无需依赖专用硬件。此外,讨论中还涉及了三元模型的质量问题、未来可能出现的更大规模三元模型,以及对未来发展的期待。

主要观点

  1. 👍 三元模型在不使用定制硬件的情况下可以实现2倍的速度提升
    • 支持理由:通过优化代码和利用CPU的SIMD指令集,可以显著提高三元模型的性能。
    • 反对声音:无明显反对声音,多数评论者对此表示兴奋和期待。
  2. 🔥 使用_mm256_maddubs_epi16指令可以优化三元-int8点积
    • 正方观点:该指令的使用使得三元模型的点积性能提高了两倍。
    • 反方观点:无明显反方观点,多数评论者对此表示认可。
  3. 💡 三元模型的格式尚未最终确定,可能会发生变化
    • 解释:作者提到TQ2_0类型可能会在未来进行调整,以适应不同的SIMD变体。
  4. 🚀 希望未来能有更大的三元模型出现
    • 解释:作者希望未来能有更大规模的三元模型出现,以便更好地利用这些优化。
  5. 🌟 三元模型的质量与4位量化模型相当,甚至可能更优
    • 解释:评论中提到,如果从零开始训练,三元权重模型与FP16模型相当。

金句与有趣评论

  1. “😂 I have asked an LLM to explain it in simpler terms :)”
    • 亮点:评论者尝试用更简单的方式解释复杂的技术问题,增加了讨论的趣味性。
  2. “🤔 Is it now the ALU/SIMD that is the bottleneck here?”
    • 亮点:评论者提出了关于硬件瓶颈的问题,引发了关于硬件依赖的讨论。
  3. “👀 the thing that I love the most of this local ai thing is that it’s like the early internet days, people changing the world and discussing it enthusiastically with their peers on open forums”
    • 亮点:评论者将本地AI技术的发展比作早期互联网的开放和创新精神,强调了社区的协作和热情。

情感分析

讨论的总体情感倾向是积极的,多数评论者对三元模型的速度提升表示兴奋和期待。主要分歧点在于对硬件依赖的讨论,部分评论者关注是否存在硬件瓶颈,而多数评论者则对软件优化表示认可。可能的原因是,技术社区对新技术的突破持开放态度,且对未来发展充满期待。

趋势与预测

  • 新兴话题:未来可能会有更大规模的三元模型出现,以及对AVX-512等更高级指令集的应用。
  • 潜在影响:这些技术突破可能会推动AI模型在日常计算机上的更广泛应用,以及对AI模型优化和硬件支持的进一步研究。