OpenAI在自然语言处理(NLP)方面的进展标志着大型语言模型(LLMs)的兴起,这些模型支撑着数百万用户使用的产品,包括编码助手GitHub Copilot和Bing搜索引擎。通过其独特的信息记忆和融合能力,这些模型在代码和文本生成等任务中树立了无与伦比的基准。
理解ChatGPT的代码解释器
要理解ChatGPT代码解释器的重要性,首先需要了解它是什么以及它是如何构建的。
ChatGPT代码解释器利用ChatGPT的能力,对多种编程语言的代码进行理解、解释甚至生成。这个功能将ChatGPT从一个文本生成器转变为开发人员的宝贵工具,帮助理解、调试甚至生成代码。
训练用于编码的GPT:Codex方法
GitHub Copilot和ChatGPT的代码解释器都使用了OpenAI开发的Codex模型。
Codex是一种专门的GPT语言模型,其具备熟练的Python代码编写能力。Codex通过训练GitHub上公开的源代码展示了其潜力,为GitHub Copilot的功能提供动力。在从文档字符串中合成程序的功能正确性度量方面,Codex的表现优于GPT-3和GPT-J。
一个引人注目的观察是,重复采样可以提高Codex的能力。当每个问题最多使用100个样本时,模型的成功率提高到70.2%。这种效率表明可以使用启发式排序来选择准确的代码样本,而无需对每个样本进行全面评估。
为了评估其能力,该模型被要求仅基于文档字符串创建独立的Python函数。然后使用单元测试来衡量生成代码的准确性。在包含164个原始编程问题的数据集中,其中包括语言理解、算法和基本数学测试,具有12B参数的Codex在第一次尝试中解决了28.8%的问题。

Codex模型的训练数据:https://arxiv.org/abs/2107.03374
通过通过对正确实现的独立函数进行微调,进一步提高了模型的效率,使得Codex-S在第一次尝试中解决了37.7%的挑战。然而,在实际的编程领域中,采用试错方法是常见的。模拟这种实际情境,当给予100次机会时,Codex-S模型成功解决了77.5%的挑战。

生成代码的ChatGPT等生成模型通常通过将生成的样本与参考解决方案进行比较来进行评估。这种比较可以是精确匹配,也可以使用BLEU分数等相似度度量。然而,这些基于匹配的度量方法经常无法把握编码的细微差别。对BLEU的一个关键批评是其在捕捉代码的语义特征方面的无效性。
与仅依赖匹配不同,提出了更相关的度量方法:功能正确性。这意味着模型生成的代码应该通过给定的一组单元测试。这个想法与标准的编码实践一致,因为开发人员经常使用单元测试来衡量代码的效力和准确性。
这个度量方法评估的不仅是准确性,还有生成代码的功能可用性。
引入了“[email protected]”度量作为功能正确性的一种度量。它实际上意味着如果“k”个生成的代码样本中的任何一个通过了单元测试,那么问题就被认为是解决了的。然而,为了避免高方差,不仅仅使用这个度量方法的直接形式,还使用了一个无偏估计器来计算[email protected]。
为了评估ChatGPT的代码能力,研究使用了“HumanEval”数据集。该数据集包含手写的Python问题,每个问题都附带了单元测试。

https://github.com/openai/code-align-evals-data/blob/main/human_eval
鉴于运行未知或不可信代码的风险,设计了一个沙盒环境来安全地测试生成的代码。该环境使用gVisor来模拟资源,并在主机系统和运行的代码之间创建一个屏障。因此,即使模型产生恶意代码,它仍然被限制在其中,无法对主机或网络造成伤害。
使用ChatGPT代码解释器
OpenAI的ChatGPT经历了多次演变,其中代码解释器成为GPT-4模型中的一项革命性功能。与传统的聊天界面不同,代码解释器允许用户深入进行计算任务,无缝地融合人工智能对话和计算过程的界限。
从根本上讲,代码解释器类似于在聊天机器人中嵌入了一台计算机。这个动态特性为用户提供了临时的磁盘空间,可以上传各种文件格式,包括常见的TXT、PDF和JPEG等类型,也包括更专业的CPP、PY和SQLite等类型。这种广泛的支持增强了它在各种任务中的多功能性,无论是文档处理还是图像处理。
在一个强大而安全的框架内运行,代码解释器配备了300多个预安装的库。这个沙盒环境确保安全性,同时提供了大量的计算能力。有趣的是,当被指定任务时,它会实时生成一个Python脚本来执行用户的请求。例如,将基于图像的PDF转换为可搜索格式的OCR,用户只需上传文档,ChatGPT会处理剩下的事情。

一个引人注目的问题是上传文件的大小限制。虽然还没有公布确切的规格,但用户的实验表明,系统可以有效地处理大于100MB的文件。无论大小如何,重要的是这些文件是暂时的,在聊天会话结束后被丢弃。
代码解释器的卓越之处不仅在于其技术实力,还在于其可访问性。OpenAI将这个功能提供给ChatGPT Plus的订阅用户,该用户配备了GPT-4模型。因此,这个变革性的工具不仅仅是为科技精英而存在,而且正在逐渐为更广泛的受众所接触。
标准ChatGPT模型和代码解释器之间的区别在于它们的交互范式。前者主要生成文本回复,而后者理解并执行代码,提供直接的结果。这不仅使它成为技术专业人员的宝贵资产,还使那些没有编程知识的人能够执行复杂的计算任务。
ChatGPT代码解释器的能力可以彻底改变软件开发和数据科学的几个方面:
- 自动代码生成:对于软件应用程序和数据分析脚本,系统可以根据高级描述生成样板结构或复杂的代码片段,加快开发和数据分析过程。
- 代码审查和数据验证:像ChatGPT这样的人工智能驱动工具可以帮助提高软件代码库的质量和安全性。此外,在数据科学领域,这样的工具可以在审查和验证数据处理和转换脚本方面发挥重要作用,确保准确性和效率。
- 数据分析辅助:对于数据科学家来说,ChatGPT代码解释器可以帮助生成用于初步数据探索、可视化甚至基本统计测试的代码,从而简化数据分析工作流程。
如果你对ChatGPT和提示工程的细节感兴趣,Unite AI在“ChatGPT:高级提示工程”中提供了全面的介绍。
设置ChatGPT代码解释器
代码解释器集成使平台能够解释用户的查询,将其作为Python代码执行,并以交互式聊天格式显示结果。要访问此功能,用户可以导航到ChatGPT设置,探索Beta功能部分,并激活代码解释器。


它的独特之处在于其透明的机制。当用户提示一个任务时,平台会逐步揭示处理过程的每一步,清楚地展示命令如何被解释和执行。重要的是,出于隐私和安全原因,代码解释器在没有任何互联网连接的情况下运行。
探索ChatGPT代码解释器的好处
数据可视化与分析
ChatGPT超越了传统图表的范围,提供了传统和创新的图形表示方式。这确保用户可以以提供最有意义洞察的格式查看数据。
然而,仅仅可视化原始数据是不够的。ChatGPT模型擅长处理和精炼数据。尽管功能强大,用户仍应谨慎使用。
金融分析师会发现代码解释器分析和可视化股票价格尤为有用。通过无缝集成,用户可以上传数据集并以各种格式进行可视化。当个人能够进行复杂的数据分析时,这个功能的重要性就显而易见了。
下面的视频演示了ChatGPT的代码解释器如何创建了一份全面的TSLA股票分析报告。

主要观点:
- Tesla的股价面临波动,但也显示出增长的时期。
- 特定日期的高交易量表明市场对关键事件的兴趣或反应。
- 年初至今的回报率下降表明投资者在考虑未来投资时应分析内部公司因素和外部市场条件。
实施计算机视觉和OCR
面部检测是计算机视觉中的一个基本功能,采用了OpenCV中的Haar级联分类器这一经典技术。
下面的图片展示了经典Haar级联分类器的应用。

从图像中提取文本的过程称为光学字符识别(OCR),使用Tesseract可以无缝完成,然后通过GPT-4对文本进行结构化处理,提高可理解性。
在下面的视频中,可以看到Tesseract(OCR)如何从证书图像中提取文本。

代码解释器在视频、音频和图像处理方面表现出色。用户可以通过简单的命令实现详细的编辑,例如将GIF转换为具有特定增强功能的MP4。只需上传文件,输入所需的修改,就可以看到魔法发生。
在ChatGPT代码解释器中使用Python外部库
ChatGPT代码解释器是一个动态编程平台,配备了广泛的Python库。这些库涵盖了从使用Seaborn进行数据可视化到通过Torch进行高级机器学习的所有内容。但它不仅仅是一个静态工具包。
受到Korakot Chaovavanich的Chatgpt页面的启发。
从最新的nltk版本开始,我们上传了一个.whl文件到解释器中。然后,我们指示ChatGPT通过分析现有软件包的位置来找到合适的site-packages目录。下一步涉及将wheel文件解压缩到一个临时位置,并将文件移动到已确定的site-packages目录。然而,这遇到了一些问题。
寻找解决办法,我们提示:“请确保在Python环境中安装NLTK并在安装后可以访问。”
ChatGPT提供了解决方案作为回应。它建议将临时目录添加到sys.path中,使Python能够识别并从该位置的解压缩的nltk软件包中导入模块。这个策略取得了惊人的效果,成功安装了NLTK。
通过使用.whl文件,安装过程显示出创造力和适应性的结合。尽管最初存在一些挑战,但ChatGPT代码解释器展示了其多功能性和致力于满足编码者需求的承诺,为初学者和老手提供了精细的编码体验。

在解释器能力的一个引人注目的展示中,@DominikPeters最近的一条推文突出了一个独特的演示。Peters要求GPT-4生成一个关于巴黎区的测验,模型成功地生成了一个功能完善的网站。可以在dominik-peters.de/gpt-arrondissement-quiz/上体验这个可操作的测验。
让GPT-4给我编写一个巴黎区测验,它一次就成功了。
— Dominik Peters (@DominikPeters) April 30, 2023
总结
OpenAI的ChatGPT代码解释器的突破对于开发人员和非开发人员来说都具有革命性的意义。它在处理各种任务方面的多功能性——从帮助开发人员调试到轻松生成巴黎测验——证明了人工智能在增强我们的数字体验方面具有无限潜力。以下是我们深入探讨的精华:
了解你的工具:就像你与同事交朋友一样,要熟悉代码解释器。它是基于Codex设计的,Codex是从GPT-4进行了精调。它的熟练程度跨越多种编程语言,使其成为你所有编码冒险的理想伴侣。
拥抱人工智能革命:传统的编码实践即将发生巨大变革。借助像ChatGPT代码解释器这样的人工智能驱动工具,诸如错误识别、代码生成甚至代码审查等任务可以得以加速。
不仅限于代码:解释器的进军不仅限于文本或代码。它处理多种文件格式的能力,从简单的TXT文件到复杂的PY脚本,凸显了它在各个领域的实用性。
永不停止尝试:我们对NLTK库安装的探索反映了坚持和适应性的重要性,而这些价值观也体现在代码解释器中。如果遇到问题,通常总有一种解决方法。
加入人工智能对话:正如巴黎区测验所展示的真实世界应用所强调的那样,这个工具具有巨大的真实世界实用性。拥抱它,探索它,并让它放大你的项目。
上述视频是由Gen-2和Midjourney制作的。
总而言之,ChatGPT代码解释器不仅仅是一个工具;它正在改变我们与技术互动的方式。对于创新者和爱好者来说,它承诺着充满编码潜力的世界。