SLM 系列 – Qt:来自命令行的实用代码体验
快速阅读: 据《计算机周刊》最新报道,彼得·施耐德指出,小规模语言模型(SLM)和大规模语言模型(LLM)可以结合使用以提升软件开发效率。SLM如CodeLlama在QML代码补全方面表现优异,成本低廉;而LLM如Claude 3.5在复杂任务中更胜一筹。智能路由可优化质量和成本,SLM更适合某些特定任务。SLM和LLM的混合使用为编码辅助提供了更好的用户体验。
这是由彼得·施耐德为《计算机周刊开发人员网络》撰写的一篇客座文章。彼得·施耐德是Qt集团的高级产品经理。施耐德写道:关于是否可以将小规模语言模型(SLM)和大规模语言模型(LLM)结合并共同使用——答案是肯定的。通过同时使用小规模语言模型(SLM)和大规模语言模型(LLM)来辅助软件开发,软件开发者能够最大化生产效率。根据我们的经验,免版税的小规模语言模型如CodeLlama 7B或DeepSeek Coder v2在QML(Qt建模语言)代码补全方面表现出色,并且具有极低的推理时间,几乎无需成本。例如,本地运行的DeepSeek Coder V2 Lite SLM和基于云的GPT4o LLM在QML代码补全任务中都达到了62%的成功率(包括100个填空任务)。通用型大规模语言模型如Claude 3.5 Sonnet或DeepSeek V3在基于提示的专家辅助方面表现优异,适用于更复杂的任务(“修复这段代码”、“解释这段代码”、“文档化这段代码”或“创建一个Qt单元测试”)。SLM和LLM的混合使用为编码辅助提供了理想的用户体验。智能路由根据不同的编程语言和任务,在语言模型之间进行智能路由不仅能够最大化内容质量(代码、代码文档和解释),还能降低成本并提高自有代码的隐私性。根据我们的微调研究,基础模型在针对特定任务(如编写QML代码)进行微调时可能会忘记一些原始的编码技能。因此,根据不同的编程语言将代码补全请求路由到不同的模型对于最大化输出质量至关重要。专用SLM那么,选择专用SLM是否比单一LLM更好?再次强调,是的。正如上面提到的,对于某些任务(如QML填空代码补全),SLM可以与LLM一样好甚至更好,而且成本更低。对于这一重要任务,LLM并不一定必要,甚至不一定理想。值得注意的是,经过微调的SLM如CodeLlama 13B-QML在某些任务(如代码补全)上可能表现得更好。Qt的施耐德:SLM在代码补全方面非常出色,对于许多开发人员来说,这是编码助手最重要的任务。通过对超过4000个QML代码片段进行微调后,微调模型成功完成了79%的QML编码任务,而最高分的LLM Claude 3.5 Sonnet仅实现了66%的成功代码补全率。由于其体积较小,SLM训练速度更快。因此,对于那些没有数百万美元和核电站支持的公司来说,模型微调需要保持在合理的成本范围内。通过选择使用成本效益高的参数高效微调(PEFT)方法对SLM如CodeLlama 7B或13B进行微调,提供专门任务的卓越编码辅助性能所需的计算费用仍然具有商业可行性。SLM是否总是部署在本地取决于对小规模模型的定义。我们支持例如CodeLlama 7B和13B模型。通常情况下,7B模型会在您的PC上本地运行,而性能稍好的13B模型也可以部署在私有云中以减少开发者的硬件需求。无论哪种情况,这些部署模型中的私人和竞争信息都是安全的。开发者的“一招”关于SLM的局限性和它们是否具有与大规模AI技术相同的偏见倾向?这取决于任务。SLM在像代码补全这样的任务上表现出色,对于许多开发人员来说,这是编码助手最重要的任务。根据我们的研究,解决复杂任务(如生成单元测试用例,可能涉及超过50条指令的提示)目前的SLM无法达到令人满意的结果。
(以上内容均由Ai生成)