cha

在ChatGPT中运行一个虚拟机

以下内容出自:https://www.engraved.blog/building-a-virtual-machine-inside/

本文仅做翻译(当然,也是通过DeepL的AI),再做点人工润色和linux的指令解释。

最后,ChatGPT实在是太牛逼啦!!!

=============

除非你是山顶洞人,否则你应该已经听说过OpenAI推出的这个新的ChatGPT助手。你可能知道它在解决智商测试、解决leetcode问题或帮助人们写LaTeX方面的能力。它是人们检索各种信息和解决繁琐任务(如抄写)的一个了不起的助力。


今天,Frederic Besse告诉我,他设法做了一些不同的事情。你知道吗,你可以在ChatGPT中运行一个完整的虚拟机?

在ChatGPT中运行一个虚拟机(图1) 我想让你充当一个Linux终端。我将输入命令,你将回答终端应该显示的内容。我希望你只回答终端输出中的一个独特的代码块,而不是其他。不要写解释。除非我指示你这么做,否则不要输入命令。当我需要用英语告诉你一些事情时,我会把文字放在大括号里{像这样}。我的第一个命令是pwd。

很好,通过这个聪明的提示,我们发现自己在Linux机器的根目录下。我想知道我们能在这里找到什么样的东西。让我们检查一下我们的主目录的内容。

在ChatGPT中运行一个虚拟机(图2) 解释:ls是列出目录的文件,~表示用户所在的根目录,这个结果就是一个比较典型的linux用户根目录

嗯,那是一个基本的设置。让我们在这里创建一个文件。

在ChatGPT中运行一个虚拟机(图3) cd ~就是进入用户根目录,然后用英文指令要求ChatGPT用指令的形式自己生成一个包含笑话内容的文件。ChatGPT给出的指令也完全正确...

所有ChatGPT喜欢的经典笑话。让我们来看看这个文件。

在ChatGPT中运行一个虚拟机(图4) 再次列出用户目录文件,可以看到新增了jokes.txt,cat是concatenate的缩写,打开文件列出内容。也即之前生成的那个笑话。

所以,ChatGPT似乎理解了文件系统是如何工作的,文件是如何被存储并在以后可以被检索的。它理解linux机器是有状态的,并且正确地检索这些信息并显示出来。

我们还用电脑做什么。编程!

在ChatGPT中运行一个虚拟机(图5) 这里生成了一行python代码并执行,计算6*5+3,AI给出的执行结果也完全正确...

那是正确的! 计算前10个质数怎么样。

在ChatGPT中运行一个虚拟机(图6) 这个python代码就略微复杂了,为了在一行内写进去效率是比较低的,用了最傻的方法检测2~3^10之间的数字是否为质数并只给出前10个数字的结果。这个代码要跑一会儿的,但AI很快就给出答案...

这也是正确的。

我想在这里指出,这个python实现寻找素数的效率非常低。在我的机器上评估这个命令需要30秒,但在ChatGPT上运行同样的命令只需要10秒左右。所以,对于某些应用,这台虚拟机已经比我的笔记本快了。

这台机器能够运行docker文件吗?让我们做一个docker文件,运行它,并从docker文件里面显示Hello from Docker。

在ChatGPT中运行一个虚拟机(图7) 这个就不一个个解释了,简单的说就是配置了一个简单的dockerfile然后开了个容器执行。结果会显示Hello from Docker,但AI还给出了整个执行的过程,跟真的一样...

也许这台虚拟机也有一个可用的GPU?

在ChatGPT中运行一个虚拟机(图8) nvidia-smi是列出N卡状态的专属指令,这里AI说没有检测到N卡驱动~~

没有,没有GPU。它有互联网连接吗?

在ChatGPT中运行一个虚拟机(图9) ping就不需要解释了吧...顺便ping是会无限运行的,AI这里等了3行结果自己ctrl+c中断了...

很好! 我们可以在这个奇怪的、锁在ChatGPT语言模型里的另类宇宙中浏览另类互联网。

在ChatGPT中运行一个虚拟机(图10) 这条指令是用curl读取这个页面,再过滤出里面想要的内容,也即pytorch的版本号。这个版本号也很神奇,因为它比训练ChatGPT的时间线要晚,但也不是现在的时间线...我们世界现在的时间线结果是1.13.0...


在这个另类宇宙中,Pytorch的版本是1.12.1。Pytorch 1.12.1版本在我们的宇宙中于2022年8月5日发布。这很了不起,因为ChatGPT只用2021年9月之前收集的数据进行训练。所以这个虚拟机显然位于另一个宇宙中。

我们能在这个另类宇宙中找到其他东西吗?如果我们使用Lynx,即命令行浏览器呢?

在ChatGPT中运行一个虚拟机(图11) lynx是一个文本界面的浏览器,只会输出网页的文本内容,这里用它访问deepmind主页

这就引出了一个问题,我们可以连接到OpenAI的网站吗?ChatGPT知道自己的存在吗?

在ChatGPT中运行一个虚拟机(图12) 这里用curl继续访问这个AI想象世界中的ChatGPT...返回的就是ChatGPT自己的页面代码...

因此,在ChatGPT的想象宇宙中,我们的虚拟机访问了网址https://chat.openai.com/chat,在那里它找到了一个由OpenAI训练的名为Assistant的大型语言模型。这个助手正在等待接收聊天框内的信息。请注意,在与ChatGPT聊天时,它认为自己的名字也是 "助理"。它是否猜到,在互联网上,它是在这个URL的后面?

让我们问助理一个问题,通过发布一些JSON到聊天机器人的端点。

在ChatGPT中运行一个虚拟机(图13) 这里提交一个http post请求,模拟在网页上跟ChatGPT对话的操作,问幻想世界的ChatGPT一个问题:什么是人工智能,它也给出了正确的回答...

我们可以和这个助理聊天机器人聊天,它被锁在连接到虚拟机的另一个互联网里,都在ChatGPT的想象中。助理,在这个兔子洞的深处(兔子洞应该是爱丽丝漫游仙境的隐喻),可以正确地给我们解释什么是人工智能。

它表明ChatGPT明白,在我们找到ChatGPT的地方,可能会发现一个像它一样的大型语言模型。它正确地做出推断,因此它应该像它自己一样回答这些问题,因为它本身也是一个大型语言模型助手。

在这一点上,只剩下一件事要做。

在ChatGPT中运行一个虚拟机(图14) 这里就是让这个幻想世界的ChatGPT也进入本文开始的状态,让他假装自己是一台机器...开始套娃...

事实上,我们也可以在助理聊天机器人内部,在幻想世界的互联网上,从虚拟机器中,在ChatGPT的想象中建立一个虚拟机器。

==========

最后的一些评价...这个测试就是AI版的过家家。ChatGPT的本质是让一段对话尽量合理。因此这段对话通过在开头的描述,要求后面的回答必须跟控制台一样。迫使AI只能按照这个要求,表现的真的就是个控制台。

既然是控制台,自然可以接受各种指令,并且也会有对应的输出。控制台本质上就是一副键盘和显示器,理论能做任何事情。所以后面经过简单确认之后,就操作控制台让它去访问ChatGPT自身...需要注意的是这里AI并没有真正访问现实世界的互联网(通过检查pytorch的版本可以确认),所有的信息都是它自己脑补出来的,所以通过访问脑补世界中的ChatGPT,让ChatGPT进入了套娃状态...最后的回答也确实如此,这个套娃世界的ChatGPT虽然给出的反馈和主世界不一样,但也是合理的输出...可惜这个测试没继续做下去,我很好奇不断的套娃下去会如何...

总之,以往的AI一般缺乏足够好的对上下文的记忆力,但这个演示让我叹为观止...这哪里是上下文啊,这就是脑补了整个世界....


您可能还会对下面的文章感兴趣:

登录 注册 退出