Doom 在 LLM 上运行——包含 Hugging Face 检查点

Reddit r/LocalLLaMA 模型

摘要

一位开发者使用自定义编译器(torchwright)将 Doom 的渲染算法移植到 transformer 权重中,创建了一个未经训练的 LLM,它通过发出绘图命令来渲染 Doom 帧。检查点已在 Hugging Face 上提供。

这里面完全没有训练。我使用自己编写的编译器(torchwright)将 Doom 的实际渲染算法移植到 transformer 权重中——每一个权重都是计算出来的,没有一个是学习得到的。提示词携带关卡几何、玩家位置和视角方向;生成过程输出绘图命令;一个 43 行的主机程序将它们转换为像素。原版 Phi3ForCausalLM 架构,可在标准 transformers 中以 trust_remote_code=False 加载。两个检查点: - 320x200(文章中的那个):21B 参数,85.87 GB。一帧由 3,614 token 的提示词加上 53,747 个生成 token 组成——在 B200 上耗时不到 40 分钟。 - 80x50:相同的提示词格式,相同的纹理,下载大小 34 GB。这才是真正值得尝试的那个。 一个坦诚的声明:我没有在本地运行过这个模型——我一直使用的是云端 GPU(B200 和 A100-80)。我的编译器目前要求权重使用 fp32 精度,我还没有探索量化。对于 80x50 模型,我建议使用 80 GB 的 GPU 显存;理论上 64 GB 应该也能运行,但我没有试过。 文章:https://ood.dev/posts/doom/ 权重(80x50):https://huggingface.co/physicsrob/torchwright-doom-e1m1-80x50 权重(320x200):https://huggingface.co/physicsrob/torchwright-doom-e1m1 源代码:https://github.com/physicsrob/torchwright_doom
查看原文

相似文章

56,000行DOOM代码,用我自创的语言编写

Hacker News Top

作者构建了一种名为bet的玩笑编程语言,通过LLVM编译,采用基于区域的内存管理,并且成功运行了完整的DOOM游戏(56,000行代码),无需代码审查,仅依赖测试。

DOOM, Emacs

Lobsters Hottest

一位开发者使用原生模块和Canvas API补丁,将经典游戏DOOM移植到Emacs中运行,需要自定义修补的Emacs构建版本和一个WAD文件。