Kế 18: Tam cố thảo lư — Self-consistency hỏi 3 cách
Kế 18 Binh pháp AI: Hỏi AI 3 lần với cách diễn đạt khác nhau, chọn đáp án nhất quán để giảm 40% hallucination và tăng độ chính xác mà không cần fine-tuning.
Định nghĩa
Tam cố thảo lư (Self-Consistency) là kỹ thuật hỏi AI cùng một câu hỏi với ba cách diễn đạt khác nhau (paraphrase), sau đó chọn đáp án xuất hiện nhiều nhất (majority voting) để loại bỏ nhiễu ngẫu nhiên và bẫy suy luận cục bộ của mô hình.
Câu chuyện binh pháp: Thuở xưa Lưu Bị muốn mời Gia Cát Lượng làm quân sư, phải đến nhà ba lần. Lần đầu, gia nhân nói chủ đi vắng. Lần hai, Gia Cát Lượng đang ngủ, từ chối gặp. Đến lần thứ ba, ông mới đồng ý ra mặt. Điều này không chỉ thể hiện lòng kiên trì — mà là cách thẩm định chân thành qua nhiều lần thử nghiệm. Trong thế giới AI, hỏi một lần rồi tin ngay như gõ cửa nhà Gia Cát Lượng một lần rồi về: bạn không biết là AI thực sự "biết" hay chỉ là do tai nạn sampling ngẫu nhiên.
Giải thích chi tiết
Vấn đề của "hỏi một lần" (Single-shot)
Khi bạn hỏi AI một câu và nhận ngay một đáp án (greedy decoding), bạn đang lấy một mẫu duy nhất từ phân phối xác suất khổng lồ của mô hình. Điều này tạo ra ba rủi ro:
- Local minima: AI có thể rơi vào lối suy luận tắt (shortcut reasoning) — ví dụ nhìn thấy từ "bóng đá" liền đoán câu trả lời liên quan đến thể thao, bỏ qua ngữ cảnh rằng đang nói về "bóng đá dân tộc" (làm tơ).
- Stochastic noise: Cùng một câu hỏi, chạy lại lần hai có thể cho đáp án khác hoàn toàn do nhiễu ngẫu nhiên trong quá trình sinh token.
- Hallucination sycophancy: AI đôi khi "bịa" để làm vui lòng người dùng nếu câu hỏi mang tính dẫn dắt.
Cơ chế "hỏi ba cách" (Query Augmentation)
Thay vì hỏi một câu duy nhất, bạn diễn đạt lại cùng một ý bằng ba cách khác nhau, đủ khác biệt về từ vựng và cấu trúc cú pháp để tránh pattern-matching nông cạn:
Bước 1: Tạo biến thể câu hỏi
- Variant A: "Tính toán tỷ suất lợi nhuận khi đầu tư 100 triệu, thu về 150 triệu sau 6 tháng."
- Variant B: "Phân tích hiệu quả tài chính: chi phí ban đầu 100M, doanh thu 150M trong nửa năm, ROI là bao nhiêu phần trăm?"
- Variant C: "Với CAPEX 100 triệu đồng và revenue 150 triệu đồng trong 6 tháng, hãy xác định tỷ lệ sinh lời."
Bước 2: Sinh độc lập
Chạy ba câu hỏi này trong các context window riêng biệt (hoặc cùng một thread nhưng với temperature > 0 và seed khác nhau), đảm bảo chúng không ảnh hưởng lẫn nhau.
Bước 3: Trích xuất và so sánh Từ mỗi đáp án, trích xuất kết quả cuối cùng (ví dụ: con số 50%). Nếu hai hoặc ba đáp án trùng nhau → đó là đáp án nhất quán (consistent answer). Nếu cả ba đều khác nhau → flag để người kiểm tra (high uncertainty signal).
Prompt mẫu copy-paste
System prompt cho bước trích xuất:
Hãy đọc đoạn hội thoại sau và trích xuất câu trả lời cuối cùng dưới dạng một con số duy nhất. Nếu có nhiều con số, chọn con số đại diện cho kết quả cuối cùng của phép tính. Chỉ trả về số, không giải thích.
[Đoạn hội thoại ở đây]Tại sao kỹ thuật này hiệu quả
Nguyên lý tam giác hóa (Triangulation): Một câu trả lời đúng phải có tính bất biến (invariant) đối với cách diễn đạt. Nếu đáp án thay đổi khi bạn hỏi "23+17 bằng mấy" so với "tổng của 23 và 17", thì AI không thực sự "tính toán" — nó chỉ đang ghép mẫu (pattern matching) theo cách diễn đạt.
Hỏi ba cách khác nhau tạo ra ba đường chiếu (projection lines) vào kiến thức thực của mô hình. Giao điểm của ba đường này là vùng ổn định (stable manifold) — nơi chứa kiến thức thực sự, không phải thống kê bề mặt.
Điểm cân bằng chi phí
Bạn không cần hỏi 10 lần. Thực nghiệm cho thấy với 3 mẫu (samples), độ chính xác tăng từ 56% lên 74% trên bài toán toán học (GSM8K). Điểm lợi nhuận giảm phản hồi (diminishing returns) bắt đầu sau 5-7 mẫu. Ba lần là số vàng cho "chi phí API — độ tin cậy".
Ví dụ thực tế
Phân tích hợp đồng pháp lý
Bạn cần kiểm tra xem điều khoản bảo mật có bắt buộc NDA trong 2 năm hay 5 năm.
- Lần 1: "Thời hạn NDA trong hợp đồng này là bao lâu?"
- Lần 2: "Theo khoản 3.2 về bảo mật thông tin, bên nhận thông tin phải giữ bí mật trong bao nhiêu năm?"
- Lần 3: "Analyze the confidentiality period specified in the NDA clause."
Nếu cả ba đều trả về "2 năm" → bạn có thể tin tưởng. Nếu một câu nói 2 năm, một câu nói 5 năm → cần đọc lại điều khoản hoặc hỏi thêm người luật sư.
Chẩn đoán y tế từ triệu chứng
Triệu chứng: đau đầu, sốt nhẹ, mệt mỏi.
- Lần 1: "Triệu chứng đau đầu + sốt nhẹ có thể là bệnh gì?"
- Lần 2: "Headache and low-grade fever differential diagnosis?"
- Lần 3: "Dựa vào dấu hiệu sốt nhẹ và đau đầu, hãy liệt kê các khả năng bệnh lý phổ biến."
Nếu cả ba đều đề cập "cảm cúm" hoặc "viêm xoang" → có thể tin tưởng lành tính. Nếu một câu nói "u não", hai câu kia nói "cảm lạnh" → đây là tín hiệu bất đồng (divergence), cần gặp bác sĩ ngay, không tin AI.
Tính toán dữ liệu tài chính
Bạn cần xác định "Customer Acquisition Cost" từ báo cáo.
- Lần 1: "Tính CAC nếu chi marketing 500M, thu được 1000 khách hàng mới."
- Lần 2: "Cost per acquisition với marketing spend 500 triệu và 1000 new customers?"
- Lần 3: "Mỗi khách hàng mới tốn bao nhiêu chi phí marketing nếu tổng ngân sách là 500M và số lượng là 1000?"
Kết quả nhất quán: 500,000 VND/khách. Nếu một câu tính ra 50,000 → lỗi đơn vị (triệu vs tỷ), cần kiểm tra lại.
Ứng dụng theo đối tượng
Sinh viên & Nghiên cứu sinh
- Dùng khi kiểm tra kết quả tính toán trong bài tập lập trình hoặc thống kê.
- Verify lại câu trả lời AI về "nghĩa của một đoạn văn triết học" bằng cách hỏi lại bằng tiếng Anh và tiếng Việt.
Người đi làm (Freelancer, PM, Analyst)
- Kiểm tra email quan trọng trước khi gửi: cho AI kiểm tra tone và nội dung ba lần với vai trò khác nhau (đồng nghiệp, sếp, khách hàng) để đảm bảo thông điệp không bị hiểu lầm.
- Xác minh số liệu trong slide thuyết trình.
Doanh nghiệp & Startup
- Rà soát hợp đồng: Chạy tam cố thảo lư trên các điều khoản then chốt (termination, liability) trước khi ký.
- Chẩn đoán lỗi kỹ thuật: Mô tả lỗi crash theo ba góc độ (log traceback, user description, business impact) để xác định nguyên nhân gốc rễ nhất quán.
So sánh
| Tiêu chí | Hỏi 1 lần (Single-shot) | Kế 18: Tam cố thảo lư | Kế 20: Đánh song tuyến (Parallel Best-of-N) |
|---|---|---|---|
| Cơ chế | Một prompt, một lần sinh | Một ý, ba cách diễn đạt khác nhau | Một prompt, chạy song song N lần khác seed |
| Mục đích | Tốc độ nhanh nhất | Xác minh tính bất biến của kiến thức | Tìm đáp án tốt nhất từ nhiều mẫu |
| Chi phí API | 1x | 3x | Nx (thường 5-10) |
| Điểm mạnh | Phù hợp câu hỏi đơn giản, creative | Phát hiện hallucination do diễn đạt | Tìm được đáp án "may mắn" tốt nhất |
| Khi nào dùng | Brainstorming, draft văn bản | Câu hỏi có đáp án đúng/sai rõ ràng (math, fact) | Code generation, creative writing |
Kết luận: Tam cố thảo lư đặc biệt hiệu quả khi bạn cần độ chính xác cao trên câu hỏi có câu trả lời khách quan, trong khi Đánh song tuyến (Kế 20) phù hợp khi bạn cần chất lượng tối đa và có thể chấp nhận chi phí cao hơn để chọn "hạt ngọc" từ nhiều lần thử.
Bài viết liên quan
Kế 17: Kế liên hoàn — Prompt chaining nối nhiều prompt
Nối nhiều prompt thành chuỗi để xử lý tác vụ phức tạp, mỗi bước refine kết quả bước trước.
Kế 20: Đánh song tuyến — Parallel prompting
Chạy nhiều prompt song song cùng lúc, chọn kết quả tốt nhất thay vì hỏi tuần tự.
Cùng cụm (Pipeline — Phối hợp lực lượng)
- Kế 17: Kế liên hoàn — Nối prompt thành pipeline xử lý dài hơi.
- Kế 19: Tiên phong hậu đội — Draft, Critique, Rewrite theo luồng tiên phong-hậu đội.
- Kế 20: Đánh song tuyến — Song song hóa và chọn lọc (Best-of-N).
Đọc tiếp
Kế 19: Tiên phong hậu đội — Draft-Critique-Rewrite: Sau khi đã có câu trả lời nhất quán từ Kế 18, bạn cần polish nó? Tiên phong hậu đội sẽ giúp bạn viết lại (rewrite) dựa trên phê bình (critique) chuyên sâu.
Kế 17: Kế liên hoàn — Prompt chaining nối nhiều prompt
Kế 17 Binh pháp AI: Tách nhiệm vụ phức tạp thành chuỗi prompt nối tiếp, mỗi bước refine output, tránh lỗi lan truyền và tăng độ chính xác qua các giai đoạn.
Kế 19: Tiên phong hậu đội — Draft-Critique-Rewrite workflow
Kế 19 Binh pháp AI: Chia viết lách thành 3 giai đoạn - tiên phong viết thô, hậu đội phê bình, rồi viết lại. Giảm 40% lỗi logic, tăng 30% chất lượng output.