论文地址:https://arxiv.org/pdf/2303.12712.pdf有趣的是,这篇火爆的论文还被人发现有大量删减,因此有人找出了未删节版论文。从未删减版本中,这个博主也扒出了大量隐藏的细节,如 GPT-4 的内部名称为 DV-3,实际上也是该论文的隐藏第三作者,后被删除;这些微软的研究人员对 GPT-4 的技术细节似乎了解也并不多。此外博主也透露这篇论文发布时删除了有关毒性内容的部分(防止给 OpenAI 造成负面?)。我们下面粘贴了该博主的 Twitter 线程,感兴趣的可以查看。
Twitter thread:https://twitter.com/DV2559106965076/status/1638769434763608064回到文章本身。根据文章所认定的 AGI,是具体的拥有推理、计划、解决问题、抽象思维、理解复杂思想、快速学习和从经验中学习的能力。从这些能力出发,论文进行了有趣的实验和评测。论文分为 10 个章节:第一章为总括部分;第二章介绍了多模态,主要和视觉生成内容相关;第三章代码,根据指令生成代码、理解现有代码;第四章数学能力;第五章与世界的交互;第六章与人类的交互;第七章判别力;第八章 GPT-4 局限性;第九章社会影响;第十章未来方向及结论。下面我们通过具体的示例,看看 GPT-4 是不是真的迈进了 AGI 时代。
下面为 GPT-4 代码实现过程:
进行视觉概念理解:在这个作图任务中, 输入提示让模型结合字母 Y、O、H 的形状来画一个人。其实在 GPT-4 的训练过程从没有关于字母形状的认识,只能从相关训练数据中、模糊地学习到字母与一些特定形状有关,结果显示 GPT-4 生成的结果还不错:
用于草图生成:GPT-4 还能与 Stable Diffusion 进行结合。下图为 3D 城市建模截图,输入提示有一条河流从左到右流淌、河的旁边建有金字塔的沙漠、屏幕底部有 4 个按钮,颜色分别为绿色、蓝色、棕色和红色。下面是生成结果:
你还能要求 GPT-4 用 ABC 记谱法生成和修改曲调:

然后,该研究让 GPT-4 将上表 2 中 LeetCode 上的准确率数据可视化为图表,结果如下图 3.2 所示。
前端 / 游戏开发如下图 3.3 所示,该研究让 GPT-4 用 JavaScript 在 HTML 中编写 3D 游戏,GPT-4 在零样本的情况下生成了一个满足所有要求的游戏。
深度学习编程为深度学习编写代码需要数学、统计学知识,并熟悉 PyTorch、TensorFlow、Keras 等框架和库。如下图 3.4 所示,研究者要求 GPT-4 和 ChatGPT 编写自定义优化器模块,该任务对于人类深度学习专家来说也是具有挑战性的。研究者为 GPT-4 和 ChatGPT 提供了自然语言描述,其中包括一系列重要的操作,例如应用 SVD 等等。
此外,该研究还测试了 GPT-4 把代码转换成 LaTex 公式的能力,结果如下图 3.5 所示。
在理解代码方面,该研究尝试让 GPT-4 和 ChatGPT「读懂」一段 C/C++ 程序,并预测程序的输出结果,二者的表现如下:
然后,该研究让 GPT-4 解释了一段 Python 代码:
还有解释一段伪代码:
在 AP 问题上,GPT-4 vs ChatGPT 对比结果。GPT-4 使用了正确的方法,不过由于计算错误导致最终答案错误,而 ChatGPT 产生了一个不连贯的论点。
此外,本文还测试了 GPT-4 使用数学思维和技术来解决现实问题的能力:下图展示了 GPT-4 如何成功地为一个需要广泛跨学科知识的复杂系统构建合理的数学模型,而 ChatGPT 未能取得有意义的进展。
由于论文内容长达 154 页,本文只对评测结果进行了大量展示,想要了解更多内容,读者可以参考原论文。最后附上论文目录:

在我的应用程序中我有classUserincludeUser::FooendUser::Foo定义在app/models/user/foo.rb现在我正在使用一个定义了自己的Foo类的库。我收到此错误:warning:toplevelconstantFooreferencedbyUser::FooUser仅引用具有完整路径的Foo,User::Foo,而Foo实际上从来没有指的是Foo。这是怎么回事?更新:才想起我之前遇到过同样的问题,在问题1中看到这里:HowdoIrefertoasubmodule's"fullpath"inruby? 最佳答案
三大公有云厂商,香港地区主机测评一、ping时延比对(厦门电信本地测试):Ping时延测试腾讯云阿里云华为云延迟率最低时延44ms,最高72ms,平均46ms47.242段:最低时延59ms,最高204ms,平均107ms最低时延45ms,最高93ms,平均47ms丢包率丢包率小有的ip段丢包率较大每个段都会有概率丢包阿里云:47.242段:最低时延59ms,最高204ms,平均107ms,有的ip段丢包率较大8.210段:最低时延64ms,最高232ms,平均119ms,丢包率较好腾讯云:最低时延44ms,最高72ms,平均46ms,丢包率小华为云:最低时延45ms,最高93ms,平均47m
如何生成指向javascript文件的绝对链接。我想应该有类似下面的东西(不幸的是它似乎不可用):javascript_url'main'#->'http://localhost:3000/javascripts/main.js'代替:javascript_path'main'#->'/javascripts/main.js'我需要绝对URL,因为该javascript文件将用于书签。另外我需要相同的css文件。谢谢,德米特里。 最佳答案 javascript和css文件的绝对URL现在在Rails4中可用ActionView::H
假设我在一个非常长的模块路径中有一个类:sux=Really::Long::Module::Path::Sucks.new我能否以某种方式“导入”这个模块,这样我就可以直接使用这个类,而不必担心每次使用它时都要写这个路径?编辑:我知道在同一个模块中会让事情变得更容易。但在这种情况下,我不能在同一个模块中。 最佳答案 模块是ruby中的对象,因此您可以只引用较短的模块。Sux=Really::Long::Module::Path::SucksSux.new 关于ruby-如何不在rub
给定以下内容,如何获取URL的完整路径uri=URI("http://foo.com/posts?id=30&limit=5#time=1305298413")我只想要posts?id=30&limit=5#time=1305298413我试过uri.path并返回/posts和ui.query返回'id=30&limit=5' 最佳答案 您要找的方法是request_uriuri.request_uri=>"/posts?id=30&limit=5"如果需要,您可以使用任何您想要删除前导/的方法。编辑:要获取#符号后的部分,请使用
一、什么是web项目ui自动化测试?通过测试工具模拟人为操控浏览器,使软件按照测试人员的预定计划自动执行测试的一种方式,可以完成许多手工测试无法完成或者不易实现的繁琐工作。正确使用自动化测试,可以更全面的对软件进行测试,从而提高软件质量进而缩短迭代周期。二、构建测试用例的“九部曲”(一)创建流程包划分功能模块日常测试活动中,都会根据功能模块进行拆分,所以在设计器中我们可以通过创建流程包的方式来拆分需要测试的功能模块,如下图中操作创建一个电脑流程包并且取名为对应的功能模块名称,如果有多个功能模块就创建多个对应的流程包,实在RPA设计器有易用的图形可视化界面,方便管理较多的功能模块。(二)在流程包
看了thisquestion已经,这或多或少反射(reflect)了我目前如何运行我的整个套件。此外,我还设置了以下rake任务:Rake::TestTask.newdo|t|t.name="spec:models"t.libs但我注意到当我使用timerakespec:models运行它时,它在大约2.36秒内完成。如果我使用ruby/path/to/spec.rb运行该目录中的所有单独测试(目前所有测试都与ActiveRecord隔离——还没有持久性,所以速度非常快),它们的累计总用户时间是2.36秒,但我也注意到虽然每个文件从开始到结束需要0.4用户秒来执行,但MiniTest报
我正在将Google登录功能集成到Rails驱动的站点。我正在按照https://developers.google.com/identity/sign-in/web/backend-auth上的指南进行操作,但我遇到了一些问题。主要挂断是验证IDtoken的完整性段落。它概述了验证JWT的几个步骤,然后指出:Ratherthanwritingyourowncodetoperformtheseverificationsteps,westronglyrecommendusingaGoogleAPIclientlibraryforyourplatform,orcallingourtoken
我想写一个脚本,打包成一个gem,它将修改它的参数,然后用修改后的参数exec一个新的ruby进程。换句话说,类似于修改其参数然后执行exec$SHELL$*的shell脚本。为此,我需要一种可靠的方法来发现正在执行当前脚本的ruby可执行文件的路径。我还需要获取传递给当前进程的完整参数——Ruby参数和脚本参数。 最佳答案 Rake源代码是这样的:RUBY=File.join(Config::CONFIG['bindir'],Config::CONFIG['ruby_install_name']).sub(/.*\s.*/m,
基本上,我有一个属于:companies的对象,并且具有:company_id属性。当我呈现json:@coupons时,JSON是否可能包含其所有者的属性而不是company_id? 最佳答案 你也许可以做一些类似render:json=>@coupons.to_json(:include=>:company)的事情,至少它似乎在我最初的rails2.3测试中有效.8.答案已编辑为使用:include=>:company而不是:include=>:companies 关于ruby-on