两天前,OpenAI 宣布要在一周之内将官方插件 Code Interpreter 通过设置中的 Beta 面板向所有 ChatGPT Plus 用户提供。
这个消息让很多人激动了起来,毕竟此前 Code Interpreter 一直处于封闭测试阶段,只有一小部分用户真正使用过。这些内测用户用它来数据分析、创建图表、编辑文件、执行数学运算等,反响普遍不错。
大家没有等太久,今天,Code Interpreter 已经正式开放。
不过对于很多用户来说,如何让 Code Interpreter 物尽其用,还得好好研究一番。
以下是一些内测用户晒出的示例,为大家提供一些参考。
「博士期间几周才学会的东西,AI 几秒就完成了」
宾夕法尼亚大学沃顿商学院的教授 Ethan Mollick,是一位拥有数月 Code Interpreter Alpha 版本试用经验的 ChatGPT Plus 用户。他对 Code Interpreter 的评价还是比较高的,称之为「用过的最有用、最有趣的 AI 模式」。
Ethan Mollick 明确表达了两点感想:1)Code Interpreter 工作得非常好,不像插件那样完全是偶然的;2) 提示制作通常是没有必要的,用户只需与 AI 讨论代码或数据以及想要什么就可以了。
「Code Interpreter 延续了 OpenAI 长期以来给东西起可怕名字的传统,因为这对那些根本不懂编程的人来说可能最有用。它允许现有的最先进的 AI GPT-4 上传和下载信息,并在一个连续的工作空间为你编写和执行程序。这使得 AI 可以做各种以前不能做的事情,并在曾经 ChatGPT 不可能做到的方方面面发挥作用。」
为了帮助大家快速上手,Ethan Mollick 教授撰写了一篇指南,传授了自己使用 Code Interpreter 的经验与心得。
我在读博士时花了几周时间才掌握的东西,AI 在几秒钟内就完成了,而且通常比我预期的人类分析员的错误要少。但对我来说,同样清楚的是,人类不会被 Code Interpreter 所取代。相反,AI 做的是我们一直希望自动化能做的事情 —— 把我们从工作中最恼人、重复的部分中解放出来,这样我们就可以专注于关键的事情。通过简化分析过程,我可以做更多、更深入、更满意的工作。我的时间变得更有价值,而不是更少,因为我可以专注于重要的事情,而不是死记硬背。
Code Interpreter 补上了 ChatGPT 哪些短板?
具体来说,Code Interpreter 为 AI 提供了一个解决问题的通用工具箱(通过用 Python 写代码),一个可以使用的大内存(能够上传高达 100MB 的文件,而且这些文件可以是压缩形式),并以发挥大型语言模型优势的方式将该工具箱整合到人工智能中。
这解决了以前版本的 ChatGPT 存在的一些问题:
1、Code Interpreter 允许 AI 做数学题(非常复杂的数学题)和做更精确的文字工作(比如实际计算段落中的字数),因为它可以编写 Python 代码来解决大语言模型在数学和语言方面的固有弱点。而且它真的很善于使用这个工具,如下所示:
同样的 prompt,Code Interpreter 的字数统计结果是 104 个词。
2、 Code Interpreter 降低了幻觉和迷惑的概率。当 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 提供了相当多「很奇怪」的时刻。
比如 Ethan Mollick 曾要求 AI「用代码调用各种情绪状态」或者「给我看一些不可能用代码做的事情,并演示一下」。这里可以看到「使用你可用的绘画工具,通过创建一个图像,创造一个全新的备忘录。让它与你作为 AI 与人类合作的经验相关」的结果:
如何使用 Code Interpreter 处理数据
Code Interpreter 是一个令人印象深刻的「数据科学家」,能够将定量分析的许多复杂事物自动化,并且能够对数据采用非常复杂的方法。为了说明这一点,Ethan Mollick 从一个有趣的数据集「Super Heroes」开始。
上传数据很容易,即使是像 ZIP 文件这样的压缩数据,只要点击加号按钮就可以了:
你应该在数据中加入一个初始提示,但它可以是相当少的,Ethan Mollick 用的 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 的另一个妙用方法。
20个奇妙用例
在数据分析之外,Code Interpreter 还有很多妙用。在推特上,一位名叫「Chase Lean」的网友收集了 20 个用例,让我们也来学习一下有什么新玩法:
1、从图像生成视频
首先,上传想要制作动画的图像:
然后要求 AI 从左到右为这张食物图像制作动画。通过修改提示,可以创建自己的动画。点击回车,30 秒即可获得视频:
,时长00:21
想让图像变小,就告诉 GPT 将其大小调整为 50%;想让视频从下往上平移,将提示改为「 Start: Bottom → Center → Top: End」;想让视频的速度提高 2 倍,将帧的步长从 8 像素改为 16 像素。
2、从图像摘取文字