一个技巧,让ChatGPT学会复杂编程,编程水平逼近人类程序员!

夕小瑶科技说 原创
作者 | 智商掉了一地、Python

随着 AIGC 技术迈出了一大步,ChatGPT 等聊天机器人被频繁地使用在生活和工作中的各个场景。想象一下,当你写代码陷入没有头绪的境地或者无法解决 Bug 时,这种基于大型语言模型(LLM)的系统由于有丰富的训练数据与强大的推理能力,可能会在一些简单的代码生成任务上有着出色表现,为你提供灵感。然而,在面对更复杂的代码生成任务(如竞赛级问题)时,仍然存在一定的挑战。

有一个名为 BRAINSTORM(头脑风暴)的新框架或许能更好地应对这个问题,它利用高层次算法蓝图、神经排序模型以及 LLM 的推理能力,来帮助我们生成多样化的思路并找到最佳的解决方案,它的性能甚至可以达到与人类程序员相当的水平。让我们一起来看看吧~

论文题目:
Think Outside the Code: Brainstorming Boosts Large Language Models in Code Generation

论文链接:
https://arxiv.org/abs/2305.10679

大模型研究测试传送门

ChatGPT能力研究传送门: hujiaoai

GPT-4能力研究传送门(遇浏览器警告点高级/继续访问即可): Hello, GPT4!

背景介绍

程序综合

程序综合(Program Synthesis)在自动化软件发现、程序分析和验证、以及人机交互等领域中有广泛的应用,它是一种旨在通过自动合成完整的功能程序来解决开发者所提出问题的技术。

传统方法通常在由底层编程语言定义的搜索空间中搜索满足特定任务约束条件的程序。然而,这种方法面临着搜索空间复杂和形式规约不足等问题。基于深度学习的程序综合可以从非正式规范(如自然语言、部分代码、输入-输出示例或伪代码)中生成程序。目前,深度学习方法主要用于生成特定领域内的短程序或通用编程语言中的单行代码。

竞赛级的代码生成

竞赛级代码生成(Competition-level code generation)是指生成竞赛级水平的复杂编程解决方案的过程。这需要模型具有更高的推理和抽象能力,能理解和消化更为复杂的任务描述、更长的代码,以及更多的上下文信息。研究表明,LLM 在零样本设置中生成代码,比针对特定数据集进行微调具有更好的泛化能力。此外,对 GPT-4 的调查表明它能以个位数的通过率解决竞赛级编程问题。

论文速览

BRAINSTORM 框架是一种用于竞赛级代码生成的方法,其核心是生成多样化的思路并从中选择高质量的思路,从而有效利用 LLM 的算法推理能力。该框架通过设计多种类型的指令,将这些指令与问题描述一起输入到 LLM 中,以生成多样化的思路。

▲图1 BRAINSTORM 框架的示例

如图 1 所示,BRAINSTORM 框架包括以下步骤:

  1. 头脑风暴(Brainstorming):该步骤是 BRAINSTORM 框架的核心,旨在生成各种可能有助于解决给定问题的思路。如图 2 所示,为了实现这个目标,作者设计了多种类型的指令,并将这些指令与问题描述一起输入到 LLM 中。

  2. 思路选择(Idea Selection):在上一步中生成了大量的思路后,需要对它们进行筛选和排序。如图 3 所示,具体地,使用了一个评估函数来评估每个思路的质量,并选择最高质量的思路作为最终输出。

  3. 代码生成(Code Generation):在上一步中选择了最佳思路后,需要将其转换为代码。具体而言,作者使用了一个代码生成器来将思路转换为可执行代码。而且如图 4 所示,BRAINSTORM 框架可以在零样本情况下工作,与少样本方法不同,这里不需要任何示例即可实现高效的代码生成。

实验

文中进行了多项实验,对其结果总结如下:

  • 如表 1 和 2 所示,在 APPS 和 CodeContests 基准测试中,作者使用 BRAINSTORM 框架生成代码,并与其他方法进行比较。结果表明,BRAINSTORM 框架在这两个基准测试中都显著提高了 LLM 的性能。

    如图 5 所示,在涉及概率、最短路径和图的问题上有显著的相对改善,并且随着评级的提高,该方法始终优于 ChatGPT 和 COT。

  • 作者还在真实编程竞赛中进行了实验,将 BRAINSTORM 框架应用于代码生成。表 3 的结果表明,该框架可以将 ChatGPT 算法推理能力提高到与人类程序员相当的水平

这些结果表明,在使用 BRAINSTORM 框架时,LLM 生成的代码质量更高、更接近人类程序员所写的代码。

小结

本文介绍了一种名为BRAINSTORM的新的竞赛级别代码生成框架,其亮点在于:

  1. 提出竞赛级别代码生成框架 BRAINSTORM:通过生成多样化的思路并从中选择高质量思路来实现高效代码生成任务

  2. 利用 LLM 的算法推理能力:通过设计多种类型的指令来实现生成多样化的思路,并使用评估函数和代码生成器将思路转换为可执行代码。

  3. 零样本学习:可以在零样本情况下工作,不需要任何示例即可实现高效的代码生成。

随着该领域的进一步探索和发展,我们相信生成更精准、高质量的代码将成为一种必然趋势。当更多研究者将目光投入这个领域,那么我们离解放双手生成代码的美好世界也会更近一步~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/7434.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

用 ChatGPT 辅助学好机器学习

文章目录 一、前言二、主要内容 🍉 CSDN 叶庭云:https://yetingyun.blog.csdn.net/ 一、前言 探索更高效的学习方法可能是有志者共同的追求,用好 ChatGPT,先行于未来。 作为一个人工智能大语言模型,ChatGPT 可以在帮助…

【我用ChatGPT学编程】Vue-Router中history模式Nginx部署后刷新404的问题

前言 作为一个码农我们都知道ChatGPT实际上是一个十分好用的代码工具,它使用了MarkDown语法更符合我们的习惯,并且可以根据语义理解问题并且给出多种解决方案,所以这个系列就是用ChatGPT来给出对于在coding时遇到的各种Bug。 ChatGPT似乎可…

如何用ChatGPT学Python

入门教程、案例源码、学习资料、读者群 请访问: python666.cn 大家好,欢迎来到 Crossin的编程教室 ! 关于ChatGPT的能力,大家想必都已听说,很多同学应该都亲自体验过了。其在自然语言处理方面的出色表现,绝…

chatgpt赋能python:Python爬虫绕过会员登录的技巧

Python爬虫绕过会员登录的技巧 在爬取网站数据的过程中,很多网站都需要用户登录才能访问,这对于一个Python爬虫工程师来说是一个挑战,因为如何在不登录的情况下获取数据是一个关键的问题。本文将介绍一些Python爬虫绕过会员登录的技巧&#…

chatgpt赋能python:Python怎么绕过短信验证

Python怎么绕过短信验证 短信验证以及其他形式的验证码已经成为了许多网站和应用程序保护用户隐私的常见方式。然而,对于某些特定的情况,用户可能需要绕过这些验证码,例如自动化测试或者爬取数据。那么,在Python中,我…

使用chatgpt过funcaptcha验证码1个人学习记录

funcaptcha 验证码1 记录 ** funcaptcha 那个公司开发的简要介绍: Funcaptcha是由hCaptcha公司开发的一种人机验证系统。hCaptcha是一家位于美国的人机验证技术提供商,旨在帮助网站和应用程序防止自动化攻击和滥用。 Funcaptcha是hCaptcha提供的一种高级…

chatgpt赋能python:Python如何绕过验证码

Python如何绕过验证码 验证码是防止机器人自动化操作的一种常用手段,在爬虫和自动化软件中经常会遇到验证码的限制。本文将介绍Python如何绕过验证码。 什么是验证码 验证码(CAPTCHA, Completely Automated Public Turing test to tell Co…

token绕过

现在的网页有很多验证机制,就是为了防止暴力破解,有直接在前端就可以进行修改的,有需要在服务器进行修改的,对于目前的我来说,如果在服务器修改就没办法绕过,但是大多时候利用burpsuite就可以进行中间代理修…

【AI JUST AI】自然语言交互式学习,ChatGPT成了我的最佳博客写作助手

【AI JUST AI】自然语言交互式学习,ChatGPT成了我的最佳博客写作助手 什么是自然语言交互式学习?ChatGPT是如何成为我的最佳博客写作助手的?**把与Chat GPT的每一次对话都当作一种类型的非系统学习**有问必答,随时交互 总结后记—…

用ChatGPT写作,提示词的四个层次

这几个周末我好好的研究了一下如何通过提示词的优化,提高ChatGPT输出内容的质量。 关于如何用ChatGPT帮助我们写东西,我总结了以下的规律,希望能给你一些启发。 写作的步骤 写一篇文章,思路上一定是从抽象到具体一步一步深入的。…

【分享】那些免魔法的chatGPT,GPT最佳实践

ChatGPT 问世,犹如平地惊雷般,在技术圈中引起了广泛讨论。作为全球最大的开发者社区,GitHub 平台也在近期诞生了多个 ChatGPT 相关的开源项目,其数量之多,可谓是见所未见,闻所未闻。说是 ChatGPT 以其一己之…

ChatGPT最强对手!Claude,无需魔法,无需等待,直接可用!

最近ChatGPT的封号问题搞得大家人心惶惶,这不Claude的slack版本来了。 使用Claude的slack版本,无需翻墙,无需加入Waitlist,无需付费,无需下载任何东西,没有高峰限制,而且效果媲美ChatGPT&#x…

如何使用 ChatGPT 进行数据库管理

管理数据库可能是一件大惊小怪的事情,但在 OpenAI 开发的强大语言生成模型 ChatGPT 的帮助下,它变得更易于管理。ChatGPT 可以针对与特定数据库相关的特定命令数据集进行微调,使其能够生成可以对该数据库执行各种操作的命令。 对模型进行微调…

chatgpt赋能python:Python包安装教程

Python包安装教程 Python是一门由Guido van Rossum于1989年创造的解释性高级编程语言。Python是一种优雅和简单的编程语言,有着广泛的应用。 在Python中,我们可以使用模块和包来组织我们的代码。本文包括Python包的安装教程,以及一些可能在安…

chatgpt赋能Python-python2_7_9安装教程

Python2.7.9安装教程 介绍 Python是一种面向对象、解释型、动态数据类型的高级程序设计语言。Python支持多种编程范式,如过程化、对象化、函数化等,拥有丰富的标准库和第三方库,是一种非常灵活且易于学习和使用的编程语言。Python2.7.9是Py…

chatgpt赋能python:Python模块安装方法全解析

Python模块安装方法全解析 Python是一种功能强大的编程语言,拥有大量的开源库,这些库是在各种应用程序中使用的重要组件,它们能加速开发过程。不管你是初学者、中级者还是高级者,总会遇到需要安装第三方库的情况。但是安装库是一…

chatgpt赋能Python-pythonpip怎么安装

Python PIP的详细安装教程 Python PIP是Python官方的包管理工具,可以帮助程序员简单轻松地下载和安装各种Python模块。下面我们来一步一步地介绍Python PIP的安装步骤。 1. 安装Python 首先,需要在您的计算机上安装Python。如果您还没有安装Python&am…

chatgpt赋能python:Python安装教程

Python 安装教程 您在编程学习、数据分析、机器学习等领域中,都会需要用到 Python。而在您开始使用之前,需要先将 Python 安装在您的设备上。在本篇文章中,将为大家介绍 Python 的安装教程,以及一些提示和注意事项。 系统要求和…

chatgpt赋能python:Python怎么安装?一篇简单易懂的教程

Python怎么安装?一篇简单易懂的教程 Python是一门深受科学家和开发者喜欢的编程语言,其简单易懂、易于上手的特点让其在众多编程语言中脱颖而出。在本文中,我们将会向大家介绍Python的安装过程。 Python的安装包 Python的官方网站提供了所…

chatgpt赋能Python-pythonpycharm详细安装教程

Python PyCharm详细安装教程 PyCharm是一个用于Python开发的集成开发环境(IDE),它具有强大的代码编辑功能和自动化工具,可以帮助开发人员更高效地编写Python代码。在本文中,我们将详细介绍如何安装PyCharm并进行基本的设置和配置。 准备工作…