- 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ổ và 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
Ý 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
Tôi đã thử viết một hướng dẫn về sampling cho Ollama/llama.cpp
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
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
Liệu mô hình LLM có thể ngầm thực hiện tokenization không?
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
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
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