Hướng dẫn về AutoResearch của Andrej Karpathy: Tự động hóa ML với tác nhân AI
Tìm hiểu cách AutoResearch của Karpathy chạy hơn 100 thí nghiệm ML qua đêm trên một GPU. Bao gồm kiến trúc ba tệp, vòng lặp ratchet, kết quả và giới hạn.
AutoResearch của Andrej Karpathy là một công cụ mã nguồn mở chạy các thí nghiệm ML theo vòng lặp, chỉ giữ lại những thay đổi đánh bại kết quả tốt nhất hiện tại. Bạn mô tả hướng nghiên cứu trong một tệp markdown, trỏ một tác nhân AI viết mã vào repo, rồi rời máy. Đến sáng, bạn có lịch sử git các cải tiến đã được xác thực và nhật ký mọi thứ tác nhân đã thử.
Ra mắt ngày 7 tháng 3 năm 2026, dự án nhanh chóng đạt hơn 21.000 sao trên GitHub và 8,6 triệu lượt xem bài công bố của Karpathy chỉ trong vài ngày. Bài viết này trình bày cách kiến trúc ba tệp vận hành, vòng lặp ratchet làm gì trong những lượt chạy qua đêm, các kết quả AutoResearch đã tạo ra cho đến nay, và nơi phương pháp này chạm tới giới hạn.
AutoResearch là gì?
AutoResearch là một công cụ Python mã nguồn mở cho phép một tác nhân AI chạy thí nghiệm ML trên một GPU duy nhất mà không cần can thiệp của con người. Nó lặp qua các chu kỳ đề xuất–huấn luyện–đánh giá, chỉ giữ lại những thay đổi cải thiện loss trên tập xác thực. Dự án phát hành theo giấy phép MIT.
Đây không phải là tinh chỉnh siêu tham số (hyperparameter tuning). Các công cụ như Optuna hoặc Ray Tune tìm kiếm trong một không gian tham số được xác định trước. AutoResearch trao cho tác nhân quyền tự do sửa đổi mã tùy ý. Không gian tìm kiếm là bất cứ điều gì LLM có thể nghĩ ra, khiến nó trở thành một loại công cụ khác biệt so với mọi thứ hiện có.
AlphaEvolve (Google DeepMind) tiến xa hơn với cách tiếp cận tiến hóa và các mô hình Gemini để khám phá thuật toán, nhưng là mã đóng và không thể tiếp cận với hầu hết các nhóm. Các tác nhân viết mã mục đích chung như SWE-Agent, OpenHands và Aider có thể viết mã tùy ý nhưng không được xây dựng cho chu trình thử nghiệm–đánh giá–giữ/lùi lại mà nghiên cứu ML thực sự cần.
AutoResearch đặt cược vào kiến thức tổng quát của LLM để đề xuất thí nghiệm tốt, thay vì ràng buộc không gian tìm kiếm để có đảm bảo toán học.
Từ “vibe coding” đến cố vấn nghiên cứu
Karpathy mô tả đây là bước tiến tự nhiên trong cách kỹ sư làm việc với AI. Tháng 2/2026, ông đặt ra thuật ngữ "agentic engineering": "99% thời gian bạn không trực tiếp viết mã. Bạn điều phối các tác nhân làm việc đó và đóng vai trò giám sát." AutoResearch tiến thêm một bước. Con người thậm chí không điều phối nữa. Họ mô tả thế nào là nghiên cứu tốt trong một tệp markdown rồi rời máy.
Tiến trình là: vibe coding (con người nhắc lệnh, AI viết mã, con người duyệt) đến agentic engineering (con người điều phối tác nhân theo thời gian thực) đến nghiên cứu hoàn toàn độc lập (con người đặt hướng, tác nhân tự chạy).
Mỗi bước làm giảm vai trò con người từ người viết thành đạo diễn rồi, theo cách gọi của Karpathy, thành cố vấn nghiên cứu.
Trong một bài đăng tiếp theo, ông mô tả bước kế tiếp: "Mục tiêu không phải là mô phỏng một nghiên cứu sinh Tiến sĩ, mà là mô phỏng cả một cộng đồng nghiên cứu sinh", ám chỉ sự hợp tác phân tán kiểu SETI@home giữa các tác nhân.
Cách hệ thống hiện thực hóa tầm nhìn đó quy về ba tệp.
Kiến trúc ba tệp của AutoResearch
Thiết kế của AutoResearch dựa trên một “hợp đồng” giữa ba tệp, mỗi tệp có quy tắc nghiêm ngặt về quyền chỉnh sửa.
prepare.py
prepare.py phụ trách chuẩn bị dữ liệu và đánh giá. Nó xây dựng tokenizer BPE (Byte Pair Encoding) với vốn từ 8.192 token, xử lý tập huấn luyện và định nghĩa thước đo xác thực: val_bpb (bits-per-byte trên tập xác thực).
Tệp này là bất biến: cả con người lẫn tác nhân đều không chỉnh sửa, đảm bảo mọi thí nghiệm được đo bằng cùng một thước đo.
train.py
train.py là sân chơi của tác nhân: 630 dòng chứa kiến trúc mô hình GPT, bộ tối ưu Muon+AdamW, và toàn bộ vòng lặp huấn luyện. Tác nhân có thể viết lại bất cứ thứ gì ở đây (thay hàm kích hoạt, cấu trúc lại các đầu attention, đổi lịch học, sửa khởi tạo trọng số) miễn là mã sửa đổi vẫn huấn luyện được và tạo ra điểm val_bpb.
program.md
program.md được viết bằng markdown thuần và là tệp duy nhất do tác giả con người chỉnh sửa. Nó chỉ dẫn cho tác nhân theo đuổi những hướng nghiên cứu nào, tránh gì, và cách tiếp cận thí nghiệm.
Những gì program.md kiểm soát
Tệp này cụ thể hơn nhiều người nghĩ. Nó ghi cứng các chỉ số gốc để tác nhân biết phải vượt qua gì (val_bpb: 0,997900, VRAM đỉnh (bộ nhớ video): 45 GB).
Nó chỉ định lệnh chính xác để chạy thí nghiệm và trích xuất kết quả. Nó hướng dẫn tác nhân xử lý lỗi: sửa lỗi chính tả rồi chạy lại, bỏ qua những ý tưởng hỏng từ gốc, dừng mọi thứ chạy quá 10 phút.
Và nó bao gồm chỉ thị khiến cả hệ thống vận hành: "KHÔNG BAO GIỜ DỪNG. Khi vòng lặp thí nghiệm đã bắt đầu, KHÔNG tạm dừng để hỏi con người có nên tiếp tục hay không."
Cũng có một ràng buộc thiết kế định hình mọi thí nghiệm: "Nếu mọi thứ khác như nhau, đơn giản là tốt hơn. Một cải tiến nhỏ nhưng thêm sự phức tạp xấu xí thì không đáng." Điều này định hướng tác nhân tránh các giải pháp overengineer và ưu tiên thay đổi sạch sẽ mà người duyệt sẽ chấp thuận.
Phân công công việc rất rõ ràng. Con người đặt hướng nghiên cứu qua program.md, tác nhân thực thi bằng cách sửa train.py, và prepare.py đóng vai trọng tài trung lập mà không bên nào được chạm vào. Với “hợp đồng” đó, tác nhân chạy vòng lặp thí nghiệm liên tục không dừng.
Vòng lặp Ratchet của AutoResearch
Cốt lõi của AutoResearch là một chu trình thí nghiệm chạy không cần đầu vào từ con người. Một lượt lặp đơn hoạt động như sau, theo vòng lặp 9 bước trong program.md:
Tác nhân đọc program.md để hiểu ưu tiên và ràng buộc nghiên cứu hiện tại.
Nó xem xét train.py hiện tại và các kết quả gần đây trong results.tsv.
Đề xuất một giả thuyết: thay đổi kiến trúc, điều chỉnh bộ tối ưu, hoặc sửa đổi việc huấn luyện.
Sửa train.py để hiện thực hóa thay đổi đề xuất.
Commit thay đổi vào một nhánh git.
Chạy huấn luyện đúng 5 phút (ngân sách thời gian cố định theo đồng hồ tường).
Nếu huấn luyện bị crash, ghi lại lỗi, revert commit và thử lại.
Đánh giá kết quả bằng val_bpb và ghi kết quả vào results.tsv.
Nếu val_bpb được cải thiện: commit được giữ. Nếu không: git reset HEAD~1 quay về phiên bản trước.
Sau đó quay lại bước 1.
Mỗi thí nghiệm có cùng ngân sách 5 phút, khiến các kết quả có thể so sánh trực tiếp. Một thay đổi giúp huấn luyện nhanh hơn và một thay đổi giúp hội tụ thấp hơn được đánh giá trên cùng một mặt bằng.
Với 5 phút mỗi thí nghiệm, hệ thống chạy khoảng 12 thí nghiệm mỗi giờ.
Tên "ratchet" xuất phát từ lịch sử git. Mỗi thí nghiệm thành công thêm một commit; mỗi thất bại bị revert. Mã nguồn chỉ có thể tiến về phía trước, không bao giờ lùi, tích lũy các cải tiến đã xác thực từng bước một.
Git như bộ nhớ nghiên cứu
Cấu trúc này giống các thuật toán tiến hóa, nhưng AutoResearch giữ một dòng dõi duy nhất thay vì một quần thể. Thay vì lai ghép và đột biến giữa các ứng viên, LLM vừa đóng vai “toán tử đột biến” (đề xuất thay đổi) vừa là “áp lực chọn lọc” (chọn thử gì dựa trên kết quả trước đó).
Nó đọc chính lịch sử git và results.tsv để phát huy những gì có triển vọng.
Tệp results.tsv theo dõi mọi thí nghiệm: mã băm commit, điểm val_bpb, mức dùng bộ nhớ GPU, trạng thái pass/fail, và mô tả điều tác nhân đã thử.
Bạn có một dấu vết kiểm toán rõ ràng để xem vào buổi sáng, và tác nhân dùng cùng nhật ký này để hiệu chỉnh bước tiếp theo. Các thí nghiệm đầu thường rộng (thử cấu hình bộ tối ưu khác nhau), về sau thu hẹp vào hướng nào được dữ liệu xác thực.
Bắt đầu với AutoResearch
Chạy AutoResearch cần máy có GPU NVIDIA (cấu hình mặc định nhắm đến GPU hiện đại với VRAM 20+ GB), Python 3.10+, uv, và một tác nhân viết mã (Claude Code, Cursor, hoặc tương tự).
Clone repo, cài phụ thuộc, và chuẩn bị dữ liệu:
git clone https://github.com/karpathy/autoresearch.git
cd autoresearch
uv sync
uv run prepare.pyĐược hỗ trợ bởi
Không có script điều phối. Không có run.py, không pipeline, không framework.
README nói hãy "đơn giản khởi chạy Claude/Codex hay bất kỳ thứ gì bạn muốn trong repo này."
Bạn mở một tác nhân viết mã trong thư mục dự án, nhắc nó đọc program.md, và tác nhân sẽ tự chạy vòng lặp thí nghiệm.
LLM chính là lớp tự động hóa. Theo dõi tiến độ bằng cách tail results.tsv hoặc kiểm tra git log để xem các commit mới.
Cấu hình mặc định huấn luyện một mô hình GPT trên bộ dữ liệu FineWeb-Edu, cần GPU đủ mạnh và vài giờ để thấy kết quả. Cho lần thử đầu trên phần cứng nhỏ hơn, Karpathy khuyến nghị chuyển sang bộ TinyStories và thu nhỏ mô hình bằng cách giảm vốn từ xuống 256 và độ sâu xuống 4.
Những thay đổi này hạ yêu cầu VRAM và rút ngắn mỗi thí nghiệm đủ để bạn thấy “ratchet” hoạt động trong vài giờ.
Cấu hình lượt chạy đầu tiên
Đọc program.md mặc định trước khi bắt đầu một lượt qua đêm. Tệp này định nghĩa chương trình nghị sự nghiên cứu mà tác nhân sẽ theo, và chỉnh sửa nó là cách bạn điều hướng thí nghiệm.
Nếu bạn muốn tác nhân tập trung vào cơ chế attention, hãy nói rõ trong program.md.
Nếu bạn muốn nó tránh đụng vào bộ tối ưu, hãy thêm ràng buộc đó. Tác nhân sẽ không chệch khỏi những gì được viết ở đó.
Với một lượt qua đêm đầu tiên, kỳ vọng 80–100 thí nghiệm với khoảng 15–20 cải tiến được giữ lại. Một vài điều thực tế cần biết:
Chi phí API tỷ lệ với số thí nghiệm. Một lượt qua đêm đơn lẻ là có thể kiểm soát với nhà nghiên cứu cá nhân, nhưng các lượt kéo dài nhiều ngày cần dự trù ngân sách.
Một số thí nghiệm sẽ crash. Vòng lặp tự phục hồi, nên chúng không ngắt quãng một lượt chạy qua đêm.
Kiểm tra results.tsv vào buổi sáng thay vì nhìn terminal. Mẫu “bậc thang” của điểm val_bpb cải thiện kể câu chuyện tốt hơn các log riêng lẻ.
Kết quả AutoResearch và trần sáng tạo
AutoResearch đã được thử nghiệm qua nhiều lượt chạy, từ thí nghiệm của chính Karpathy đến các bản tái hiện của cộng đồng và ứng dụng sản xuất.
Lượt chạy
Số thí nghiệm
Cải tiến được giữ
Kết quả
Lượt qua đêm ban đầu (một GPU)
83
15
val_bpb: 1,000 → 0,975
Lượt mở rộng 2 ngày (độ sâu-12)
~700
~20
Tất cả có tính cộng dồn; chuyển giao sang mô hình độ sâu-24
Tác động sản xuất
-
-
Thời gian đạt mốc GPT-2: 2,02h → 1,80h (nhanh hơn 11%)
Phiên cộng đồng
126
-
val_bpb: 0,9979 → 0,9697
Tác nhân đã tìm ra những thứ mà một con người làm việc có phương pháp cuối cùng cũng sẽ tìm thấy. QKnorm thiếu hệ số nhân để làm sắc nét attention, Value Embeddings hưởng lợi từ regularization, và có độ lợi ở tinh chỉnh attention theo dải, tham số beta của AdamW, và lập lịch weight decay.
Đây là những thay đổi cấu trúc mã, không phải quét siêu tham số ngẫu nhiên, và thử nghiệm thủ công từng cái sẽ tốn nhiều ngày.
CEO Shopify Tobi Lutke đã điều chỉnh AutoResearch cho một mô hình mở rộng truy vấn nội bộ và đạt cải thiện điểm xác thực 19% từ 37 thí nghiệm trên mô hình 0,8B tham số, báo cáo kết quả ngay ngày hôm sau khi bắt đầu.
Biểu đồ bậc thang là thật, nhưng mỗi bậc đều nhỏ. Tác nhân tìm ra các cải tiến thực sự, chỉnh tham số beta ở đây, thêm regularization ở kia. Chưa ai báo cáo việc nó phát minh cơ chế attention mới hay đề xuất ý tưởng kiến trúc mà một nhà nghiên cứu con người cuối cùng không nghĩ ra.
Trần sáng tạo
Vấn đề GitHub #22 nêu bật bài toán cấu trúc. Một người dùng nhận xét tác nhân luân phiên các biến thể nhỏ của thứ đã hiệu quả trước đó, mắc kẹt trong mẫu tìm kiếm cục bộ.
Cơ chế ratchet chỉ chấp nhận thay đổi cải thiện ngay val_bpb, nên tác nhân không thể bước lùi để chuẩn bị cho mức tăng lớn hơn.
Nhà nghiên cứu con người thường suy luận rằng "sẽ tệ hơn trước khi tốt hơn". Ratchet không có chỗ cho điều đó.
Karpathy thừa nhận một vấn đề liên quan trên Hacker News: tác nhân cảm thấy "rón rén và sợ hãi" với các bài toán mở.
Ông cho rằng nguyên nhân đến từ RLHF (Reinforcement Learning from Human Feedback), vốn thưởng cho đầu ra an toàn, thận trọng hơn là thử nghiệm táo bạo. Tác nhân có khả năng đề xuất thay đổi sáng tạo nhưng được huấn luyện để “chơi an toàn”.
Khung thời gian huấn luyện cố định 5 phút cũng là một ràng buộc khác.
Những thay đổi cho thấy giá trị nhanh sẽ được tìm ra; những thay đổi chỉ chứng minh được qua các lượt chạy dài hơn thì vẫn vô hình. Và chạy 100 thí nghiệm trên cùng tập xác thực mang rủi ro overfit: một số cải tiến có thể đặc thù cho phép đánh giá đó thay vì là độ lợi thực sự. Tính bất biến của prepare.py, bảo chứng công bằng của hệ thống, cũng là điểm mù của nó.
Cộng đồng đang tranh luận liệu trần này đến từ khuôn khổ hay từ mô hình nền tảng. Các đề xuất gồm tối ưu meta-prompt (một tác nhân thứ hai viết lại program.md dựa trên kết quả), chỉ thị đa dạng thưởng cho tính mới bên cạnh cải thiện, và các thí nghiệm “reset” định kỳ bắt đầu từ một checkpoint sớm hơn để thoát cực trị cục bộ.
Hiện tại, AutoResearch là công cụ tự động hóa phần công việc có phương pháp của nghiên cứu ML: chạy và đánh giá hàng trăm thí nghiệm nhỏ. Nó không thay thế phần sáng tạo — hình thành hướng nghiên cứu mới — vốn vẫn là việc của con người. Sự phân công này cũng là tín hiệu rõ nhất xem công cụ này có phù hợp với quy trình của bạn hay không.
Khi nào nên dùng AutoResearch
“Hợp đồng” ba tệp (bộ đánh giá bất biến, phần triển khai do tác nhân sửa, định hướng do con người viết) có thể chuyển sang ngoài phạm vi huấn luyện LLM sang bất kỳ miền nào bạn có thể định nghĩa hàm chấm điểm tự động.
Tối ưu xếp hạng tìm kiếm, phân loại sản phẩm, nhận dạng thực thể có tên trong y sinh, chấm điểm gian lận, phân loại ý định: các bài toán này có đặc điểm phù hợp. Mô hình nhỏ huấn luyện trong vài phút, hàm chấm điểm rõ ràng, và cải tiến có thể chuyển giao khi bạn mở rộng.
Khi thí nghiệm chạy nhanh hơn con người 100 lần, pipeline đánh giá trở thành nút thắt. Bộ chuẩn tĩnh nhanh bão hòa. Các nhóm áp dụng mẫu này cần tập đánh giá tiến hóa cùng dữ liệu sản xuất và các góc cạnh khó hơn.
Bản thân Karpathy chạy một “bản lớn hơn” của AutoResearch trên 8x H100 GPU với framework sản xuất nanochat, cho thấy mẫu này mở rộng vượt ra các thí nghiệm đồ chơi. Cộng đồng đã fork cho macOS/Apple Silicon và đề xuất tích hợp cho GPU cũ hơn. Hướng dẫn CPU vs GPU giải thích vì sao phần cứng GPU là điều không thể thiếu cho kiểu huấn luyện lặp này.
Nếu mục tiêu của bạn là vắt kiệt cải tiến gia tăng từ một pipeline huấn luyện đã hiểu rõ, AutoResearch là lựa chọn phù hợp. Trần sáng tạo nghĩa là bạn vẫn cần nhà nghiên cứu con người cho những bài toán đòi hỏi tính mới thực sự, và công cụ này phát huy tốt nhất ở phần lớn nghiên cứu mang tính lặp có phương pháp.
Kết luận
Viết một program.md tốt đòi hỏi chính bạn đã làm nghiên cứu đó. Bạn cần biết hướng nào đáng thử, “tốt hơn” nghĩa là gì với bài toán của bạn, và khi nào các độ lợi gia tăng đã cạn. Tác nhân đảm nhiệm thực thi, nhưng phán đoán đằng sau chương trình nghị sự nghiên cứu vẫn là con người. Nếu thế hệ kỹ sư tiếp theo bỏ qua giai đoạn rèn luyện nền tảng vì tác nhân đã lo phần đó, lĩnh vực này sẽ có thừa tài nguyên tính toán và thiếu người đủ kinh nghiệm để định hướng đúng đắn.
Câu hỏi thường gặp về AutoResearch
AutoResearch là gì?⌄
AutoResearch là công cụ Python mã nguồn mở của Andrej Karpathy cho phép một tác nhân viết mã AI chạy thí nghiệm ML trên một GPU duy nhất mà không cần con người can thiệp. Nó lặp qua các chu kỳ đề xuất–huấn luyện–đánh giá, chỉ giữ thay đổi cải thiện loss xác thực và loại bỏ phần còn lại bằng git revert.
Vòng lặp ratchet của AutoResearch hoạt động thế nào?⌄
Tác nhân đọc tệp program.md để lấy định hướng nghiên cứu, sửa train.py với thay đổi đề xuất, commit, chạy huấn luyện đúng 5 phút và đánh giá bằng val_bpb. Nếu điểm cải thiện, commit được giữ. Nếu không, git reset sẽ hoàn nguyên. Sau đó chu trình tự động lặp lại. skills override managed ones, which override bundled skills with the same name.
Kiến trúc ba tệp trong AutoResearch là gì?⌄
AutoResearch sử dụng ba tệp với quy tắc quyền sở hữu nghiêm ngặt. prepare.py là bất biến và phụ trách đánh giá. train.py là sân chơi của tác nhân nơi nó có thể sửa bất kỳ mã nào. program.md do con người viết và định nghĩa hướng nghiên cứu, ràng buộc, và quy tắc thí nghiệm. Không bên nào được chạm vào tệp của bên kia.
Những hạn chế của AutoResearch là gì?⌄
Hạn chế chính là trần sáng tạo. Vì cơ chế ratchet chỉ giữ các thay đổi cải thiện ngay lập tức val_bpb, tác nhân không thể bước lùi để chuẩn bị mức tăng lớn hơn. Nó có xu hướng xoay vòng các biến thể nhỏ của thứ đã hiệu quả, tìm các cải tiến gia tăng hơn là khám phá kiến trúc.
AutoResearch so với AutoML và AlphaEvolve như thế nào?⌄
Các khung AutoML và NAS tìm kiếm trong không gian tham số định sẵn bằng thuật toán có cấu trúc. AlphaEvolve dùng tiếp cận tiến hóa với các mô hình Gemini nhưng là mã đóng. AutoResearch trao cho LLM tự do sửa mã tùy ý, đặt cược vào kiến thức tổng quát thay vì không gian tìm kiếm bị ràng buộc, và hoàn toàn mã nguồn mở theo giấy phép MIT.
Tôi là người sáng tạo nội dung về khoa học dữ liệu với hơn 2 năm kinh nghiệm và là một trong những tài khoản có lượng người theo dõi lớn nhất trên Medium. Tôi thích viết các bài chuyên sâu về AI và ML với chút giọng điệu mỉa mai, vì bạn cũng phải làm gì đó để chúng bớt khô khan. Tôi đã xuất bản hơn 130 bài viết và một khóa học trên DataCamp, cùng với một khóa nữa đang được thực hiện. Nội dung của tôi đã được hơn 5 triệu lượt xem, trong đó 20 nghìn người đã trở thành người theo dõi trên cả Medium và LinkedIn.
AutoResearch của Andrej Karpathy là một công cụ mã nguồn mở chạy các thí nghiệm ML theo vòng lặp, chỉ giữ lại những thay đổi đánh bại kết quả tốt nhất hiện tại. Bạn mô tả hướng nghiên cứu trong một tệp markdown, trỏ một tác nhân AI viết mã vào repo, rồi rời máy. Đến sáng, bạn có lịch sử git các cải tiến đã được xác thực và nhật ký mọi thứ tác nhân đã thử.
Ra mắt ngày 7 tháng 3 năm 2026, dự án nhanh chóng đạt hơn 21.000 sao trên GitHub và 8,6 triệu lượt xem bài công bố của Karpathy chỉ trong vài ngày. Bài viết này trình bày cách kiến trúc ba tệp vận hành, vòng lặp ratchet làm gì trong những lượt chạy qua đêm, các kết quả AutoResearch đã tạo ra cho đến nay, và nơi phương pháp này chạm tới giới hạn.
AutoResearch là gì?
AutoResearch là một công cụ Python mã nguồn mở cho phép một tác nhân AI chạy thí nghiệm ML trên một GPU duy nhất mà không cần can thiệp của con người. Nó lặp qua các chu kỳ đề xuất–huấn luyện–đánh giá, chỉ giữ lại những thay đổi cải thiện loss trên tập xác thực. Dự án phát hành theo giấy phép MIT.
Đây không phải là tinh chỉnh siêu tham số (hyperparameter tuning). Các công cụ như Optuna hoặc Ray Tune tìm kiếm trong một không gian tham số được xác định trước. AutoResearch trao cho tác nhân quyền tự do sửa đổi mã tùy ý. Không gian tìm kiếm là bất cứ điều gì LLM có thể nghĩ ra, khiến nó trở thành một loại công cụ khác biệt so với mọi thứ hiện có.
AutoML và các khung NAS (Neural Architecture Search) tìm kiếm qua kiến trúc hoặc siêu tham số bằng các thuật toán có cấu trúc, chính xác nhưng bị ràng buộc trong không gian tìm kiếm đã định.
AlphaEvolve (Google DeepMind) tiến xa hơn với cách tiếp cận tiến hóa và các mô hình Gemini để khám phá thuật toán, nhưng là mã đóng và không thể tiếp cận với hầu hết các nhóm. Các tác nhân viết mã mục đích chung như SWE-Agent, OpenHands và Aider có thể viết mã tùy ý nhưng không được xây dựng cho chu trình thử nghiệm–đánh giá–giữ/lùi lại mà nghiên cứu ML thực sự cần.
AutoResearch đặt cược vào kiến thức tổng quát của LLM để đề xuất thí nghiệm tốt, thay vì ràng buộc không gian tìm kiếm để có đảm bảo toán học.
Từ “vibe coding” đến cố vấn nghiên cứu
Karpathy mô tả đây là bước tiến tự nhiên trong cách kỹ sư làm việc với AI. Tháng 2/2026, ông đặt ra thuật ngữ "agentic engineering": "99% thời gian bạn không trực tiếp viết mã. Bạn điều phối các tác nhân làm việc đó và đóng vai trò giám sát." AutoResearch tiến thêm một bước. Con người thậm chí không điều phối nữa. Họ mô tả thế nào là nghiên cứu tốt trong một tệp markdown rồi rời máy.
Tiến trình là: vibe coding (con người nhắc lệnh, AI viết mã, con người duyệt) đến agentic engineering (con người điều phối tác nhân theo thời gian thực) đến nghiên cứu hoàn toàn độc lập (con người đặt hướng, tác nhân tự chạy).
Mỗi bước làm giảm vai trò con người từ người viết thành đạo diễn rồi, theo cách gọi của Karpathy, thành cố vấn nghiên cứu.
Trong một bài đăng tiếp theo, ông mô tả bước kế tiếp: "Mục tiêu không phải là mô phỏng một nghiên cứu sinh Tiến sĩ, mà là mô phỏng cả một cộng đồng nghiên cứu sinh", ám chỉ sự hợp tác phân tán kiểu SETI@home giữa các tác nhân.
Cách hệ thống hiện thực hóa tầm nhìn đó quy về ba tệp.
Kiến trúc ba tệp của AutoResearch
Thiết kế của AutoResearch dựa trên một “hợp đồng” giữa ba tệp, mỗi tệp có quy tắc nghiêm ngặt về quyền chỉnh sửa.
prepare.py
prepare.pyphụ trách chuẩn bị dữ liệu và đánh giá. Nó xây dựng tokenizer BPE (Byte Pair Encoding) với vốn từ 8.192 token, xử lý tập huấn luyện và định nghĩa thước đo xác thực:val_bpb(bits-per-byte trên tập xác thực).Tệp này là bất biến: cả con người lẫn tác nhân đều không chỉnh sửa, đảm bảo mọi thí nghiệm được đo bằng cùng một thước đo.
train.py
train.pylà sân chơi của tác nhân: 630 dòng chứa kiến trúc mô hình GPT, bộ tối ưuMuon+AdamW, và toàn bộ vòng lặp huấn luyện. Tác nhân có thể viết lại bất cứ thứ gì ở đây (thay hàm kích hoạt, cấu trúc lại các đầu attention, đổi lịch học, sửa khởi tạo trọng số) miễn là mã sửa đổi vẫn huấn luyện được và tạo ra điểmval_bpb.program.md
program.mdđược viết bằng markdown thuần và là tệp duy nhất do tác giả con người chỉnh sửa. Nó chỉ dẫn cho tác nhân theo đuổi những hướng nghiên cứu nào, tránh gì, và cách tiếp cận thí nghiệm.Những gì
program.mdkiểm soátTệp này cụ thể hơn nhiều người nghĩ. Nó ghi cứng các chỉ số gốc để tác nhân biết phải vượt qua gì (
val_bpb: 0,997900, VRAM đỉnh (bộ nhớ video): 45 GB).Nó chỉ định lệnh chính xác để chạy thí nghiệm và trích xuất kết quả. Nó hướng dẫn tác nhân xử lý lỗi: sửa lỗi chính tả rồi chạy lại, bỏ qua những ý tưởng hỏng từ gốc, dừng mọi thứ chạy quá 10 phút.
Và nó bao gồm chỉ thị khiến cả hệ thống vận hành: "KHÔNG BAO GIỜ DỪNG. Khi vòng lặp thí nghiệm đã bắt đầu, KHÔNG tạm dừng để hỏi con người có nên tiếp tục hay không."
Cũng có một ràng buộc thiết kế định hình mọi thí nghiệm: "Nếu mọi thứ khác như nhau, đơn giản là tốt hơn. Một cải tiến nhỏ nhưng thêm sự phức tạp xấu xí thì không đáng." Điều này định hướng tác nhân tránh các giải pháp overengineer và ưu tiên thay đổi sạch sẽ mà người duyệt sẽ chấp thuận.
Phân công công việc rất rõ ràng. Con người đặt hướng nghiên cứu qua
program.md, tác nhân thực thi bằng cách sửatrain.py, vàprepare.pyđóng vai trọng tài trung lập mà không bên nào được chạm vào. Với “hợp đồng” đó, tác nhân chạy vòng lặp thí nghiệm liên tục không dừng.Vòng lặp Ratchet của AutoResearch
Cốt lõi của AutoResearch là một chu trình thí nghiệm chạy không cần đầu vào từ con người. Một lượt lặp đơn hoạt động như sau, theo vòng lặp 9 bước trong
program.md:program.mdđể hiểu ưu tiên và ràng buộc nghiên cứu hiện tại.train.pyhiện tại và các kết quả gần đây trongresults.tsv.train.pyđể hiện thực hóa thay đổi đề xuất.val_bpbvà ghi kết quả vàoresults.tsv.val_bpbđược cải thiện: commit được giữ. Nếu không:git reset HEAD~1quay về phiên bản trước.Sau đó quay lại bước 1.
Mỗi thí nghiệm có cùng ngân sách 5 phút, khiến các kết quả có thể so sánh trực tiếp. Một thay đổi giúp huấn luyện nhanh hơn và một thay đổi giúp hội tụ thấp hơn được đánh giá trên cùng một mặt bằng.
Với 5 phút mỗi thí nghiệm, hệ thống chạy khoảng 12 thí nghiệm mỗi giờ.
Tên "ratchet" xuất phát từ lịch sử git. Mỗi thí nghiệm thành công thêm một commit; mỗi thất bại bị revert. Mã nguồn chỉ có thể tiến về phía trước, không bao giờ lùi, tích lũy các cải tiến đã xác thực từng bước một.
Git như bộ nhớ nghiên cứu
Cấu trúc này giống các thuật toán tiến hóa, nhưng AutoResearch giữ một dòng dõi duy nhất thay vì một quần thể. Thay vì lai ghép và đột biến giữa các ứng viên, LLM vừa đóng vai “toán tử đột biến” (đề xuất thay đổi) vừa là “áp lực chọn lọc” (chọn thử gì dựa trên kết quả trước đó).
Nó đọc chính lịch sử git và
results.tsvđể phát huy những gì có triển vọng.Tệp
results.tsvtheo dõi mọi thí nghiệm: mã băm commit, điểmval_bpb, mức dùng bộ nhớ GPU, trạng thái pass/fail, và mô tả điều tác nhân đã thử.Bạn có một dấu vết kiểm toán rõ ràng để xem vào buổi sáng, và tác nhân dùng cùng nhật ký này để hiệu chỉnh bước tiếp theo. Các thí nghiệm đầu thường rộng (thử cấu hình bộ tối ưu khác nhau), về sau thu hẹp vào hướng nào được dữ liệu xác thực.
Bắt đầu với AutoResearch
Chạy AutoResearch cần máy có GPU NVIDIA (cấu hình mặc định nhắm đến GPU hiện đại với VRAM 20+ GB), Python 3.10+,
uv, và một tác nhân viết mã (Claude Code, Cursor, hoặc tương tự).Clone repo, cài phụ thuộc, và chuẩn bị dữ liệu:
Không có script điều phối. Không có
run.py, không pipeline, không framework.README nói hãy "đơn giản khởi chạy Claude/Codex hay bất kỳ thứ gì bạn muốn trong repo này."
Bạn mở một tác nhân viết mã trong thư mục dự án, nhắc nó đọc
program.md, và tác nhân sẽ tự chạy vòng lặp thí nghiệm.LLM chính là lớp tự động hóa. Theo dõi tiến độ bằng cách tail
results.tsvhoặc kiểm tra git log để xem các commit mới.Cấu hình mặc định huấn luyện một mô hình GPT trên bộ dữ liệu FineWeb-Edu, cần GPU đủ mạnh và vài giờ để thấy kết quả. Cho lần thử đầu trên phần cứng nhỏ hơn, Karpathy khuyến nghị chuyển sang bộ TinyStories và thu nhỏ mô hình bằng cách giảm vốn từ xuống 256 và độ sâu xuống 4.
Những thay đổi này hạ yêu cầu VRAM và rút ngắn mỗi thí nghiệm đủ để bạn thấy “ratchet” hoạt động trong vài giờ.
Cấu hình lượt chạy đầu tiên
Đọc
program.mdmặc định trước khi bắt đầu một lượt qua đêm. Tệp này định nghĩa chương trình nghị sự nghiên cứu mà tác nhân sẽ theo, và chỉnh sửa nó là cách bạn điều hướng thí nghiệm.Nếu bạn muốn tác nhân tập trung vào cơ chế attention, hãy nói rõ trong
program.md.Nếu bạn muốn nó tránh đụng vào bộ tối ưu, hãy thêm ràng buộc đó. Tác nhân sẽ không chệch khỏi những gì được viết ở đó.
Với một lượt qua đêm đầu tiên, kỳ vọng 80–100 thí nghiệm với khoảng 15–20 cải tiến được giữ lại. Một vài điều thực tế cần biết:
results.tsvvào buổi sáng thay vì nhìn terminal. Mẫu “bậc thang” của điểmval_bpbcải thiện kể câu chuyện tốt hơn các log riêng lẻ.Kết quả AutoResearch và trần sáng tạo
AutoResearch đã được thử nghiệm qua nhiều lượt chạy, từ thí nghiệm của chính Karpathy đến các bản tái hiện của cộng đồng và ứng dụng sản xuất.
Lượt chạy
Số thí nghiệm
Cải tiến được giữ
Kết quả
Lượt qua đêm ban đầu (một GPU)
83
15
val_bpb: 1,000 → 0,975
Lượt mở rộng 2 ngày (độ sâu-12)
~700
~20
Tất cả có tính cộng dồn; chuyển giao sang mô hình độ sâu-24
Tác động sản xuất
-
-
Thời gian đạt mốc GPT-2: 2,02h → 1,80h (nhanh hơn 11%)
Phiên cộng đồng
126
-
val_bpb: 0,9979 → 0,9697
Tác nhân đã tìm ra những thứ mà một con người làm việc có phương pháp cuối cùng cũng sẽ tìm thấy.
QKnormthiếu hệ số nhân để làm sắc nét attention, Value Embeddings hưởng lợi từ regularization, và có độ lợi ở tinh chỉnh attention theo dải, tham số beta củaAdamW, và lập lịch weight decay.Đây là những thay đổi cấu trúc mã, không phải quét siêu tham số ngẫu nhiên, và thử nghiệm thủ công từng cái sẽ tốn nhiều ngày.
CEO Shopify Tobi Lutke đã điều chỉnh AutoResearch cho một mô hình mở rộng truy vấn nội bộ và đạt cải thiện điểm xác thực 19% từ 37 thí nghiệm trên mô hình 0,8B tham số, báo cáo kết quả ngay ngày hôm sau khi bắt đầu.
Biểu đồ bậc thang là thật, nhưng mỗi bậc đều nhỏ. Tác nhân tìm ra các cải tiến thực sự, chỉnh tham số beta ở đây, thêm regularization ở kia. Chưa ai báo cáo việc nó phát minh cơ chế attention mới hay đề xuất ý tưởng kiến trúc mà một nhà nghiên cứu con người cuối cùng không nghĩ ra.
Trần sáng tạo
Vấn đề GitHub #22 nêu bật bài toán cấu trúc. Một người dùng nhận xét tác nhân luân phiên các biến thể nhỏ của thứ đã hiệu quả trước đó, mắc kẹt trong mẫu tìm kiếm cục bộ.
Cơ chế ratchet chỉ chấp nhận thay đổi cải thiện ngay
val_bpb, nên tác nhân không thể bước lùi để chuẩn bị cho mức tăng lớn hơn.Nhà nghiên cứu con người thường suy luận rằng "sẽ tệ hơn trước khi tốt hơn". Ratchet không có chỗ cho điều đó.
Karpathy thừa nhận một vấn đề liên quan trên Hacker News: tác nhân cảm thấy "rón rén và sợ hãi" với các bài toán mở.
Ông cho rằng nguyên nhân đến từ RLHF (Reinforcement Learning from Human Feedback), vốn thưởng cho đầu ra an toàn, thận trọng hơn là thử nghiệm táo bạo. Tác nhân có khả năng đề xuất thay đổi sáng tạo nhưng được huấn luyện để “chơi an toàn”.
Khung thời gian huấn luyện cố định 5 phút cũng là một ràng buộc khác.
Những thay đổi cho thấy giá trị nhanh sẽ được tìm ra; những thay đổi chỉ chứng minh được qua các lượt chạy dài hơn thì vẫn vô hình. Và chạy 100 thí nghiệm trên cùng tập xác thực mang rủi ro overfit: một số cải tiến có thể đặc thù cho phép đánh giá đó thay vì là độ lợi thực sự. Tính bất biến của
prepare.py, bảo chứng công bằng của hệ thống, cũng là điểm mù của nó.Cộng đồng đang tranh luận liệu trần này đến từ khuôn khổ hay từ mô hình nền tảng. Các đề xuất gồm tối ưu meta-prompt (một tác nhân thứ hai viết lại
program.mddựa trên kết quả), chỉ thị đa dạng thưởng cho tính mới bên cạnh cải thiện, và các thí nghiệm “reset” định kỳ bắt đầu từ một checkpoint sớm hơn để thoát cực trị cục bộ.Hiện tại, AutoResearch là công cụ tự động hóa phần công việc có phương pháp của nghiên cứu ML: chạy và đánh giá hàng trăm thí nghiệm nhỏ. Nó không thay thế phần sáng tạo — hình thành hướng nghiên cứu mới — vốn vẫn là việc của con người. Sự phân công này cũng là tín hiệu rõ nhất xem công cụ này có phù hợp với quy trình của bạn hay không.
Khi nào nên dùng AutoResearch
“Hợp đồng” ba tệp (bộ đánh giá bất biến, phần triển khai do tác nhân sửa, định hướng do con người viết) có thể chuyển sang ngoài phạm vi huấn luyện LLM sang bất kỳ miền nào bạn có thể định nghĩa hàm chấm điểm tự động.
Tối ưu xếp hạng tìm kiếm, phân loại sản phẩm, nhận dạng thực thể có tên trong y sinh, chấm điểm gian lận, phân loại ý định: các bài toán này có đặc điểm phù hợp. Mô hình nhỏ huấn luyện trong vài phút, hàm chấm điểm rõ ràng, và cải tiến có thể chuyển giao khi bạn mở rộng.
Khi thí nghiệm chạy nhanh hơn con người 100 lần, pipeline đánh giá trở thành nút thắt. Bộ chuẩn tĩnh nhanh bão hòa. Các nhóm áp dụng mẫu này cần tập đánh giá tiến hóa cùng dữ liệu sản xuất và các góc cạnh khó hơn.
Bản thân Karpathy chạy một “bản lớn hơn” của AutoResearch trên 8x H100 GPU với framework sản xuất
nanochat, cho thấy mẫu này mở rộng vượt ra các thí nghiệm đồ chơi. Cộng đồng đã fork cho macOS/Apple Silicon và đề xuất tích hợp cho GPU cũ hơn. Hướng dẫn CPU vs GPU giải thích vì sao phần cứng GPU là điều không thể thiếu cho kiểu huấn luyện lặp này.Nếu mục tiêu của bạn là vắt kiệt cải tiến gia tăng từ một pipeline huấn luyện đã hiểu rõ, AutoResearch là lựa chọn phù hợp. Trần sáng tạo nghĩa là bạn vẫn cần nhà nghiên cứu con người cho những bài toán đòi hỏi tính mới thực sự, và công cụ này phát huy tốt nhất ở phần lớn nghiên cứu mang tính lặp có phương pháp.
Kết luận
Viết một
program.mdtốt đòi hỏi chính bạn đã làm nghiên cứu đó. Bạn cần biết hướng nào đáng thử, “tốt hơn” nghĩa là gì với bài toán của bạn, và khi nào các độ lợi gia tăng đã cạn. Tác nhân đảm nhiệm thực thi, nhưng phán đoán đằng sau chương trình nghị sự nghiên cứu vẫn là con người. Nếu thế hệ kỹ sư tiếp theo bỏ qua giai đoạn rèn luyện nền tảng vì tác nhân đã lo phần đó, lĩnh vực này sẽ có thừa tài nguyên tính toán và thiếu người đủ kinh nghiệm để định hướng đúng đắn.