电话

18600577194

当前位置: 首页 > 软件开发 > 软件开发

北京软件开发使用ai如何提高生成代码的准确性

标签: 北京软件开发公司 2025-05-21 

北京软件开发供公司工程师发现现在可以使用大型语言模型(LLMs)更快地生成计算机代码。然而,这只有在这些代码遵循编程语言的规则并且不会导致计算机崩溃时,才能让软件开发工程师的生活更轻松。一些方法可以确保大语言模型(LLM)符合它们所生成文本的语言规则,但许多这些方法要么扭曲了模型原本的意义,要么因为耗时太长而不适用于复杂的任务。

北京软件开发使用ai如何提高生成代码的准确性

经查资料发现麻省理工学院和其他研究人员开发了一种新方法,可以自动引导大语言模型(LLM)生成符合特定语言规则的文本,例如某种编程语言,并且没有错误。他们的方法使大语言模型能够将努力集中在最有可能是有效和准确的输出上,同时在过程的早期阶段就放弃没有前途的输出。这种概率方法提高了计算效率。

由于这些效率提升,研究人员的架构使小型LLM在生成准确且结构正确的输出方面,能够超越许多更大规模的模型,用于包括分子生物学和机器人在内的多个实际应用案例。

从长远来看,这种新架构可能有助于非专家控制AI生成的内容。例如,它可以让商人仅通过自然语言提示来编写复杂的SQL查询,这是一种用于数据库操作的语言。

“这项工作的影响超出了研究领域。通过确保AI生成的输出既实用又正确,它有可能改进编程助手、AI驱动的数据分析和科学发现工具,”麻省理工学院研究生、该框架论文的共同主要作者若昂·洛拉(João Loula)表示。

除了 Loula 之外,本文的共同通讯作者还有孟菲斯大学的研究助理 Benjamin LeBrun 和约翰·霍普金斯大学的研究生 Li Du;共同高级作者有 Vikash Mansinghka '05, MEng '09, PhD '09,他是麻省理工学院大脑与认知科学系概率计算项目的主要研究科学家和负责人;Yale 大学的助理教授 Alexander K. Lew SM '20;苏黎世联邦理工学院的博士后 Tim Vieira;麦吉尔大学的副教授 Tim硬件hy J. O'Donnell,他是 Mila 的加拿大 CIFAR AI 席位 holder,领导了国际团队;以及其他人。该研究将在国际学习表征会议上展示。

执行结构和意义

控制LLM生成的结构化文本的常见方法之一是检查整个输出,例如一段计算机代码,以确保它是有效的并且可以无错误地运行。如果不行,用户必须重新开始,消耗计算资源。

另一方面,软件开发工程师可以停下来检查中间的结果。虽然这可以确保代码符合编程语言并具有结构上的有效性,但逐步修正代码可能会使其偏离用户原本的意图,从长远来看降低其准确性。

“约束结构比约束意义要容易得多。我们可以很快地检查某样东西是否使用了正确的编程语言,但要检查其意义,则需要执行代码。我们的工作也涉及处理这些不同类型的的信息,” Loula 说。

研究人员的方法是将工程知识注入LLM,以引导其产生最有前途的输出。这些输出更有可能遵循用户定义的结构性约束,并具有用户预期的意义。

“我们不是试图训练一个LLM来执行这个任务。相反,我们正在工程化专家所拥有的知识,并将其与LLM的知识相结合,这为扩展深度学习提供了非常不同的方法,”Mansinghka补充道。

他们使用了一种称为序列蒙特卡洛的技术,使 LLM 的并行生成能够相互竞争。模型根据输出的前景动态分配资源到不同的并行计算线程中。

每个输出都会被赋予一个权重,代表其结构上有效和语义上准确的可能性。在计算的每一步,模型都会关注那些具有更高权重的输出,并舍弃其余的。

从某种意义上说,这就像LLM有一个专家在它的肩膀上,确保它在每一步都做出正确的选择,并且保持其对总体目标的关注。用户指定他们希望的结构和意义,以及如何检查输出,然后研究人员的架构引导LLM完成其余工作。

“我们已经解决了复杂的数学问题,这样,对于您希望纳入的任何类型的约束条件,您都可以得到正确的权重。最终,您会得到正确的答案,”露拉说。

提升小型模型

为了测试他们的方法,他们将框架应用于生成四种类型输出的LLM:Python代码、SQL数据库查询、分子结构和机器人计划。

与现有方法相比,研究人员的方法更加准确,同时所需的计算量更少。

在Python代码生成中,例如,研究人员的架构使一个小的、开源模型能够比一个更大(是其两倍多)的专用商业闭源模型表现更好。

“我们非常兴奋,能够使这些小型模型发挥出远超其自身重量的作用,”露拉说。

展望未来,研究人员希望使用他们的技术来控制生成文本的大块内容,而不是一次处理一个小部分。他们还希望将他们的方法与学习相结合,以便在控制模型生成的输出时,模型能够学习得更加准确。

从长远来看,这个项目可能对非技术用户有更广泛的应用。例如,它可以与自动数据建模系统和数据库生成模型的查询系统结合使用。

这种方法还可以实现机器辅助的数据分析系统,用户可以与软件进行对话,该软件能够准确地模拟数据的意义以及用户提出的问题,Mansinghka补充道。

“语言学的基本问题之一是,如何将单词、短语和句子的意义与对世界的模型联系起来,以解释意义和指称中的不确定性和模糊性。LLM 预测可能的标记序列,没有解决这个问题。我们的论文表明,在狭义的符号领域中,从单词到与意义相关的分布的技术上是可能的。这是朝着理解机器如何像我们一样谈论世界所需的认知科学、语言学和人工智能的更深刻问题迈出的一步,”O’Donnell 说道。