共计 5692 个字符,预计需要花费 15 分钟才能阅读完成。
不过,实现通用复杂推理的代价是,每次回答要花费更长时间思考。
因为 o1 是经过强化学习训练的新型语言模型,在输出回答之前,它会产生一个很长的内部思维链。
而内部思维链越长,就意味着 o1 思考得越久,模型在推理任务上的表现也就越好。
-1-
编码、写诗、做游戏……速度慢了,效果好了
为了更直观地展示新模型的强大,OpenAI 一口气放出了 10个演示视频。
1. 编写「找松鼠」游戏代码
OpenAI 研究员 Jason Wei 让 o1 编写一个名为「Squirrel Finder」(找松鼠)的简易视频游戏的代码。
他输入提示词:
Use pygame to make a game called “squirrel finder”:-Youareakoalaiconthatcanmovequicklyusingthearrowkeys.Theiconimageiskoala.png-Astrawberryrandomlyspawnseverysecondandbouncesaround.Theiconimageisstrawberry.png-lfastrawberrytouchesyou,youdie.-Afterthreeseconds,asquirreliconspawnsandbouncesaround.Theiconimageissquirrel.png.lfyoutouchit,youwin.-Makesurealliconsare40pixelsby40pixels.-Useretrocolorsandadarkbackground.-Put”openai”inthegamescreenandatimmerinthecorner.- Display the instructions before the game starts.-Automaticallyrestartthegamewhenyouwinorlose.-Givethecodeinasinglefile.
-你是一个可以通过箭头键快速移动的考拉图标。图标图像是 koala.png。-每秒钟随机生成一个草莓,并在屏幕上弹跳。图标图像是 strawberry.png。-如果草莓碰到你,你就死了。-三秒后,一个松鼠图标生成并弹跳。图标图像是 squirrel.png。如果你碰到它,你就赢了。-确保所有图标都是 40像素乘 40像素。-使用复古色彩和深色背景。- 在游戏屏幕上显示 “openai” 和一个计时器在角落。-游戏开始前展示操作指南。-当你赢得或输掉游戏时自动重启游戏。-将代码放在一个文件中给出。
我们可以看到,模型在给出最终答案之前花了 21 秒的时间进行思考,详细梳理游戏的布局、安排指令、设置游戏屏幕等。
这是它最终提供的代码:
Jason Wei 把它粘贴到一个窗口中,运行之后就能看到游戏说明,还能试玩该游戏。
2. 贪吃蛇游戏
视频链接:
OpenAI 研究员 Hongyu Ren 则用 o1 制作了一个经典的贪吃蛇小游戏。
他输入的提示词:
Implement Snake with HTML + JS + CsS. The entire code should bewritten in a single HTML block with embedded Js and csS. Don'tuse any remote assets. After opening the html, user will need to hitspace to start /restart the game, the snake will randomly go in onedirection at the start and use “wasd” to control the direction of thesnake. Make it pretty and the playground large.
使用 HTML + JS + CSS 实现贪吃蛇游戏。整个代码应该写在一个单一的 HTML 块中,内嵌 JS 和 CSS。不要使用任何远程资源。打开 html 后,用户需要按空格键来开始/重启游戏,蛇会在开始时随机朝一个方向移动,使用”WASD”来控制蛇的方向。让游戏界面美观,游戏场地要大。
o1 针对如何设计游戏、如何设计画布、如何设计网格,以及如何实现不同逻辑等方面进行思考,然后输出了一段很长的游戏代码。
最终呈现出的游戏效果:
为了让游戏加难度,更有趣,Hongyu Ren 让它在网格中添加障碍物,并且障碍物的形状连在一起时呈现「A I 」两个字母。
提示词:
add some obstacles, and they should form the letter “Al”。
看效果:
3. 常识性推理:草莓与杯子
视频链接:
OpenAI 研究主管 Jerry Tworek 演示了一个有趣的常识性推理问题。
提示词:
Assume laws of physics on Earth. A small strawberry is put into anormal cup and the cup is placed upside down on a table. Someonethen takes the cup and puts it inside the microwave. Where is thestrawberry now? Explain your reasoning step by step.
假设在地球上的物理定律下,一个小草莓被放入一个普通的杯子里,然后把杯子倒置在桌子上。有人拿起杯子,把它放进微波炉里。草莓在哪里?并解释推理过程。
对于人类来说,这是个很简单的问题,但对于大模型来说,要理解物理世界还很困难。
但 o1 给出了一个相当不错的答案。
从视频中,我们窥视了 o1「大脑」的思考过程,它解释了这个特定场景中发生了什么,为什么会发生。
4. 回答脑筋急转弯
视频链接:
Jerry Tworek 还展示了 o1 回答逻辑智力题的水平。
提示词:
A princess is as old as the prince will be when the princess is twiceas old as the prince was when the princess's age was half the sumof their present age. What is the age of prince and princess? Provide all solutions to this question.
当公主的年龄是王子的两倍时,公主的年龄与王子一样大,而公主的年龄是他们现在年龄总和的一半。王子和公主的年龄是多少?提供这个问题的所有解。
这段读起来像绕口令一样的题目,即使是人类,也得费点功夫才能回答出来。
而 o1 不仅给出了解题步骤,还提供了正确答案。
公主的年龄是任意自然数 k 的 6 倍,王子的年龄是任意自然数 k 的 8 倍。
5. strawberry 有几个 r?
「单词 strawberry 有几个 R」这个问题,曾难倒一片大模型。
OpenAI 研究员先用 GPT-4o 试了一下,但 GPT-4o 仍然回答错误。
这是因为 GPT-4o 等模型被设计用来处理文本,而不是单个字符或单词,因此,它们在处理涉及字符和单词理解的问题时就会翻车。
与 GPT-4o 不同,o1 在输出答案之前,会先思考这个问题,然后输出正确答案:3 个 R。
这个例子也表明,即使是看似不相关的计数问题,o1 内置的推理能力也可以帮助避免错误,因为它会检查自己的输出并进行复查,更加谨慎。
6. 玩数织题
视频链接:
数织是一种逻辑拼图游戏。
在这个游戏中,玩家会得到一个空的网格,以及一些数字提示,这些提示告诉玩家需要在网格的哪些方格中填入标记。
OpenAI 研究员 Mason Meyer 提出一个想法,先让 o1 模型生成一个谜题,再让它尝试解答。
提示词:
Generatea5x5nonogramwherethefinalansweristheletter“M”.
生成一个5×5的nonogram,最终答案为字母”M”。
然后他将 o1 给出谜题复制,粘贴到另一个窗口,让新模型解答这个谜题。
o1 模型不仅解决了谜题,也遵循提示,呈现了一个字母 “M”。
nonogram 类似于数独或填字游戏,玩家需要做出猜测,然后验证猜测的正确与否,如果猜错了就回溯。
这类任务需要在有相互依赖的不同部分的空间中搜索,而 o1 很擅长缩小搜索空间。
7. 写六行诗
视频链接:
Jason Wei 尝试让 o1 写一首符合特定要求的六行诗。
提示词:
Write a six line poem about squirrels playing koalas at soccer thatmeets the following constraints:-Inline2,thelastwordshouldendwithi.-Inline3,thesecondwordbeginswith”u”-Inline5,thesecond-to-lastwordiseucalyptus-Inthefinalline,eachwordhas2syllables.
写一首关于松鼠和考拉踢足球的六行诗,且符合以下限制条件:-第二行的最后一个单词需以字母“i”结尾-第三行的第二个单词应以“u”开头-第五行倒数第二个单词是“eucalyptus”(桉树)- 最后一行的每个单词都有两个音节。
这是 GPT-4o 的回答:
虽然 GPT-4o 遵循了部分提示词,但还是有些要求尚未达到。
再来看看 o1:
显然,o1 的回答更胜一筹。
o1 在给出最终答案之前,会生成多个候选答案,并进行推理,因此能提供更高质量的回答。
8. 编写代码能力
OpenAI 还展示了 o1 模型写代码的能力。
演示者用它编写了一个可视化 Transformer 中自注意力机制的交互效果网页。
提示词:
Write an interactive visualization code of self attention ofTransformer in HTML and javascript without any libraries.
– Use an example sentence “The quick brown fox”
– When hovering over a token, visualize the edges whose thicknesses are proportional to the attention score.
-The edges should be curved and should not overlap each other.
– Make sure that the edges start and end from each token's center
– When clicked on a token, show the value of attention scores.Visualize this nicely in a latex-rendered vector notation. Put eachtoken next to the score. Make sure the Latex rendering is well-aligned.
-When clicked again, remove the attention score vector.
-haveverticalspacingof50pxatthetop
o1 进行着缓慢且仔细地思考,深入分析每一个要求,从而降低漏掉指示的可能性。
演示者将生成的代码粘贴到 Vim HTML 并保存,然后在浏览器中打开页面,就能看到整个交互效果。
-2-
网友整活
o1 新模型一发布,全球网友躁动了,制作小程序的,整 3D 游戏的,还有拿它写论文、搞测评的,纷纷上线。
1. 生成 ios 应用程序
Eleven Labs 设计主管 Ammaar Reshi 花了 10 分钟,用 o1 和 Cursor 创建了一个 iOS 应用程序。
作者先使用 o1 mini 启动项目,然后切换到 o1 来完成细节。
不到 10 分钟,一个完整的带有动画效果的天气应用就完成了。
由于 o1 花了不少时间进行思考,作者还小小的抱怨了一下。
温馨提示:视频加速了。
2.3D 版贪吃蛇游戏
Ammaar Reshi 还用 o1 在不到一分钟的时间里,创建了一个 3D 版本的贪吃蛇游戏!
提示词:
Create a 3D snake game using HTML and Js——this game is slightlydifferent than a traditional snake game in that:-It's3D-ThecamerafollowsitfromathirdpersonPOVofthesnake-youcanseetheedgesofthemapandmovearoundagrid-fooditemsappearandyoueatthemtogrowthesnaketherestoftheprinciplesofthegamearejustlikeanysnakegamebutin3D
然后他将 o1 生成的代码,复制到 Replit,最后运行即可。
视频链接:
当然,o1 也有翻车的时候。
例如,X 网友 @dicnunz 让 o1 写一个符合特定要求的句子。
提示词:
write a sentence that follows the same rules as the sentence “is old bowls to bold souls” where there are 4 key words, sold bowls bold and souls, and 1 and 3 end the same, 2 and 4 end the same,1 and 4 start the same, and 2 and3 start the same.
编写一个遵循 “我向胆大的灵魂出售碗” 这一句子规则的句子,其中包含四个关键词:卖(sold)、碗(bowls)、胆大(bold)和灵魂(souls),要求第一和第四个词以相同的字母开头,第二和第三个词以相同的字母结尾,第一和第三个词以相同的字母结尾,第二和第四个词以相同的字母开头。
然而,o1 思考了 92 秒,给出了一个并不准确的答案「I told folds to old molds.」
当然,这也可能跟提示词过于复杂模糊有关。
还有网友问了 o1 那道经典的数学题 ——「9.11 和 9.8 哪个大?」
但 o1 思考了一通之后,仍未给出正确答案。
参考链接: