Mở đầu — vì sao bài này quan trọng
Hãy tưởng tượng bạn thuê một nhân viên rất giỏi, nhưng có một tật kỳ lạ: mỗi khi bạn giao việc tính toán hay ra quyết định phức tạp, thay vì ngồi nháp ra giấy rồi mới trả lời, người đó buột miệng nói ngay con số đầu tiên hiện lên trong đầu. Đôi khi đúng, nhưng nhiều lúc sai bét mà chẳng ai biết vì sao. Đó chính xác là cách một mô hình ngôn ngữ lớn (LLM) hành xử theo mặc định: nó có xu hướng nhảy thẳng đến câu trả lời mà không "suy nghĩ" qua từng bước.
Ở các bài trước, bạn đã học zero-shot (hỏi không có ví dụ) và few-shot (đưa ví dụ mẫu). Những kỹ thuật đó rất tốt cho các tác vụ đơn giản, một bước. Nhưng khi bài toán đòi hỏi nhiều bước suy luận nối tiếp nhau — tính chiết khấu qua nhiều tầng, phân tích một quyết định kinh doanh có nhiều biến số, giải một câu đố logic — thì việc bắt AI trả lời ngay lập tức giống như bắt một học sinh giải phương trình trong đầu mà không được viết nháp. Tỷ lệ sai tăng vọt.
Chain-of-Thought (CoT), tạm dịch "chuỗi suy luận", là kỹ thuật cực kỳ đơn giản về mặt thao tác nhưng lại là một trong những bước ngoặt lớn nhất của prompt engineering. Nó giúp AI làm đúng những việc mà trước đây nó liên tục làm sai. Với người làm kinh doanh, đây là kỹ thuật giúp bạn tin tưởng được kết quả của AI trong các tác vụ có "trọng lượng" — nơi một con số sai có thể khiến bạn báo giá lỗ, ra quyết định tuyển dụng sai, hay gửi một bản phân tích tài chính đầy lỗ hổng cho sếp.
Khái niệm cốt lõi
Chain-of-Thought là gì?
Chain-of-Thought là kỹ thuật yêu cầu mô hình 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ì trả lời ngay. Thay vì hỏi "Đáp án là bao nhiêu?", bạn hỏi "Hãy suy luận từng bước, rồi mới đưa ra đáp án".
Nghe có vẻ tầm thường, nhưng cơ chế đằng sau rất thú vị. LLM sinh văn bản theo kiểu dự đoán từ tiếp theo, một token một lần. Khi bạn bắt nó viết ra các bước, mỗi bước đã viết ra sẽ trở thành một phần "ngữ cảnh" cho bước tiếp theo. Nói cách khác, chính hành động viết ra lời giải giúp mô hình có thêm "không gian tính toán" để bám vào. Nó không còn phải nén toàn bộ phép suy luận vào một cú nhảy duy nhất; nó được phép đi từng bước nhỏ, mà mỗi bước nhỏ thì dễ đúng hơn nhiều.
Vấn đề mà CoT giải quyết
Vấn đề gốc: LLM mặc định tối ưu cho việc trả lời trôi chảy và tự tin, không phải trả lời đúng qua nhiều bước. Khi gặp bài toán multi-step, nó thường:
- Nhảy thẳng đến một đáp án nghe hợp lý nhưng sai.
- Bỏ qua các ràng buộc trung gian (ví dụ: quên rằng thuế được tính sau chiết khấu, không phải trước).
- Không có cách nào để bạn kiểm tra xem nó sai ở đâu, vì nó chỉ đưa mỗi con số.
Ba biến thể chính bạn cần biết
1. Zero-shot CoT. Đây là dạng đơn giản nhất và mạnh đến bất ngờ. Bạn chỉ cần thêm một câu vào cuối prompt, kiểu như: "Hãy suy nghĩ từng bước một." (tiếng Anh nổi tiếng là "Let's think step by step"). Không cần ví dụ, không cần gì thêm. Chỉ câu "thần chú" đó thôi đã kích hoạt chế độ suy luận và cải thiện đáng kể kết quả trên các bài toán logic, toán học.
2. Few-shot CoT. Bạn đưa cho mô hình một vài ví dụ, nhưng mỗi ví dụ không chỉ có câu hỏi và đáp án, mà còn có phần trình bày cách suy luận. Mô hình sẽ học theo "phong cách suy nghĩ" đó và áp dụng cho câu hỏi mới. Cách này mạnh hơn zero-shot CoT khi bài toán có cấu trúc đặc thù của ngành bạn (ví dụ cách tính hoa hồng riêng của công ty).
3. Structured CoT. Bạn ép mô hình suy luận theo một khung cố định do bạn định nghĩa: "Bước 1: xác định dữ kiện. Bước 2: liệt kê công thức. Bước 3: thay số. Bước 4: kết luận." Cách này cho kết quả nhất quán nhất và dễ tích hợp vào quy trình tự động.
Một lưu ý quan trọng: tách phần suy luận ra khỏi đáp án
Khi dùng CoT trong sản phẩm thực tế (ví dụ chatbot cho khách hàng), bạn thường không muốn khách nhìn thấy toàn bộ đoạn suy luận dài dòng. Mẹo phổ biến là yêu cầu mô hình đặt phần suy luận trong một khu vực riêng — ví dụ giữa các thẻ <suy_luan>...</suy_luan> — rồi đáp án cuối cùng nằm sau đó. Như vậy hệ thống của bạn có thể lấy phần suy luận để lưu log kiểm tra, nhưng chỉ hiển thị đáp án gọn gàng cho người dùng.
Tình huống thực tế
Ví dụ 1 — Báo giá của một xưởng in ở Bình Dương
Anh Tuấn điều hành một xưởng in bao bì nhỏ tại Bình Dương, chuyên in hộp giấy cho các thương hiệu mỹ phẩm. Anh muốn dùng AI để tự động tính báo giá cho khách. Quy tắc của xưởng: đơn giá gốc là 4.500đ/hộp; đơn trên 5.000 hộp được giảm 8%; khách thân thiết được giảm thêm 5% trên giá đã giảm; cuối cùng cộng VAT 8%.
Ban đầu anh hỏi thẳng: "Khách thân thiết đặt 6.000 hộp, đơn giá gốc 4.500đ, giảm 8% cho đơn lớn, giảm thêm 5% cho khách thân, cộng VAT 8%. Tổng tiền là bao nhiêu?" AI trả lời ngay: "Khoảng 26.244.000đ." Con số nghe hợp lý, nhưng anh Tuấn nhẩm lại thấy sai — AI đã cộng gộp hai mức giảm thành 13% thay vì áp dụng tuần tự, và tính VAT lệch.
Anh sửa prompt bằng zero-shot CoT: thêm câu "Hãy tính từng bước một, ghi rõ kết quả sau mỗi bước rồi mới đưa ra tổng cuối cùng." Lần này AI trả lời:
- Bước 1: Thành tiền gốc = 6.000 × 4.500 = 27.000.000đ.
- Bước 2: Giảm 8% cho đơn lớn = 27.000.000 × 0,92 = 24.840.000đ.
- Bước 3: Giảm thêm 5% cho khách thân = 24.840.000 × 0,95 = 23.598.000đ.
- Bước 4: Cộng VAT 8% = 23.598.000 × 1,08 = 25.485.840đ.
Ví dụ 2 — Quyết định thuê hay tự làm tại một startup logistics
Chị Hương là trưởng phòng vận hành tại một startup giao hàng chặng cuối ở TP.HCM. Chị cân nhắc: nên thuê ngoài đội shipper (outsource) hay tự tuyển và vận hành? Đây không phải bài toán số học thuần, mà là quyết định nhiều biến số: chi phí cố định, chi phí biến đổi theo sản lượng, khả năng kiểm soát chất lượng, rủi ro pháp lý.
Chị hỏi AI theo kiểu zero-shot: "Nên thuê ngoài hay tự vận hành đội giao hàng?" — và nhận về một đoạn văn chung chung kiểu "còn tùy vào tình huống", vô dụng cho việc ra quyết định.
Chị chuyển sang structured CoT, ép AI đi theo khung: "Hãy phân tích theo các bước: (1) Liệt kê các yếu tố chi phí của mỗi phương án. (2) Với sản lượng 15.000 đơn/tháng, ước tính chi phí mỗi phương án. (3) Nêu 2 rủi ro lớn nhất của mỗi phương án. (4) Đưa ra khuyến nghị và điều kiện để khuyến nghị đó đúng." Kết quả là một bản phân tích có cấu trúc: AI chỉ ra rằng ở mức 15.000 đơn/tháng, tự vận hành rẻ hơn khoảng 12% nhưng đòi hỏi vốn cố định lớn và rủi ro quản lý nhân sự; thuê ngoài đắt hơn nhưng linh hoạt khi sản lượng biến động mạnh — và khuyến nghị thuê ngoài trong 6 tháng đầu khi sản lượng chưa ổn định. Bài học: CoT không chỉ dành cho toán. Với quyết định kinh doanh, việc ép AI suy luận theo khung giúp biến câu trả lời mơ hồ thành phân tích có thể hành động được.
Ví dụ 3 — Chatbot chăm sóc khách hàng của một sàn TMĐT
Một đội sản phẩm tại sàn thương mại điện tử (giả định tên là ShopViet) xây chatbot xử lý khiếu nại hoàn tiền. Chính sách hoàn tiền có nhiều điều kiện: đơn dưới 7 ngày được hoàn 100%, từ 7–14 ngày hoàn 80%, hàng đã qua sử dụng không hoàn, hàng lỗi do nhà bán thì hoàn 100% bất kể thời gian.
Khi dùng prompt thường, chatbot hay ra quyết định sai vì bỏ sót điều kiện — ví dụ khách báo "hàng lỗi ngày thứ 10" thì bot áp mức 80% thay vì 100%. Đội sản phẩm áp dụng CoT có tách phần suy luận: yêu cầu bot đặt suy luận trong thẻ <phan_tich> (xác định số ngày, xác định tình trạng hàng, đối chiếu từng điều kiện) rồi mới kết luận mức hoàn tiền. Phần <phan_tich> được ẩn khỏi khách nhưng lưu vào log. Tỷ lệ ra quyết định đúng của bot tăng từ khoảng 82% lên 96%, và mỗi lần bot sai, đội có ngay log suy luận để biết nó lệch ở bước nào. Bài học: trong sản phẩm thực tế, CoT vừa nâng độ chính xác, vừa tạo ra dấu vết kiểm tra — nhưng bạn nên giấu phần suy luận khỏi người dùng cuối.
Hướng dẫn từng bước
Đây là quy trình áp dụng CoT cho một tác vụ bất kỳ của bạn:
Bước 1 — Xác định xem tác vụ có thực sự cần CoT không. CoT phát huy tác dụng với các tác vụ nhiều bước: tính toán, logic, so sánh nhiều phương án, phân loại theo nhiều điều kiện. Với tác vụ một bước đơn giản (dịch một câu, viết một dòng tiêu đề), CoT chỉ làm chậm và tốn token vô ích.
Bước 2 — Bắt đầu bằng zero-shot CoT. Thêm ngay một câu vào cuối prompt: "Hãy suy luận từng bước, ghi rõ kết quả trung gian, rồi mới đưa ra đáp án cuối." Chạy thử. Rất nhiều trường hợp chỉ cần đến đây là đủ.
Bước 3 — Nếu chưa ổn, chuyển sang structured CoT. Tự tay định nghĩa các bước bạn muốn AI đi qua. Đừng để AI tự chọn khung suy luận nếu bài toán có quy trình đặc thù. Viết rõ: "Bước 1 làm gì, Bước 2 làm gì..."
Bước 4 — Nếu vẫn lệch, thêm few-shot CoT. Đưa 1–2 ví dụ đã giải sẵn kèm cách suy luận mẫu. Đây là cách dạy AI "phong cách nghĩ" đúng chuẩn ngành của bạn.
Bước 5 — Tách đáp án ra khỏi suy luận. Yêu cầu AI kết thúc bằng một dòng rõ ràng, ví dụ: "Kết luận cuối cùng: ..." hoặc đặt suy luận trong thẻ riêng. Điều này giúp bạn (hoặc hệ thống) trích xuất đáp án chính xác.
Bước 6 — Kiểm tra và tinh chỉnh. Đọc phần suy luận để xem AI hiểu sai chỗ nào, rồi bổ sung ràng buộc còn thiếu vào prompt.
Lỗi thường gặp & mẹo
Lỗi 1 — Dùng CoT cho việc không cần. Ép AI "suy nghĩ từng bước" để viết một câu chào khách hàng là lãng phí token và làm phản hồi rối rắm. Chỉ dùng CoT khi có nhiều bước suy luận thật sự.
Lỗi 2 — Tin tưởng phần suy luận một cách mù quáng. Đôi khi AI viết ra một chuỗi suy luận nghe rất hợp lý nhưng vẫn dẫn tới đáp án sai (hiện tượng "suy luận trông có lý nhưng rỗng"). Suy luận được trình bày ra không đảm bảo 100% đúng — nó chỉ tăng xác suất đúng và giúp bạn dễ phát hiện lỗi hơn. Luôn kiểm tra các con số quan trọng.
Lỗi 3 — Để suy luận và đáp án lẫn lộn. Nếu bạn không yêu cầu tách bạch, AI sẽ trộn con số cuối vào giữa đoạn văn, khiến hệ thống tự động của bạn khó trích xuất. Luôn yêu cầu một dòng kết luận rõ ràng ở cuối.
Lỗi 4 — Quên rằng CoT làm tăng chi phí và độ trễ. Suy luận dài nghĩa là nhiều token đầu ra hơn, tốn tiền và chậm hơn. Trong sản phẩm quy mô lớn, hãy cân nhắc chỉ bật CoT cho các trường hợp khó, hoặc giới hạn độ dài suy luận.
Mẹo hay: Với bài toán quan trọng, hãy chạy CoT vài lần rồi lấy đáp án xuất hiện nhiều nhất (kỹ thuật "bỏ phiếu đa số" — self-consistency). Nếu AI cho ra ba lời giải mà hai lần ra cùng một số, độ tin cậy của con số đó cao hơn hẳn một lần chạy đơn lẻ.
Mẹo hay: Cụm từ kích hoạt suy luận không nhất thiết phải là "từng bước". Bạn có thể viết "Hãy giải thích lý do trước khi kết luận", "Trình bày cách bạn tính", hoặc mô tả cụ thể quy trình. Điều quan trọng là ra tín hiệu cho AI biết: đừng vội, hãy đi qua các bước.
Bài tập thực hành
- Bài toán chiết khấu tuần tự. Lấy một tình huống báo giá thật của bạn (hoặc tự nghĩ ra một tình huống có 3 tầng giảm giá và một khoản thuế). Hỏi AI hai lần: lần đầu hỏi thẳng đáp án, lần sau thêm câu "suy luận từng bước". So sánh hai kết quả và tự kiểm tra bằng máy tính. Ghi lại xem CoT có sửa được lỗi không.
- Chuyển từ zero-shot sang structured CoT. Chọn một quyết định kinh doanh bạn đang phân vân (thuê ngoài hay tự làm, chọn nhà cung cấp A hay B). Viết một prompt structured CoT với ít nhất 4 bước phân tích do bạn tự định nghĩa. Xem câu trả lời có cụ thể và hành động được hơn không.
- Tách suy luận khỏi đáp án. Viết một prompt phân loại (ví dụ: phân loại mức độ ưu tiên của một email khiếu nại) trong đó AI phải đặt suy luận trong thẻ
<phan_tich>...</phan_tich>rồi kết luận bằng một dòng "Mức ưu tiên: Cao/Trung bình/Thấp". Thử với 3 email khác nhau.
- Kiểm chứng self-consistency. Lấy một bài toán logic khó, chạy cùng một prompt CoT 3 lần. Ghi lại xem cả ba lần có ra cùng đáp án không. Nếu không, đọc kỹ để tìm bước mà một trong các lời giải bị lệch.
Tóm tắt
Chain-of-Thought là kỹ thuật buộc AI trình bày các bước suy luận trước khi trả lời, thay vì nhảy thẳng đến đáp án. Cơ chế đơn giản nhưng hiệu quả: viết ra từng bước cho mô hình thêm "không gian tính toán", nhờ đó mỗi bước nhỏ dễ đúng hơn, và toàn bộ lời giải trở nên có thể kiểm tra được.
Ba biến thể cần nhớ: zero-shot CoT (chỉ thêm câu "suy nghĩ từng bước"), few-shot CoT (đưa ví dụ kèm cách suy luận mẫu), và structured CoT (ép suy luận theo khung bạn định nghĩa). Hãy bắt đầu từ đơn giản nhất và nâng cấp dần khi cần.
CoT đặc biệt giá trị cho các tác vụ nhiều bước như tính toán chiết khấu, phân tích quyết định, phân loại theo nhiều điều kiện — như trong ba ví dụ về xưởng in ở Bình Dương, startup logistics và chatbot của sàn TMĐT. Nhưng đừng lạm dụng: với tác vụ một bước, CoT chỉ tốn token và làm chậm. Luôn tách phần suy luận khỏi đáp án cuối, đừng tin suy luận một cách mù quáng, và với các con số quan trọng hãy kiểm chứng lại. Nắm vững CoT, bạn đã có trong tay công cụ để biến AI từ một cỗ máy "đoán nhanh" thành một trợ lý biết "suy nghĩ có trách nhiệm".