导读:在人工智能工具不断发展的格局中,软件开发助手已经为自己赢得了一席之地,尤其是在软件和编码领域。
OpenAI 的 GPT-4、Meta CodeLlama70B、Meta CodeLlama7B和Mistral Mixtral8x7B的任务是进行编码挑战,以评估哪一个在编码助手中占据主导地位。目的是评估他们的能力,并辨别哪种大模型对编码任务最有利。
对于GPT-4,这里选择了GTP-4 Turbo的最后一个版本(gpt-4-0125-preview),因为它纠正了其前身的一些“惰性”。
此设置反映了 GitHub Copilot 和 AWS Codewhisperer 等其它编码助手的功能,并为你的代码提供了更多的隐私控制(例如通过在私有服务器上运行 LLM)以及切换到最佳(或更便宜)的 LLM 的选项手头的任务。
我的设置如下图所示:
请大家注意,右端是我刚刚从 CodeLlama70B 得到的答案。
代码生成它们根据需求从头开始制作代码片段或完整模块的能力。
代码解释和文档:它们阐明现有代码和创建有意义的文档的能力。
单元测试生成:他们能够为现有代码自主生成单元测试。
调试和错误纠正:识别、解释和纠正代码缺陷或错误的效率。
重构/优化建议:LLM提出和实施代码改进以提高质量和性能的能力。
代码审查协助:LLM能够通过发现潜在问题并提出改进建议来协助代码审查。
安全和最佳实践:熟练检测安全漏洞和执行最佳实践。
需求分析:以自然语言理解软件需求并将其转化为技术规范的能力。虽然这不完全是“编码”,但它与此密切相关,因为可能需要进一步细化不明确的需求或以某种方式转换它们(例如,编程语言进一步编码的有限状态机) 。
每个LLM的表现都按照0到3的等级进行评分,每个领域进行了多次测试,总共19次,以确保同一领域任务之间的公平竞争。
在整个测试过程中,系统提示一直保持非常简单:它只是将LLM的角色设置为编码助手,并指示其简洁明了(避免在冗长且可能无用的解释中使用太多标签 )。
这样做是为了评估LLM的原生能力,并为通过特定系统提示进一步提高其能力,以提供更多的可能性。
毫不奇怪, GPT-4成为总体胜利者,在所有任务中提供了最准确、最全面的帮助。
CodeLlama70B和Mixtral8x7B是势均力敌的对手,在某些特定领域与 GPT-4 不相上下。
CodeLlama7B尽管排名最后,但在某些任务中显示出潜力,表明量身定制的提示可以提高其性能。它的吸引力在于其体积小,这使得它可以在消费级硬件上运行。
以下是每个编程类别的结果:
以下是测试中使用任务的几个示例。
FEN 计数(https://en.wikipedia.org/wiki/Forsyth%E2%80%93Edwards_Notation):此任务测试模型对棋盘位置的 FEN 字符串的了解。虽然所有LLM都对 FEN 有所了解,但只有 GPT-4 能够生成完全准确的代码。这可能是拥有更多“不相关知识”可以带来更好性能的情况之一
指南合规性:令人惊讶的是,没有一个LLM检测到与一组编码风格指南的所有偏差,这揭示了一个需要做更多工作以确大模型可以提供帮助的领域。可能需要更好的提示,甚至使用 RAG 方法来确保它完全“理解”正确的指导方针。
歧义分析:有时需求会相互冲突,可能会产生混乱、返工或错误。这项具体任务旨在检查大模型是否能够识别冲突或重叠的要求。有趣的是,Mixtral8x7B在这项任务上最终比CodeLlama70B更好。
以及细分的八个领域:
可以看到,两个LLM的分值非常接近!显然,谷歌的新的模型是“最佳大模型”桂冠的有力竞争者。
作者:万能的大雄
参考:
https://dev.to/rdentato/choose-your-own-coding-assistant-11gi
本文为 @ 万能的大雄 创作并授权 21CTO 发布,未经许可,请勿转载。
内容授权事宜请您联系 webmaster@21cto.com或关注 21CTO 公众号。
该文观点仅代表作者本人,21CTO 平台仅提供信息存储空间服务。