Chain-of-Thought Prompting
Prompt chain-of-thought (CoT) yêu cầu model ngôn ngữ trình bày các bước suy luận trung gian trước khi đưa ra câu trả lời, giúp tăng độ chính xác với các bài toán nhiều bước.
Prompting chuỗi suy nghĩ (CoT) là kỹ thuật prompt engineering, trong đó một mô hình ngôn ngữ lớn (LLM) trình bày các bước suy luận trung gian trước khi đưa ra câu trả lời cuối cùng. Thay vì đi thẳng từ câu hỏi đến "9", model viết "23 - 20 = 3, và 3 + 6 = 9" rồi cuối cùng mới nêu đáp án. Jason Wei và các đồng nghiệp tại Google giới thiệu kỹ thuật này trong bài báo năm 2022 Chain-of-Thought Prompting Elicits Reasoning in Large Language Models. Với tám ví dụ giải sẵn trong prompt, PaLM 540B tăng điểm trên GSM8K từ 17,9% lên 56,9%; đây là benchmark gồm các bài toán có lời văn ở cấp tiểu học, vượt kết quả tốt nhất trước đó là 55% của GPT-3 được fine-tune và kết hợp với một bộ xác minh huấn luyện riêng.
Prompting chuỗi suy nghĩ hoạt động như thế nào#
LLM tạo văn bản từng token một, và mỗi token đi qua cùng một số lớp mạng cố định. Với câu hỏi có đáp án phụ thuộc vào nhiều bước, model phải thực hiện toàn bộ phần suy luận đó trước khi viết token đầu tiên của câu trả lời. Khi model trình bày các bước, mỗi kết quả trung gian được đưa vào context window và chi phối mọi token tiếp theo, vì vậy bài toán càng khó thì cần càng nhiều token và compute hơn trước khi có đáp án.
CoT với few-shot đưa một số ví dụ vào prompt, mỗi ví dụ gồm một câu hỏi rồi đến lời giải từng bước; model bắt chước định dạng đó khi xử lý câu hỏi mới. Đây là một dạng few-shot learning từ các ví dụ trong prompt. Đoạn trao đổi trong Hình 1 của bài báo Wei và cộng sự minh họa định dạng này. Câu trả lời đầu tiên là ví dụ được đưa vào prompt, còn câu thứ hai là phản hồi của model:
Q: Roger has 5 tennis balls. He buys 2 more cans of tennis balls. Each can has 3 tennis balls. How many tennis balls does he have now?
A: Roger started with 5 balls. 2 cans of 3 tennis balls each is 6 tennis balls. 5 + 6 = 11. The answer is 11.
Q: The cafeteria had 23 apples. If they used 20 to make lunch and bought 6 more, how many apples do they have?
A: The cafeteria had 23 apples originally. They used 20 to make lunch. So they had 23 - 20 = 3. They bought 6 more apples, so they have 3 + 6 = 9. The answer is 9.Khi rút gọn cùng ví dụ xuống còn "The answer is 11.", model trả lời "The answer is 27." cho câu hỏi về nhà ăn.
CoT zero-shot không cần ví dụ. Takeshi Kojima và các đồng nghiệp phát hiện rằng chỉ cần thêm "Let's think step by step" vào câu hỏi là đủ để khơi gợi một chuỗi suy luận được trình bày bằng văn bản: với InstructGPT (text-davinci-002), cụm từ này nâng độ chính xác zero-shot trên benchmark MultiArith từ 17,7% lên 78,7% và trên GSM8K từ 10,4% lên 40,7%, theo báo cáo trong Large Language Models are Zero-Shot Reasoners.
Khi nào chuỗi suy nghĩ phát huy hiệu quả#
Mức cải thiện phụ thuộc vào quy mô model và tác vụ. Wei và cộng sự mô tả CoT là năng lực xuất hiện khi mở rộng quy mô: cải thiện chỉ xuất hiện ở các model có khoảng 100 tỷ tham số, còn model nhỏ hơn "tạo ra chuỗi suy nghĩ trôi chảy nhưng phi logic" và đạt điểm thấp hơn prompting thông thường. Mức cải thiện lớn nhất xuất hiện ở các bài toán nhiều bước về số học, suy luận thường thức và suy luận ký hiệu. Trên SingleOp, tập bài toán số học một bước, thay đổi này không mang lại cải thiện hoặc chỉ cải thiện rất nhỏ.
Lấy mẫu nhiều chuỗi suy luận tốt hơn chỉ dùng một chuỗi. Với self-consistency, Xuezhi Wang và các đồng nghiệp lấy mẫu nhiều luồng suy luận đa dạng bằng lấy mẫu nucleus hoặc temperature, rồi chọn đáp án được nhiều luồng nhất trí; phương pháp này tăng độ chính xác trên GSM8K thêm 17,9 điểm phần trăm so với một chuỗi tham lam duy nhất. Mỗi chuỗi bổ sung làm tăng số token được tạo, vì vậy CoT và self-consistency đánh đổi độ trễ suy luận và chi phí để lấy độ chính xác.
Pipeline thị giác-ngôn ngữ áp dụng cùng cách tiếp cận với bằng chứng hình ảnh. Trong Ultralytics Platform Agents, một khối LLM nhận ảnh cùng với các phát hiện từ YOLO26 ở bước trước; do đó, prompt chuỗi suy nghĩ tại đây có thể yêu cầu một model thị giác-ngôn ngữ lần lượt xem xét các vật thể đã phát hiện trước khi đưa ra nhận định về khung cảnh.
Reasoning model và tính trung thực#
Các reasoning model như o1 của OpenAI, phát hành vào tháng 9 năm 2024, được huấn luyện bằng reinforcement learning để tạo chuỗi suy nghĩ dài trước mỗi câu trả lời, vì vậy hành vi này không còn phụ thuộc vào prompt. Hướng dẫn thực hành tốt nhất cho reasoning của OpenAI khuyên nhà phát triển tránh chỉ dẫn "think step by step" với các model này, vì prompt như vậy có thể không hữu ích và đôi khi còn gây hại.
Chuỗi suy luận được viết ra cũng có vẻ như là lời giải thích cho đáp án, nên dễ bị xem là AI có thể giải thích. Miles Turpin và các đồng nghiệp cho thấy chuỗi này có thể mô tả sai nguyên nhân thực sự trong Language Models Don't Always Say What They Think: khi sắp xếp lại các ví dụ few-shot để đáp án đúng luôn là "(A)", GPT-3.5 và Claude 1.0 chuyển câu trả lời theo hướng "(A)" rồi viết các chuỗi suy luận biện minh cho đáp án đó mà không đề cập đến thứ tự. Những đặc trưng gây thiên lệch như vậy làm độ chính xác giảm tới 36% trên 13 tác vụ BIG-Bench Hard. Các chuỗi suy luận nghe có vẻ hợp lý nhưng sai là một nguồn gây hallucination trong LLM.
Chuỗi suy nghĩ và các kỹ thuật liên quan#
- Nối chuỗi prompt: Chia một tác vụ qua nhiều lần gọi model, trong đó mã chuyển đầu ra của mỗi lần gọi vào prompt tiếp theo. CoT diễn ra trong một lần gọi.
- Cây suy nghĩ (ToT): Tạo nhiều bước ứng viên tại mỗi điểm, chấm điểm và tìm kiếm trên cây kết quả bằng cách quay lui, trong khi CoT đi theo một đường duy nhất.
- Gợi ý ReAct: Xen kẽ các bước suy luận với hành động như tìm kiếm hoặc gọi công cụ, rồi đưa kết quả trở lại chuỗi.
- Chuỗi xác minh (CoVe): Yêu cầu model soạn câu trả lời, tự đặt câu hỏi xác minh, trả lời độc lập các câu hỏi đó rồi chỉnh sửa bản nháp.
- Suy luận tiềm ẩn: Thực hiện suy luận trung gian trong các trạng thái ẩn của model thay vì bằng token dạng văn bản, do đó không hiển thị chuỗi suy luận.










