DOOMFORMER: Biến DOOM thành một Transformer với hàng nghìn búp bê voodoo
Một lập trình viên đã biến tựa game kinh điển DOOM thành một cỗ máy tính toán thực thụ để chạy mạng nơ-ron. Dự án DOOMFORMER biên dịch các mô hình AI thành bản đồ game, nơi những búp bê voodoo thực hiện phép nhân, phép cộng và cả cơ chế attention. Dù chậm hơn NumPy hàng chục nghìn lần, dự án chứng minh một ý tưởng đầy cảm hứng về lập trình sáng tạo.

DOOMFORMER: Khi DOOM trở thành một Transformer
Banner dự án DOOMFORMER
Trong giới lập trình, đã từng có trào lưu chạy DOOM trên mọi thiết bị — từ máy in, tủ lạnh cho tới... que thử thai. Nhưng một nhà phát triển đã làm điều ngược lại: dùng chính DOOM để xây dựng một transformer — kiến trúc đứng sau các mô hình ngôn ngữ lớn như ChatGPT.
Dự án có tên DOOMFORMER, biến các bản đồ DOOM thành nơi tính toán mạng nơ-ron, với những búp bê voodoo đảm nhận vai trò của phép nhân và phép cộng.
Ý tưởng điên rồ nhưng có cơ sở
DOOM nổi tiếng với các cơ chế kỳ quặc trong engine: voodoo doll (bản sao của người chơi được game sinh ra cho các vị trí khởi đầu bổ sung), mức ánh sáng của các khu vực (sector), độ cao sàn và trần. Tận dụng những đặc điểm này, DOOMFORMER biến mỗi giá trị trong mạng nơ-ron thành một nhóm búp bê voodoo, mỗi trọng số thành một vạch dung nham mà búp bê đi qua, và mỗi hàm kích hoạt thành một cầu thang.
Kết quả là một hệ thống có thể biên dịch mạng nơ-ron số nguyên thành bản đồ ZDoom (định dạng UDMF kết hợp ACS), rồi chạy chúng trong ViZDoom. Python chỉ đóng vai trò ghi dữ liệu đầu vào, đọc kết quả và kiểm tra — còn mọi phép tính đều do các búp bê trong game thực hiện.
Điểm đáng chú ý: chương trình kiểm tra chính xác tuyệt đối với dung sai bằng 0. Chỉ cần một giá trị lệch đi 1 đơn vị so với tham chiếu NumPy là bài kiểm tra thất bại ngay.
Nó làm được những gì?
- Phân loại chữ số MNIST: người chơi có thể vẽ một chữ số lên bản đồ, và "bộ não" trong game sẽ đọc ra chữ số đó. Trong 100 chữ số kiểm thử đầu tiên, DOOM đọc đúng 99 chữ số và 966/1.000 mẫu ngẫu nhiên — với mọi kết quả đều khớp tuyệt đối với tham chiếu.
- Sinh tên màn chơi: một transformer 2 lớp viết ra tên màn như "DEMON CANYON" chỉ bằng các búp bê voodoo.
- Tự chơi DOOM: chính sách điều khiển nhân vật được chạy trên bản đồ do DOOMFORMER tạo ra — người chơi có thể chơi DOOM bằng hàng nghìn "trò chơi DOOM" lồng nhau.
- Học ngay trong game: một perceptron khởi tạo bằng 0 có thể học nhận dạng chữ số 8×8 ngay bên trong một bản đồ, với trọng số được lưu ở độ cao trần.
Sơ đồ hoạt động của búp bê voodoo
Cái giá của sự sáng tạo: tốc độ
DOOMFORMER chính xác, nhưng cực kỳ chậm. So với NumPy trên một mạng MLP nhỏ, nó chậm khoảng 23.000 lần nếu tính thời gian engine, và khoảng 65.000 lần nếu tính cả toàn bộ quá trình gọi hàm. Việc đọc một chữ số viết tay mất 163 giây thời gian thực ở cấu hình mặc định, và giảm còn 8 giây với tùy chọn tối ưu --opt 3.
"Thay vì chạy DOOM trên mọi thứ, tôi quyết định dùng DOOM để tạo ra một transformer. Tôi phải dùng đến cơ chế game và voodoo doll để thay thế cho các phép toán thực sự — về cơ bản là một phiên bản thay thế cho NumPy, chậm hơn 65.000 lần." — tác giả dự án chia sẻ.
Tác giả cũng cho biết có thể huấn luyện DOOMFORMER ở quy mô lớn hơn trên một chiếc GPU T4 khiêm tốn, và đang tìm người hợp tác để mở rộng dự án.
Mức độ nghiêm túc đáng nể
Điều khiến dự án này khác biệt so với những trò đùa công nghệ là quy trình kiểm thử cực kỳ chặt chẽ:
- 479 bài kiểm thử, trong đó 175 bài chạy trên DOOM thật ở chế độ headless (không hiển thị).
- Công cụ fuzz kiểm tra hàng chục nghìn mạng nơ-ron ngẫu nhiên, bao gồm cả các giá trị ở giới hạn biên, với hàng triệu phép so sánh — không có sai lệch nào.
- Các bài kiểm thử tấn công chính hệ thống, ví dụ cố tình sửa một trọng số để xem chương trình có phát hiện ra không.
- Bản đồ thử nghiệm được chạy trên nhiều engine khác nhau: ZDoom 2.8.1, GZDoom 4.14.2, LZDoom, UZDoom và Zandronum.
Dự án sử dụng phương pháp translation validation — kiểm tra từng lần biên dịch thay vì chứng minh trình biên dịch luôn đúng. Đây là cách tiếp cận nghiêm túc hiếm thấy ở các dự án "cho vui".
Góc nhìn cho cộng đồng công nghệ Việt Nam
DOOMFORMER là ví dụ tuyệt vời cho thấy sự sáng tạo trong lập trình không có giới hạn. Với các lập trình viên Việt Nam đang học về AI và kiến trúc transformer, dự án này mang lại một góc nhìn trực quan, thú vị về cách các phép toán trong mạng nơ-ron thực sự vận hành — dù phải "vẽ" chúng bằng những búp bê voodoo trong một game bắn súng từ năm 1993.
Mã nguồn dự án mở theo giấy phép MIT (dữ liệu giữ giấy phép riêng), có thể cài đặt bằng lệnh:
pip install git+https://github.com/mottopanikeiku/doomformer
doomformer hello
Tất nhiên, nếu bạn cần xử lý dữ liệu thực tế, hãy cứ dùng PyTorch hay NumPy. Còn nếu muốn hiểu sâu hơn về bản chất của tính toán, có lẽ chẳng có cách nào thú vị hơn là xem những búp bê DOOM cộng từng con số.
Bài viết liên quan

Công nghệ
Mô hình AI hàng đầu giỏi Vật lý đến đâu? Nghiên cứu mới chỉ ra các bài kiểm tra hiện hành đang đánh giá sai
16 tháng 9, 2026

Công nghệ
Nộp đơn xin việc lẽ ra nên khó hơn. Thật đấy
25 tháng 8, 2026

Công nghệ
AWS hướng tới doanh thu 1.000 tỷ USD: Tham vọng lớn, chi phí cũng không nhỏ
29 tháng 10, 2026