ChatGPT 可以联网后,OpenAI 还火速介绍了一款代码生成器,在这个插件的加持下,ChatGPT 甚至可以自己生成机器学习模型了。
上周五,OpenAI 刚刚宣布了惊爆的消息,ChatGPT 可以联网,接入第三方插件了!
而除了第三方插件,OpenAI 也介绍了一款自家的插件「代码解释器」,并给出了几个特别的用例:解决定量和定性的数学问题;进行数据分析和可视化;快速转换文件格式。
此外,Greg Brockman 演示了 ChatGPT 还可以对上传视频文件进行处理。
而一位叫 Andrew Mayne 的畅销作家、OpenAI 的创意应用程序和科学传播者,立马就试了一把 —— 把代码解释器(Code Interpreter)接入 ChatGPT。
感受就是,太丝滑了!
以前用 ChatGPT 写代码时,总是需要把代码拿出来,再放到另一个环境里去测试。
而现在,根本不需要离开当前的界面,直接就可以在 ChatGPT 中开发了。
只要我们把这个代码解释器添加到数据分析、绘图功能中,就诞生了一个强到发指的编码和研究工具。
OpenAI 全新插件系统:代码解释器
目前,代码解释器只能在少量的库上运行 Python,而即使用最基础的库,它能做的东西也非常多,非常有趣。
另外,除了生成代码,代码解释器 (CI) 还可以分析输出,并将其用于另一个函数。
因此,我们可以将不同的代码串在一起,获取其中一个的输出,再提供给另一个。
这个吃豆人 gif 就是这么生成的:CI 用算法生成迷宫,把迷宫变成方块,用算法找到出口,做成吃豆人的样子,然后生成 gif。
以下是 Mayne 使用 ChatGPT 的代码解释器插件,进行随机实验的一些示例。
创建机器学习模型 (某种程度上)
虽然目前 ChatGPT 无法将任何机器学习库加载到代码解释器中,但我们可以使用 n-gram 进行一些基本的统计文本生成。
如下例子中,通过给它提供一本书,要求它创建一个预测算法,然后预测文本序列中的下一个单词。
GPT 用 n-gram 模型生成了算法:
下一个单词预测是一项自然语言处理任务,可以使用语言模型来解决。建立语言模型的一种简单方法是使用 n-gram 模型。
n-gram 模型是一种基于统计的语言模型,它根据前 n-1 个单词来预测下一个单词。例如,如果我们选择 n=3(即三元模型),则模型将基于前两个单词来预测下一个单词。
以下是一些代码,可以帮助您从头开始构建三元模型。
声音
因为 ChatGPT 可以理解很多数学数据,并且 CI 能够生成可下载的文件,因此 Mayne 尝试了下用 ChatGPT 生成 Shepard 音调。这是一种独特的音调,能够个人造成一种音调在不断变高的错觉。
ChatGPT 不仅顺利地完成了任务,还直接用 CI 生成了一个 wav 文件。
打开听一下这个 Sheperd 音,感受就是,两个字 —— 完美!
既然 ChatGPT 生成的 Sheperd 音这么完美,Mayne 就更进一步,让 ChatGPT 来生成一个康威生命游戏的会话,然后转换为音乐。
(康威生命游戏是剑桥大学康威设计的计算机程序。这是一款图灵完备的零玩家游戏,意味着它的演化取决于它的初始状态,不需要进一步的输入。)
第一遍的时候,ChatGPT 生成的音乐有点太随意,Mayne 要求它生成更愉悦的音乐,于是 ChatGPT 应用了五声音阶,听起来果然不错。
ChatGPT 的表现太过优异,Mayne 大为兴奋,他已经开始设想一整张数学音乐专辑了,比如(斐波那契数列、Mandelbrot 集、元胞自动机)。
随后,他要求 ChatGPT 为《康威生命游戏》这首歌生成一个专辑封面。由于它没有连接到 DALL-E,Mayne 要求它从模拟帧生成图像。
专辑封面如下。
二维码
而看着这张专辑封面,Mayne 马上意识到或许可以用 ChatGPT 生成一个有效的二维码。
Mayne 让它为 OpenAI 的网站生成一个二维码,结果如下:
那么,ChatGPT 可以创建一个以二维码结尾的康威生命游戏吗?
是的,它可以。
图片
另外,Mayen 发现,使用 OpenCV 和一个简单的面部识别算法(Haar Cascade 分类器),CI 就能够创建一个函数,来进行人脸识别。
使用 OpenCV 进行人脸识别
现在,ChatGPT 可以自己打开和读取文件了,也就意味着理论上它可以使用这些数据生成新的东西。比如,把一张图转换为 ASCII 的形式。
上传图片:
转为 ASCII:
生成动画
通过代码解释器,可以生成数据,并将其输出包括 gif 在内的不同格式。
首先,让它做一个弹跳块:
然后是暴风雪:
接下来是「生命游戏」,正是这款游戏启发了二维码模拟实验。
试图让代码解释器使用矢量化的立方体来生成「旋转的立方体」。在尝试了其他方法之前,这是能够得到最接近的结果:
OCR
研究称,光学字符识别(OCR)是代码解释器中的一个库。通过用网站截图进行测试,果然可以识别。
将 OCR 与一个功能强大的语言模型 GPT-4 结合起来,可以为修复旧文档提供了一些有趣的可能性。
上图可以看出,OCR 能从整张图片中提取部分文本,但结果仍不完整,且带有噪声。
由此看来,在处理低质量或扭曲的图片时,OCR 可能会有限制。如果你需要从图片中获取具体信息,同时也需要手动转录部分内容。
日历邀请
尽管代码解释器没有访问 ics 库的权限,但它可以生成一个纯文本的日历邀请,然后让 ChatGPT 将其保存为.ics 文件。
画画
尽管已经有一些 GPT-4 生成可缩放矢量图像(SVG)的有趣例子。但我还是很好奇 ChatGPT 和代码解释器能对简单的图像块做些什么。
我让它画了一只猫,它创作了类似猫的东西。为了确保它不是凭记忆做出的,我要求它画一个蓝色的高顶帽和烟斗。虽然不完全是我想象中的高顶帽,但仍然是一个帽子,是蓝色的。
一只戴着帽子、抽着烟斗的猫:
一只戴着「帽子里的猫」式样帽子,还有抽着烟斗的猫:
模拟器
通过使用 Matplotlib 库,我成功地让 ChatGPT 生成了内部行星轨道的模拟,并将其保存为 gif。
我接着思考能否让 ChatGPT 模拟一局跳棋,并设法移动了棋子,但是出于礼貌没有拿走对手的棋子。
能否模拟一局象棋?首先我让 ChatGPT 创建自己的棋盘库(一个非常简单的棋盘库,有一些限制和不太合法的移动……),然后使用 Unicode 表示棋子,之后,它可以模拟一场游戏的开始,并将其保存为.gif 文件。
下面是我和 ChatGPT 进行象棋模拟时的对话。可以看到,我只是给了一些指示,ChatGPT 和代码解释器做了剩下的工作。
如上是 Andrew Mayne 对 ChatGPT 和代码解释器插件的一些探索。
网友看后点评,LLMs 越来越像一位真正的程序员,不仅可以建议代码片段,还可以编写整块代码、运行代码,并给你输出进一步的指导和反馈。
还有人表示,即使停下手下的事,也要看看这篇关于 GPT-4 代码解释器插件用例的文章。这完全是疯狂的,并将改变一切。
参考资料:
https://andrewmayneblog.wordpress.com/2023/03/23/chatgpt-code-interpreter-magic/
本文来自微信公众号:新智元 (ID:AI_era)
广告声明:文内含有的对外跳转链接(包括不限于超链接、二维码、口令等形式),用于传递更多信息,节省甄选时间,结果仅供参考,IT之家所有文章均包含本声明。