Sản phẩm
Bảng xếp hạng LoRA Speedrun: Tối ưu hóa thời gian tinh chỉnh Qwen2.5-1.5B chỉ trong 6 phút
(giờ Việt Nam)
Tóm tắt AI
Dự án LoRA Speedrun ra mắt bảng xếp hạng thi đấu tốc độ tinh chỉnh mô hình Qwen2.5-1.5B trên phần cứng L40S. Kỷ lục hiện tại đạt 6 phút 05 giây với độ chính xác 61.1% trên tập GSM8K, nhanh gấp đôi so với mức cơ sở nhờ kỹ thuật đóng gói chuỗi và che mặt nạ tổn thất.
Bản dịch AI
Bạn có thể LoRA-fine-tune Qwen2.5-1.5B để đạt ≥ 57% trên GSM8K nhanh đến mức nào — trên một GPU L40S duy nhất?
Đây là modded-nanogpt dành cho việc fine-tuning: một tác vụ cố định, phần cứng cố định và bảng xếp hạng công khai về thời gian thực (wall-clock). Mỗi kỷ lục đều được chạy lại độc lập 3 lần với các seed mới trên cùng một phần cứng trước khi được công nhận.
Việc thử nghiệm và xác minh hoàn toàn miễn phí: các lượt chạy tính giờ chính thức diễn ra trên môi trường sandbox Modal L40S, và các khoản tín dụng tính toán miễn phí hàng tháng của Modal đủ để chi trả cho các lượt chạy đầy đủ — vì vậy bất kỳ ai cũng có thể tham gia và bất kỳ ai cũng có thể xác minh lại bất kỳ kỷ lục nào chỉ với một câu lệnh.
Bảng xếp hạng
Track 1 — GSM8K · Qwen2.5-1.5B · mục tiêu ≥ 57.0% · 1× L40S
Kỷ lục hiện tại: 1 phút 44 giây bởi @stared — Cắt tỉa dữ liệu Shortest-4k, 1 epoch với aggressive-LR, loại bỏ các chú thích <<...>>, vòng lặp đóng gói (packed loop) tùy chỉnh trên GPU, chunked completion-only CE (không dùng full logits).
Track 2 — SQuAD v1.1 · SmolLM2-1.7B · mục tiêu ≥ 75.5% · 1× L40S
Kỷ lục hiện tại: 8 phút 45 giây bởi @Saivineeth147 — Track 2 baseline: LoRA cơ bản r=16 trên SQuAD, 20k ví dụ đầu tiên, 1 epoch, full-sequence loss. Không có thủ thuật nào khác.
Lịch sử đầy đủ kèm báo cáo xác minh: records/RECORDS.md · Bảng xếp hạng trực tiếp: huggingface.co/spaces/vineeth98/lora-speedrun
Các track
Hai track cố định, sử dụng các họ mô hình và loại tác vụ khác nhau một cách có chủ đích — để một kỹ thuật chỉ được chứng minh là có tính tổng quát khi giành chiến thắng ở cả hai. Phần cứng, giới hạn và quy trình xác minh đều đồng nhất ở mọi nơi.
Thông số kỹ thuật dạng máy đọc được: spec.yaml · spec-t2.yaml. Quy tắc đầy đủ: TASK.md.
Bạn kiểm soát mọi thứ còn lại: LoRA rank và vị trí đặt, lượng tử hóa (quantization), lịch trình learning-rate, đóng gói chuỗi (sequence packing), lựa chọn và sắp xếp tập dữ liệu con, kernel tùy chỉnh, thời điểm dừng. Hãy huấn luyện trên 1.000 ví dụ được chọn lọc kỹ lưỡng trong 90 giây nếu bạn có thể vượt qua ngưỡng yêu cầu.
Tại sao dự án này tồn tại
Tôi thường fine-tune các mô hình nhỏ với ngân sách hạn hẹp và tôi không thể phân biệt được đâu là tuyên bố tăng tốc thực sự. Mọi kỹ thuật — DoRA, rsLoRA, Unsloth, các thủ thuật đóng gói — đều báo cáo số liệu trên các mô hình, dữ liệu và phần cứng khác nhau. Trên thực tế, các tuyên bố này không thể kiểm chứng được.
Định dạng duy nhất mà tôi thấy thực sự giải quyết được những tranh luận như vậy là một tác vụ cố định với trọng tài. Đó là những gì nanoGPT speedrun đã làm cho các bộ tối ưu hóa tiền huấn luyện (Muon đã ra đời từ đó). Đây là đấu trường tương tự dành cho fine-tuning.
Mục tiêu hướng tới: một hồ sơ công khai đã được xác minh về việc những thủ thuật huấn luyện nào thực sự mang lại hiệu quả về thời gian thực và những thủ thuật nào không tồn tại được sau khi tái lập. Mỗi kỷ lục phải giải thích cơ chế của nó trong bài viết, vì vậy bảng xếp hạng cũng đóng vai trò như một cuốn sổ tay phòng thí nghiệm — các phần về biến thể bị loại bỏ thường hữu ích không kém gì các kỷ lục. Và vì các thủ thuật có thể bị overfitting trên một thiết lập nhất định, các kỷ lục được đặt trên các track với họ mô hình và loại tác vụ khác nhau: một kỹ thuật chỉ chứng minh được tính tổng quát khi có khả năng chuyển đổi (transferring).
Hướng dẫn nhanh
Chạy trên phần cứng chính thức (miễn phí). Tạo tài khoản Modal, sau đó:
Lặp lại cục bộ (tùy chọn). Bất kỳ card nào có 24 GB VRAM trở lên đều có thể chạy baseline để thử nghiệm nhanh — bash scripts/setup_gpu.sh, sau đó python harness/run_submission.py submissions/000-baseline --runs 1. Thời gian cục bộ không phải là chính thức; đồng hồ của bảng xếp hạng là Modal L40S.
Sau đó sao chép submissions/TEMPLATE/, tối ưu hóa nó và mở một PR. Xem CONTRIBUTING.md.
Cách các kỷ lục được xác minh
Một quy trình xác minh thực tế, được phát lại từ nhật ký (seed 463953844, nén thời gian): huấn luyện → kiểm tra tính toàn vẹn + kiểm định adapter → đánh giá → kết luận dựa trên 3 seed.
Giao thức đầy đủ, tiêu chí đánh giá và mô hình đe dọa: JUDGING.md · SECURITY.md.
Các ý tưởng chưa ai thực hiện
Đã thực hiện: sequence packing + completion-only masking (kỷ lục #1).
Lịch trình 1-epoch aggressive-LR · cắt tỉa dữ liệu (huấn luyện trên 2k ví dụ khó nhất?) · block-diagonal/varlen packing attention · đánh đổi QLoRA NF4 vs bf16 · khởi tạo rsLoRA / DoRA / PiSSA · LoRA+ (LR bất đối xứng cho A/B) · nhiễu NEFTune · sắp xếp theo chương trình (curriculum ordering) · tìm kiếm rank/vị trí (chỉ MLP vs chỉ attention) · torch.compile · kernel Unsloth · kernel Liger · fused cross-entropy · warmup thông minh hơn cho các lượt chạy ngắn.
Hãy chọn một ý tưởng, đánh bại mốc 6 phút 05 giây và ghi tên bạn lên bảng xếp hạng.
Câu hỏi thường gặp (FAQ)
LoRA này có phải là giao thức vô tuyến không? Không — LoRA (Low-Rank Adaptation) là cách tiêu chuẩn và tiết kiệm để fine-tune một mô hình ngôn ngữ: huấn luyện một adapter nhỏ trên nền một mô hình đã đóng băng (frozen). Cuộc thi: mọi người cùng fine-tune một mô hình đến cùng một điểm số trên cùng một GPU, và lượt chạy huấn luyện nhanh nhất được xác minh sẽ giữ kỷ lục.
Các kỹ thuật liệu có bị overfitting vào một mô hình + một tác vụ không? Đó chính xác là lý do tại sao có hai track với các họ mô hình và loại tác vụ khác nhau — và sẽ còn nhiều track khác tuân theo cùng một giao thức đóng băng và hiệu chuẩn. Một thủ thuật chỉ thắng ở một track vẫn là một kỷ lục, nhưng những kỹ thuật đáng tin cậy là những kỹ thuật có khả năng chuyển đổi. Hệ thống track biến điều đó thành một câu hỏi thực nghiệm thay vì một cuộc tranh luận.
Tại sao lại là Qwen2.5-1.5B? Chẳng phải nó được tiền huấn luyện trên toán học sao? Có lẽ vậy, giống như mọi mô hình cơ sở hiện đại khác. Điều đó không quan trọng: mục tiêu chỉ là một cái mốc, không phải là tuyên bố về khám phá toán học. Cuộc đua mới là phần thú vị — cũng giống như lý do nanoGPT speedrunning nhắm vào một giá trị val loss tùy ý. (Track 2 sử dụng một họ khác, SmolLM2, một phần cũng vì lý do này).
Tại sao dùng thời gian thực (wall-clock) thay vì FLOPs hay số bước? Vì thời gian thực là thứ bạn phải trả tiền, và nó buộc các kernel, việc tải dữ liệu và các thuật toán phải cạnh tranh trên cùng một đơn vị tiền tệ. Quy tắc tương tự như modded-nanogpt.
Tại sao dùng L40S trên Modal thay vì 4090 hay H100? Ba lý do. Đây là một SKU trung tâm dữ liệu nhất quán, vì vậy thời gian thực sự có thể so sánh được (các card tiêu dùng thuê ngoài thay đổi tùy theo máy chủ). Nó miễn phí thông qua tín dụng hàng tháng của Modal, vì vậy việc cạnh tranh và xác minh lại không tốn kém gì. Và các bài nộp là mã nguồn của người lạ — các sandbox của Modal chạy chúng trong môi trường chặn mạng và không có thông tin bí mật. (L40S sử dụng cùng kiến trúc silicon AD102 như 4090, nên các thủ thuật trên GPU tiêu dùng vẫn có thể áp dụng).
Tôi có thể huấn luyện trên dữ liệu khác / chưng cất (distill) từ mô hình lớn hơn không? Không. Chỉ được dùng tập huấn luyện GSM8K, không dùng mô hình giáo viên, không dùng dữ liệu tổng hợp. Xem TASK.md để biết danh sách cấm đầy đủ.
Nhiều GPU được không? Không. Một L40S duy nhất. Đó mới là vấn đề.
Giấy phép
Bài viết được AI dịch và tổng hợp tự động từ Hacker News Nổi bật (buzzing.cc bản dịch tiếng Trung). Liên kết bài gốc ở phía trên. Dữ liệu đồng bộ qua API công khai được ghi nguồn tại AI HOT (canonical) ↗. AIHOT.vn luôn dẫn nguồn đầy đủ — nếu bạn thấy điểm cần chỉnh sửa, hãy gửi ý kiến tại trang phản hồi.