更准确的编码:研究人员将 Sequential Monte Carlo 调整为 AI 生成的代码
快速阅读: 据《VentureBeat 公司》最新报道,研究人员开发新方法,结合顺序蒙特卡洛算法,提升AI代码生成的准确性和实用性,尤其改善小模型性能。该技术有望增强编码助手的功能,同时减少计算成本。
订阅我们的每日和每周简报,获取关于行业领先人工智能报道的最新资讯和独家内容。了解更多,但许多开发者依赖编码助手时产生的问题也引起了关注。然而,来自麻省理工学院(MIT)、麦吉尔大学、苏黎世联邦理工学院(ETH Zurich)、约翰霍普金斯大学、耶鲁大学以及魁北克人工智能研究所(Mila-魁北克人工智能研究所)的研究人员开发了一种新方法,以确保人工智能生成的代码更加准确和实用。该方法涵盖了多种编程语言,并指导大型语言模型(LLM)遵循每种语言的规则。研究团队发现,通过采用新的采样方法,可以引导人工智能模型遵循编程语言规则,甚至提升小型语言模型(SLMs)的性能,这些模型通常用于代码生成,其表现甚至超过了大型语言模型。
在论文中,研究人员使用顺序蒙特卡洛(SMC)方法来“解决许多具有挑战性的语义解析问题,并通过增量静态和动态分析指导生成”。顺序蒙特卡洛是一组帮助解决过滤问题的算法。论文的联合主要作者若昂·卢拉在接受《麻省理工学院校报》采访时说,这种方法“可以改进编程助手、人工智能驱动的数据分析工具和科学发现工具”。它还可以降低计算成本,并比重新排名的方法更高效。
研究人员指出,人工智能生成的代码可能非常强大,但也常常导致忽略编程语言语义规则的代码。其他防止这种情况的方法可能会扭曲模型或过于耗时。他们的方法通过在早期过程中丢弃可能无效的代码输出,使LLM遵循编程语言规则,并“将努力分配给更有可能有效和准确的输出”。
将SMC应用于代码生成与许多以前的受限解码框架不同,我们的算法可以整合那些无法在整个标记词汇表上逐步评估的约束,以及只能在生成过程中的不规则间隔内评估的约束。将SMC采样适应于模型生成的关键特征包括建议分布,其中逐个标记的采样由廉价约束引导;重要权重纠正偏差,重采样则重新分配计算努力到部分生成。
研究人员注意到,虽然SMC可以引导模型生成更正确和有用的代码,但他们承认该方法可能存在一些问题。“虽然重要性采样解决了局部解码的一些缺点,但它也有一个主要弱点:直到完整的序列从提议分布中生成后,权重校正和昂贵的势能才被整合。尽管在生成序列是否满足约束条件的重要信息往往在更早的时候就可以获得,并且可以用来避免大量的不必要的计算,”他们说。
为了验证他们的理论,路拉和他的团队进行了实验,看看使用SMC来设计更准确的代码是否有效。这些实验包括:
– 数据科学任务中的Python代码生成,使用Llama 3 70B逐行编码并测试早期版本。
– 使用Llama 3 8B-Instruct进行文本到SQL生成。
– 规划任务中的目标推断,预测代理的目标状态,同样使用Llama 3 8B。
– 药物发现的分子合成。
他们发现使用SMC提升了小型语言模型的性能,提高了准确性与鲁棒性,并优于较大的模型。
为什么这很重要
人工智能模型让工程师和其他编码人员的工作更快、更高效。这也催生了一种全新的软件工程师类型:“氛围程序员”。但是,人们对于代码质量、对复杂编码的支持不足以及简单代码生成的计算成本存在担忧。新的方法,如适应SMC,可能会使人工智能驱动的编码更有用,并让工程师更信任模型生成的代码。
其他公司也在探索改善人工智能生成代码的方法。Together AI和Agentica发布了DeepCoder-14B,它利用了较少的参数。谷歌也改进了其代码辅助功能,以帮助提高代码质量。
VB每日商业用例洞察
如果你想给老板留下深刻印象,VB每日可以帮你做到。我们为你提供公司如何应用生成式人工智能的内幕消息,从监管变化到实际部署,以便你可以分享见解以实现最大回报。立即订阅阅读我们的隐私政策。
感谢订阅。查看更多VB新闻通讯在这里。
发生错误。
(以上内容均由Ai生成)