nanochat là gì: tự huấn luyện ChatGPT mini với 100 đô
nanochat là gì: repo của Andrej Karpathy huấn luyện một ChatGPT mini từ đầu tới cuối trong khoảng 4 giờ trên máy 8 GPU H100, chi phí khoảng 100 đô.

Thử hình dung buổi họp đầu tuần. Anh giám đốc vừa đọc báo xong, quay sang đội IT: "Mấy hãng lớn tự làm được ChatGPT, sao mình không tự train một con cho công ty? Chắc cũng chỉ vài tuần thôi nhỉ?" Cả phòng im lặng, vì không ai đưa ra được con số để trả lời.
Ngày 13/10/2025, Andrej Karpathy đưa con số đó lên GitHub. Repo nanochat cho anh chị tự làm một ChatGPT tí hon từ đầu tới cuối, và thấy tận mắt cái giá của nó.
Đọc nhanh trong 30 giây
- nanochat là repo mã nguồn mở (giấy phép MIT) của Andrej Karpathy, đăng ngày 13/10/2025.
- Nó gói trọn dây chuyền làm một LLM: tách từ, huấn luyện, tinh chỉnh, chấm điểm, chat qua web.
- Chạy bằng một lệnh
bash speedrun.shtrên máy thuê 8 GPU H100, hết 3 giờ 51 phút và 92,4 đô trong lần chạy của tác giả.- Hợp với kỹ sư, người làm đào tạo muốn hiểu LLM từ bên trong. Không dùng để thay ChatGPT.
nanochat là gì?
nanochat là repo của Andrej Karpathy chứa toàn bộ dây chuyền làm một mô hình ngôn ngữ kiểu ChatGPT trong một codebase nhỏ, ít thư viện phụ thuộc. Theo README, repo bao gồm tách từ (tokenization), huấn luyện nền (pretraining), tinh chỉnh (finetuning), chấm điểm, chạy mô hình và giao diện web để chat. Câu giới thiệu của repo là "The best ChatGPT that $100 can buy", tức bản ChatGPT tốt nhất mà 100 đô mua được.
So sánh đời thường: dùng ChatGPT giống đi ăn nhà hàng. nanochat là một căn bếp nhỏ đủ dụng cụ, có sẵn công thức, để anh chị tự nấu một món từ nguyên liệu thô. Món nấu ra không ngon bằng nhà hàng, nhưng nấu xong thì hiểu nhà hàng làm gì trong bếp, và vì sao một bát phở ở đó đắt.
Karpathy cho biết nanochat sẽ là dự án cuối khóa của khóa học LLM101n do Eureka Labs đang xây dựng.
100 đô mua được gì?
Một mô hình khoảng 560 triệu tham số, nói chuyện được nhưng ngây ngô. Đây là các con số từ README và bài giới thiệu trong mục Discussions của repo:

Những con số Karpathy công bố cho lần chạy bản 100 đô.
| Hạng mục | Theo Karpathy |
|---|---|
| Phần cứng | 1 node 8 GPU H100, giá thuê 24 đô một giờ |
| Thời gian chạy bản 100 đô | 3 giờ 51 phút từ tách từ tới tinh chỉnh |
| Chi phí ghi trong bài | 92,4 đô cho lần chạy đó |
| Kích thước code | 8.304 dòng trong 44 file |
| Mô hình | Transformer độ sâu 20, khoảng 560 triệu tham số |
| Giấy phép | MIT |
Karpathy tự nhận mô hình bản 100 đô nói chuyện chỉ ở mức một đứa trẻ mẫu giáo. Nghe thì buồn cười, nhưng đó chính là bài học: bốn giờ máy chủ đắt tiền mới nuôi được một "đứa trẻ" biết nói.
Một ChatGPT được làm ra qua những chặng nào?
nanochat đi qua năm chặng, theo bài giới thiệu trên Discussions. Hãy hình dung như nuôi dạy một đứa trẻ: học chữ, đọc thật nhiều sách, tập nói chuyện, được sửa cho lễ phép, rồi luyện thêm môn toán.

Từ dữ liệu thô tới khung chat, phần lớn thời gian nằm ở chặng huấn luyện nền.
- Tách từ: một bộ tách từ BPE viết bằng Rust, kho từ 65.536 mục. Đây là bước "học chữ cái".
- Huấn luyện nền: mô hình đọc dữ liệu FineWeb-EDU trong khoảng 3 giờ để học ngôn ngữ chung. Bước "đọc thật nhiều sách".
- Huấn luyện giữa (midtraining): khoảng 8 phút với dữ liệu hội thoại SmolTalk, câu hỏi trắc nghiệm và toán GSM8K, để mô hình quen dạng hỏi đáp.
- Tinh chỉnh có giám sát (SFT): khoảng 7 phút.
- Học tăng cường (RL) trên GSM8K: mặc định đang tắt.
Chạy xong, file report.md hiện ra trong thư mục dự án, ghi điểm các bài kiểm tra sau từng chặng. Giống sổ liên lạc ghi điểm từng học kỳ.
Chạy nanochat trong một buổi chiều
Theo README, các bước như sau.

Một lệnh chạy cả dây chuyền, xong thì mở giao diện chat.
- Thuê một máy 8 GPU H100 ở nhà cung cấp đám mây (Karpathy dùng Lambda).
- Tải repo về máy đó rồi chạy script tốc hành:
bash speedrun.sh
- Vì script chạy khoảng 4 giờ, README gợi ý chạy trong phiên
screenvà ghi log:
screen -L -Logfile speedrun.log -S speedrun bash speedrun.sh
- Chạy xong, kích hoạt môi trường ảo bằng
source .venv/bin/activate, rồi mở giao diện chat:
python -m scripts.chat_web
- Mở địa chỉ hiện ra trên màn hình (IP công khai của máy và cổng) để chat với mô hình vừa train.
- Xem bảng điểm bằng
cat report.md.
Lưu ý
Máy thuê tính tiền theo giờ. Chạy xong, đọc điểm xong thì tắt máy ngay. Quên một đêm là hóa đơn đã vượt xa con số 100 đô.
Dùng nanochat vào việc gì?
Buổi học nội bộ cho đội kỹ thuật. Một nhóm kỹ sư muốn hiểu vì sao model trả lời sai, vì sao cần dữ liệu sạch. Chạy nanochat một lần, mở report.md so điểm sau từng chặng, cả nhóm thấy rõ chặng nào đóng góp gì.
Hỏi chính codebase. README gợi ý gói toàn bộ repo thành một file rồi đưa cho một LLM để hỏi:
files-to-prompt . -e py -e md -e rs -e html -e toml -e sh --ignore "*target*" --cxml > packaged.txt
Mẹo
Chưa muốn thuê GPU? Làm bước trên trước. Dán
packaged.txtvào một trợ lý AI và hỏi: "Giải thích bước midtraining trong repo này làm gì, file nào xử lý, viết bằng tiếng Việt cho người mới." Đọc hiểu trước, thuê máy sau, đỡ tốn tiền.
Vài giới hạn cần biết thêm. README nhắc mức khoảng 300 đô (d26, khoảng 12 giờ, nhỉnh hơn GPT-2 theo điểm CORE) và mức 1.000 đô (khoảng 41,6 giờ), nhưng cả hai chưa được hỗ trợ đầy đủ ở nhánh chính. Code chạy được trên 8 GPU A100 nhưng chậm hơn; một GPU cũng chạy được nhưng lâu gấp 8 lần; GPU dưới 80GB bộ nhớ phải giảm --device_batch_size. Dữ liệu huấn luyện là FineWeb-EDU và SmolTalk, tài liệu không nói về khả năng tiếng Việt.
Nhận xét của chuyên gia
nanochat là tài liệu học hiếm có: ngắn, đọc được từ đầu tới cuối, chạy ra kết quả thật. Với tôi, giá trị lớn nhất của nó với doanh nghiệp không nằm ở cái model, mà ở bài học về chi phí và công sức.
Câu hỏi của anh giám đốc ở đầu bài giờ có câu trả lời bằng số: bốn giờ máy 8 GPU mới ra một mô hình nói chuyện như trẻ mẫu giáo. Model thương mại tốt cần nhiều hơn thế rất nhiều lần. Với hầu hết doanh nghiệp Việt, đường hợp lý vẫn là dùng model có sẵn, thêm dữ liệu công ty qua RAG, skill, hoặc tinh chỉnh model mở như gpt-oss.
Hợp với ai: kỹ sư AI, sinh viên, đội R&D muốn hiểu sâu; người làm đào tạo AI cần một ví dụ trọn vẹn để giảng.
Chưa hợp với ai: doanh nghiệp tìm chatbot dùng ngay; người chưa quen Linux và GPU đám mây.
Cách bắt đầu của tôi: đọc code và bài Discussions trước, gói repo hỏi AI cho hiểu từng chặng. Chỉ thuê máy khi đã hiểu, và đặt nhắc giờ tắt máy ngay lúc bấm chạy.
Một câu để nhớ: nanochat không cho anh chị một ChatGPT, nó cho anh chị biết vì sao không nên tự làm ChatGPT.
Câu hỏi thường gặp
nanochat có thay được ChatGPT trong công việc không?
Không. Bản 100 đô là mô hình nhỏ để học cách LLM được làm ra, khả năng còn rất hạn chế theo chính tác giả. README nói thẳng 100 đô không đủ để làm một bản sao ChatGPT tốt.
Chạy nanochat trên máy tính cá nhân được không?
README cho biết code chạy được trên một GPU nhưng lâu gấp 8 lần, và GPU dưới 80GB phải giảm cỡ batch. Máy văn phòng thông thường không phù hợp.
nanochat khác gì nanoGPT?
nanoGPT là dự án cũ của Karpathy, chỉ có phần huấn luyện nền. nanochat làm trọn dây chuyền, có cả tinh chỉnh, chấm điểm và giao diện chat.
Giấy phép nanochat có dùng thương mại được không?
Repo dùng giấy phép MIT, cho phép dùng, sửa và dùng thương mại, miễn giữ thông báo bản quyền.
Xem các mốc khác trong chuỗi dòng thời gian AI.
Nguồn tham khảo: https://github.com/karpathy/nanochat


