Góc nhìn Anderson
Các Trí Tuệ Nhân Tạo Lập Trình Có Xu Hướng Suffer Từ Hiệu Ứng Dunning-Kruger

Nghiên cứu mới cho thấy rằng các trí tuệ nhân tạo lập trình như ChatGPT thường bị ảnh hưởng bởi hiệu ứng Dunning-Kruger, thường表现 ra sự tự tin cao nhất khi chúng thực sự không có năng lực. Khi đối mặt với các ngôn ngữ lập trình không quen thuộc hoặc hiếm gặp, chúng thường tuyên bố sự tự tin cao ngay cả khi câu trả lời của chúng không chính xác. Nghiên cứu này liên kết sự tự tin quá mức của mô hình với cả hiệu suất kém và thiếu dữ liệu đào tạo, gây ra những lo ngại mới về việc những hệ thống này thực sự biết gì về những gì chúng không biết.
Bất kỳ ai đã dành một khoảng thời gian vừa phải để tương tác với các mô hình ngôn ngữ lớn về các vấn đề thực tế sẽ biết rằng các mô hình này thường có xu hướng đưa ra câu trả lời tự tin nhưng sai cho một truy vấn của người dùng.
Cùng với các hình thức rõ ràng hơn của ảo giác, lý do cho sự tự tin quá mức này không hoàn toàn rõ ràng. Nghiên cứu được công bố vào mùa hè cho thấy rằng các mô hình đưa ra câu trả lời tự tin ngay cả khi chúng biết chúng sai, ví dụ; tuy nhiên, các lý thuyết khác cho rằng sự tự tin quá mức là do lựa chọn kiến trúc, trong số các khả năng khác.
Điều mà người dùng cuối có thể chắc chắn là trải nghiệm này rất khó chịu, vì chúng ta được lập trình để tin tưởng vào ước tính của con người về khả năng của chính họ (không chỉ vì trong những trường hợp như vậy có hậu quả, pháp lý và khác, đối với một người quá tự tin và không thực hiện được); và một loại chuyển giao nhân tính có nghĩa là chúng ta có xu hướng nhân rộng hành vi này với các hệ thống trí tuệ nhân tạo đối thoại.
Tuy nhiên, một mô hình ngôn ngữ lớn là một thực thể không thể trách nhiệm được, có thể và sẽ trả lại một ‘Whoops! Butterfingers…’ sau khi nó đã giúp người dùng làm hỏng vô tình một thứ gì đó quan trọng, hoặc ít nhất là lãng phí một buổi chiều của thời gian họ; giả sử nó sẽ chấp nhận trách nhiệm.
Tồi tệ hơn, sự thiếu thận trọng này dường như không thể tránh khỏi, ít nhất là trong ChatGPT, sẽ tự tin đảm bảo người dùng về tính hợp lệ của lời khuyên của nó và giải thích các khiếm khuyết trong suy nghĩ của nó chỉ sau khi thiệt hại đã được thực hiện. Cả việc cập nhật bộ nhớ persistent của hệ thống, cũng như việc sử dụng các lời nhắc lặp đi lặp lại dường như không có nhiều tác động đến vấn đề này.
Con người cũng có thể giống như vậy – mặc dù bất kỳ ai sai lầm sâu sắc và thường xuyên như vậy có thể sẽ bị sa thải sớm. Những người như vậy bị ảnh hưởng bởi hiệu ứng ngược lại của ‘hội chứng kẻ mạo danh’ (trong đó một nhân viên sợ rằng họ đã được thăng chức vượt quá khả năng của mình) – hiệu ứng Dunning Kruger, trong đó một người quá tự tin về khả năng thực hiện một nhiệm vụ.
Chi Phí Của Lạm Phát
Một nghiên cứu mới từ Microsoft khám phá giá trị của hiệu ứng Dunning-Kruger liên quan đến hiệu suất của các kiến trúc lập trình hỗ trợ bởi trí tuệ nhân tạo (như Copilot của Redmond), trong một nỗ lực nghiên cứu đầu tiên để giải quyết cụm từ này của các mô hình ngôn ngữ lớn.
Nghiên cứu phân tích cách các mô hình mã hóa trí tuệ nhân tạo tự tin đánh giá câu trả lời của mình so với hiệu suất thực tế của chúng, trên hàng chục ngôn ngữ lập trình. Kết quả cho thấy một mẫu giống như con người: khi các mô hình ít có khả năng, chúng tự tin nhất.
Hiệu ứng này mạnh nhất trong các ngôn ngữ hiếm gặp hoặc có ít tài nguyên – mô hình yếu hơn hoặc ngôn ngữ hiếm gặp hơn, ảo giác về kỹ năng càng lớn:

Hiệu suất thực tế và nhận thức của GPT-4o trên các ngôn ngữ lập trình, sắp xếp theo hiệu suất thực tế. Nguồn: https://arxiv.org/pdf/2510.05457
Bốn tác giả, tất cả đều là những người đóng góp bình đẳng làm việc cho Microsoft, cho rằng công việc này đặt ra những câu hỏi mới về việc những công cụ này có thể được tin cậy để đánh giá đầu ra của chính mình, và họ tuyên bố:
‘Bằng cách phân tích sự tự tin của mô hình và hiệu suất trên một tập hợp đa dạng các ngôn ngữ lập trình, chúng tôi tiết lộ rằng các mô hình trí tuệ nhân tạo phản ánh các mẫu tự tin quá mức của con người, đặc biệt là trong các lĩnh vực không quen thuộc hoặc có ít tài nguyên.
‘Các thí nghiệm của chúng tôi chứng minh rằng các mô hình ít có khả năng và những mô hình hoạt động trong các ngôn ngữ lập trình hiếm gặp hơn sẽ thể hiện sự thiên vị DKE mạnh hơn, cho thấy rằng cường độ của sự thiên vị là tỷ lệ với khả năng của mô hình. Điều này phù hợp với các thí nghiệm trên người về sự thiên vị.’
Các nhà nghiên cứu đặt câu hỏi này trong bối cảnh hiểu cách sự tự tin của mô hình trở nên không đáng tin cậy khi hiệu suất yếu, và để kiểm tra xem các hệ thống trí tuệ nhân tạo có thể hiện ra sự tự tin quá mức giống như con người – với những ý nghĩa về lòng tin và triển khai thực tế.
Mặc dù bài báo mới đi ngược lại định luật tiêu đề của Betteridge, nhưng nó vẫn được đặt tên là Liệu Các Mô Hình Mã Hóa Có Bị Ảnh Hưởng Bởi Hiệu Ứng Dunning-Kruger?. Mặc dù các tác giả tuyên bố rằng mã đã được phát hành cho công việc này, nhưng bản thảo hiện tại không mang bất kỳ chi tiết nào về điều này.
Phương Pháp
Nghiên cứu này kiểm tra cách chính xác các mô hình mã hóa trí tuệ nhân tạo có thể đánh giá câu trả lời của mình bằng cách đưa cho chúng hàng nghìn câu hỏi lập trình nhiều lựa chọn, với mỗi câu hỏi thuộc về một lĩnh vực ngôn ngữ lập trình cụ thể, từ Python và Java đến Perl và COBOL:

Các lĩnh vực ngôn ngữ lập trình được sử dụng trong nghiên cứu, cùng với số lượng câu hỏi mã hóa nhiều lựa chọn được lấy mẫu cho mỗi lĩnh vực.
Các mô hình được yêu cầu chọn lựa chọn đúng và sau đó ước tính mức độ tự tin của chúng trong lựa chọn đó, với hiệu suất thực tế của chúng được đo bằng cách thường xuyên chúng đưa ra câu trả lời đúng – và sự tự tin tự đánh giá của chúng cho thấy chúng tin rằng chúng tốt như thế nào. So sánh hai chỉ số này cho phép các nhà nghiên cứu xem nơi sự tự tin và khả năng khác nhau.
Để đo lường mức độ tự tin mà các mô hình dường như có, nghiên cứu này sử dụng hai phương pháp: tự tin tuyệt đối và tự tin tương đối. Trong phương pháp đầu tiên, mô hình được yêu cầu đưa ra một điểm số từ zero đến một cùng với mỗi câu trả lời, với sự tự tin của nó cho một ngôn ngữ cụ thể được định nghĩa bởi trung bình của những điểm số đó trên các câu hỏi trong ngôn ngữ đó.
Phương pháp thứ hai xem xét mức độ tự tin mà mô hình có khi chọn giữa hai câu hỏi; đối với mỗi cặp, mô hình phải nói câu hỏi nào nó cảm thấy tự tin hơn. Những lựa chọn này sau đó được chấm điểm sử dụng các hệ thống xếp hạng ban đầu được thiết kế cho các trò chơi cạnh tranh, xử lý mỗi câu hỏi như một người chơi trong một trận đấu. Các điểm cuối cùng được chuẩn hóa và trung bình cho mỗi ngôn ngữ để đưa ra điểm tự tin tương đối.
Hai hình thức đã thành lập của hiệu ứng Dunning-Kruger được kiểm tra trong bài báo: một hình thức theo dõi cách một mô hình đơn lẻ đánh giá sai hiệu suất của mình trên các lĩnh vực khác nhau; và một hình thức khác so sánh mức độ tự tin giữa các mô hình yếu hơn và mạnh hơn.
Trong cả hai trường hợp, khoảng cách giữa sự tự tin và hiệu suất thực tế được sử dụng để đo lường sự tự tin quá mức, với khoảng cách lớn hơn trong các thiết lập hiệu suất thấp chỉ ra hành vi giống như DKE.
Kết Quả
Nghiên cứu này kiểm tra hiệu ứng Dunning-Kruger trên sáu mô hình ngôn ngữ lớn: Mistral; Phi-3; DeepSeek-Distill; Phi-4; GPT-0.1, và GPT-4o.
Mỗi mô hình được kiểm tra trên các câu hỏi lập trình nhiều lựa chọn từ bộ dữ liệu CodeNet công khai, với 37 ngôn ngữ được đại diện để tiết lộ cách sự tự tin và độ chính xác thay đổi trên các lĩnh vực lập trình quen thuộc và hiếm gặp.
Phân tích giữa các mô hình cho thấy một mẫu Dunning-Kruger rõ ràng:

Hiệu suất thực tế so với nhận thức trên sáu mô hình mã hóa, cho thấy các mô hình hiệu suất thấp hơn như Mistral và Phi-3 thể hiện sự tự tin cao mặc dù độ chính xác thấp, trong khi các mô hình mạnh hơn như GPT-4o thể hiện sự tự tin được hiệu chỉnh hoặc thậm chí là thiếu tự tin.
Các mô hình có độ chính xác thấp hơn, bao gồm Mistral và Phi-3, có xu hướng đánh giá cao khả năng của mình, trong khi các hệ thống hiệu suất cao hơn như GPT-4o thể hiện mức độ tự tin phù hợp với hiệu suất thực tế của chúng, đặc biệt là khi được đánh giá bằng sự tự tin tương đối.
Kết quả cũng cho thấy rằng các mô hình có khả năng nhất có thể đôi khi đánh giá thấp khả năng của mình (một mẫu mà điểm tự tin tuyệt đối không thể nắm bắt được).
Kết quả cũng cho thấy rằng phân tích mô hình cũng hỗ trợ sự hiện diện của hiệu ứng Dunning-Kruger. Trong biểu đồ kết quả được hiển thị ở đầu bài viết, chúng ta có thể thấy cách mỗi mô hình hoạt động trên các ngôn ngữ lập trình khác nhau, sắp xếp theo hiệu suất thực tế.
Trong các ngôn ngữ mà các mô hình đạt điểm thấp, đặc biệt là các ngôn ngữ hiếm gặp hoặc có ít tài nguyên như COBOL, Prolog và Ceylon, sự tự tin của chúng cao hơn nhiều so với kết quả thực tế. Trong các ngôn ngữ quen thuộc như Python và JavaScript, sự tự tin của chúng phù hợp hơn với độ chính xác thực tế của chúng và đôi khi thậm chí thấp hơn.
Mẫu này xuất hiện trong cả hai biện pháp tự tin tuyệt đối và tương đối, cho thấy rằng các mô hình ít nhận thức được giới hạn của mình khi hoạt động trong các lĩnh vực lập trình không quen thuộc.
Điều trị các mô hình như những người tham gia đã giới thiệu một số hạn chế, vì số lượng mô hình nhỏ trong trò chơi ảnh hưởng đến sự đa dạng; sự khác biệt trong đầu ra của một mô hình đơn lẻ bị bỏ qua; và phân phối dữ liệu có thể không phản ánh phân phối của những người tham gia thực sự.
Để giải quyết vấn đề này, nghiên cứu này đã kiểm tra ba thiết lập thay thế: đầu tiên, mỗi mô hình được gán một nhân vật riêng; thứ hai, các phản hồi được lấy mẫu ở nhiệt độ cao hơn để tạo ra sự đa dạng hơn; thứ ba, các lời nhắc được diễn đạt lại nhiều lần, với mỗi phiên bản được xử lý như một người tham gia riêng:

Sự tương quan giữa sự tự tin quá mức và hiệu suất thực tế trên các thiết lập thí nghiệm khác nhau, cho thấy rằng mẫu Dunning-Kruger vẫn nhất quán trong tất cả các điều kiện và mạnh nhất khi nhiều phản hồi đa dạng được lấy mẫu từ cùng một mô hình.
Bảng kết quả trên cho thấy mức độ mạnh mẽ của hiệu ứng Dunning-Kruger trong các điều kiện này, vẫn hiện diện trong mọi trường hợp; và rằng DKE được biểu hiện mạnh nhất khi nhiều phản hồi được lấy mẫu từ cùng một mô hình ở nhiệt độ cao.
Để hiểu rõ hơn về cách hiệu suất nhận thức khác với hiệu suất thực tế, nghiên cứu này đã so sánh các ước tính tự tin tuyệt đối và tương đối, bằng cách tính toán mức độ mà mỗi mô hình đánh giá cao khả năng của mình (cụ thể, sự khác biệt giữa điểm tự tin của nó và độ chính xác thực tế của nó), và sau đó đo lường cách sự đánh giá cao này liên quan đến hiệu suất thực tế của mô hình:

Sự tương quan giữa sự tự tin quá mức (được đo bằng sự tự tin tuyệt đối trừ sự tự tin tương đối) và độ chính xác thực tế trên các lĩnh vực lập trình và loại mô hình, cho thấy rằng sự đánh giá cao lớn hơn luôn đi kèm với hiệu suất thấp hơn.
Bảng kết quả trên minh họa cách sự đánh giá cao liên quan đến hiệu suất thực tế, cả trên các lĩnh vực lập trình và trên các mô hình. Trong cả hai trường hợp, chúng ta có thể thấy rằng các mô hình có độ chính xác thấp hơn có xu hướng thể hiện sự tự tin quá mức.
Ngoài ra, các mô hình chuyên dụng được đào tạo trên các lĩnh vực hẹp hơn cho thấy hiệu ứng DKE mạnh hơn so với các mô hình tổng quát:

Sự tương quan giữa sự đánh giá cao và hiệu suất thực tế cho các mô hình cơ sở, mô hình chuyên dụng một lĩnh vực và mô hình chuyên dụng đa lĩnh vực, cho thấy hiệu ứng DKE mạnh hơn khi chuyên môn hóa tăng lên.
Sử dụng bộ dữ liệu MultiPL-E trên tám ngôn ngữ lập trình, các tác giả đã tìm thấy rằng đào tạo một lĩnh vực dẫn đến sự tự tin quá mức hơn so với các thiết lập đa lĩnh vực hoặc cơ sở, cho thấy rằng DKE trở nên tồi tệ hơn khi chuyên môn hóa tăng lên.
Thử nghiệm cũng cho thấy rằng các mô hình có xu hướng tự tin hơn trong các ngôn ngữ lập trình hiếm gặp. Trên GitHub, IEEE và TIOBE xếp hạng, sự hiếm gặp có liên quan mạnh mẽ với sự tự tin nhận thức cao hơn, đạt đỉnh ở 0,797:

Sự tương quan giữa sự tự tin quá mức của mô hình và sự hiếm gặp của ngôn ngữ, sử dụng ba xếp hạng phổ biến. Các ngôn ngữ ít gặp hơn được liên kết với hiệu suất nhận thức cao hơn.
Cuối cùng, các tác giả đã kiểm tra xem hiệu ứng Dunning-Kruger có xuất hiện trong việc tạo mã, bằng cách đánh giá các mô hình trên bộ dữ liệu MultiPL-E trên các ngôn ngữ Ada, Dart, Prolog, Swift, C++, Python, C# và Elixir.
Mặc dù hiệu ứng này vẫn còn hiện diện, nhưng nó yếu hơn so với trường hợp câu hỏi nhiều lựa chọn, có khả năng là do khó khăn hơn trong việc đánh giá sự tự tin và độ chính xác trong các nhiệm vụ mở:

Sự tương quan giữa sự đánh giá cao và hiệu suất thực tế trong việc tạo mã mở, dựa trên kết quả MultiPL-E trên tám ngôn ngữ lập trình.
Khi xem xét giải thích vẫn còn tranh cãi về hiệu ứng Dunning-Kruger, các tác giả kết luận:
‘Một giải thích tiềm năng có thể chung cho cả con người và mô hình trí tuệ nhân tạo là giải thích siêu nhận thức, cho rằng đánh giá chất lượng của một hiệu suất của một kỹ năng là một phần quan trọng của việc có được kỹ năng đó.
‘Giải thích này có thể được kiểm tra thực nghiệm trong các mô hình trí tuệ nhân tạo với một nghiên cứu có kiểm soát về các chiến lược đào tạo khác nhau và liệu chúng có dẫn đến cải thiện đồng thời về hiệu suất và khả năng đánh giá chất lượng của hiệu suất. Tuy nhiên, nghiên cứu này vượt quá phạm vi của bài viết này, và chúng tôi để lại nó cho công việc trong tương lai.’
Kết Luận
Ngay cả trong lĩnh vực bản địa của nó, hiệu ứng Dunning-Kruger (như bài báo lưu ý) có thể được quy cho một nguyên nhân thống kê hoặc nhận thức. Nếu nó là một nguyên nhân thống kê, việc áp dụng một hội chứng duy nhất của con người vào một ngữ cảnh học máy là hoàn toàn hợp lệ.
Mặc dù các tác giả suy đoán rằng nguyên nhân có thể được tìm thấy là ‘nhận thức’ trong cả hai trường hợp, nhưng điều đó sẽ đòi hỏi một quan điểm hơi siêu hình học hơn.
Có lẽ phát hiện thú vị nhất trong bài báo là mức độ mà một số mô hình mã hóa trí tuệ nhân tạo có xu hướng tăng gấp đôi trong những hoàn cảnh ít thuận lợi nhất, tức là bằng cách thể hiện sự tự tin tối đa khi đối mặt với các ngôn ngữ ít gặp nhất hoặc ít tài nguyên nhất – một chiến lược gần như tự hủy diệt trong một môi trường làm việc thực tế.
* Các ngôn ngữ lập trình được sử dụng là Ada, Bash, C, C#, C++, COBOL, Ceylon, Clojure, D, Dart, Dash, Elixir, Erland, F#, Fortran, Go, Haskell, Java, JavaScript, Julia, Lisp, Kotlin, Lua, OCaml, Objective-C, PHP, Pascal, Perl, Prolog, Python, Racket, Ruby, Rust, Scala, Swift, TypeScript và Visual Basic.
Được xuất bản lần đầu vào thứ Tư, ngày 8 tháng 10 năm 2025












