技术深度解析
在Claude.ai中运行《毁灭战士》并非简单的模拟技巧。它利用了大型语言模型上下文窗口的基本结构——模型处理输入和生成输出的有限内存空间。在这个实验中,开发者将整个游戏状态编码为上下文窗口中的一系列token。每一帧《毁灭战士》被表示为像素值的网格,序列化为文本。当模型接收到当前状态和用户操作(例如“向前移动”、“射击”)时,它会生成下一帧作为新的像素token块。这是一种“上下文内执行”的形式,模型同时充当游戏引擎和渲染器。
关键技术组件:
- 状态编码:游戏世界——玩家位置、敌人位置、生命值、弹药、地图几何——被扁平化为结构化的文本表示。例如,一个320x200像素、256色的帧大约需要64,000个token(假设每个像素值对应一个token)。Claude的200K token上下文窗口限制了最大分辨率和复杂度。
- 推理循环:用户发送命令,模型从上下文中读取当前状态,计算下一状态,并输出新的像素网格。这不是预训练的游戏引擎;模型必须仅从上下文中推断《毁灭战士》的规则,利用其通用推理能力。
- 延迟限制:每帧生成在Claude后端需要几秒钟,导致可玩但缓慢的体验(大约0.2–0.5帧每秒,而原版《毁灭战士》为35 FPS)。这是当前transformer架构的基本限制,它们针对文本生成而非实时像素处理进行了优化。
对于对底层机制感兴趣的读者,开源仓库'llm-doom'(目前在GitHub上获得1200+星)提供了一个参考实现。它使用轻量级Python脚本与Claude的API交互,管理token预算和状态序列化。该仓库的README指出,同样的方法理论上可以适用于任何支持足够大上下文窗口和强大指令遵循能力的LLM。
数据表:上下文内《毁灭战士》与原版《毁灭战士》的性能指标
| 指标 | 原版《毁灭战士》(1993) | 上下文内《毁灭战士》(Claude.ai) |
|---|---|---|
| 帧率 | 35 FPS | 0.2–0.5 FPS |
| 上下文窗口使用 | 不适用 | 每帧约64K token |
| 每次操作延迟 | <30毫秒 | 2–5秒 |
| 分辨率 | 320x200 | 160x100(降采样) |
| 色彩深度 | 256色 | 16色(缩减) |
| 每分钟总成本 | $0(本地硬件) | 约$0.50(API使用) |
数据要点: 性能差距惊人——原版《毁灭战士》比上下文内版本快70–175倍。然而,成本和延迟并非重点。该实验证明,LLM可以*在功能上*替代游戏引擎,即使效率低下。随着模型推理速度的提升(例如通过推测解码或专用硬件),这一差距将缩小,可能在未来2–3年内使上下文内执行对简单应用变得可行。
关键参与者与案例研究
这项实验的开发者,化名为'gamer-ai',是一位独立研究员,此前曾演示过在GPT-4中运行一个简单的国际象棋引擎。他们的工作建立在日益增长的“上下文内学习即计算”研究基础上——这一概念由Google DeepMind和Anthropic的团队探索。值得注意的是,Anthropic自身关于“上下文推理”的研究表明,Claude 3.5 Sonnet可以在10万+ token范围内维持连贯状态,这对于此类应用至关重要。
其他相关案例研究:
- OpenAI的Code Interpreter:一个允许GPT-4在沙盒环境中执行Python代码的产品。这在概念上类似,但依赖于外部运行时,而非模型本身。《毁灭战士》实验更进一步,将模型自身的推理用作运行时。
- Anthropic的Claude 3.5 Opus:实验中使用的模型。其200K token上下文窗口和强大的指令遵循能力使其特别适合此任务。Anthropic尚未正式认可或评论该实验,但内部消息人士表示,公司正在监控此类用例,以探索潜在产品功能。
- Google的Gemini 1.5 Pro:拥有100万token上下文窗口,理论上可以运行更高分辨率的《毁灭战士》。然而,其架构对像素级生成的优化程度较低,目前尚无公开演示。
数据表:用于上下文内执行的LLM能力
| 模型 | 上下文窗口 | 每帧最大token数(估计) | 游戏执行适用性 |
|---|---|---|---|
| Claude 3.5 Opus | 200K | 64K | 高(用于此演示) |
| GPT-4 Turbo | 128K | 40K | 中(窗口较短,状态跟踪较弱) |
| Gemini 1.5 Pro | 1M | 320K | 高(理论上,但尚无演示) |