learningai.vn
VI
Phần 1 · Chương 4

Vì Sao Hỏi Cùng Một Câu Vẫn Có Thể Nhận Câu Trả Lời Khác

Thời gian đọc: 10 phút

Mô hình có thể trả lời khác nhau cho cùng một câu hỏi. Vì nó chọn một trong nhiều khả năng có thể xảy ra.

Chương trước kết thúc bằng một điều hơi khó hiểu: khi bạn hỏi cùng một trợ lý AI, với đúng cùng một câu hỏi, hai lần khác nhau, bạn có thể nhận được hai câu trả lời khác nhau. Nếu mô hình chỉ đang đoán phần tiếp theo có khả năng xuất hiện cao nhất, thì lẽ ra lần nào nó cũng phải đưa ra cùng một câu trả lời chứ? Câu trả lời nằm ở một cơ chế quan trọng mà cuốn sách này dựa vào. Khi đã hiểu ra, bạn sẽ thấy nó khá thú vị. Cỗ máy không phải lúc nào cũng chọn đúng một từ tiếp theo được xem là tốt nhất. Trong phần lớn trường hợp, nó chọn từ tiếp theo bằng cách gieo một con xúc xắc có trọng số, nghĩa là những từ có khả năng cao hơn sẽ dễ được chọn hơn, nhưng các từ khác vẫn có cơ hội xuất hiện. Vì vậy, sự khác nhau trong các câu trả lời không phải là lỗi. Đó là một phần của thiết kế, và hệ thống đang hoạt động đúng như cách nó được tạo ra.

Chiếc túi bi giúp hiểu cách AI chọn từ

Hãy tưởng tượng một người dự báo thời tiết không phải lúc nào cũng nói ra kết quả có khả năng xảy ra cao nhất. Thay vào đó, họ có một túi bi, trong đó màu của các viên bi thể hiện các khả năng khác nhau. Nếu sáng nay khả năng trời nắng là cao nhất, trong túi sẽ có rất nhiều viên bi ghi "nắng", một vài viên ghi "mây", và rất ít viên ghi "mưa". Mỗi lần cần chọn từ tiếp theo để nói, người dự báo sẽ thò tay vào túi, rút một viên bi, xem đó là gì, rồi bỏ viên bi lại vào túi và rút tiếp. Vì trong túi có nhiều bi "nắng", hầu hết các bản tin sẽ nghe khá giống nhau. Nhưng vì mỗi từ đều được chọn bằng một lần rút ngẫu nhiên mới, nên hai bản tin về cùng một buổi sáng vẫn có thể khác nhau về cách diễn đạt. Điều đó không có nghĩa là có lỗi. Sự ngẫu nhiên đã có sẵn trong cách chọn từ này.

Đó chính là việc một mô hình ngôn ngữ đang làm ở bên trong. Như bạn đã biết từ Chương 2, mô hình không viết cả câu cùng lúc, mà viết từng mảnh nhỏ một, gọi là token. Ở mỗi bước, nó tạo ra một danh sách các lựa chọn có thể xuất hiện tiếp theo, kèm theo xác suất của từng lựa chọn. Ví dụ, từ the có thể có xác suất 60%, từ a có thể có xác suất 25%, còn nhiều từ khác có xác suất thấp hơn nằm phía sau. Nhiều người nghĩ rằng mô hình luôn chọn phương án có xác suất cao nhất. Thực ra, thường không phải vậy. Thay vào đó, nó dùng sampling, nghĩa là chọn ngẫu nhiên một phương án dựa trên xác suất đã có. Cách này giống như rút một viên bi từ một cái túi, trong đó loại bi nào có trọng số lớn hơn thì dễ được rút trúng hơn. Nói cách khác, đây chính là cái xúc xắc có trọng số đã được nhắc đến ở đầu chương, chỉ được mô tả theo một cách khác. Vì việc chọn ngẫu nhiên này diễn ra ở từng bước, nên cùng một prompt có thể dẫn đến những câu trả lời khác nhau mỗi lần bạn hỏi.

Temperature: nút chỉnh độ ổn định và sáng tạo

Nếu ví mô hình như đang bốc thăm từ một cái túi, thì câu hỏi là cái túi đó được xáo trộn như thế nào. Bạn có thể phần nào điều chỉnh điều này bằng một thiết lập gọi là temperature. Khi giảm temperature, mô hình sẽ ưu tiên mạnh các lựa chọn có khả năng xảy ra cao nhất. Vì vậy, các câu trả lời thường ổn định hơn, thận trọng hơn, dễ lặp lại hơn và hay chọn phương án an toàn nhất. Khi tăng temperature, những lựa chọn ít gặp hơn cũng có cơ hội xuất hiện. Kết quả vì thế đa dạng và sáng tạo hơn, nhưng cũng dễ sai hơn, vì các từ hoặc ý ít khả năng hơn được phép tham gia. Nói ngắn gọn, temperature thấp khiến mô hình chọn cách an toàn, còn temperature cao khiến mô hình thử những hướng mạo hiểm hơn. Không có mức nào luôn đúng trong mọi trường hợp. Mỗi mức phù hợp với một mục đích khác nhau, và cuốn sách sẽ còn quay lại bài học này mỗi khi sự đa dạng trong cách diễn đạt có thể giúp ích hoặc gây hại.

Ngày mai trời sẽ ...cùng một prompt
temperature thấp
nắng82%
mây10%
mưa6%
bão2%
ba lần lấy mẫu
nắngnắngnắng
temperature cao
nắng38%
mây26%
mưa21%
bão15%
ba lần lấy mẫu
nắngbãomây
mỗi token là một lần lấy mẫu mới
Với cùng một phân phối xác suất, temperature thấp thường chọn các token phổ biến hơn. Temperature cao cho các token ít phổ biến thêm cơ hội xuất hiện, nên các lần trả lời đa dạng hơn.

Có một mẹo khác cũng đáng biết, vì nó điều chỉnh "cái túi" lựa chọn theo cách riêng. Mẹo này gọi là nucleus sampling, hay top-p. Trước khi chọn từ tiếp theo, top-p loại bỏ phần "đuôi dài" gồm những từ có xác suất rất thấp và kém đáng tin. Nó chỉ giữ lại nhóm nhỏ nhất gồm các lựa chọn có xác suất cao nhất, sao cho tổng xác suất của nhóm này đạt một mức đã đặt trước, ví dụ 90%. Sau đó, mô hình chỉ rút từ trong nhóm nhỏ đó. Nhờ vậy, mô hình vẫn có thể tạo ra câu trả lời đa dạng giữa những lựa chọn thật sự hợp lý, đồng thời tránh được những từ kỳ lạ có xác suất gần như bằng không nhưng đôi khi vẫn có thể bị chọn. Temperature quyết định mỗi lần rút sẽ táo bạo đến mức nào, còn top-p quyết định có bao nhiêu lựa chọn được phép nằm trong "cái túi" ngay từ đầu.

Vì sao kết quả ổn định vẫn có thể lệch nhau

Bạn có thể nghĩ rằng nếu đặt temperature ở mức thấp nhất, hệ thống sẽ luôn trả lời giống hệt nhau: cùng một câu hỏi thì lần nào cũng cho cùng một câu trả lời. Thực tế là kết quả có thể gần như vậy, nhưng không hoàn toàn tuyệt đối. Ngay cả khi dùng thiết lập ổn định nhất, những yêu cầu giống hệt nhau gửi tới một sản phẩm AI đang chạy thật vẫn có thể cho ra câu trả lời hơi khác nhau. Lý do không phải vì hệ thống đang "gieo xúc xắc", mà vì cách nó xử lý bên trong: các phép toán nền, hạ tầng vận hành, và cả việc tại đúng thời điểm đó có bao nhiêu yêu cầu khác đang được xử lý cùng lúc với yêu cầu của bạn. Vì vậy, điều quan trọng cần nhớ là một sản phẩm AI đang hoạt động trong thực tế không giống máy tính bỏ túi. Bạn không nên mặc định rằng đầu ra sẽ giống hệt nhau đến từng chi tiết, ngay cả khi đã chọn thiết lập ổn định nhất.

Còn một điểm nữa cũng dễ làm người ta nhầm, nhưng nó không liên quan đến sampling. Tên bạn dùng để gọi một mô hình thường chỉ là một cái nhãn, không phải luôn chỉ đúng một phiên bản cố định. Công ty tạo ra mô hình có thể âm thầm đổi cái tên đó sang một phiên bản mới hơn. Việc này giống như một cửa hàng vẫn giữ nguyên bảng hiệu bên ngoài, nhưng đã thay hết hàng hóa bên trong. Vì vậy, câu trả lời bạn nhận được từ "mô hình đó" vài tháng trước có thể không lặp lại y hệt hôm nay, ngay cả khi bạn đã loại bỏ yếu tố ngẫu nhiên. Lý do là có thể hôm nay đó không còn đúng là cùng một mô hình như trước nữa. Nếu bạn cần một kết quả có thể tái lập hoặc cần có căn cứ để kiểm chứng, hãy chọn cách khóa vào một phiên bản cụ thể và cố định. Đừng chỉ tin rằng cái tên quen thuộc hôm nay vẫn sẽ mang đúng ý nghĩa cũ vào ngày mai.

Cái bẫy: máy tính chính xác không có nghĩa là AI luôn trả lời y hệt

Nhiều người dễ nghĩ rằng máy tính rất chính xác, nên cùng một câu hỏi thì lúc nào cũng phải cho cùng một câu trả lời. Nhưng với chatbot thì không phải vậy. Theo thiết kế, đa số chatbot chọn từ tiếp theo theo kiểu bốc thăm có xác suất: từ nào phù hợp hơn thì có cơ hội được chọn cao hơn. Vì thế, việc câu trả lời có khác nhau đôi chút là điều bình thường, không phải lỗi. Ngay cả khi bạn yêu cầu chế độ cho kết quả dễ lặp lại nhất, các sản phẩm thực tế vẫn khó đảm bảo lần nào cũng trả lời giống hệt từng chữ. Lý do là hệ thống phải chia nhỏ, tính toán và phân phối công việc cho rất nhiều người dùng cùng lúc ở phía sau. Một hệ thống có thể tính toán chính xác, nhưng đầu ra của nó chưa chắc luôn lặp lại y hệt. Khoảng cách giữa hai điều đó chính là nội dung chương này bàn đến.

Tự thử: hỏi cùng một câu nhiều lần

Bạn hãy dán cùng một prompt sáng tạo, có nhiều cách trả lời, vào ba cuộc trò chuyện mới và tách biệt. Ví dụ: "Viết một truyện ngắn ru ngủ chỉ gồm đúng hai câu về một ngọn hải đăng." Sau đó, đặt ba kết quả cạnh nhau để đọc. Bạn sẽ thấy chúng có cảm giác khá giống nhau, nhưng cách dùng từ và câu chữ sẽ khác nhau, vì mỗi từ được tạo ra giống như một lần chọn ngẫu nhiên có tính đến xác suất. Tiếp theo, hãy thử một prompt chỉ có một đáp án đúng, chẳng hạn: "12 nhân 11 bằng bao nhiêu?", rồi hỏi ba lần liên tiếp. Những câu trả lời này thường sẽ giống nhau, vì xác suất nghiêng rất mạnh về đáp án đúng, nên gần như lần nào mô hình cũng chọn đúng kết quả đó. Sự khác biệt giữa hai ví dụ này cho thấy rõ khi nào yếu tố ngẫu nhiên dễ lộ ra nhất, đó là với những câu hỏi mở về câu chữ, và khi nào nó thường ổn định hơn, đó là với những câu hỏi chỉ có một đáp án đúng.

Prompt kể chuyện ru ngủ, gpt-5.5, chạy ba lần:
PROMPT
Viết một truyện ngắn ru ngủ chỉ gồm đúng hai câu về một ngọn hải đăng.
Lần 1

"Đêm xuống, ngọn hải đăng dịu dàng thắp ánh sáng vàng, ru sóng biển lăn tăn và những con thuyền nhỏ yên tâm tìm đường về bến. Khi trăng treo trên cao, ngọn hải đăng khẽ thì thầm với gió rằng mọi giấc mơ ngoài khơi đều sẽ được đưa về trong bình yên."

Lần 2

"Ngọn hải đăng đứng yên bên bờ biển, dịu dàng thắp một vầng sáng ấm để dẫn những con thuyền mệt mỏi trở về trong tiếng sóng ru êm. Khi trăng lên cao, nó khẽ nhắm mắt cùng đại dương, mơ thấy muôn vì sao đang ngủ ngoan trên mặt nước."

Lần 3

"Đêm xuống, ngọn hải đăng dịu dàng chớp mắt, rải những dải sáng mềm như chăn bông lên mặt biển đang ngủ. Trong ánh sáng ấy, những con thuyền mơ thấy đường về nhà, còn ngọn hải đăng khẽ ngân nga với sao trời cho đến bình minh."

Câu lệnh số học, gpt-5.5, chạy ba lần:
PROMPT
12 nhân 11 bằng bao nhiêu?
gpt-5.5

12 × 11 = 132

cả ba lần đều ra y hệt, không lệch một chữ

Hãy nhìn kỹ ba câu chuyện: ngay cả lần 1 và lần 3 cũng bắt đầu gần như giống nhau, với câu "Đêm xuống, ngọn hải đăng dịu dàng...". Nhưng ngay từ chữ tiếp theo, chúng đã đi theo hai hướng khác nhau: một lần là "thắp ánh sáng vàng", một lần là "chớp mắt". Các lần rút thăm giống nhau trong một đoạn, rồi lại tách ra. Còn phép tính thì không thay đổi. Vẫn là cùng một cỗ máy, cùng một cách thiết lập. Điểm khác duy nhất là xác suất ở mỗi bước nghiêng về hướng nào và nghiêng nhiều hay ít.

Khi nào sự khác nhau giữa các câu trả lời trở nên quan trọng

Với hầu hết nhu cầu hằng ngày, sự đa dạng trong câu trả lời là một lợi thế. Nhờ vậy, mô hình có thể đưa ra ba tiêu đề khác nhau hoặc gợi ý một cách diễn đạt mới theo yêu cầu của bạn. Tuy nhiên, điều này cũng làm thay đổi cách bạn nên sử dụng những câu trả lời AI mà mình muốn dựa vào. Nếu bạn sao chép một phản hồi vào báo cáo, hợp đồng hoặc quyết định quan trọng rồi mong sau này mô hình tạo lại đúng y nguyên đoạn đó để làm bằng chứng, bạn có thể thất vọng. Vì thế, hãy lưu lại chính xác đầu ra bạn đã dùng, từng chữ một, thay vì hy vọng có thể tạo lại nó sau này. Khi vấn đề thật sự quan trọng, hãy chọn và cố định một phiên bản mô hình cụ thể, thay vì chỉ dùng một tên mô hình chung có thể thay đổi theo thời gian. Đến đây, ta đã đi qua cách cỗ máy hoạt động: chữ được biến thành token, mô hình dự đoán token tiếp theo, phản hồi của con người giúp uốn nắn mô hình thành một trợ lý, và quá trình lấy mẫu khiến mô hình chọn kết quả theo xác suất. Khi đã hiểu bức tranh này, phần còn lại của cuốn sách sẽ tập trung vào cách chủ động làm việc cùng cơ chế đó. Phần tiếp theo sẽ bắt đầu bằng việc học cách điều khiển mô hình.

Nguồn

Defeating Nondeterminism in LLM Inference
Cơ sở cho luận điểm của chương rằng ngay cả ở thiết lập ổn định nhất, một sản phẩm đang chạy thật vẫn có thể cho những câu trả lời lệch nhau chút đỉnh vì cách phép toán được chạy và cách yêu cầu của những người dùng khác được gộp batch cùng với của bạn.
The Curious Case of Neural Text Degeneration
Nguồn cho phần mô tả của chương về top-p, hay nucleus sampling, cái mẹo chỉ giữ lại những phương án dễ xảy ra nhất và vứt đi cái đuôi dài thiếu tin cậy gồm những từ quái dị.
CHÚ THÍCH
  1. 1.
    Ari Holtzman, Jan Buys, Li Du, Maxwell Forbes, và Yejin Choi, 'The Curious Case of Neural Text Degeneration,' ICLR 2020 (arXiv:1904.09751). Bài báo giới thiệu Nucleus Sampling (top-p), định nghĩa là rút từ tập token nhỏ nhất có tổng xác suất tích lũy đạt ít nhất p, cách làm "allows for diversity while effectively truncating the less reliable tail of the distribution" (cho phép sự đa dạng đồng thời cắt gọn hữu hiệu cái đuôi kém tin cậy của phân phối). Các tác giả mô tả khoảng giá trị p thông thường là [0,9, 1) và dùng p = 0,95 trong các thí nghiệm chính, nên con số 90% minh họa của chương là nhất quán với nguồn.
  2. 2.
    Horace He và nhóm Thinking Machines Lab, 'Defeating Nondeterminism in LLM Inference,' blog Thinking Machines Lab, 2025. Bài viết giải thích rằng ngay cả ở temperature 0, những yêu cầu y hệt vẫn có thể lệch nhau: tính không kết hợp của số dấu phẩy động là điều kiện cần, nhưng nguyên nhân chính là tải máy chủ làm thay đổi kích cỡ batch, và phần lớn các kernel suy luận không bất biến theo batch, nên "the load determines the batch size that the kernels are run under, and thus changes the eventual result of each individual request" (tải quyết định kích cỡ batch mà các kernel được chạy dưới đó, và do vậy làm đổi kết quả cuối cùng của từng yêu cầu riêng lẻ). Điều này củng cố luận điểm của chương rằng sự dao động đến từ cách phép toán được tính và từ việc yêu cầu của những người dùng khác được xử lý cùng lúc với của bạn.