大模型构想:LLM's 生命游戏

发布时间:

信息

2024.06.13 更新:我发现了一家名为 PartyKit 的 AI 智能体部署平台, 而且就在前不久 加入了 Cloudflare, 他们力图重新定义有状态无服务计算的边界(可以参考创始人 Sunil Pai 的文章 《无服务器的下一个演变是有状态的》,很有启发性)。 显然 Sunil 的思想比我要高明许多,我们都想到了利用 Durable Objects 的特性: PartyKit 模型可以将状态保存在内存中,让 WebSocket(或 HTTP 请求)连接到 同一个进程 。 当客户端将更改 “发送” 到所述状态时,将这些更改广播到所有连接的客户端。这就是所谓的“有状态无服务”。 我还从 PartyKit AI 构建静态网页搜索引擎 的用例中得到了启发,为何不使用 Cloudflare Vectorize 来存储对象的 Embedding 表示? 这比我设想的通过人为规定 JSON 规格的 Toy Example 做法更加灵活,更加充满想象力,充满生命力。

再次印证了一个观点:你的想法并不重要,总有比你聪明的人能提前想到,关键是如何实现。

康威的生命游戏(Conway's Game of Life) 是由英国数学家约翰·康威(John Horton Conway)在 1970 年发明的一种零玩家游戏,它在计算机科学中有着广泛的应用。 基本原理很简单:一个二维的细胞世界,每个细胞有两种状态:存活或死亡。 每个细胞的状态由其周围八个细胞的状态决定,最经典的 B3/S23 规则如下:

  1. 如果一块空地领域内有 3 个细胞存活,那么新的细胞会在这块地方诞生(Birth);
  2. 如果一个细胞周围有 2~3 个细胞存活,那么它下一代也会存活(Survival);
  3. 其他情况下,细胞会死亡。

你如果尝试用英文 在 Google 搜索 这个词条, 你会发现 Google 的隐藏彩蛋之一:网页背景会变成一个生命游戏的模拟。 出于好奇,我在下面做了个很暴力的 CPU 模拟实现,更好的做法或许是用 WebGL 甚至 WebGPU. JavaScript 运行时不适合做 CPU 密集型的计算。

从现在的眼光来看,该游戏模型受限于当时的条件,设定存在着诸多限制:

  • 地球的环境并不是一个简单的二维平面,而是一个复杂的三维空间;
  • 生命游戏的细胞状态只有两种,而现实世界中的生物有着更多的状态;
  • 生命游戏的规则是固定的,而现实世界中的生物会随着环境的变化而变化。

但这个游戏模型的魅力在于它的简单性,已经被证明其是图灵完备的,可以发展出任何硅基生命的形式。 我的想法是利用大预言模型(LLM)来设计一个更加复杂的生命游戏模型,基础的设计或许可以复用主流的游戏引擎架构思路。 ECS(Entity-Component-System)可能是一个不错的参考,它可以很好地解耦游戏的逻辑和数据。 我们可以尝试让 LLM 来引入一些随机性和创新性,比如将一些游戏的数据作为输入, 由 LLM 来根据我们教给他的逻辑、以及原子规则来生成新的游戏数据(AIGC, Content)。 最明显的例子就是生成新的地图,或者生成新的游戏关卡。 想想你打开了 DNF, 在阿拉德大陆和赛丽亚打招呼, 她不再是每次都说“今天又是充满希望的一天”,而是根据你的行为来变化。 更进一步地,假定 LLM 以及学会掌握了编码,则帮我们为整个系统生成新的逻辑,或是改变旧的逻辑。 当你完成了看似某个微不足道的事件,但由于蝴蝶效应,最终可能让整个游戏的世界观发生翻天覆地的改变。

我更希望出现的是 AIGA, 其中 A 是代指公理(Axiom), 颇有形式化证明的味道。

这有些扯远了,我最开始想设计的 MVP(Minimum Viable Product,最小可行产品) 可能仅仅是用 JSON 文本来存放游戏的各类数据,设计一些必需的原子级别的规则, 喂给 LLM 一个初始世界观文本,然后随便它怎么折腾。 比如我把整个《三国志》和《三国演义》的文本喂给 LLM,让它生成一个新的三国世界观。 我则进行角色扮演(随机 me.json ?),让 LLM 根据我的输入来造成影响。 即使我不提供任何的输入,LLM 也应该定期从世界的实体中选出一些 JSON 文件, 根据已有的机制让它们发生交互和演变(游戏引擎经常干的事情)。 条件允许的话,所有的实体都应该演化,整个世界变成了一个状态机。

写到这里,我突然想到 Cloudflare 的愿景,他们的 Workers 服务可以让你在全球范围内部署代码, 最近还推出了 Workers AI, 结合 Durable Objects 的特征,完全可以让这样的 AI 生命体 “存活” 在互联网上。 它们之间可以随机地通信,按照自我所属世界的公理发展和演化,好像一个个小小的宇宙。 如果再把 WEB3 的噱头加进来,这个生命游戏就更加有趣了。

事物的发展是螺旋上升的,GPGPU 已经是一场革命,期待 AIGA 的到来。