原贴链接

我刚开始接触大型语言模型(LLM)并在本地运行它们。过去几天我一直在试验Qwen2.5 - Coder - 32B - Instruct这个模型。它是一个令人印象深刻的模型,我想分享一些我的本地基准测试结果。硬件方面:2个3090显卡。我一直在寻找在本地运行的最佳量化模型。最初,我从GGUF开始,使用llama.cpp运行Q8和Q4。虽然质量不错且性能稳定,但对我来说速度太慢了。我寻找替代方案,尝试了exl2和exllamav2。性能很出色,但我注意到有质量问题。最后,我切换到AWQ,我不确定为什么它不更流行,它真的很好。目前,AWQ是我的首选量化方法。我正在使用SGLang并将模型转换为awq_marlin量化。有趣的是,与普通AWQ相比,我用awq_marlin获得了更好的性能。虽然我没有注意到对输出质量有任何影响,但值得进一步探索。我决定在本地运行Aider基准测试来比较AWQ的性能。我还遇到了一个名为Optillm的项目,它提供了开箱即用的最先进(SOTA)技术,如思维链推理。我在端口8000上使用SGLang运行模型,在端口8001上运行Optillm代理。我试验了Optillm的大部分技术,但在这里不想提及所有技术。有些在Aider基准测试中表现非常差,有些则太慢以至于我不得不中途取消测试。此外,我还试验了不同的采样设置。具体参数请参考下表。我知道温度会引入随机性。我特意选择不使用温度为0的设置进行测试,并且每个测试只执行一次。后续执行可能无法重现相同的成功率。然而,我不确定Aider排行榜上其他模型使用的温度设置。结果如下,Default表示使用Optillm运行模型。按pass@2分数排序。我后来才意识到Aider排行榜上的Qwen数据使用的是不同的编辑格式。我先从整体(whole)开始,然后也对差异(diff)进行了运行。观察结果:当编辑模式设置为“差异(diff)”时,与“整体(whole)”模式相比,成功率下降,错误输出增加。似乎“整体(whole)”模式表现更好,如果有足够的上下文大小且没有标记成本(如在本地运行时),这是一个更好的选择;降低温度和top_p值会提高成功率;像代码链(chain - of - code)和最佳N采样(best - of - n)这样的技术可以提高输出质量,减少错误和语法问题。然而,它们似乎并没有显著提高成功率;一个有趣的观察结果是,Optillm的代码链(chain - of - code)技术似乎不适用于差异(diff)编辑格式。成功率为0,所以我不得不取消测试运行;根据pass@2结果,似乎带有AWQ量化的默认模型与Claude - 3.5 - Haiku - 20241022具有竞争力。如果您有任何想法,我很乐意接受。我对代码链(chain - of - code)方法寄予厚望,但它并没有达到预期效果。

讨论总结

原帖作者分享了在本地运行Qwen2.5 - Coder - 32B - Instruct模型的基准测试情况,包括硬件、量化模型尝试、采样设置和测试结果等。评论主要围绕一些细节提问,如VRAM使用量、是否进行min_p采样测试等,也有对原帖实验设置合理性的质疑,如segmond认为原帖让编码模型做非编码相关操作不合理,但整体讨论热度较低,各评论互动较少。

主要观点

  1. 👍 原帖中模型运行的一些参数设置值得进一步测试
    • 支持理由:不同的参数设置可能会影响模型的性能,如评论者建议原帖作者对topk和temp进行更多取值测试以获得更全面的结果。
    • 反对声音:无
  2. 🔥 原帖实验中让编码模型做非编码操作不合理
    • 正方观点:编码模型应专注于编码相关操作,原帖让编码模型通过Optillm并做思维链(CoT)操作不符合常规。
    • 反方观点:原帖未对此进行反驳,无明显反方观点。
  3. 💡 原帖不采用温度为0进行测试令人疑惑
    • 原帖提到降低温度和top_p值会提高成功率,所以评论者对温度为0时的测试结果感兴趣。
  4. 💡 min_p采样在代码方面效果不确定
    • 虽然min_p在对话方面是好的采样器,但对于代码方面可能没有太大帮助。
  5. 💡 Aider的模式使用有特定建议
    • 如果想完全本地运行,应该使用Aider的架构和编辑两种模式,并且架构模式应使用更大的模型。

金句与有趣评论

  1. “😂 Out of interest did you do any tests with min_p sampling instead? It’s supposed to be a good improvement from top_p.”
    • 亮点:提出原帖可能遗漏的min_p采样测试,且指出min_p是对top_p的良好改进。
  2. “🤔 Why? As you noted: ‘Reducing the temperature and top_p values increases the success rate.’ I, for one, would be interested in the results with temp 0.”
    • 亮点:对原帖不采用温度为0测试提出合理疑问。
  3. “👀 Coding models should be kept to coding, so passing it through optillm and doing things like CoT is weird.”
    • 亮点:直接指出原帖实验在编码模型操作上的不合理之处。

情感分析

总体情感倾向较为中性。主要分歧点在于原帖实验的合理性,如segmond对原帖让编码模型做非编码操作持反对态度,可能原因是其认为编码模型应专注于编码相关任务。其他评论多为提问或建议,未体现明显情感倾向。

趋势与预测

  • 新兴话题:原帖可能会根据评论建议进行更多参数测试并分享结果,如对topk和temp更多取值的测试。
  • 潜在影响:如果原帖作者进行更多测试并分享结果,可能会为LLM在本地运行的优化提供更多参考,有助于其他研究者或使用者更好地调整模型运行参数。

详细内容:

标题:Qwen2.5-Coder-32B-Instruct-AWQ 的本地基准测试成果与讨论

最近,一篇关于 Qwen2.5-Coder-32B-Instruct-AWQ 模型的本地基准测试的帖子在 Reddit 上引发了热烈讨论。该帖子获得了众多关注,点赞数和评论数众多。

原帖作者表示自己是大语言模型(LLM)的新手,一直在本地对该模型进行实验。作者详细介绍了硬件配置,还分享了不同量化模型的使用体验,比如从 GGUF 到 exl2 再到 AWQ 的探索过程,最终发现 AWQ 表现出色,尤其是使用 SGLang 转换为 awq_marlin 量化后性能更优。作者还进行了 Aider 基准测试,并对比了不同采样设置下的结果。

讨论焦点主要集中在模型的性能表现、参数设置以及应用场景等方面。有人提出疑问,比如询问模型使用的 VRAM 数量。还有用户建议进行不同的采样测试,如设置 min_p 采样。有人好奇能否提供量化模型,作者也给出了相关链接。

有人质疑作者为何不进行温度设置为 0 的测试,作者解释说虽然降低温度和 top_p 值能提高成功率,但在一些创意代码生成等场景中,较高的温度能生成更详细和可定制的内容。

还有用户认为实验存在缺陷,认为编码模型应专注于编码,不应通过 optillm 进行类似 CoT 等操作。但作者认为实验有成果就不能算有缺陷,不过也承认对方观点有一定合理性,并表示会在后续测试中切换到架构和编码模式。

总的来说,这次关于 Qwen2.5-Coder-32B-Instruct-AWQ 模型的讨论十分热烈且深入,为大家进一步了解和优化该模型提供了宝贵的思路和方向。