12 điểm bởi GN⁺ 17 ngày trước | 1 bình luận | Chia sẻ qua WhatsApp
  • Simple Self-Distillation (SSD) là phương pháp giúp mô hình ngôn ngữ lớn cải thiện hiệu năng bằng cách học lại từ chính đoạn mã do nó tự sinh ra, không cần mô hình giáo viên hay học tăng cường
  • Trên mô hình Qwen3-30B-Instruct, SSD nâng điểm pass@1 trên LiveCodeBench v6 từ 42.4% lên 55.3%, với mức cải thiện +15.3 điểm phần trăm ở nhóm bài khó
  • SSD giảm xung đột giữa độ chính xác và khám phá trong quá trình sinh mã, đồng thời ức chế xác suất đuôi theo ngữ cảnh nhưng vẫn giữ được tính đa dạng hữu ích
  • Chỉ điều chỉnh nhiệt độ hay thay đổi chính sách giải mã không thể tái tạo cùng hiệu quả, vì SSD tái định hình chính phân bố nội tại của mô hình
  • Đây là quy trình học hậu xử lý đơn giản có thể áp dụng mà không cần dữ liệu hay bước kiểm chứng bên ngoài, đưa ra một lựa chọn thay thế thực tiễn để nâng cao chất lượng sinh mã của LLM

Tự chưng cất đơn giản (Simple Self-Distillation, SSD)

  • SSD (Simple Self-Distillation) là phương pháp giúp mô hình ngôn ngữ lớn (LLM) cải thiện hiệu năng bằng cách sử dụng chính đầu ra mã do nó tự sinh ra, không cần mô hình giáo viên, bộ kiểm chứng hay học tăng cường
    • Mô hình sinh mẫu với thiết lập nhiệt độ (temperature)cắt ngưỡng (truncation) nhất định, rồi học lại kết quả đó bằng fine-tuning có giám sát chuẩn (SFT)
    • Không cần dữ liệu gán nhãn bên ngoài, mô hình phần thưởng hay môi trường thực thi
  • Mô hình Qwen3-30B-Instruct được nâng điểm pass@1 trên LiveCodeBench v6 từ 42.4% lên 55.3% (+12.9 điểm phần trăm, +30% cải thiện tương đối)
    • Mức cải thiện lớn nhất xuất hiện ở nhóm bài khó (hard split) với +15.3 điểm phần trăm
    • Kết quả này khái quát tốt trên nhiều mô hình 4B, 8B, 30B thuộc cả họ Qwen và Llama
  • SSD hoạt động bằng cách làm dịu xung đột chính xác-khám phá (precision-exploration)
    • Trong quá trình sinh mã, một số token đòi hỏi độ chính xác cao (“lock”), trong khi số khác cần khám phá đa dạng (“fork”)
    • SSD ức chế phần phân bố đuôi không cần thiết theo ngữ cảnh nhưng vẫn giữ lại sự đa dạng hữu ích

1. Bối cảnh nghiên cứu

  • Thiếu tín hiệu giám sát chất lượng cao (ví dụ: mã do con người viết) khiến việc cải thiện năng lực sinh mã của LLM bị hạn chế
  • Hạn chế của các cách tiếp cận hiện có
    • Chưng cất dựa trên mô hình giáo viên: kế thừa giới hạn hiệu năng của chính mô hình giáo viên
    • Học tăng cường (RL): cần mô hình phần thưởng và kiểm chứng dựa trên thực thi, đồng thời thiếu ổn định
    • Các phương án không giám sát (ví dụ: bỏ phiếu đa số, tối thiểu hóa entropy): có nguy cơ sụp đổ trong huấn luyện dài hạn
  • SSD chứng minh rằng có thể cải thiện chỉ bằng đầu ra của chính mô hình, không cần dữ liệu hay kiểm chứng bên ngoài

2. Phương pháp SSD

  • Tổng hợp dữ liệu

    • Với tập prompt bài toán X cho trước, lấy mẫu từ mô hình pθ bằng nhiệt độ Ttrainthiết lập cắt ngưỡng ρtrain (top-k, top-p)
    • Đầu ra sinh ra (y) được dùng nguyên trạng làm dữ liệu huấn luyện (DSSD)không qua kiểm chứng
    • Trong đa số trường hợp, N=1 (một mẫu cho mỗi bài) là đủ
  • Huấn luyện

    • Thực hiện fine-tuning có giám sát bằng hàm mất mát cross-entropy chuẩn
    • L(θ) = −E(x,y)∼DSSD Σ log pθ(yt | x, y<t)
  • Suy luận

    • Giải mã mô hình đã huấn luyện pθ* bằng nhiệt độ đánh giá Teval và thiết lập cắt ngưỡng ρeval

3. Thực nghiệm

  • Cấu hình mô hình

    • Llama-3.1-8B-Instruct, Qwen3-4B/30B (Instruct, Thinking) cùng 5 mô hình
    • 2 họ mô hình (Llama, Qwen), 3 quy mô (4B, 8B, 30B), 2 kiểu suy luận (Instruct, Thinking)
  • Dữ liệu

    • Sử dụng khoảng 10K bài lập trình thi đấu từ bộ dữ liệu rSTARcoder
    • Chỉ áp dụng lọc cú pháp đơn giản, không kiểm chứng đáp án đúng/sai
  • Thiết lập huấn luyện

    • Dựa trên Megatron-LM, dùng 8×B200 GPU
    • Bộ tối ưu AdamW, độ dài chuỗi tối đa 65,536
    • Mô hình Instruct huấn luyện 2,500 bước, mô hình Thinking huấn luyện 300 bước
  • Đánh giá

    • Dùng LiveCodeBench v6 (LCB v6) làm benchmark chính
    • Đánh giá theo pass@1, pass@5 và chia theo độ khó (Easy/Medium/Hard)

4. Kết quả chính

  • Cải thiện hiệu năng tổng thể

    • Qwen3-30B-Instruct: 42.4% → 55.3% pass@1 (+12.9 điểm phần trăm)
    • Qwen3-4B-Instruct: +7.5 điểm phần trăm, Llama-8B: +3.5 điểm phần trăm
    • Các mô hình Thinking cũng tăng +2~3 điểm phần trăm
  • Cải thiện theo độ khó

    • Qwen3-30B-Instruct: Easy +6.5 điểm phần trăm / Medium +14.2 điểm phần trăm / Hard +15.3 điểm phần trăm
    • Với mô hình Thinking, nhóm Hard cũng là nơi cải thiện lớn nhất
  • Duy trì tính đa dạng

    • Mức tăng của pass@5 lớn hơn pass@1 → tính đa dạng sinh đầu ra được duy trì và còn được cải thiện
    • Ví dụ: Qwen3-30B-Instruct pass@5 +18.1 điểm phần trăm (Hard +23.0 điểm phần trăm)
  • Khái quát theo miền

    • Ngoài lập trình thi đấu, hiệu năng cũng được giữ vững ở các tác vụ toán học, mã tổng quát và hiểu nội dung

5. So sánh chính sách giải mã

  • Chỉ chỉnh nhiệt độ không thể tái tạo hiệu ứng của SSD

    • Kết quả quét nhiệt độ trên mô hình gốc: biên độ thay đổi pass@1 chỉ khoảng 1.5–3.0 điểm phần trăm
    • Trong cùng điều kiện, SSD cải thiện tới +11.8 điểm phần trăm trên Qwen3-30B-Instruct
    • Khoảng cách này đặc biệt lớn ở bài Hard và chỉ số pass@5
    • SSD thay đổi chính phân bố nội tại của mô hình, nên không thể thay thế chỉ bằng điều chỉnh giải mã đơn thuần

6. Tương tác siêu tham số

  • Tích của nhiệt độ huấn luyện (Ttrain)nhiệt độ đánh giá (Teval), tức Teff = Ttrain × Teval, là yếu tố quyết định hiệu năng
    • Hiệu năng cao nhất xuất hiện quanh Teff ≈ 1.2
    • Ttrain càng cao thì mô hình càng nhạy với thay đổi của Teval
  • Thêm cắt ngưỡng (truncation) giúp nâng trần hiệu năng
    • Thiết lập tối ưu: Ttrain=2.0, Teval=1.1, top-k=10 → pass@1 49.7% (+7.3 điểm phần trăm)
    • Cắt ngưỡng mang lại cải thiện bổ sung nhờ loại bỏ phần đuôi xác suất thấp

7. Cơ chế hoạt động của SSD

  • Xung đột chính xác-khám phá (Precision–Exploration)

    • Lock: vị trí mà đáp án gần như cố định về mặt cú pháp → cần nhiệt độ thấp
    • Fork: vị trí có thể tồn tại nhiều cách giải → cần nhiệt độ cao
    • Rất khó để một mức nhiệt độ duy nhất thỏa mãn đồng thời cả hai yêu cầu
  • Vai trò của SSD

    • Lock, SSD ức chế xác suất đuôi để tăng độ chính xác
    • Fork, SSD làm phẳng xác suất giữa các ứng viên hàng đầu để duy trì tính đa dạng khám phá
    • Kết quả là mô hình thực hiện tái định hình phân bố phụ thuộc ngữ cảnh

8. Kiểm chứng thực nghiệm

  • Thí nghiệm trong môi trường mô phỏng

    • Áp dụng SSD trong môi trường đơn giản có cấu trúc 1 lần Fork + 3 lần Lock
    • Sau SSD, xác suất thành công tăng lên và khoảng nhiệt độ tối ưu được mở rộng
    • Điều này xác nhận rằng huấn luyện và giải mã bổ trợ cho nhau
  • Phân tích trên mô hình thực

    • Sau SSD, xác suất tích lũy của các token hàng đầu tăng, còn xác suất đuôi giảm
    • Ngay cả ở Teval cao, số lượng ứng viên hàng đầu hiệu quả tăngentropy tăng
    • Nói cách khác, SSD đồng thời đạt được loại bỏ phần đuôimở rộng phân bố phần đầu

9. Phân tích lý thuyết

  • Hàm mất mát huấn luyện của SSD được phân rã thành ba thành phần
    1. Support Compression: loại bỏ xác suất đuôi
    2. Within-Support Reshaping: tái định hình phân bố trong phần hỗ trợ
    3. Alignment to Base Model: duy trì căn chỉnh với mô hình gốc
  • Lock, thành phần thứ nhất chiếm ưu thế → loại bỏ đuôi
  • Fork, thành phần thứ hai phát huy tác dụng → làm phẳng phân bố phần đầu
  • Entropy tổng thể giảm, nhưng entropy khám phá hữu ích vẫn được giữ lại
  • Việc chỉ điều chỉnh giải mã đơn thuần không thể thực hiện kiểu tái định hình theo từng ngữ cảnh này

10. Thí nghiệm với dữ liệu bất thường

  • Với Ttrain=2.0, không cắt ngưỡng, có tới 62% dữ liệu sinh ra là nhiễu vô nghĩa (gibberish)
  • Dù vậy, sau khi áp dụng SSD
    • pass@1: 42.4% → 48.1% (+5.7 điểm phần trăm)
    • pass@5: 53.5% → 64.0% (+10.5 điểm phần trăm)
    • Ở bài Hard, tăng +7.3 điểm phần trăm / +13.8 điểm phần trăm
  • Điều này cho thấy SSD có thể tạo ra cải thiện không phải nhờ chất lượng đáp án đúng, mà nhờ học cấu trúc phân bố

Kết luận

  • Simple Self-Distillation (SSD)
    • giúp cải thiện hiệu năng sinh mã chỉ bằng đầu ra của chính mô hình, không cần giáo viên hay kiểm chứng bên ngoài
    • giảm xung đột giữa độ chính xác và khám phá, đồng thời đạt được cải thiện có tính khái quát thông qua tái định hình phân bố
  • SSD là một phương pháp post-training đơn giản nhưng mạnh mẽ, có thể áp dụng ở giai đoạn hậu huấn luyện, và đưa ra một lựa chọn thay thế thực tiễn để nâng cao chất lượng sinh mã của LLM

1 bình luận

 
Ý kiến trên Hacker News
  • Điều khiến bài báo này thú vị là nó đã hiện thực hóa khái niệm giải mã nhận biết ngữ cảnh (context-aware decoding)
    Bài viết giải thích rằng trong quá trình sinh mã, các điểm ‘fork’ (nhánh sáng tạo nơi có nhiều cách diễn giải) và điểm ‘lock’ (quyết định cú pháp đòi hỏi độ chính xác) xuất hiện xen kẽ
    Điều ấn tượng là kỹ thuật SSD(Simple Self-Distillation) cải thiện thứ hạng của token tối ưu trong cả hai tình huống, giúp mô hình hoạt động sáng tạo hơn khi cần khám phá và chính xác hơn khi cần độ chuẩn xác

    • Thực ra, việc phát hiện ra những đặc tính mới của LLM có cảm giác không quá đáng ngạc nhiên mà là điều hiển nhiên
      Ngay cả bộ não con người cũng đã được nghiên cứu hàng nghìn năm mà vẫn còn nhiều phần chưa thể lý giải
      Ngay cả emergent behavior của luồng giao thông cũng chỉ đến gần đây mới được hiểu rõ
      Vì vậy việc tiếp tục khám phá các đặc tính mới của LLM là điều tự nhiên
    • Điểm thú vị là mô hình dùng cùng một lượng tính toán cho cả token ‘fork’ lẫn ‘lock’
      Nếu dùng lấy mẫu dựa trên ngữ pháp hoặc grammar-aware decoding, thì những token duy nhất theo ngữ pháp có thể được chèn thẳng vào mà không cần gọi mô hình
      Nhưng trong các hệ thống đang được dùng rộng rãi hiện nay, cách này hầu như không được áp dụng
      Tôi tự hỏi liệu có thể có một cách tiếp cận tổng quát hơn, trong đó các lựa chọn quan trọng dùng nhiều tính toán hơn, còn các token hiển nhiên thì dùng ít tính toán hơn
    • Tôi từng gặp vấn đề mode collapse khi fine-tune một mô hình nhỏ, nhưng vấn đề được giải quyết khi tôi xáo trộn ngẫu nhiên thứ tự các trường trong lúc huấn luyện
      Tôi đang cân nhắc liệu khi suy luận có nên áp dụng cùng cách đó không
    • Điều thú vị là SSD vẫn có hiệu quả ngay cả khi không cần điều chỉnh temperature theo thời gian thực hay dự đoán điểm fork/lock
    • Khái niệm này không chỉ áp dụng cho mã mà còn có thể áp dụng cho nội dung sinh sinh khác nói chung
      Trong mã, điểm khác biệt chỉ là cấu trúc rõ ràng hơn; còn cơ chế fork/lock thì dùng được trên nhiều miền bài toán khác nhau
  • Self-Distillation có vẻ là hướng đi cốt lõi cho sự phát triển của LLM
    Nghiên cứu Self-Distillation Fine-Tuning(SDFT) do nhóm MIT và ETH công bố đã cho thấy hiệu quả cao
    SSD(Simple Self-Distillation) trong bài này thực chất gần như là phần nối dài của hướng đó, chỉ khác tên gọi
    Cái tên SSD cũng gây rối vì trùng với SSD(ổ lưu trữ thể rắn)
    Tôi ước gì bài này thừa nhận rõ hơn nguồn gốc và phả hệ từ nghiên cứu SDFT gốc

  • Gần đây tôi xem một video chạy Gemma 4 cục bộ với tốc độ 50 token mỗi giây
    Nó đã cho thấy năng lực ở mức Sonnet 3x~4
    Nếu cộng thêm các kỹ thuật như SSD, có lẽ đến khoảng năm 2028 các mô hình code rẻ mà mạnh sẽ trở nên phổ biến
    Các lập trình viên lành nghề rất có thể sẽ chạy mô hình riêng như một trình chuyển mã không tất định biến ngôn ngữ tự nhiên thành mã

    • Tôi cũng hay nghĩ về điều đó. Nếu huấn luyện mô hình chỉ trên các phiên bản mới nhất của những ngôn ngữ tôi dùng như PHP, SQL, JS..., liệu nó có thể trở thành một mô hình nhỏ hơn và nhanh hơn nhiều không
      Bây giờ cảm giác như đang ‘xây nhà trên đống đinh’
    • Tất nhiên, đến lúc đó các frontier model có bộ nhớ theo dự án và khả năng học theo nhu cầu cũng có thể áp đảo mô hình cá nhân
  • Giả thuyết cốt lõi của SSD là xung đột precision–exploration tương tự với vấn đề mà Adaptive Decoding đang cố giải quyết

    • Tôi cũng rất quan tâm đến Adaptive Decoding
      Có vẻ hiển nhiên rằng trong lúc suy luận, những thời điểm cần tư duy sáng tạo thì phải dùng temperature cao, còn những thời điểm cần độ chính xác cú pháp thì phải dùng temperature thấp
  • Chỉ cần lặp đi lặp lại câu hỏi “đây có phải giải pháp thanh nhã nhất không?” thôi cũng đã cải thiện đầu ra của LLM một cách thấy rõ
    Nếu mô hình có thể dễ dàng tìm ra câu trả lời tốt hơn như thế, thì tại sao nó không làm vậy ngay từ đầu?

    • Trên thực tế, giải pháp thanh nhã hiếm khi xuất hiện ở lần thử đầu tiên
      Trước tiên phải tạo ra một lời giải chạy được, rồi tinh chỉnh nhiều lần thì cuối cùng mới trở nên gọn gàng
    • Lập trình viên con người cũng vậy
      Có người suy nghĩ nửa ngày rồi mới viết mã, có người triển khai ngay lời giải đầu tiên
      LLM hiện tại gần với kiểu thứ hai hơn
  • Nghiên cứu này rất có thể sẽ dẫn tới các mô hình sinh mã tốt hơn
    Nhưng chúng ta vẫn chưa thật sự hiểu điều gì đang diễn ra trong không gian nhiều chiều
    Rốt cuộc, chúng ta vẫn đang khám phá theo kiểu ‘ném thử rồi xem có dính không’

  • Những đột phá trong machine learning thường trông khá đơn giản từ bên ngoài
    Transformer cũng vậy, và SSD lần này cũng thế
    Có lẽ là vì chúng ta vẫn chưa có được nền tảng lý thuyết đủ sâu

    • Quả thật, như nhiều khám phá khác, sự đơn giản thường là dấu hiệu của tính đúng đắn
      Sự phức tạp nhiều khi là tín hiệu cho thấy mức độ hiểu biết còn thiếu
      Theo kinh nghiệm lập trình của tôi, đây là một quy luật khá đáng tin
  • Trớ trêu thay, Apple vẫn công bố nghiên cứu AI còn OpenAI thì không

    • Tôi cũng thấy điều đó lạ. Có vẻ chẳng có lý do gì phải giữ kín cả
    • Có lẽ là vì OpenAI vẫn chưa có một ‘thị trường’ để bảo vệ
  • Có người tóm tắt bài báo này là “một mô hình được fine-tune để chỉ cho ra kết quả tốt trên benchmark code”, nhưng thực tế không phải vậy

    • Nếu đọc bài báo, ta sẽ thấy rằng không có bước kiểm chứng đáp án hay đánh giá chất lượng, mà chỉ đơn giản đưa đầu vào benchmark vào rồi dùng chính đầu ra sinh ra để huấn luyện lại
      Sau đó, mô hình với thiết lập giải mã đã điều chỉnh (temp, top-k) cho kết quả tốt hơn bản gốc
      Nói cách khác, đây không phải fine-tune để bám benchmark đơn thuần mà là cải thiện hiệu năng dựa trên chính đầu ra của mô hình
  • Có thể ví nghiên cứu này với luyện tập golf
    Sau khi đánh bóng hàng nghìn lần để tự động hóa cú swing cơ bản, người ta sẽ có thể tự tin thử các cú đánh sáng tạo và mạo hiểm hơn trong thi đấu thực tế
    SSD cũng là một cách tiếp cận như vậy: củng cố các mẫu nền tảng để tạo thêm dư địa cho những lựa chọn sáng tạo