Chào mừng Reviewer đến với kho dự án Recursive Reasoning Models! Hệ thống đã được thiết lập sẵn sàng cho việc training và inference các mô hình đệ quy qua 7 cấu hình chuẩn.
Đảm bảo bạn đã sinh dữ liệu (Phase 2) với data/metadata.json đã có sẵn.
Đăng nhập Weights & Biases (W&B): Hệ thống sử dụng W&B làm công cụ logging (Tier 1) bắt buộc. Bạn cần đăng nhập trước khi chạy:
- Trên Windows (Local):
Mở Terminal/PowerShell và gõ:
Sau đó dán API key của bạn vào.
wandb login
- Trên Linux (Kaggle/Colab):
Thêm đoạn code sau vào một cell hoặc chạy trên terminal trước khi gọi script:
!pip install wandb !wandb login <YOUR_API_KEY>
Để tiến hành huấn luyện, sử dụng script train.py. Tham số quan trọng nhất là cấu hình yaml.
Câu lệnh chuẩn:
python scripts/train.py --config_path config/base_loop.yamlTesting nhanh: Nếu bạn chỉ muốn test luồng code mà không muốn chờ chạy hết epoch, có thể dùng các cờ sau:
--test_batches X: Chạy nhanh mô hình trên X batches thay vì toàn bộ dataset. Rất hữu ích để check lỗi hoặc dry-run.--run_name "Tên_Run": Đặt tên tuỳ chỉnh cho run trên WandB để dễ phân biệt (ví dụ:--run_name "BaseLoop_Test1"). Nếu không có cờ này, tên run sẽ được tự động tạo.--batch_size X: Ghi đè cấu hìnhbatch_sizetrực tiếp từ Terminal mà không cần sửa file YAML.--num_epochs X: Ghi đè số lượng epochs trực tiếp từ Terminal (VD:--num_epochs 2).
Ví dụ test nhanh 5 batches với số epoch nhỏ (ví dụ 2) và gắn tên run:
python scripts/train.py --config_path config/test_arch/base_loop.yaml --test_batches 5 --num_epochs 2 --run_name "DryRun_BaseLoop"Các file config hiện có:
config/base_loop.yaml-> Lưu checkpoint tênBaseLoop_final.ptconfig/base_loop_enforced.yaml-> Lưu checkpoint tênBaseLoopEnforced_final.ptconfig/prelude_coda.yaml-> Lưu checkpoint tênPreludeCoda_final.ptconfig/prelude_coda_enforced.yaml-> Lưu checkpoint tênPreludeCodaEnforced_final.ptconfig/prelude_coda_mismatch.yaml-> Lưu checkpoint tênPreludeCodaMismatch_final.ptconfig/prelude_coda_mismatch_enforced.yaml-> Lưu checkpoint tênPreludeCodaMismatchEnforced_final.ptconfig/trm.yaml-> Lưu checkpoint tênTRM_final.pt
(Lưu ý: Nếu dùng --test_batches, tên checkpoint sẽ tự động cộng thêm suffix, ví dụ: BaseLoop_5batches.pt)
Để chạy test, sinh biểu đồ Extrapolation / Interpolation:
Câu lệnh chuẩn:
python scripts/inference.py --config_path config/base_loop.yaml --checkpoint_path outputs/checkpoints/BaseLoop_final.ptCác tham số tùy chỉnh:
--test_batches <int>: Khai báo số lượng batch validation muốn chạy test (Mặc định chạy hết toàn bộ tập Val).--num_loops <int>: Khai báo số vòng lặp khi nội suy / ngoại suy. (Mặc định lấy từmax_train_loopscủa config).--print_samples <int>: Số lượng samples in ra console trong lúc inference (Mặc định: 5). Phải nhỏ hơn hoặc bằngbatch_size.
Ví dụ:
python scripts/inference.py --config_path config/base_loop.yaml --checkpoint_path outputs/checkpoints/BaseLoop_final.pt --test_batches 5 --num_loops 10Hình ảnh sẽ tự động được sinh và lưu tại thư mục tương ứng với Model, ví dụ: outputs/BaseLoop_5batches_10loops/ hoặc outputs/BaseLoop/ nếu chạy toàn bộ.