Kỹ thuật phát hiện độ bất định của LLM
(thariq.io)- Entropix là một dự án đọc độ bất định của LLM tại thời điểm chọn token tiếp theo, rồi thay đổi cách lấy mẫu theo từng trạng thái để nâng cao chất lượng suy luận
- Tiêu chí đánh giá là entropy và varentropy (entropy phương sai) của phân phối logits; bằng cách kết hợp hai giá trị này, trạng thái tự tin của mô hình được chia thành 4 loại
- Khi mô hình ở trạng thái tự tin cao, lấy mẫu argmax là phù hợp; nhưng khi có nhiều ứng viên mạnh, có thể so sánh các đường đi bằng cách phân nhánh (branching)
- Trạng thái entropy cao có thể là tình huống mô hình thật sự không biết, hoặc các lựa chọn về cơ bản là ngang nhau, nên cần các phản ứng như chèn token suy nghĩ (thinking token), điều chỉnh nhiệt độ, hoặc phân nhánh
- Hiện vẫn chưa có đánh giá quy mô lớn, nên hiệu quả còn chưa chắc chắn; tuy vậy, lấy mẫu tại thời điểm suy luận là một lĩnh vực có thể thử cải thiện bằng các thí nghiệm mã nguồn mở mà không cần ngân sách lớn
Vấn đề Entropix nhắm tới
- Entropix là dự án do XJDR phát triển, theo cách tiếp cận thay đổi chiến lược lấy mẫu khi mô hình bất định để cải thiện suy luận
- Hiện vẫn chưa có đánh giá quy mô lớn về Entropix, nên mức cải thiện hiệu năng thực tế chưa rõ ràng
- Tuy vậy, lấy mẫu dựa trên độ bất định cung cấp một phương pháp thử nghiệm và mô hình tư duy để nhìn nhận suy luận của LLM theo cách khác
Độ bất định của LLM bộc lộ ở đâu
- Lấy mẫu là quá trình quyết định LLM sẽ chọn token nào trong logits, tức phân phối các token khả dĩ
- Mức độ tự tin của mô hình có thể được quan sát từ phân phối logits cho token tiếp theo
- Nếu tự tin cao, xác suất sẽ tập trung rõ rệt vào một số token
- Nếu tự tin thấp, các ứng viên token tiếp theo sẽ trải rộng hơn
- Độ bất định không phải lúc nào cũng là tín hiệu xấu, và có thể có nhiều nguyên nhân
- Khi các token là từ đồng nghĩa hoặc về cơ bản tương đương, như
goodvàgreat - Khi có các đường phân nhánh, chẳng hạn một chương trình có thể được viết bằng Java hoặc bằng C
- Khi mô hình không biết phải làm gì, hoặc gặp đầu vào ngoài phân phối (out of distribution) mà nó chưa thấy trong dữ liệu huấn luyện
- Khi các token là từ đồng nghĩa hoặc về cơ bản tương đương, như
Entropy và varentropy
- Entropix đo độ bất định bằng entropy và varentropy (entropy phương sai) của logits
- Entropy cho biết các logits dự đoán khác nhau đến mức nào, thể hiện độ bất định đối với kết quả có khả năng cao nhất
- Với entropy thấp, mô hình khá tự tin về một số logits
- Với entropy cao, phân phối logits trở nên đồng đều hơn và mức tự tin giảm
- Varentropy là chỉ số cho thấy hình dạng (shape) của độ bất định
- Varentropy cao nghĩa là một số giá trị khác biệt lớn so với các giá trị khác
- Hai chỉ số này dựa trên khái niệm surprisal (self-information)
- Surprisal đo mức độ bất ngờ của một sự kiện so với xác suất của nó
- Khi xác suất của sự kiện
xlàP(x), surprisal làI(x) = -log₂(P(x)) - Nếu
P(x) = 1/8thì surprisal là 3 bit, còn nếuP(x) = 1/2thì là 1 bit
- Entropy là giá trị kỳ vọng của surprisal trên tất cả các kết quả khả dĩ
- Varentropy được tính như phương sai của surprisal, cho biết một số kết quả bất ngờ hơn bao nhiêu so với surprisal trung bình
4 trạng thái bất định
- Khi xem entropy và varentropy cùng nhau, có thể chia trạng thái mô hình thành 4 loại
- Entropy thấp · varentropy thấp: phân phối nhọn, trong đó một kết quả có xác suất rất cao
- Entropy thấp · varentropy cao: phân phối có vài đỉnh khác nhau
- Entropy cao · varentropy thấp: phân phối đồng đều hoặc gần như đồng đều
- Entropy cao · varentropy cao: phân phối trải rộng nhưng không đồng đều
Lấy mẫu thích ứng theo trạng thái
-
Entropy thấp · varentropy thấp
- Đây là trạng thái lý tưởng, khi mô hình tương đối tự tin không chỉ về lựa chọn đầu tiên mà cả về phương án thay thế nếu lựa chọn đó sai
- Danh sách ứng viên thường được sắp xếp gọn gàng, nên lấy mẫu argmax, tức chọn token có xác suất cao nhất, là phù hợp
-
Entropy thấp · varentropy cao
- Đây là trạng thái mô hình dự đoán một vài lựa chọn với xác suất rất cao
- Trạng thái này khó phán đoán, vì nó có thể đại diện cho cả một đường xuất mới, hoặc chỉ là tình huống nhiều cách diễn đạt đều khả dĩ như từ đồng nghĩa
- Một cách phản ứng khả dĩ là phân nhánh (branching): dự đoán cả hai logits, đi theo từng đường, rồi so sánh kết quả sau một thời điểm nhất định
- Nếu các kết quả phân nhánh có mức tự tin tương tự nhưng nội dung khác nhau, có thể chuyển điều đó thành câu hỏi cho người dùng
-
Entropy cao · varentropy thấp
- Mô hình có thể đang ở trạng thái ít tự tin, hoặc mọi lựa chọn có thể thay thế cho nhau
- Entropix đề xuất khi đó đưa token suy nghĩ vào làm token tiếp theo để đẩy mô hình sang trạng thái tự tin hơn
- Ví dụ là các token như
Wait.. - Token suy nghĩ được chèn vào đầu ra như một tín hiệu rằng mô hình cần dành thêm thời gian tính toán để suy nghĩ trước khi đưa ra câu trả lời
- Ví dụ, khi mô hình định dự đoán
The capital of Germany is Parisnhưng không chắc chắn, việc chènWaitcó thể khiến chuỗi tiếp diễn thànhThe capital of Germany is Paris… Wait, no, it’s actually Berlin
-
Entropy cao · varentropy cao
- Không có ứng viên hàng đầu rõ ràng, nhưng mô hình tự tin vào một số đầu ra hơn những đầu ra khác
- Vì các lựa chọn hàng đầu có thể đều là lựa chọn tốt như từ đồng nghĩa, có thể chọn ngẫu nhiên với nhiệt độ (temperature) cao hơn
- Cũng có thể dùng các cách như ở những trạng thái trước, chẳng hạn phân nhánh hoặc chèn token suy nghĩ
Khác biệt giữa phân nhánh và token suy nghĩ
- Cả hai phương pháp đều nhằm dùng thêm tính toán suy luận trong trạng thái bất định
- Dự đoán phân nhánh đi theo một vài logits để xem chúng dẫn đến những token khác nào
- Thường được gọi là MCTS (Monte Carlo Tree Search)
- Cách này đã được thử nghiệm nhiều trong LLM, nhưng kết quả chỉ ở mức trung bình
- Đánh đổi chính là mỗi nhánh không thể tận dụng tính toán của các nhánh khác
- Token suy nghĩ là cách bảo đảm thêm tính toán trong trạng thái bất định mà không dùng tính toán để khám phá các nhánh có thể bị loại bỏ
- Việc chèn
Wait…khiến AI nhận ra rằng nó có thể đã mắc lỗi
- Việc chèn
- Việc phân nhánh hay token suy nghĩ tốt hơn vẫn là một câu hỏi nghiên cứu mở
Tín hiệu dựa trên attention
- Entropix cũng dùng một phần các phép đo entropy khác khi điều chỉnh nhiệt độ
- Attention Entropy cho biết một attention head đang bám theo một token cụ thể, hay phân tán chú ý lên nhiều token trong ngữ cảnh
- Attention Agreement cho thấy nhiều attention head có cùng chú ý tới một token hay đang nhìn vào các token khác nhau
- Nếu entropy của head thấp và agreement cao, đó có thể là tín hiệu bổ sung rằng có thể lấy mẫu token có xác suất cao nhất
- Nếu agreement thấp, các head khác nhau có thể đang đóng góp vào các dự đoán khác nhau, nên đáng cân nhắc phân nhánh
Vì sao điều này quan trọng
- Ý tưởng của Entropix dễ hiểu và cũng không hoàn toàn mới, nhưng nó khiến ta suy nghĩ lại việc cải thiện suy luận LLM ở giai đoạn lấy mẫu
- Ngay cả khi các đánh giá chưa xác nhận lợi ích lớn, những kỹ thuật tại thời điểm suy luận như vậy tương đối dễ thử nghiệm
- Đây có thể là một hướng hứa hẹn để các hacker mã nguồn mở thử cải thiện suy luận mà không cần ngân sách lớn
1 bình luận
Ý kiến trên Hacker News
Người ta nói rằng Charles Babbage đã hai lần bị hỏi: “Thưa ông Babbage, nếu đưa các con số sai vào máy thì nó có cho ra câu trả lời đúng không?”
Đây là lời Babbage nói rằng ông không thể hiểu nổi sự rối rắm trong tư duy đã sinh ra một câu hỏi như vậy
Những kỹ thuật dựa trên lấy mẫu như thế này là một trong số ít trường hợp có thể thử cải thiện các mô hình hiện đại bằng phần cứng tiêu dùng
Có lẽ sẽ không kéo dài lâu, và cuối cùng sẽ có các bộ lấy mẫu có thể huấn luyện được, nhưng hiện tại thì rất đáng để thoải mái mày mò: https://github.com/codelion/optillm
Các tác giả optillm dường như cho rằng phần tính toán bổ sung của Entropics không đem lại kết quả tốt hơn so với giải mã chuỗi suy luận đơn giản. Không rõ họ đã kiểm tra cả hiệu quả hay chưa: https://x.com/asankhaya/status/1846736390152949966
Nhiều vấn đề của LLM có vẻ đến từ rò rỉ ngữ nghĩa hoặc hiện tượng sự chú ý bị phân tán vào thông tin không liên quan, như trong bài báo GSM Symbolic; có lẽ vẫn còn dư địa để cải thiện attention
Tôi cũng đã viết vài bài liên quan: https://zzbbyy.substack.com/p/semantic-leakage-quick-notes, https://zzbbyy.substack.com/p/llms-and-reasoning, https://zzbbyy.substack.com/p/o1-inference-time-turing-machi...
Có người tuyên bố chúng hoạt động tốt hơn, nhưng không có benchmark nghiêm ngặt để chứng minh. Kiểu như “bài viết hay hơn”, “văn phong mới mẻ hơn”; ở điểm này tôi nghĩ LeCun đúng 100%. Đánh giá một mô hình đa dụng bằng việc nó làm tốt ở “thơ” hay “văn xuôi” gần như chính là định nghĩa của thiên lệch, và chẳng khác nào tự trói chân mình bằng các giai thoại cá nhân
Tôi muốn xem kết quả khi áp dụng vào lập trình hoặc toán học. Chẳng hạn, cần benchmark kỹ trước và sau để xem bộ lấy mẫu có hoạt động tốt hơn trên các bài toán Olympic hay không
Hoặc đó có thể là một điểm yếu căn bản hơn của cơ chế attention. Hiện cũng đang xuất hiện các phương án thay thế
Tôi không chắc dự án này có dựa trên bài báo học thuật hay không, tức là có dùng một kỹ thuật công khai nào để đánh giá độ bất định của LLM hay không
Trong các công trình gần đây, cái này trông khá liên quan: https://learnandburn.ai/p/how-to-tell-if-an-llm-is-just-gues...
Ở đây họ dùng ý tưởng entropy ngữ nghĩa, tinh vi hơn entropy chuẩn của logit token, và phù hợp hơn để định lượng về mặt thống kê xem LLM đang đoán hay có độ tin cậy cao. Bài báo gốc là một bài trên Nature của các tác giả Oxford
Cũng có một nghiên cứu [1] khái quát hóa cách tiếp cận này hơn, thực hiện phân cụm mềm dựa trên khái niệm tương đương ngữ nghĩa giữa các đầu ra được lấy mẫu
Tuy vậy vẫn có điểm cần lưu ý. Gần đây chúng tôi đã công bố một bài báo [2] benchmark tổng hợp các kỹ thuật mới nhất về ước lượng độ bất định của LLM, và trong nhiều trường hợp các phương pháp xét đến ngữ nghĩa hoạt động rất tốt, nhưng ở các tác vụ khác, các baseline đơn giản như entropy trung bình của phân phối token lại tương đương hoặc thậm chí tốt hơn các kỹ thuật phức tạp
Ngoài ra, chúng tôi cũng đang phát triển một thư viện Python mã nguồn mở [3] triển khai các kỹ thuật ước lượng độ bất định mới nhất có thể áp dụng cho LLM, đồng thời giúp dễ dàng benchmark các phương pháp ước lượng và ước lượng độ bất định của đầu ra từ các mô hình đang vận hành
[1] https://arxiv.org/abs/2307.01379
[2] https://arxiv.org/abs/2406.15627
[3] https://github.com/IINemo/lm-polygraph
Tôi đã theo dõi khá sát, và thấy thú vị vì các mô hình nhỏ có vẻ có thể hiệu quả hơn với bộ lấy mẫu này. Nếu quan tâm thì đáng đọc các bài đăng đó; kiểu lấy mẫu này có cảm giác là một việc rất có ý nghĩa
Như tôi đã viết trong một bình luận khác, tác giả dường như đang có một hiểu lầm căn bản, và nhìn vào ghi chú ở đầu bài thì có vẻ vì thế mà chưa tạo ra được kết quả thực dụng thực sự
Tôi không có ý chỉ trích hay làm nản lòng. Có thể họ đã nắm bắt được điều gì đó, và những cách tiếp cận độc đáo như vậy đáng để thử. Chỉ là vì những lý do đã nói, nếu không có hiệu quả tích cực thì khó mà thành bài báo, nên việc không có bài báo học thuật về cách tiếp cận này cũng không đáng ngạc nhiên
Khi entropy cao, tôi cho rằng mô hình cần có một lối thoát
Cần kích hoạt cảnh báo rằng độ chắc chắn của toàn bộ câu trả lời thấp, tích lũy điểm độ chắc chắn trong quá trình sinh, để cuối cùng người dùng có thể kiểm tra xem độ chắc chắn của câu trả lời có quá tệ hay không. Những câu trả lời như vậy phải có thể bị loại bỏ hoặc thay bằng “Tôi không biết”
Khi so sánh nhiều phương pháp định lượng độ bất định của mô hình trong lĩnh vực này, người ta thường thực hiện kiểm chứng refusal. Về cơ bản là liên tục từ chối các điểm dữ liệu có độ bất định cao, rồi xem chất lượng trung bình của các đầu ra còn lại tăng lên như thế nào. Một ước lượng độ bất định tốt phải tương quan mạnh với chất lượng đầu ra, nên chất lượng trung bình của các đầu ra có độ bất định thấp phải cao hơn
Một benchmark gần đây về các cách tiếp cận ước lượng độ bất định của LLM [1] cũng dùng đúng phương pháp này, và một thư viện mã nguồn mở [2] cho phép thực hiện các benchmark như vậy cũng đang được phát triển. Nó cũng có thể tạo điểm độ bất định cho đầu ra của một mô hình cụ thể, nên có thể tích hợp vào ứng dụng trong môi trường công nghiệp
[1] https://arxiv.org/abs/2406.15627
[2] https://github.com/IINemo/lm-polygraph
Vì vậy entropy cao nhiều khi là tín hiệu “không chắc chắn”, nhưng mô hình cũng có thể rất thường xuyên tự tin mà sai. Do đó, dùng entropy của logit làm chỉ báo độ tin cậy rất dễ gây hiểu lầm lớn
Tôi không phải chuyên gia LLM; đây là suy nghĩ dựa trên hiểu biết về các bộ phân loại nói chung. Tôi tò mò liệu khi có đủ dữ liệu thì cân nhắc này có còn áp dụng nữa hay không
Cũng có thể thử nghiệm việc đẩy mạnh về phía các câu trả lời từ chối, và tôi khuyên bạn nên tự thử. Kho smollm-entropix [1] triển khai toàn bộ bằng Jupyter Notebook nên dễ thử nghiệm ý tưởng hơn
[1]: https://github.com/SinatrasC/entropix-smollm
Các GPT lớn hiện đại xuất ra logit của một bộ phân loại khổng lồ trên toàn bộ từ vựng token
Chúng nằm trong một không gian nào đó, và ta không chỉ có thể giả định một đa tạp với các tính chất lồi không tầm thường, mà còn có thể tính toán theo kinh nghiệm. Bài toán xác định LLM nào đã viết một đoạn văn nào đó, kể cả trong trường hợp được chỉ thị dùng một giọng văn cụ thể, là một bài toán được định nghĩa tốt hoặc gần như đã được giải trên thực tế
Đây không chỉ là một vấn đề từng được nghiên cứu, mà còn là lĩnh vực đang có tiến bộ nhanh và ấn tượng, nhưng đến một thời điểm nào đó người ta đơn giản là tắt nó đi
Trở thành người giỏi nhất trong lĩnh vực này là một cơ hội kinh doanh khổng lồ. Và đó là kiểu việc điển hình mà startup nên làm. Lý do là các công ty lớn nhiều tiền khó xuất hiện với tư cách đối thủ cạnh tranh; không phải vì họ phớt lờ thị trường, mà vì họ chủ động không muốn thị trường này tồn tại
Cách giải thích này nghe gần giống như thuật toán tìm đường trong mê cung. Ở đây, thời gian tính toán tương ứng với “sẽ đi theo một đường sâu đến mức nào để thử xem đó có phải nghiệm khả dĩ hay không”
Tôi tự hỏi liệu còn điểm tương đồng nào khác không. Ví dụ, có thuật toán giải mê cung nào có thể áp dụng cho LLM không?
Nói thật thì nó đi ngược lại Bitter Lesson(http://www.incompleteideas.net/IncIdeas/BitterLesson.html). Bài học đó cũng bắt nguồn từ việc xử lý quá tinh vi việc tìm kiếm trong mê cung trong cờ vua. Nhưng ở quy mô LLM hiện nay, những cải tiến như thế này có thể đáng giá
Mỗi lần đọc về những tối ưu hóa tiềm năng kiểu này, tôi lại thấy khó hiểu vì sao mọi người có thể tin và dùng LLM với mức giám sát tối thiểu
Họ thật sự tin rằng các sản phẩm “AI” dùng LLM đủ năng lực để điều khiển máy tính hoặc viết mã chính xác sao? Chẳng phải theo thiết kế thì mọi thứ đều là “ảo giác” hoặc phỏng đoán sao? Liệu có thật sự vượt qua được chuyện đó không?
Đó là các chương trình gửi thao tác tới máy, truy vấn kết quả/lỗi/đầu ra, lưu chúng vào .csv rồi chuyển thành file Excel được định dạng đẹp mắt. Chúng cũng cung cấp hướng dẫn khởi động cho kỹ thuật viên, cho biết phải kết nối thế nào trong từng bài kiểm thử cụ thể
Tôi không phải lập trình viên, và công ty chúng tôi cũng không có lập trình viên. Vậy mà nó viết ra đoạn mã hoạt động đúng như tôi yêu cầu. Khi bị kẹt trong lúc phát triển, tôi đưa lại mã vào ChatGPT để nó giải quyết, và cuối cùng mọi thứ đều được xử lý. Mất khoảng một ngày; nếu tự tôi làm thì chắc mất một tháng, còn thuê ngoài thì sẽ tốn 10.000 đô la và một tuần
LLM có thể tệ đối với các dự án lập trình cao cấp lương cao. Nhưng với những người cần làm việc gì đó bằng máy tính mà không vượt qua được rào cản ngôn ngữ để bảo máy tính phải làm gì, nó là một phước lành
Nó vững chắc và chính xác hơn nhiều so với mã tôi thường viết. Tôi đã lập trình 20 năm rồi
Chỉ là một cơn sốt nữa thôi. Giống như Client/Server, Industry 4.0, Machine Learning, Microservices, Cloud, Crypto
Đã có ai thử xem đầu ra sẽ ra sao nếu khiến mô hình tuyệt đối không bao giờ được bất định chưa?
Ví dụ, mỗi khi độ chắc chắn rơi xuống dưới ngưỡng, bộ lấy mẫu sẽ quay lại và chọn token khác. Cuối cùng, mọi token đơn lẻ đều sẽ có độ chắc chắn trên ngưỡng
Chắc là không thể loại bỏ hoàn toàn các đầu ra không mong muốn, nhưng sẽ thú vị đấy
Hoặc nó cũng có thể nói “Tôi không biết” với sự chắc chắn tuyệt đối
Chiến lược lấy mẫu của mô hình ngôn ngữ có hàng tỷ kiểu
Vấn đề là rất khó chứng minh bằng thực nghiệm rằng một chiến lược lấy mẫu nào đó tốt hơn lấy mẫu top-k hay top-p tiêu chuẩn. Chỉ tối thiểu hóa perplexity là chưa đủ để chứng minh tính ưu việt của một phương pháp cụ thể. Chiến lược được đề xuất trong bài blog cũng gặp cùng vấn đề. Về lý thuyết thì nghe hợp lý, nhưng trên thực tế là một đổi mới chưa được kiểm chứng
Rất khó chứng minh vì khó nói rõ “tốt hơn” là gì, và chi phí thu thập những thứ như dữ liệu sở thích là lớn
Sau khi xem nhiều mẫu, theo lẽ thường vẫn có thể nói rằng “nếu muốn tối ưu X thì phương pháp này có vẻ hoạt động tốt hơn”
Giới hạn của câu trả lời từ LLM có nhiều chiều hơn rất nhiều so với chỉ một thứ là “bất định”
Chẳng hạn “câu hỏi/câu không có nghĩa”, “không đủ thông tin để trả lời”, “có thông tin rằng đồng thuận của chuyên gia là ‘không ai thật sự có thể biết’”, v.v.
Con người có xu hướng muốn giản lược lý do vì sao một câu hỏi khó trả lời thành vấn đề bất định, nên cũng nhìn câu trả lời của LLM như thể chỉ có một mức độ bất định duy nhất. Nhưng đó là nhân cách hóa
Ảnh AI, và trước đó là nhiếp ảnh, đã cho thấy những cách mới lạ và từng không tưởng tượng được mà hình ảnh có thể sai: trông như thật nhưng sai. Tương tác ngôn ngữ AI cũng làm điều tương tự theo cách tinh vi hơn
Cho đến nay việc này chủ yếu được làm bằng học tăng cường, nhưng cách bắt và xử lý ở thời điểm suy luận cũng có vẻ đáng khám phá. Nó cũng dễ tiếp cận hơn nhiều với mã nguồn mở. Loại học tăng cường này là việc chỉ các phòng thí nghiệm ML lớn mới làm được
Tôi cảm thấy nhân cách hóa là một phần trong chiến lược marketing của LLM
Bất định cũng có thể được tách thành nhiều “hương vị”. Cách tách đơn giản nhất và thường được thảo luận là bất định ngẫu nhiên và bất định nhận thức luận. Bất định nhận thức luận, hay bất định dựa trên mô hình, thường chỉ trường hợp mô hình nhận một kiểu đầu vào chưa từng thấy trước đây và tạo ra đầu ra kém, tức là tình huống khó kỳ vọng nó xử lý đúng. Ngược lại, bất định ngẫu nhiên là thứ vốn có trong chính dữ liệu; hãy nghĩ đến sự mơ hồ tự nhiên của tác vụ hoặc việc gán nhãn nhiều nhiễu
Trong lĩnh vực ước lượng bất định, có rất nhiều quan tâm đến việc phát triển các phương pháp định lượng những loại bất định khác nhau này, và mỗi phương pháp có thể nhạy hơn với loại này hay loại kia