Tại sao LLM vẫn không xác định được ngay cả khi đặt nhiệt độ bằng 0
Các mô hình ngôn ngữ lớn tạo ra đầu ra khác nhau bất chấp các thiết lập cố định do kỹ thuật gộp lô (batching) phía máy chủ và những thay đổi hạ tầng. Các kỹ sư cần xây dựng lớp mã xác định bao quanh các mô hình xác suất để đảm bảo...
Được dịch tự động từ bản gốc tiếng Anh.
Vào tháng 9 năm 2025, các nhà nghiên cứu tại Thinking Machines đã chứng minh rằng các mô hình ngôn ngữ lớn (LLM) không tạo ra đầu ra giống hệt nhau ngay cả khi được cấu hình cho tính xác định tối đa. Bằng cách gửi cùng một câu lệnh một nghìn lần với nhiệt độ được đặt bằng 0, họ nhận được tám mươi kết quả hoàn thành khác nhau. Phát hiện này nhấn mạnh một thách thức kiến trúc quan trọng đối với các nhà phát triển xây dựng hệ thống AI trong môi trường sản xuất: các mô hình tạo sinh vốn mang tính xác suất, chứ không phải xác định.
Điều gì đã xảy ra
Thí nghiệm tập trung vào một câu lệnh đơn giản yêu cầu thông tin về Richard Feynman. Nhóm sử dụng một mô hình mở với nhiệt độ bằng 0, một thiết lập về mặt lý thuyết luôn chọn token tiếp theo có khả năng cao nhất. Bất chấp ràng buộc này, các đầu ra bắt đầu phân kỳ sau 102 token đầu tiên. Trong khi 992 phản hồi khẳng định Feynman sinh ra ở Queens, New York, thì tám phản hồi lại ghi là New York City. Sự biến thiên này xảy ra mặc dù đầu vào và seed (hạt giống ngẫu nhiên) là giống hệt nhau, chứng tỏ rằng các tham số cấu hình tiêu chuẩn không đảm bảo tính lặp lại.
Hành vi này không chỉ giới hạn trong các benchmark học thuật. Trong môi trường sản xuất, các nhà phát triển thường gặp tình huống một bản demo hoạt động hoàn hảo, nhưng cùng một đầu vào lại cho ra kết quả khác nhau trong các buổi trình diễn cho khách hàng hoặc khi sử dụng thực tế. Vấn đề trở nên nghiêm trọng khi các tác nhân AI đưa ra quyết định liên quan đến tiền bạc, kiểm soát truy cập hoặc tuân thủ quy định. Khác với phần mềm truyền thống, nơi một lỗi luôn gây ra cùng một sai sót mỗi lần chạy, một LLM có thể đưa ra câu trả lời đúng trong lần chạy này và câu trả lời sai trong lần chạy tiếp theo, khiến việc gỡ lỗi và kiểm toán trở nên khó khăn hơn rất nhiều.
Nguyên nhân gốc rễ nằm ở cách các máy chủ suy luận hoạt động. Các nhà cung cấp nhóm các yêu cầu thành các lô (batches) để tối ưu hóa việc sử dụng GPU. Nghiên cứu chỉ ra rằng các kernel GPU phổ biến không bất biến theo lô (batch-invariant), nghĩa là kết quả toán học có thể thay đổi nhẹ tùy thuộc vào số lượng yêu cầu đồng thời. Khi hai token tiềm năng có xác suất gần như bằng nhau, những khác biệt số học nhỏ này khiến mô hình chọn các hướng đi khác nhau, dẫn đến việc tạo văn bản phân kỳ. Ngoài ra, các bản cập nhật phía nhà cung cấp đối với stack phục vụ hoặc phiên bản mô hình có thể thay đổi hành vi mà không báo trước, làm phá vỡ thêm tính tái lập.
Cơ chế hoạt động
Các hệ thống xác định, chẳng hạn như engine quy tắc hoặc bộ phân loại đã huấn luyện với trọng số đóng băng, hoạt động như các hàm thuần túy. Chúng ánh xạ các đầu vào cụ thể sang các đầu ra cụ thể mà không lấy mẫu từ một phân phối. Nếu bạn chạy chúng hai lần với cùng dữ liệu, bạn sẽ nhận được chính xác cùng một kết quả, từng byte một. Điều này cho phép kiểm thử đơn vị, so sánh sự khác biệt giữa các phiên bản và tạo ra các dấu vết kiểm toán rõ ràng. Ngược lại, các LLM không trực tiếp trả về câu trả lời. Chúng tính toán một phân phối xác suất cho mọi token tiếp theo có thể và sau đó lấy mẫu từ phân phối đó.
Ngay cả khi nhiệt độ được đặt bằng 0, quá trình lấy mẫu vẫn dễ bị ảnh hưởng bởi các yếu tố bên ngoài. Tham số seed được nhiều nhà cung cấp đưa ra được mô tả là "cố gắng hết mức" (best-effort). Nó không thể tính đến những thay đổi trong trạng thái phần cứng cơ sở, kích thước lô hoặc các bản cập nhật mô hình ngầm. Hơn nữa, các tác nhân thường dựa vào các công cụ bên ngoài như công cụ tìm kiếm hoặc cơ sở dữ liệu. Vì các nguồn này thay đổi theo thời gian, ngữ cảnh cung cấp cho mô hình bị trôi dạt, đảm bảo rằng không có hai lần chạy nào thực sự giống hệt nhau. Như được lưu ý trong một nghiên cứu năm 2024, độ chính xác trên các tác vụ benchmark có thể dao động tới mười lăm phần trăm giữa các lần chạy dưới các thiết lập xác định, với khoảng cách lên tới bảy mươi phần trăm trong các trường hợp cực đoan.
Chi tiết chính
- Thinking Machines quan sát thấy 80 kết quả hoàn thành khác nhau từ 1.000 câu lệnh giống hệt nhau ở nhiệt độ bằng 0.
- Sự phân kỳ thường xảy ra khi các token ứng viên có xác suất gần bằng nhau, chịu ảnh hưởng của kỹ thuật gộp lô phía máy chủ.
- Các kernel bất biến theo lô có thể cưỡng chế tính xác định nhưng có thể làm tăng độ trễ suy luận từ 26 lên 55 giây.
- Các bí danh mô hình của nhà cung cấp có thể trỏ đến các phiên bản cập nhật, gây ra những thay đổi hành vi ngầm trong môi trường sản xuất.
- Các bộ phân loại ML truyền thống cung cấp đầu ra hoàn toàn lặp lại giữa các bản phát hành, khác với các mô hình tạo sinh.
- Tính không xác định tập trung vào các trường hợp ranh giới nơi mô hình thực sự không chắc chắn.
Tại sao điều này quan trọng
Đối với các kỹ sư phần mềm và nhà sáng lập kỹ thuật, việc coi LLM là các thành phần xác định dẫn đến các kiến trúc mong manh. Khi một hệ thống AI kiểm soát giao dịch tài chính, quyền hạn người dùng hoặc tuân thủ quy định, sự biến thiên là một rủi ro pháp lý. Một khiếu nại của khách hàng về việc bị từ chối hoàn tiền không thể được giải quyết bằng cách chạy lại câu lệnh, vì mô hình có thể đưa ra lý do hoặc kết quả khác. Sự thiếu hụt tính tái lập này làm phức tạp hóa việc kiểm thử hồi quy và khiến việc giải thích các quyết định cho các kiểm toán viên hoặc đội ngũ pháp lý trở nên khó khăn.
Việc hiểu rõ sự khác biệt giữa AI xác định và AI xác suất cho phép các nhóm phân bổ nhiệm vụ phù hợp. Các mô hình tạo sinh vượt trội trong việc diễn giải dữ liệu phi cấu trúc và soạn thảo văn bản, nhưng chúng không nên chịu trách nhiệm duy nhất cho các quyết định cuối cùng. Bằng cách nhận ra rằng tính không xác định là một đặc điểm của công nghệ chứ không phải là một lỗi, các nhà phát triển có thể thiết kế các hệ thống cô lập logic rủi ro cao trong các lớp xác định. Cách tiếp cận này đảm bảo rằng sản phẩm vẫn có thể kiểm thử, giải thích và đáng tin cậy, ngay cả khi mô hình ngôn ngữ cơ sở hoạt động không thể đoán trước.
Bạn có thể làm gì
- Triển khai các quy tắc cứng nhắc trong mã cho các giới hạn, quyền hạn và phép tính số học thay vì dựa vào hướng dẫn trong câu lệnh.
- Sử dụng các bộ phân loại đã được hiệu chỉnh cho các quyết định khối lượng lớn khi có sẵn dữ liệu lịch sử được gắn nhãn.
- Ràng buộc đầu ra của LLM vào các schema JSON nghiêm ngặt với các giá trị liệt kê để giảm thiểu biến thiên.
- Xác định các thang đánh giá rõ ràng trong câu lệnh với các ví dụ cụ thể để neo giữ phán đoán của mô hình.
- Chạy các truy vấn quan trọng nhiều lần và sử dụng bỏ phiếu hoặc trung bình để ước tính mức độ tin cậy.
- Ghi log tất cả các đầu vào, phiên bản mô hình và đầu ra để cho phép kiểm toán mà không cần tạo lại phản hồi.



