作者 : Michele Tufano (Microsoft, Redmond, USA) Anisha Agarwal (Microsoft, Redmond, USA) Jinu Jang (Microsoft, Redmond, USA) Roshanak Zilouchian (Microsoft, Redmond, USA) Neel Sundaresan (Microsoft, Redmond, USA) 作者 : 米歇尔·图法诺(微软,雷德蒙德,美国) Anisha Agarwal (微软, 雷德蒙德, 美国) Jinu Jang (微软, 雷德蒙德, 美国) Roshanak Zilouchian (微软, 雷德蒙德, 美国) 尼尔·桑德拉森(微软,雷德蒙德,美国) 抽象 软件开发的景观已经见证了AI驱动的助手的出现,如GitHub Copilot所示,但现有的解决方案并未利用IDE中的所有潜在功能,如构建,测试,执行代码, git操作等。 为了填补这一差距,我们介绍了AutoDev,一个完全自动化的AI驱动的软件开发框架,旨在为 计划和执行复杂的软件工程任务 AutoDev 允许用户定义复杂的软件工程目标,这些目标被分配给 AutoDev 的自动人工智能代理来实现。这些人工智能代理可以基于代码执行各种操作,包括文件编辑,检索,构建流程,执行,测试和 git 操作。他们还可以访问文件,编译器输出,构建和测试日志,静态分析工具等。这使人工智能代理能够以完全自动的方式执行任务,并全面了解所需的背景信息。 自主 在我们的评估中,我们在HumanEval数据集上测试了AutoDev,获得了有前途的结果,分别为代码生成和测试生成提供91,5%和87.8%的Pass@1,展示了其在自动化软件工程任务的有效性,同时保持安全和用户控制的开发环境。 1 介绍 随着开发人员越来越多地采用AI助理(如ChatGPT)来完成他们的开发任务,生产率的提高变得明显。 ],他们在聊天界面和直接在文件中提供代码建议。 2 然而,这些AI编码助理尽管集成到IDE中,但功能有限,缺乏背景意识。 , 他们通常不充分利用所有IDE的功能,例如调用启动器、编译器或执行命令行操作,因此,开发人员仍然需要手动验证语法并确保人工智能生成的代码的正确性,执行代码库和检查错误日志。 3 6 AutoDev通过提供自主AI代理执行文件编辑、重新试验、构建、测试和CLI命令等操作,直接在库中实现用户定义的目标来弥补这一差距。 AutoDev 提供以下关键功能: (i) 能够跟踪和管理用户和AI代理的对话。 (二)一个自定义图书馆 实现各种代码和SE相关目标的能力,(iii)通过一个系统来安排各种AI代理人共同工作,以实现一个共同的目标。 ,以及(iv)执行代码和运行测试的能力 . 会话经理 工具 代理时间表 评估环境 數字 说明了 AutoDev 工作流程的高层次示例. 用户定义一个目标(例如,测试特定方法)。 AI 代理将测试写入新文件并启动测试执行命令,所有在安全的评估环境中。 测试执行的输出,包括失败日志,随后被集成到转换中。 AI 代理分析了这个输出,触发了检索命令,通过编辑文件集成了获取的信息,并重新调用了测试执行。 1 与此相反,随着现有的AI编码助理集成到IDE中,开发人员将不得不手动执行测试(例如,运行 pytest),向AI聊天界面提供故障日志,可能识别添加的额外的背景信息,并重复验证操作以确保测试成功后AI生成修订代码。 AutoDev从自动人工智能代理领域的以前工作中汲取灵感。 AutoDev通过超越对话管理并允许代理人直接与代码存储库互动,自主执行命令和操作来扩展 AutoGen。 ],一个开源的AI代理,用于自动执行任务,通过提供代码和IDE特定的功能,以便执行复杂的软件工程任务。 22 8 In our evaluation, we assess the capabilities of AutoDev us-ing the HumanEval dataset[ 此外,我们将评估扩展到测试案例生成任务,展示了AutoDev在处理各种软件工程目标的多功能性,结果显示出有前途的性能,AutoDev在代码生成和测试生成方面分别获得了91,5%和87.8%的评分,这些结果强调了AutoDev在自动化软件工程任务的有效性,同时保持安全和用户控制的开发环境。 5 2 汽车设计 设计概述在FIG中描绘。 一旦初始配置完成,AutoDev将其功能分为四组:跟踪和管理用户和代理人的对话的对话管理器;工具库,为代理人提供各种代码和IDE相关工具;安排各种代理人的代理人安排器,以及允许执行操作的评估环境。 2 2.1 规则、操作和目标配置 用户通过 Yaml 文件来配置规则和操作来启动该过程。这些文件定义了 AI 代理可以执行的可用命令(操作)。用户可以通过启用/禁用特定命令来利用默认设置或精细的权限,将 AutoDev 定制为其特定需求。此配置步骤允许对 AI 代理的能力进行精确控制。在这个阶段,用户可以定义 AI 代理的数量和行为,分配特定责任、权限和可用行动。 按照规则和操作配置,用户会指定软件工程任务或过程,例如,用户可以要求生成测试案例,并确保它们是语法正确的,通过,并且不包含错误(这涉及编辑文件,运行测试套件,执行语法检查和错误查找工具)。 2.2 谈话经理 负责初始化对话历史的对话经理在监督正在进行的对话的高层次管理方面发挥着关键作用,负责决定何时中断进程,并确保用户、AI代理人和整个系统之间的无缝通信。 Parser 解读代理人生成的响应,以预定义格式提取命令和参数。它确保命令被正确格式化,验证参数的数量和准确性(例如,文件编辑命令需要文件路径参数)。在解析失败的情况下,错误消息被注入到对话中,防止存储库的进一步操作。成功解析的命令通过强制执行特定的代理权限和进行额外的语义检查进一步分析。 2.2.1 Parser. 输出组织模块处理来自评估环境的输出,选择关键信息,如状态或错误,可选地总结相关内容,并在对话历史中添加一个结构齐全的信息,从而确保用户对Au-toDev的行动和结果有明确和有组织的记录。 2.2.2 Output Organizer. AutoDev 框架概述:用户通过定义要实现的目标来启动过程。 对话管理器启动了对话和设置。 Agent Scheduler 组织人工智能代理人协作任务,并将他们的命令发送给对话管理器。 对话管理器解析了这些命令,并召唤了工具库,该库提供各种可在存储中执行的操作。 代理人的行动在安全的 Docker 环境中执行,并将输出返回对话管理器,将其纳入正在进行的对话中。 Figure 2. 对话管理器决定何时结束对话,这可能发生在代理人信号完成任务时(停止命令),对话达到用户定义的最大迭代/代币数目,或者在进程中或评估环境中检测到问题。 2.2.3 Conversation Conclusion. 2.3 工作日程表 Agent Scheduler 负责组织 AI 代理人以实现用户定义的目标。 与特定个体和可用命令组合配置的代理人协作执行各种任务。 安排员使用各种协作算法,如 Round Robin、Token-Based 或 Priority-Based,以确定代理人为对话做出贡献的顺序和方式。 具体而言,安排算法包括但不限于: (i) Round Robin 协作,该协作将每个代理人序列化,允许每个代理人执行预定数的操作; (ii) Token-Based 协作,允许代理人进行多个操作,直到发出代码完成其分配任务; (iii) 优先协作,根据其优先顺序发起代理人。 代理,包括大型语言模型(LLMs),如OpenAI GPT-4和优化代码生成的小语言模型(SLMs),通过文本自然语言进行通信.这些代理从代理计划员接收目标和对话历史,以规则和操作配置中规定的行动响应。 2.3.1 Agents. 2.4 图书馆工具 AutoDev 中的工具库提供一系列命令,使代理人能够在存储库中执行各种操作. 这些命令旨在将复杂的操作、工具和实用程序嵌入一个简单而直观的命令结构后面。 □ : 此类别包括用于编辑文件的命令,包括代码、配置和文档。此类别中的实用程序,如写入、编辑、插入和删除,提供不同级别的细微性。 ,允许代理重写一系列新内容的行。 File Editing <filepath><start_line>-<end_line> <content> 检索:在本类中,检索实用程序从基本的CLI工具(如grep、find、ls)到更复杂的嵌入式技术,这些技术允许代理人搜索类似的代码片段,增强其从代码库中检索相关信息的能力,例如,命令检索 <content>允许代理人执行基于嵌入式检索提供的内容的类似片段。 构建和执行:此类别中的命令允许代理人使用简单而直观的命令轻松地编译、构建和执行代码库。低级别构建命令的复杂性被抽象化,简化了评估环境基础架构中的过程。 测试和验证:这些命令允许代理人通过执行单个测试案例、特定测试文件或整个测试套件来测试代码库。代理人可以执行这些操作,而不需要依赖特定测试框架的低级别命令。 Git:Git操作的细粒权限可以由用户配置,包括委托、推送和合并等操作,例如,可以允许代理只执行本地委托,或者如果需要,将更改推送到源存储库。 通信:代理人可以调用一组旨在促进与其他代理人和/或用户的通信的命令,特别是,谈话命令允许发送自然语言消息(不被解释为存储操作的命令),请求命令用于请求用户反馈,停止命令中断过程,表明目标的实现或代理人无法继续前进。 因此,AutoDev 中的工具库为人工智能代理提供了一套多功能且易于访问的工具,以便与代码库进行交互,并在协作开发环境中有效沟通。 5、评估环境 在 Docker 容器中运行,Evaluation Environment 允许安全执行文件编辑、检索、构建、执行和测试命令. 它抽象了低级别命令的复杂性,为代理提供了一个简化界面。 2.6 把一切都放在一起 用户通过指定目标和相关设置来启动对话,对话管理器将对话对象初始化,将来自AI代理商和评估环境的消息整合在一起。随后,对话管理器将对话发送给负责协调AI代理人的行动的Agent Scheduler,在他们作为AI代理商的角色中,语言模型(大或小LM)通过文本交互建议命令。 命令界面包含一系列多样化的功能,包括文件编辑、检索、构建和执行、测试和Git操作,然后会话管理器对这些建议的命令进行解析,然后将其导向到评估环境,以便在代码库中执行。 执行这些命令发生在评估环境的安全范围内,被封装在Docker容器中。执行后,结果的操作无缝地集成到对话历史中,有助于随后的迭代。这个迭代过程持续到代理人认为任务完成,用户干预发生,或者达到最大迭代限度。 3 经验设计 在我们的经验评估中,我们旨在评估 AutoDev 在软件工程任务中的能力和有效性,检查它是否可以提高人工智能模型的性能,超越简单的推断。 研究问题 RQ1:在代码生成任务中,AutoDev有多有效? RQ2:AutoDev在测试生成任务中有多有效? RQ3:AutoDev在完成任务时有多有效? Q1:在代码生成任务中,AutoDev有多有效? 为了解决RQ1,我们使用Python中的HumanEval解决问题数据集来评估AutoDev在代码生成任务中的性能,该数据集包括164个手写编程问题,每一个都包含函数签名,docstring,body,以及平均7.7个单元测试。 我们使用 Pass@k 指数来衡量 AutoDev 的有效性,其中 k 代表了所做的尝试数。成功解决的问题被定义为Au-toDev 生成方法体的代码,满足所有人写的测试。 一次尝试相当于整个 AutoDev 对话,涉及多个推断呼叫和步骤。这与其他方法相矛盾,例如直接召唤 GPT-4,通常涉及单个推断呼叫。有关多个推断呼叫和步骤的细节在 RQ3 中进一步探索。 RQ2:在测试生成任务中,AutoDev有多有效? 对于这个研究问题,我们修改了 HumanEval 数据集,以评估 AutoDev 在测试生成中的能力。我们考虑了人为撰写的解决方案,并丢弃了提供的人为撰写的测试。 AutoDev 被指示生成焦点方法的测试案例,并根据测试成功、焦点方法的召唤和测试覆盖率进行评估。 Q3:AutoDev在完成任务时有多有效? 在本研究问题中,我们分析了AutoDev在完成SE任务中的效率,分析了所需的步骤或推断呼叫的数量,所使用的命令的分布(例如,写入,测试),以及对话中使用的代币总数。 自动化设置 对于此评估,AutoDev 会根据 GPT-4 模型(gpt-4-1106-preview)保持一致的设置,其中包括文件编辑、检索和测试。唯一可用的通信命令是停止命令,指示任务完成。其他命令,如请求,被禁用,需要AutoDev 自主操作,而无需超出初始目标设置的人类反馈或干预。 4 实验结果 Q1:在代码生成任务中,AutoDev有多有效? 桌子 显示了 RQ1 的结果,将 AutoDev 与两种替代方法和零射线进行比较。 1 我们将AutoDev与语言代理树搜索(LATS)和反思(Reflexion)进行比较,这是2024年3月Hu-manEval排行榜上的两个领先方法。 零打基线(GPT-4)的结果是从OpenAI GPT-4技术报告中获取的。 當時,他們的頭腦和頭腦都會變得更清晰。 》。 1 11 1 语言代理树搜索(LATS) ]是一个多功能的框架,使用大语言模型(LLMs)进行规划,行动和推理. 灵感来自蒙特卡洛树搜索,LATS雇用LLM作为代理,价值功能和优化,重新利用他们的能力,以改善决策。 23 反思( ) ] 引入了一个独特的框架,通过语言反馈来加强语言代理,而无需重量更新。 17 桌子 顯示 AutoDev 達到 91.5 % 的 Pass@1 率,在 HumanEval 榜單中獲得了第二個最佳位置. 值得注意的是,這個結果沒有獲得額外的訓練數據,區分 AutoDev 與 LATS,達到 94.4 %。 1 这些结果强调了AutoDev在完成软件工程任务时能够显著提高LLM的性能,但值得注意的是,AutoDev的有效性可能涉及多个推断呼叫和步骤,因为我们将在RQ3中深入了解更多细节。 RQ2:在测试生成任务中,AutoDev有多有效? 桌子 介绍了RQ2的结果,将AutoDev与零射击GPT-4(基线)进行比较,并在测试生成任务中进行人为写作测试.由于OpenAI在测试生成任务上没有对GPT-4进行评估,我们通过在AutoDev使用的相同GPT-4模型上引用指示提示的结论来获得零射击GPT-4结果。 2 AutoDev 在测试生成任务中修改的 HumanEval 数据集中获得了 87.8% 的 Pass@1 得分,比使用相同 GPT-4 模型的基线显示了 17% 的相对改善。 报告整个测试案例数据集的整体覆盖率,将错误或失败的测试视为缺乏覆盖率。 2 这些结果证实了AutoDev在解决各种软件工程任务方面的能力。 Q3:AutoDev在完成任务时有多有效? 數字 说明 AutoDev 用于代码生成和测试生成任务的命令总数,考虑到 RQ1 和 RQ2 中的每个 HumanEval 问题评估所使用的命令总数。 3 For Code Generation, AutoDev executed an average of 5.5 个命令,包括 1.8 个写操作, 1.7 个测试操作, 0.92 个停止操作(表示任务完成), 0.25 错误的命令,以及最少的检索(抓住,查找,猫),语法检查操作和语音通信命令。 在测试生成中,指令的平均数目与代码生成任务相匹配,但是,测试生成涉及更多的检索操作并增加了错误操作的发生率,结果是每个运行总计6,5个指令。 我们将命令归类为错误,如果该命令引用了不可用命令或无法解析(例如,错误的格式化或参数计数)。最常见的错误命令涉及人工智能代理将自然语言与代码或命令混合。 虽然AutoDev与在单一调用中生成候选代码的方法相比,遇到更多的推断呼叫,但重要的是要注意,AutoDev还执行测试和验证操作,这些任务通常由开发人员执行以验证生成的候选人。 此外,AutoDev经常通过谈话命令传达任务完成,提供解决方案的见解和解释性。 另一个有意义的通信命令,有助于整体计数是停止命令。 在 RQ1 和 RQ2 中,解决每个 HumanEval 问题的 AutoDev 对话的平均长度分别为 1656 和 1863 个代币,这包括用户的目标、AI 代理的消息和评估环境的响应。相比之下,零打 GPT-4 (基线) 使用 200 个代币(估计)用于代码生成和 373 个代币用于测试生成,平均为每个任务。 最后,AutoDev 承担与在 Docker 环境中组织人工智能代理、管理对话和执行命令相关的执行成本,特别是基于 Docker 的评估环境承担了主要的执行成本,与用户环境中的直接 CLI 命令相比,具有较高的负担。 5 讨论 5.1 行动中的自动化 数字 (第一部分)和 (II部分)提供在测试生成任务期间行动中的Au-toDev的见解,其中一些互动被概括或忽略为简短。 ,我们为 AutoDev 设定了以特定格式生成最具挑战性的测试案例的目标。 AutoDev 代理启动写新命令,提供测试文件的文件路径和内容。 AutoDev 执行操作,确认成功的内容写给代理人。 4 5 4 AutoDev 代理在最简单的输出中识别出一个错误,认识到需要修复来将测试与函数的预期行为一致。 继续在 Figure , AutoDev 代理发出写命令,指定 filepath 和行数范围(5 至 5)来重写错误的声明声明. 随后, AutoDev 代理继续测试执行,现在成功了。 5 本示例凸显了AutoDev能够在自己的输出中自我评估其生成的代码和解决错误的能力,此外,它还展示了AutoDev如何促进用户对代理行动的洞察力,允许代理人在任务中进行通信。 5.2 多代理合作 AutoDev 支持由 Agent Scheduler 编排的任务上的多代理协作,在我们的评估中,鉴于 HumanEval 数据集的相对简单性,我们将我们的设置限制在任务的单个 GPT-4 代理上。 然而,初步结果表明,多代理合作对更复杂的任务产生了积极的影响. 与AI开发人员和AI审查员进行实验,每个具有不同的责任和可用的行动,协作修复复杂的错误,揭示了有趣的相互作用。 我们的未来计划包括扩大评估,以包括更复杂的场景,其中多代理合作可以显著提高AutoDev的性能。 5.3 人类在路上 AutoDev允许人工智能代理人通过聊天和询问命令来传达任务的进展或请求人类反馈,相应地,这些命令对使用 AutoDev的开发人员有帮助,以了解代理人的意图并深入了解代理人的计划。 我们的未来计划包括在AutoDev循环中更深入地整合人类,允许用户中断代理,并提供快速反馈。 5.4 自动集成 我们的试点研究涉及使用 AutoDev 作为 CLI 命令的开发人员,对话可在 VSCode IDE 中进行观察。 向前迈进,我们的目标是将AutoDev集成到IDE中,创建一个聊天机器人体验,并将其纳入CI/CD管道和PR审查平台,我们预测开发人员将任务和问题分配给AutoDev,在PR系统中审查结果,并进一步简化软件开发工作流程。 6 相关工作 我们的工作建立在广泛的文献中,该文献将人工智能应用于各种软件工程任务,在本节中,我们探讨了最近的发展,并在这个丰富的研究环境中将AutoDev定义为背景。 6.1 软件工程 人工智能,特别是大语言模型(LLMs)的整合到软件工程中,见证了显著的进步。 (一)指示( ) ) , 和 GPT-4 [ ] 利用转换器架构( ) 理解和生成不仅自然语言,而且源代码. 巨大的参数尺寸的法学硕士,如那些在Gropher [ )和Megatron-Turing NLG [ ) , 和 GPT-4 [ ]允许这些AI模型在各种任务中实现令人印象深刻的性能。 7 14 13 20 15 18 13 随着软件开发实践的不断发展,最先进技术的整合成为提高开发人员生产力的首要任务。 在显著的进步中,综合发展环境(IDE)中的LLM的利用引起了显著的关注。 , LLMs,包括OpenAI的GPT-3.5等知名模型。 ] and GPT-4 [ ], as well as robust open-source models like Code Llama [ ,展示出作为智能编程助理的潜力。 5 4 10 12 13 16 在这篇论文中,我们介绍了AutoDev,一个在安全的开发环境中进行自主软件工程任务的综合框架。AutoDev通过提供多功能的工具库来扩展到现有工作之外,使AI代理人能够自主执行复杂的任务,如编辑代码,测试和集成。 6.2 软件工程LLM的评估 评估软件工程任务的法学硕士提出了独特的挑战. 传统的基于语言的指标,如BLEU,一直是以前的研究的重点,对静态数据集如GLUE进行评估。 )和BIGBench( ) 然而,这些指标在捕捉关键编程方面往往不足,例如语法正确性和基于执行的指标,如构建和测试。 21 19 CodeXGLUE [ 通过提供软件工程法学硕士的综合评估平台来解决这些局限性,它提供了多样化的基准数据集,以及像CodeBERT和CodeGPT这样的基准模型。 9 人类( ) ]通过专注于LLM的功能正确性,引入了Python中手写编程问题的基准数据集,为该领域做出贡献。 5 [ 与HumanEval类似,Copilot Evaluation Harness包含代码执行的考虑,但扩大了软件工程任务的范围(代码,测试和文档生成,工作空间理解和查询分辨率),以及增加用于评估的指标。 3 虽然我们目前的评估依靠HumanEval来评估AutoDev在两个编码任务中的有效性,但我们的未来工作旨在将此评估扩展到更具挑战性和现实世界的数据集,如Copilot评估提供的数据集。 6.3 软件工程互动中的AI While prior works have explored the intersection of AI and software engineering, few have delved into AI-guided programming within IDE interactions. AutoDev, as introduced in this paper, draws inspiration from existing works in the literature while enhancing their contributions. Notable examples include Auto-GPT[ LATS(语言代理树搜索) )和反思( ) ],每个都呈现了针对AI驱动任务的独特方法。 8 23 17 电动汽车( ) ] 通过将 GPT-3.5 和 GPT-4 与伴侣机器人并行操作,使用户能够指导这些语言模型在特定目标上。 8 黄金( ) 另一方面,是一个通用框架,在规划,行动和推理中协同发挥LLM的能力。受蒙特卡罗树搜索的启发,通常用于基于模型的增强学习,LATS将LLM作为代理人,价值功能和优化者,增强决策,引入外部反馈的环境,提供有意和适应性的解决问题机制。 23 反思( ) 引入了一种新的框架,通过语言反馈来加强语言代理人。反思代理人可以口头反思任务反馈信号,在一个情节性内存缓冲中保持反射性文本,以改善决策。 17 AutoDev专注于软件工程领域的这些想法,提供了一个灵活的框架,允许AI代理人以完全的自主性完成复杂的SE任务。我们的工作旨在缩小传统软件工程实践和AI驱动的自动化之间的差距,促进开发人员和AI代理人之间的协作努力。 7 结论 在这篇论文中,我们介绍了AutoDev,一个框架,允许AI代理人自主与仓库进行交互,执行操作,并处理复杂的软件工程任务。我们已经转移了提取软件工程任务相关背景的责任,并从用户(主要是开发人员)验证AI生成的代码到AI代理人本身。 AutoDev框架内的开发者的角色从手动操作和AI建议的验证转变为监督任务上的多代理协作的监督者,具有提供反馈的选项。 我们对 HumanEval 代码和测试生成数据集的评估显示出令人印象深刻的结果,在代码生成中获得 Pass@1 得分为 91.5 – 这是在写作时排行榜上的第二个最佳得分,并且在不需要额外培训数据的方法中是最好的。 Looking ahead, our goal for future work is to integrate AutoDev into IDEs as a chatbot experience and incorporate it into CI/CD pipelines and PR review platforms. 参考 [1] 代码生成在人文 - 最先进的。 此分類下一篇: 2024-02-27 hnps 此分類上一篇: paperswithcode.com/sota/code-generation-on-humaneval (2)GitHub copilot:你的AI对程序员。 2024. hNps://github.com/features/ 孩子, [3] Agarwal, A., Chan, A., Chandel, S., Jang, J., Miller, S., Moghad-dam, R. Z., Mohylevskyy, Y., Sundaresan, N. 和 Tufano, M. Copi-lot 评估支架:评估 llm 引导软件编程, 2024。 [4] Chen, B., Mustakin, N., Hoang, A., Fuad, S., 和 Wong, D. Vscuda: 基于LLM的视觉工作室代码的cuda扩展。 (纽约,纽约,美国,2023年),SC-W ’23,计算机协会,第11-17页。 关于高性能计算、网络、存储和分析的国际会议23个研讨会的报告 [5] Chen, M., Tworek, J., Jun, H., Yuan, Q., de Oliveira Pinto, H. P., et al. 评估用代码训练的大型语言模型。 [6] Ding, Y., Wang, Z., Ahmad, W., Ding, H., Tan, M., Jain, N., Ra-manathan, M. K., Nallapati, R., Bhatia, P., Roth, D., et al. 跨代码:跨文件代码完成的多元化和多语言基准。 (2024). 神经信息处理系统 36 佛罗里迪,L,和奇里亚蒂,M. Gpt-3:它的性质,范围,局限性和后果。 (2020年),681至694年。 Minds and Machines 30 [8]《重力》S. Autogpt。 2024年,GitHub存储库。 自动化, [9] Lu, S., Guo, D., Ren, S., Huang, J., Svyatkovskiy, A., Blanco, A., Clement, C., Drain, D., Jiang, D., Tang, D., Li, G., Zhou, L., Shou, L., Zhou, L., Tufano, M., Gong, M., Zhou, M., Duan, N., Sundaresan, N., Deng, S. K., Fu, S., 和 Liu, S. Codexglue:编码理解和生成的机器学习基准数据集,2021年。 [10] Nam, D., Macvean, A., Hellendoorn, V., Vasilescu, B. 和 Myers, B. 以大语言模型为基础的信息支持,2023年。 阿尔梅达·阿尔梅达·阿尔梅达·阿尔梅达·阿尔梅达·阿尔梅达·阿尔梅达·阿尔梅达·阿尔梅达·阿尔梅达·阿尔梅达·阿尔梅达·阿尔梅达·阿尔梅达·阿尔梅达·阿尔梅达·阿尔梅达·阿尔梅达·阿尔梅达·阿尔梅达·阿尔梅达·阿尔梅达·阿尔梅达·阿尔梅达·阿尔梅达·阿尔梅达·阿尔梅达·阿尔梅达·阿尔梅达·阿尔梅达·阿尔梅达·阿尔梅达·阿尔梅达·阿尔梅达·阿尔梅达·阿尔梅达·阿尔梅达·阿尔梅达·阿尔梅达·阿尔 Grafstein, M., Gray, S., Greene, R., Gross, J., Gu, S. S., Guo, Y., Hallacy, C., Han, J., Harris, J., He, Y., Heaton, M., Heidecke, J., Hesse, C., Hickey, A., Hickey, W., Hoeschele, P., Houghton, B., Hsu, K., Hu, S., Hu, X., Huizinga, J., Jain, S., Jain, S., Jang, J., Jiang, A、 Jiang, R., Jin, H., Jin, D., Jomoto, S., Jonn, B., Jun, H., Kaftan, T., Łukasz Kaiser, Kamali, A., Kanitscheider, I., Keskar, N. S., Khan, T., Kilpatrick, L., Kim, J. W., Kim, C., Kim, Y., Kirchner, J. H., Kiros, J., Knight, M., Kokotajlo, D., Łukasz Kondraciuk, Kondrich, A., Konstantinidis, A., Kosic, K., Krueger, G., Kuo, V., Lampe, M., Lan, I., Lee, Lee, T., Leike, J., Leung, J., Levy, D., Li, C. M., Lim, R., Lin, M., 林,斯,马尔科夫斯基,斯,马尔科夫斯基,斯,马尔科夫斯基,斯,马尔科夫斯基,斯,马尔科夫斯基,斯,马尔科夫斯基,斯,马尔科夫斯基,斯,马尔科夫斯基,斯,马尔科夫斯克,斯,马尔科夫斯克,斯,马尔科夫斯克,斯,马尔科夫斯克,斯,马尔科夫斯克,斯,马尔科夫斯克,斯,马尔科夫斯克,斯,马尔科夫斯克,斯,马尔科夫斯克,斯,马尔科夫斯克,斯,马尔科夫,斯,斯,马尔科夫斯克,斯,斯,马尔科夫斯克,斯,斯, A、WeiHang, J.,Ramesh, A., Raymond, C., Real, F., Rimbach, K., Ross, C., Rotsted, B., Roussez, H., Ryder, N., Saltarelli, M., Sanders, S., Santurkar, S., Sastry, G., Schmidt, K., Sohl, I., Sokolowsky, B., Song, Y., Schulman, J., Selsam, K., Sheppard, N., Sherbakov, T., Shieh, J., Shoker, S., Shemba, Yoo, P., Sidor, S., Sigler, E., Simens, M., Sitkin, J., Slama, K., Sohl, I., Sokolowsky, B., Song, Y., Selsam, D., Sheppard, N., Such, F. P., Summers, [12] OpenAI. Gpt 3.5 模型,2023年。 [13] OpenAI. Gpt-4 技术报告,2023年。 [14] Ouyang, L., Wu, J., Jiang, X., Almeida, D., Wainwright, C., Mishkin, P., Zhang, C., Agarwal, S., Slama, K., Ray, A., et al. 訓練 lan-guage 模型以遵循指示與人類反馈。 (2022年),27730至27744年。 神经信息处理系统35 [15] Rae, J. W., Borgeaud, S., Cai, T., Millican, K. 和其他人. 扩展语言模型:从培训gopher的方法,分析和见解,2022年。 [16] Roziere, B., Gehring, J., Gloeckle, F., Sootla, S., Gat, I., Tan, X. E., Adi, Y., Liu, J., Remez, T., Rapin, J., 等。 (2023年) arXiv 预印 arXiv:2308.12950 [17] Shinn, N., Cassano, F., Berman, E., Gopinath, A., Narasimhan, K. 和 Yao, S. 反思:语言代理与口头增强学习,2023年。 [18] Smith, S., Patwary, M., Norick, B., LeGresley, P., Rajbhandari, S., Casper, J., Liu, Z., Prabhumoye, S., Zerveas, G., Korthikanti, V., Zhang, E., Child, R., Aminabadi, R. Y., Bernauer, J., Song, X., Shoeybi, M., He, Y., Houston, M., Tiwary, S., 和 Catanzaro, B. 使用深度和大米特龙来训练 megatron-turing nlg 530b,一个大规模的生成语言模型, 2022. [19] Srivastava, A., Rastogi, A., Rao, A., Shoeb, A. A. M., et al. 在模仿游戏之外:量化和提取语言模型的能力,2023年。 [20]Vaswani,A,Shazeer,N,Parmar,N,Uszkoreit,J,Jones,L,Gomez,A.N,Kaiser,L,和Poloukhin,I.注意力是你所需要的一切。 (2017年) 神经信息处理系统的进步 30 [21] Wang, A., Singh, A., Michael, J., Hill, F., Levy, O. 和 Bowman, S. R. Glue:自然语言理解的多任务基准和分析平台,2019年。 [22] Wu, Q., Bansal, G., Zhang, J., Wu, Y., Li, B., Zhu, E., Jiang, L., Zhang, X., Zhang, S., Liu, J., Awadallah, A. H., White, R. W., Burger, D., 和 Wang, C. Autogen:通过多代理对话实现下一代LLM应用,2023年。 [23] Zhou, A., Yan, K., Shlapentokh-Rothman, M., Wang, H. 和 Wang, Y.-X. 语言代理树搜索在语言模型中统一了推理行为和规划,2023年。 本文已在 CC by 4.0 Deed (Attribution 4.0 International) 许可证下获取。 本文已在 CC by 4.0 Deed (Attribution 4.0 International) 许可证下获取。