ChatGPT 可以联网后,OpenAI 还火速介绍了一款代码生成器,在这个插件的加持下,ChatGPT 甚至可以自己生成机器学习模型了。
上周五,OpenAI 刚刚宣布了惊爆的消息,ChatGPT 可以联网,接入第三方插件了!
而除了第三方插件,OpenAI 也介绍了一款自家的插件「代码解释器」,并给出了几个特别的用例:解决定量和定性的数学问题;进行数据分析和可视化;快速转换文件格式。
此外,Greg Brockman 演示了 ChatGPT 还可以对上传视频文件进行处理。
而一位叫 Andrew Mayne 的畅销作家、OpenAI 的创意应用程序和科学传播者,立马就试了一把 —— 把代码解释器(Code Interpreter)接入 ChatGPT。
感受就是,太丝滑了!
以前用 ChatGPT 写代码时,总是需要把代码拿出来,再放到另一个环境里去测试。
而现在,根本不需要离开当前的界面,直接就可以在 ChatGPT 中开发了。
只要我们把这个代码解释器添加到数据分析、绘图功能中,就诞生了一个强到发指的编码和研究工具。
目前,代码解释器只能在少量的库上运行 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 与一个功能强大的语言模型 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之家所有文章均包含本声明。