7月9日消息,OpenAI的语言模型ChatGPT推出了新功能:代码解释器(CodeInterpreter)。这个新功能已经对所有Plus订阅用户开放,代码解释器扩展了ChatGPT的功能,为用户带来了更好的交互式编程体验和强大的数据可视化功能。有了它之后,即使不是程序员,只需要用自然语言向ChatGPT下达指令,也可以完成需要复杂编程技术的任务。(文章最后会给大家发个福利Firefly-master大模型源代码和安装教程的获取方式)
代码解释器对于经常使用代码和数据的专业人士和爱好者都非常有用,这是一个多功能的工具,可以用于分析数据、创建图表、编辑文件、执行数学运算等等。
官方插件CodeInterpreter通过设置中的Beta面板向所有ChatGPTPlus用户提供。
不过对于很多用户来说,如何让Code Interpreter物尽其用,还得好好研究一番。
接下来是20个奇妙用例,之后会讲解Code Interpreter补上了ChatGPT哪些短板,如果只想看用法和福利获取,只需看完20个用例后跳到视频最后看获取方式就行:
从图像生成视频
首先,上传想要制作动画的图像:
然后要求 AI 从左到右为这张食物图像制作动画。通过修改提示,可以创建自己的动画。点击回车,30秒即可获得视频:
想让图像变小,就告诉 GPT 将其大小调整为50%;想让视频从下往上平移,将提示改为「 Start: Bottom → Center → Top: End」;想让视频的速度提高2倍,将帧的步长从8像素改为16像素。
2、从图像摘取文字
3、智能地理解、分析和解释数据
4、用现实物理模拟硬科幻
初始 prompt:「我们将扮演一个科幻场景。我将成为队长。问题是:你必须使场景中的每个挑战都包含你将用代码模拟的真实物理效果。」
5、从图像中提取调色板
Code Interpreter 能从图像中提取颜色以创建调色板.png,并在内存耗尽时自动压缩大型图像:
6、生成二维码
7、将动图转为视频
使用 Code Interpreter,可以在 ChatGPT 中将上传的 GIF 转换成更长的 MP4视频并慢速缩放。
8、分析期权数据以确定最佳合约
用 CodeInterpreter 来分析7月21日到期的 AAPL 的期权:
首先,在设置中启用 Code Interpreter;然后,上传数据文件。在这个例子中,数据是一个 CSV 文件:
9、分析音乐偏好
使用 Code Interpreter 分析300小时的 Spotify 收藏夹播放列表,从 Spotify API 中导出,并运行多维 PCA 和 t-SNE 分析,总结音乐品味。
10、对房地产数据进行数据分析
11、生成并绘制随机数据
12、生成矩阵雨的 GIF 动画
13、清理数据、数据分析和可视化
使用 Code Interpreter,你只需要上传数据,提供简单的英文指示,就可以完成清理数据、在 autopilot 上生成可视化图表的所有工作。
14、创建灯塔位置图
上传美国每个灯塔位置的 CSV 文件之后,Code Interpreter 可以创建这些灯塔位置的 GIF 地图,虽然地图非常暗,但每个灯塔都在闪烁。
15、将数据转换为网页
提供一个未经加工的 UFO 目击事件的数据集,Code Interpreter 就能生成了一个功能齐全的 HTML 热图。下面是一个静态版本(它还可以很容易地创建任意多的版本):
16、使用 Python 复制 STATA 代码
Code Interpreter 能够利用旧的 STATA 文件和代码,用 Python 复制它们:「这里有一个 stata do 文件和一个 dta 文件。复制分析。」、「现在用 CSV 文件给我。
17、下载并分析比特币数据集
Prompt:「Seasonally decompose the price since2011」
18、犯罪数据趋势可视化
19、生成基因共表达的热图
20、分析泰坦尼克号数据集
上传泰坦尼克号数据集,要求 Code Interpreter 进行一个完整的数据探索性分析。输出结果包括:
1、数据的简要概述;
2、乘客类别的分布图;
3、各组的存活率图;
4、相关矩阵图;
5、数据洞察。
Code Interpreter补上了ChatGPT哪些短板?
具体来说,Code Interpreter为AI提供了一个解决问题的通用工具箱(通过用Python写代码),一个可以使用的大内存(能够上传高达100MB的文件,而且这些文件可以是压缩形式),并以发挥大型语言模型优势的方式将该工具箱整合到人工智能中。
这解决了以前版本的ChatGPT存在的一些问题:
1、Code Interpreter允许AI做数学题(非常复杂的数学题)和做更精确的文字工作(比如实际计算段落中的字数),因为它可以编写Python代码来解决大语言模型在数学和语言方面的固有弱点。而且它真的很善于使用这个工具,如下所示:
同样的prompt,CodeInterpreter的字数统计结果是104个词。
2、CodeInterpreter降低了幻觉和迷惑的概率。当AI直接与Python代码一起工作时,代码有助于让AI保持「诚实」,因为如果代码不正确,Python会产生错误;而且由于代码操作的是数据,不是LLM本身,所以没有错误被AI插入到数据中。当然这也不完美,AI仍然会产生幻觉(它似乎经常认为自己能看到它能生成的图形,而这种模式的ChatGPT不会),但这些错误不太常见,而且不太可能影响代码或数据本身。
3、Code Interpreter让人工智能的用途更加广泛。很多问题都可以用代码来解决,GPT-4非常善于找出何时以新颖有趣的方式使用Code Interpreter。例如,用户要求它用代码向一个怀疑者证明地球是圆的,Code Interpreter会提供多个论据,将文本与代码、图像结合起来。
4、用户不必编程,因为Code Interpreter可以代替做所有的工作。之前的很多LLM都能写代码,但你必须自己运行和调试。对于以前从未真正使用过Python的人来说,这很难,而且要和AI来回纠正错误。现在,AI会纠正它自己的错误并给到你输出。
5、它给了你更多的AI Moment。任何使用过GPT-4的人都可能遇到过至少几个时刻,感觉就像机器里确实有一个幽灵。实际上大家也知道这是一种幻觉,而且LLM根本就没有知觉或思维,但这些时刻是对更智能的AI的未来的一瞥,有时令人激动,有时令人不安。Code Interpreter提供了相当多「很奇怪」的时刻。
比如EthanMollick曾要求AI「用代码调用各种情绪状态」或者「给我看一些不可能用代码做的事情,并演示一下」。这里可以看到「使用你可用的绘画工具,通过创建一个图像,创造一个全新的备忘录。让它与你作为AI与人类合作的经验相关」的结果:
如何使用Code Interpreter处理数据
Code Interpreter是一个令人印象深刻的「数据科学家」,能够将定量分析的许多复杂事物自动化,并且能够对数据采用非常复杂的方法。为了说明这一点,EthanMollick从一个有趣的数据集「SuperHeroes」开始。
上传数据很容易,即使是像ZIP文件这样的压缩数据,只要点击加号按钮就可以了:
你应该在数据中加入一个初始提示,但它可以是相当少的,EthanMollick用的prompt是这里有一些关于超级英雄力量的数据,翻看一下,告诉我你发现了什么」,然后得到了不错的结果。如果你有一个数据字典,也可以直接粘贴进去。AI很善于仅从上下文中找出数据的含义和结构。
可以注意到,Code Interpreter与其说是提示制作,不如说是与AI进行对话,把它当作一个分析师和它交谈。
事实上,也有两个例外情况,其中提示的制作似乎很重要:首先,AI有时会忘记它能做的事情(如制作GIF或3D图),你可能需要鼓励它(「你能制作GIF,请试试」);其次,你会希望AI在自己的工作上有所改进。只要求它对这个结果做进一步的测试」或「使这个图更漂亮」,一般来说这样就可以了。
目前,数据已经加载完毕了,可以让GPT做数据分析工作中最糟糕的部分了:数据合并和清理。
Code Interpreter将以一种「相当复杂」的方式自动处理这一切,但直接询问通常会有帮助,就好像你在指导一个人类数据分析师一样。你还会注意到,该系统的工作方式是无情的,在发现错误时就会纠正自己的错误。例如,它注意到列的名称有误,并修正了这个问题。
不过这也说明,建议用户仔细检查结果和过程,而不是盲目地相信AI。
接下来开始进行分析,AI似乎对分析方法很了解。提示是「我对做一些预测性建模感兴趣,比如根据其他因素预测一个英雄可能拥有的力量。我们应该如何处理这个问题?」
然后Code Interpreter构建了一个随机森林!不过也可以看到为什么有专家的人为监督是很重要的,因为作者不同意它通过使用数值化数据的平均值来计算缺失数据的决定。如果是作者自己,会放弃这些数据,但好在可以要求AI改变其方法,或讨论其他的选择。
AI能够进行许多其他分析(毕竟它只是在写Python代码),但它选择有意义的分析方法的能力常常给人留下深刻印象。例如,这里有一个关于超能力的网络分析,提示是「你能不能进行另一个真正复杂和有趣的分析」:
但Code Interpreter最令人印象深刻的一点是,它以非常人性化的方式对数据进行「推理」。当被问及网络分析的结果时,得出了有趣的结论:英雄通常拥有的一组能力本质上是视觉的(因为它们来自漫画书),适合某些原型,并且最适合构建持续的冒险。
这种互动性能力在可视化阶段仍然有效,你可以与AI来回沟通,要求改进和改变。例如,提示「创建一个互动的仪表板,至少有6个有洞察力的图表,包括一个3D的图表。让仪表板变得漂亮。」
Code Interpreter先是产生了一个仪表盘,但不太符合作者想要的,所以他直接说「让这个更好,包括更多的名字」等等。然后Code Interpreter给出了一个可下载的交互式仪表盘文件,只要把它放在网络浏览器中就可以了——可下载的输出也是Code Interpreter的另一个妙用方法。
评论区提供Firefly-master大模型源代码和安装教程。