Andrej Karpathy vừa phát hành một trong những repo "không kiểm soát" nhất mà anh ấy từng viết - NanoChat.
Đây là một hệ thống ChatGPT-like hoàn chỉnh nhưng tối giản được xây dựng từ đầu, dạy bạn cách huấn luyện và vận hành LLM của riêng bạn với chi phí dưới 100 đô la.
Với chỉ khoảng 8k dòng mã sạch, nó bao gồm mọi thứ, tokenizer (dựa trên Rust), tiền huấn luyện trên FineWeb, huấn luyện giữa chừng trên SmolTalk, SFT trên MMLU / GSM8K / HumanEval, RL tùy chọn qua GRPO, suy diễn hiệu quả với bộ nhớ KV + prefill/giải mã, và một WebUI kiểu ChatGPT. (1/n)
Hào hứng để phát hành repo mới: nanochat!
(nó nằm trong số những thứ điên rồ nhất mà tôi đã viết).
Khác với repo tương tự trước đây của tôi là nanoGPT chỉ bao gồm việc huấn luyện trước, nanochat là một pipeline huấn luyện/giải suy diễn đầy đủ, từ đầu, tối thiểu cho một bản sao đơn giản của ChatGPT trong một mã nguồn tối thiểu về phụ thuộc. Bạn khởi động một hộp GPU đám mây, chạy một script duy nhất và chỉ trong khoảng 4 giờ sau, bạn có thể trò chuyện với LLM của riêng mình qua giao diện web giống ChatGPT.
Nó nặng khoảng ~8,000 dòng mã mà tôi cho là khá sạch sẽ để:
- Huấn luyện bộ mã hóa bằng một triển khai Rust mới
- Huấn luyện trước một LLM Transformer trên FineWeb, đánh giá điểm CORE qua một số chỉ số
- Huấn luyện giữa các cuộc trò chuyện giữa người dùng và trợ lý từ SmolTalk, các câu hỏi trắc nghiệm, sử dụng công cụ.
- SFT, đánh giá mô hình trò chuyện trên kiến thức thế giới trắc nghiệm (ARC-E/C, MMLU), toán học (GSM8K), mã (HumanEval)
- RL mô hình tùy chọn trên GSM8K với "GRPO"
- Giải suy diễn hiệu quả mô hình trong một Engine với bộ nhớ KV, điền trước/giải mã đơn giản, sử dụng công cụ (trình thông dịch Python trong một sandbox nhẹ), trò chuyện với nó qua CLI hoặc WebUI giống ChatGPT.
- Viết một báo cáo markdown duy nhất, tóm tắt và gamify toàn bộ.
Ngay cả với chi phí thấp khoảng ~$100 (~4 giờ trên một node 8XH100), bạn có thể huấn luyện một bản sao nhỏ của ChatGPT mà bạn có thể trò chuyện, và nó có thể viết truyện/thơ, trả lời các câu hỏi đơn giản. Khoảng ~12 giờ vượt qua chỉ số CORE của GPT-2. Khi bạn tiếp tục mở rộng lên khoảng ~$1000 (~41.6 giờ huấn luyện), nó nhanh chóng trở nên mạch lạc hơn và có thể giải quyết các vấn đề toán học/mã đơn giản và tham gia các bài kiểm tra trắc nghiệm. Ví dụ, một mô hình độ sâu 30 được huấn luyện trong 24 giờ (điều này tương đương với FLOPs của GPT-3 Small 125M và 1/1000 của GPT-3) đạt được 40s trên MMLU và 70s trên ARC-Easy, 20s trên GSM8K, v.v.
Mục tiêu của tôi là đưa toàn bộ "baseline mạnh" vào một repo thống nhất, tối thiểu, dễ đọc, dễ hack, có thể fork tối đa. nanochat sẽ là dự án đỉnh cao của LLM101n (vẫn đang được phát triển). Tôi nghĩ nó cũng có tiềm năng phát triển thành một công cụ nghiên cứu, hoặc một tiêu chuẩn, tương tự như nanoGPT trước đó. Nó không hoàn toàn hoàn thiện, được tinh chỉnh hay tối ưu hóa (thực sự tôi nghĩ có thể có khá nhiều cơ hội dễ dàng), nhưng tôi nghĩ nó đang ở một nơi mà bộ khung tổng thể đủ ổn để có thể lên GitHub nơi tất cả các phần của nó có thể được cải thiện.
Liên kết đến repo và một hướng dẫn chi tiết về tốc độ nanochat có trong phản hồi.

Bạn có thể khởi động một GPU, chạy script và có chatbot của riêng bạn trò chuyện trong khoảng ~4 giờ.
Karpathy nói rằng mô hình 100 đô la đã có thể viết thơ và truyện và vượt qua GPT-2 trên CORE; 1000 đô la đưa nó gần với GPT-3 Small 125M FLOPs với 40 + MMLU và 70 + ARC-Easy scores.
Mục tiêu là một repo thống nhất, dễ đọc, có thể hack được, gói gọn "pipeline baseline mạnh mẽ" đầy đủ: một người kế nhiệm của nanoGPT và là nền tảng cho khóa học LLM101n sắp tới của anh ấy.
Ngay cả với ngân sách nhỏ, kết quả thật bất ngờ.
• Chạy $100 (8×H100, 4 giờ): vượt qua GPT-2 trên CORE, có thể viết thơ và truyện ngắn.
• Chạy $1000 (≈24 giờ, GPT-3 Small 125 M FLOPs, tỷ lệ 1/1000):
– MMLU 40 +
– ARC-Easy 70 +
– GSM8K 20 +
đây là một mini-pipeline nghiên cứu thực thụ.
Khi ai đó hỏi liệu NanoChat có thể được sử dụng để đào tạo một LLM cá nhân (trên ghi chú Notion, dữ liệu sức khỏe, v.v.), Karpathy đã dội nước lạnh vào ý tưởng:
"Đây không phải là một repo tốt cho việc đó... Hãy nghĩ về những mô hình vi mô này như những đứa trẻ rất nhỏ; chúng thiếu trí thông minh thô của những người anh em lớn hơn."
Nếu bạn tinh chỉnh chúng trên dữ liệu cá nhân, bạn có thể nhận được "những câu nói dễ thương" bắt chước phong cách viết của bạn, nhưng nó vẫn sẽ là một mớ hỗn độn. 🪿
Tại sao cá nhân hóa lại khó khăn
Để xây dựng một mô hình thực sự cá nhân hóa, bạn cần:
• Chuẩn bị dữ liệu cơ bản chất lượng cao
• Tạo ra rất nhiều dữ liệu tổng hợp (phức tạp + đa dạng)
• Tinh chỉnh trên một LLM mở mạnh mẽ (ví dụ: Tinker)
• Có thể kết hợp thêm dữ liệu tiền huấn luyện lớn để giữ lại trí thông minh tổng quát
Đó vẫn là lĩnh vực nghiên cứu ngày nay, không phải là một dự án cuối tuần.
Bức tranh lớn hơn
Karpathy coi NanoChat như nanoGPT mới—
một khung hoàn chỉnh nhưng tối giản có thể phát triển thành một tiêu chuẩn cơ bản cho nghiên cứu LLM, hợp tác cộng đồng và giáo dục.
Hiện tại nó chưa được tối ưu hoàn toàn, nhưng kiến trúc thì vững chắc—sẵn sàng cho các cộng tác viên trên GitHub đẩy nó tiến lên, từng module một.
4,61 N
15
Nội dung trên trang này được cung cấp bởi các bên thứ ba. Trừ khi có quy định khác, OKX không phải là tác giả của bài viết được trích dẫn và không tuyên bố bất kỳ bản quyền nào trong các tài liệu. Nội dung được cung cấp chỉ nhằm mục đích thông tin và không thể hiện quan điểm của OKX. Nội dung này không nhằm chứng thực dưới bất kỳ hình thức nào và không được coi là lời khuyên đầu tư hoặc lời chào mời mua bán tài sản kỹ thuật số. Việc sử dụng AI nhằm cung cấp nội dung tóm tắt hoặc thông tin khác, nội dung do AI tạo ra có thể không chính xác hoặc không nhất quán. Vui lòng đọc bài viết trong liên kết để biết thêm chi tiết và thông tin. OKX không chịu trách nhiệm về nội dung được lưu trữ trên trang web của bên thứ ba. Việc nắm giữ tài sản kỹ thuật số, bao gồm stablecoin và NFT, có độ rủi ro cao và có thể biến động rất lớn. Bạn phải cân nhắc kỹ lưỡng xem việc giao dịch hoặc nắm giữ tài sản kỹ thuật số có phù hợp hay không dựa trên tình hình tài chính của bạn.