- Một khung nghiên cứu tự trị khép kín, nén lõi huấn luyện LLM của nanochat xuống còn khoảng 630 dòng trong một GPU duy nhất và một tệp duy nhất, nơi tác nhân AI tự động lặp lại các thí nghiệm huấn luyện LLM suốt đêm
- Con người chỉnh sửa
prompt, còn tác nhân AI chỉnh sửa mã huấn luyện → huấn luyện với ngân sách thời gian cố định 5 phút → so sánh kết quả → lặp lại vòng giữ lại hoặc loại bỏ
- Tác nhân vận hành theo vòng lặp tự trị trên git feature branch, và mỗi khi đạt được validation loss thấp hơn ở các yếu tố như kiến trúc mạng nơ-ron, optimizer, hyperparameter, v.v., nó sẽ tích lũy git commit vào script huấn luyện
- Mục tiêu là thiết kế một tác nhân tạo ra tiến bộ nghiên cứu nhanh nhất mà không cần sự can thiệp của con người
Tổng quan dự án
- Dựa trên bản triển khai đơn giản hóa chạy trên một GPU của nanochat, với cấu trúc để tác nhân AI tự chủ sửa đổi và thử nghiệm mã huấn luyện
- Tác nhân lặp lại vòng sửa mã → huấn luyện 5 phút → kiểm tra kết quả → giữ lại/loại bỏ, còn người dùng sẽ xem log thí nghiệm và mô hình đã được cải thiện vào sáng hôm sau
- Có thể kết nối tác nhân mong muốn như Claude, Codex vào repo này, cho nó đọc
program.md, rồi bắt đầu thí nghiệm
Cấu trúc tệp cốt lõi (chỉ 3 tệp quan trọng)
prepare.py - chứa hằng số cố định, chuẩn bị dữ liệu (tải dữ liệu huấn luyện, huấn luyện BPE tokenizer), tiện ích runtime (data loader, đánh giá); không phải đối tượng chỉnh sửa
train.py - tệp duy nhất mà tác nhân chỉnh sửa; bao gồm toàn bộ mô hình GPT, optimizer (Muon + AdamW), vòng huấn luyện; có thể chỉnh sửa mọi yếu tố như kiến trúc, hyperparameter, optimizer, batch size, v.v.
program.md - tệp chỉ dẫn cơ bản dành cho tác nhân; do con người chỉnh sửa và đóng vai trò như một kỹ năng gọn nhẹ để thiết lập hướng nghiên cứu tự trị của tác nhân
Nguyên tắc thiết kế
- Chỉnh sửa một tệp duy nhất: tác nhân chỉ sửa
train.py, giúp phạm vi thay đổi luôn dễ quản lý và việc xem xét diff trở nên thuận tiện
- Ngân sách thời gian cố định: luôn chạy đúng 5 phút bất kể nền tảng → khoảng 12 lần mỗi giờ, khoảng 100 thí nghiệm trong lúc ngủ
- Có thể so sánh trực tiếp giữa các thí nghiệm bất kể thay đổi về kích thước mô hình, batch size, kiến trúc, v.v.
- Nhược điểm: không thể so sánh với kết quả chạy của người khác trên nền tảng không giống hệt
- Tính khép kín: không có phụ thuộc bên ngoài ngoài PyTorch và một vài package nhỏ; không có huấn luyện phân tán; không có cấu hình phức tạp
Yêu cầu và cách chạy
- Yêu cầu: một GPU NVIDIA duy nhất (đã thử nghiệm trên H100), Python 3.10+, trình quản lý package
uv
- Hiện chỉ dành cho GPU NVIDIA, chưa bao gồm hỗ trợ cho các nền tảng khác như CPU/MPS để tránh làm phình to mã nguồn
- Nếu cần hỗ trợ nền tảng rộng hơn, nên tham khảo repo nanochat cấp trên; đã có sẵn fork macOS (
miolini/autoresearch-macos)
- Khi chạy tác nhân, hãy chạy Claude/Codex v.v. trong repo, tắt mọi quyền hạn, sau đó prompt để nó đọc
program.md và bắt đầu thí nghiệm
Ý đồ thiết kế của program.md mặc định
program.md mặc định được giữ như một baseline tối thiểu một cách có chủ đích
- Có thể dùng theo cách lặp lại cải tiến dần theo thời gian để tìm ra “mã tổ chức nghiên cứu” đạt tiến bộ nghiên cứu nhanh nhất
- Cấu trúc cũng cho phép mở rộng rõ ràng như thêm tác nhân hoặc cụ thể hóa chỉ dẫn
2 bình luận
Hãy làm cả ROCm của AMD nữa
Tweet giới thiệu của Karpathy
> Tôi chuẩn bị thứ này cho những ai muốn thử dùng trong dịp cuối tuần.
> Một tác phẩm pha trộn giữa code, khoa học viễn tưởng và một chút điên rồ :)
Sao thầy lại làm chuyện này vào cuối tuần vậy