3 điểm bởi GN⁺ 2025-05-06 | 1 bình luận | Chia sẻ qua WhatsApp
  • Các phương pháp lấy mẫu của mô hình ngôn ngữ lớn (LLM) được giải thích trong một hướng dẫn tổng hợp để ngay cả người mới cũng có thể hiểu
  • Token là gì, vì sao dùng token thay vì từ, cùng với quy trình mô hình tạo sinh văn bản được trình bày chi tiết
  • Lấy mẫu là quá trình điều chỉnh độ đa dạng và tính tự nhiên của đầu ra, đồng thời giới thiệu nhiều thuật toán lấy mẫu như Temperature, Top-K, Top-P, DRY
  • Mỗi kỹ thuật lấy mẫu được giải thích kèm mô tả khái niệm và nguyên lý hoạt động về mặt toán học/thuật toán, đồng thời so sánh các hiệu quả như ngăn lặp, tăng tính sáng tạo, điều chỉnh độ nhất quán
  • Tài liệu còn tổng hợp cả thứ tự kết hợp, tương tác và các trường hợp xung đột giữa các sampler, nên rất hữu ích cho các nhà phát triển muốn kiểm soát tinh vi chất lượng sinh văn bản

Intro Knowledge

Short Glossary

  • Logits là các giá trị chưa chuẩn hóa biểu thị điểm số của từng token
  • Softmax là hàm chuyển logits thành phân phối xác suất đã được chuẩn hóa
  • Entropy biểu thị mức độ bất định của dự đoán; càng cao thì mức độ không chắc chắn về token tiếp theo càng lớn
  • Perplexity là chỉ số cho biết mức độ tự tin của mô hình, giá trị càng thấp thì mô hình càng chắc chắn
  • n-gram là chuỗi gồm n token liên tiếp
  • Context window là số token tối đa mà mô hình có thể xử lý trong một lần

Why tokens?

Why not letters?

  • Token hóa theo từng ký tự làm chuỗi trở nên quá dài, dẫn tới chi phí tính toán tăng và khó liên kết thông tin

Why not whole words?

  • Cách tiếp cận dựa trên từ gặp các vấn đề như kích thước từ vựng bùng nổkhó biểu diễn từ mới hoặc từ hiếm
  • Cách tiếp cận dựa trên Sub-word có thể tách tiền tố, gốc từ và hậu tố để xử lý, nên hiệu quả trong việc hiểu hình vị và chuyển giao học đa ngôn ngữ

How are the sub-words chosen?

  • Từ điển được xây dựng bằng cách tìm các đơn vị từ con (sub-word) xuất hiện thường xuyên nhất thông qua mẫu đại diện của dữ liệu huấn luyện

How does the model generate text?

  • Trong quá trình huấn luyện, mô hình học phân phối xác suất của token tiếp theo từ lượng lớn văn bản
  • Khi suy luận, mô hình tính xác suất cho mọi token có thể có và chọn token tiếp theo theo kỹ thuật lấy mẫu

From Tokens to Text

  • Bước dự đoán: tính phân phối xác suất cho tất cả token ứng viên
  • Bước lựa chọn: chọn token theo một chiến lược lấy mẫu cụ thể
  • Nếu chỉ đơn giản chọn token có xác suất cao nhất thì văn bản tạo ra dễ nhàm chán hoặc lặp lại, vì vậy kỹ thuật lấy mẫu rất quan trọng

Sampling

Temperature

  • Giá trị thấp cho kết quả bảo thủ và lặp lại hơn, còn giá trị cao thúc đẩy kết quả sáng tạo hơn nhưng tăng khả năng lỗi
  • Chia logits cho giá trị nhiệt độ để điều chỉnh độ sắc nét (mức độ tập trung) của phân phối xác suất

Presence Penalty

  • Những token đã từng xuất hiện sẽ bị giảm khả năng tái xuất hiện
  • Chỉ xét việc đã xuất hiện hay chưa, không tính số lần xuất hiện

Frequency Penalty

  • Bị trừ điểm tỷ lệ theo số lần xuất hiện
  • Từ xuất hiện càng nhiều thì bị phạt càng lớn, từ đó góp phần tăng tính đa dạng

Repetition Penalty

  • Áp dụng mức phạt bất đối xứng lên logit dương/âm đối với các token đã xuất hiện trước đó
  • Hiệu quả trong việc ngăn lặp theo vòng lặp, nhưng có thể làm hại tính nhất quán của ngữ cảnh

DRY (Don't Repeat Yourself)

  • Phát hiện sự lặp lại của các mẫu n-gram và giảm xác suất của những token dự đoán ra phần lặp
  • Cụm càng dài và càng mới lặp lại gần đây thì bị ức chế càng mạnh
  • Đặc biệt hiệu quả trong giảm lặp mà vẫn giữ được độ tự nhiên ở văn bản sáng tạo

Top-K

  • Chỉ giữ lại K ứng viên hàng đầu và loại bỏ các token còn lại
  • Loại bỏ các mẫu cực đoan nhưng vẫn duy trì một mức ngẫu nhiên nhất định

Top-P (Nucleus Sampling)

  • Chỉ giữ lại các token cho đến khi tổng xác suất tích lũy đạt từ P trở lên, phần còn lại bị loại bỏ
  • Kích thước tập ứng viên thay đổi theo độ tự tin của mô hình nên có tính thích ứng

Min-P

  • Dựa trên token có xác suất cao nhất, chỉ giữ lại những token đạt ít nhất một tỷ lệ tối thiểu so với nó
  • Việc lọc được điều chỉnh động theo mức tự tin của mô hình

Top-A

  • Lọc ứng viên bằng ngưỡng tỷ lệ với bình phương xác suất của token có xác suất cao nhất
  • Mô hình càng tự tin thì bộ lọc càng nghiêm ngặt

XTC

  • Với một xác suất nhất định, cố ý loại bỏ các ứng viên có xác suất cao nhất để hướng mô hình đến lựa chọn kém chắc chắn hơn
  • Kỹ thuật dành cho các phản hồi phi chuẩn hoặc mang tính sáng tạo

Top-N-Sigma

  • Chọn các token hợp lệ dựa trên độ lệch chuẩn của phân phối xác suất
  • Lọc dựa trên đặc trưng thống kê nên có thể linh hoạt ứng phó với nhiều tình huống khác nhau

Tail-Free Sampling (TFS)

  • Dùng đạo hàm bậc hai (độ cong) của độ dốc xác suất để phân biệt ứng viên có ý nghĩa với các ứng viên đuôi dài
  • Đây là cách lọc nhằm tìm ra điểm cắt tự nhiên

Eta Cutoff

  • Điều chỉnh động tiêu chí lọc theo entropy (mức độ bất định) của phân phối
  • Mô hình càng chắc chắn thì càng nhiều token bị loại bỏ, còn khi kém chắc chắn thì linh hoạt hơn

Epsilon Cutoff

  • Dùng ngưỡng xác suất cố định để loại bỏ các token xác suất thấp
  • Đơn giản nhưng dễ dự đoán, và hữu ích để loại bỏ phần đuôi dài không cần thiết

Locally Typical Sampling

  • Ưu tiên các token có surprisal kỳ vọng (độ lệch so với dự đoán) gần với giá trị trung bình
  • Thúc đẩy lựa chọn "điển hình" thay vì token có khả năng cao nhất hoặc token kỳ lạ nhất

1 bình luận

 
GN⁺ 2025-05-06
Ý kiến trên Hacker News
  • Không đề cập rằng sampler không thể truy cập trạng thái nội bộ của mô hình

    • Chỉ là áp dụng toán học lên phân phối đầu ra, và nếu không thông minh bằng mô hình thì không thể giải mã được
    • Các sampler như repetition penalty hoặc DRY buộc mô hình không tự lặp lại, điều này cho thấy cần huấn luyện tốt hơn
    • Việc “hack” quy trình tự hồi quy cho phép có những cải tiến đơn giản như Min-P
    • Cố biến một mô hình kém thành mô hình tốt là cách tiếp cận sai
  • Tôi đã thử viết một hướng dẫn về sampling cho Ollama/llama.cpp

    • Rất sẵn sàng đón nhận phản hồi hoặc đề xuất chỉnh sửa
  • Khi cố khiến LLM xuất ra một "ý tưởng", việc chọn từ vector logit hẳn sẽ phá vỡ ý tưởng ban đầu

    • Nếu ý tưởng đã hoàn chỉnh thì không cần sampling trên logit nữa
  • Mọi thứ đều được giải thích rất đơn giản, mở ra cơ hội để thử những điều mới

    • Ví dụ, nếu dùng cả từ hoàn chỉnh làm token thì sao?
    • Có thể tạo ra một "robot" với một "thổ ngữ robot" giới hạn
    • Sẽ không có khả năng chứa từ mới hay từ hiếm, nhưng có thể chỉnh sửa dữ liệu huấn luyện và dữ liệu đầu vào để dịch sang vốn từ hiện có
    • Điều đó giúp đặt kỳ vọng cho người dùng về kiểu câu trả lời mà robot có thể trả lời tốt
  • Liệu mô hình LLM có thể ngầm thực hiện tokenization không?

    • Thay vì xây dựng tokenizer riêng, dùng chuỗi ký tự và cho phép mạng nơ-ron chuyển chúng thành token
    • Trọng số của mạng đó được huấn luyện cùng với phần còn lại của LLM
  • Liên quan đến đó, bài báo min_p của chúng tôi đã xếp thứ 18 trong số 12000 bài nộp tại ICLR

    • Poster rất được quan tâm
    • Có một cuộc thảo luận với Yoshua Bengio trong phần trình bày miệng
    • Có thể xác nhận rằng Top N sigma hiện là sampler phổ biến nhất
    • Temperature hiện có thể được chỉnh cao hơn rất nhiều so với mức đang dùng
    • Trường hợp đặc biệt với top_k = 2 và siêu nhiệt độ là cực kỳ thú vị
  • Tôi tự hỏi liệu sampling có thực sự giải quyết được giới hạn của mô hình hay chỉ che phủ một vấn đề sâu xa hơn

  • "Sampling" bao hàm nhiều thứ hơn tôi nghĩ rất nhiều

  • Đây là một tài liệu rất hữu ích, giải thích rõ ràng và bao quát được nhiều nội dung

    • Không biết có ai biết ai là tác giả không
    • Phần DRY - "repetition penalty" rất thú vị
    • Tôi thường muốn LLM xuất ra bản sao chính xác của đầu vào
    • Khi tóm tắt các cuộc trò chuyện dài, tôi yêu cầu những trích dẫn nguyên văn chính xác và giàu tính diễn đạt nhất
    • DRY penalty có thể xung đột với mục tiêu này
  • Tôi đã không nhận ra rằng có rất nhiều thao tác diễn ra sau bước chọn nhiệt độ softmax ban đầu