Soul Player C64: Mô hình Transformer "nhỏ nhưng có võ" chạy trên máy tính cổ điển Commodore 64
Một nhà phát triển đã tạo ra cú sốc khi triển khai thành công mô hình Transformer - kiến trúc nền tảng của ChatGPT - ngay trên chiếc máy tính Commodore 64 ra đời năm 1982. Dù chỉ có 25.000 tham số và tốc độ xử lý cực chậm, dự án Soul Player C64 chứng minh tiềm năng của AI khi chạy trên phần cứng hạn chế bằng ngôn ngữ Assembly.

Soul Player C64 là một dự án kỹ thuật đáng kinh ngạc, đưa công nghệ Trí tuệ nhân tạo (AI) hiện đại về quá khứ. Dự án này đã triển khai một mô hình Transformer thực thụ - kiến trúc cốt lõi đằng sau các mô hình ngôn ngữ lớn (LLM) như ChatGPT hay Claude - để chạy trực tiếp trên máy tính Commodore 64 huyền thoại.
Điều đặc biệt là toàn bộ mã nguồn được viết bằng ngôn ngữ Assembly 6502/6510 thủ công, vận hành trên bộ vi xử lý chỉ có tốc độ 1 MHz với bộ nhớ 64 KB. Mặc dù khả năng tính toán hạn chế, Soul Player C64 vẫn thực hiện được các cơ chế quan trọng như multi-head causal self-attention, softmax và RMSNorm.
Thông số kỹ thuật "khiêm tốn"
Để có thể nhét vừa vào một đĩa mềm floppy 5,25 inch, mô hình này đã được tối ưu hóa cực đoan với các thông số ấn tượng:
- Kích thước: Khoảng 25.000 tham số (định lượng int8).
- Kiến trúc: 2 lớp, 4 đầu chú ý (attention heads), 32 chiều nhúng (embedding dimensions).
- Bộ nhớ: Toàn bộ mô hình và mã nguồn chiếm khoảng 25 KB, vừa vặn còn dư chỗ trên đĩa mềm.
- Tốc độ: Khoảng 60 giây để tạo ra một token (từ/ký tự). Một câu trả lời đầy đủ có thể mất vài phút.
Vượt qua giới hạn phần cứng
Thách thức lớn nhất là bộ vi xử lý 6502 của Commodore 64 không có lệnh nhân (multiply instruction). Để giải quyết vấn đề này, tác giả Gizmo64k đã phải sử dụng các phép toán dịch bit và cộng (shift-and-add) để thực hiện phép nhân ma trận - vector.
Một bước đột phá quan trọng trong dự án là việc sửa đổi chuẩn hóa điểm số softmax. Bằng cách dịch chuyển điểm số chú ý 14 bit thay vì 17 bit, bảng tra cứu hàm mũ (exp lookup table) 128 mục đủ dải động để tạo ra các trọng số chú ý có ý nghĩa. Nếu không có sửa đổi này, mô hình sẽ "mù" trước kiến trúc hay dữ liệu huấn luyện.
Cách thức vận hành và trải nghiệm
Người dùng có thể tải hình ảnh đĩa soulplayer.d64 và chạy nó trên các trình giả lập Commodore 64 (như VICE) hoặc trên phần cứng thực tế.
Sau khi tải chương trình, người dùng có thể nhập tin nhắn bằng chữ thường. Mô hình sẽ xử lý và hiển thị phản hồi trên màn hình. Trong thời gian máy "suy nghĩ", viền màn hình sẽ nhấp nháy và mỗi khi tạo ra một token, chip âm thanh SID sẽ phát ra một tiếng "bíp" ngắn.
Do vốn từ vựng nhỏ (128 tokens) và cửa sổ ngữ cảnh ngắn (20 tokens), người dùng cần giữ lại đoạn hội thoại ngắn gọn. Mô hình cũng chỉ hiểu chữ thường; chữ hoa sẽ bị coi là token không xác định.
Huấn luyện mô hình riêng của bạn
Dự án cung cấp công cụ đầy đủ để người dùng tự huấn luyện một "linh hồn" (soul) cho riêng mình. Quá trình này sử dụng Python và PyTorch trên máy tính hiện đại:
- Chuẩn bị dữ liệu: Tạo một tệp văn bản với các cuộc hội thoại mẫu (định dạng inputresponse).
- Huấn luyện: Chạy script
train.pyđể huấn luyện tokenizer BPE và mô hình Transformer với nhận thức định lượng (Quantization-Aware Training - QAT). - Xây dựng: Chạy
build.pyđể chuyển đổi trọng số thành mã nhị phân và tạo đĩa .d64 cho Commodore 64.
Quá trình huấn luyện sử dụng kỹ thuật QAT để đảm bảo mô hình vẫn hoạt động chính xác khi chuyển sang dạng số nguyên int8 trên phần cứng cũ kỹ.
Kết luận
Soul Player C64 không phải là một công cụ AI thực tế để sử dụng hàng ngày. Nó chậm, vốn từ vựng ít và thường tạo ra các câu bị vỡ. Tuy nhiên, đây là một thành tựu kỹ thuật tuyệt vời, kết hợp sự hoài cổ của máy tính cổ điển với những khái niệm AI tiên tiến nhất. Dự án này cho thấy kiến trúc Transformer có thể hoạt động ở quy mô cực nhỏ, trên phần cứng mà thế giới đã từng cách đây 40 năm.



