Mục lục
Trả lời ngắn: Zero-shot prompting giao nhiệm vụ mà không đưa ví dụ mẫu của task; one-shot có một ví dụ; few-shot prompting đặt vài cặp input-output trong prompt để AI bắt pattern mong muốn. Few-shot hữu ích khi format, nhãn hoặc trường hợp ranh giới khó mô tả, nhưng không phải lúc nào cũng tốt hơn.
Đọc xong, bạn sẽ hiểu:
- Phân biệt zero-shot, one-shot và few-shot mà không nhầm với huấn luyện model.
- Biết lúc nào nên bắt đầu bằng hướng dẫn, lúc nào cần thêm ví dụ.
- Tự A/B test hai prompt trên một bộ dữ liệu giữ riêng.
Lưu ý giáo dục: Ví dụ tốt có thể làm output ổn định hơn, nhưng ví dụ sai cũng truyền lỗi. Không dùng dữ liệu riêng tư trong bài tập và luôn kiểm đầu ra trước khi áp dụng vào việc quan trọng.
1. Zero-shot và Few-shot khác nhau ở ví dụ mẫu
a. Ba cái tên, một câu hỏi đơn giản
Trong prompt — nội dung đầu vào hướng dẫn model — từ shot có thể hiểu nôm na là số example (ví dụ mẫu) của task được đặt ngay trong yêu cầu.
- Zero-shot: không có example. Bạn chỉ nêu task, dữ liệu và ràng buộc.
- One-shot: có đúng một example cho thấy input và output mong muốn.
- Few-shot: có một vài examples để model nhận ra cách gán nhãn, trình bày, dùng giọng hoặc xử lý trường hợp khó.
Google AI for Developers cũng định nghĩa theo cách này. Zero không có nghĩa prompt trống; zero-shot vẫn có goal và constraint, dữ liệu và format.
Ví dụ zero-shot:
Phân loại phản hồi thành:
GIAO HÀNG, SẢN PHẨM, HỖ TRỢ.
Chỉ trả một nhãn.
Phản hồi:
Hộp bị móp khi nhận.
Few-shot giữ cùng instruction, nhưng thêm những cặp như Giao trễ → GIAO HÀNG trước input mới.
b. Ví như công thức và bánh mẫu
Zero-shot giống giao công thức cho thợ bánh. Few-shot đặt thêm vài chiếc bánh mẫu để chốt hình dáng. Khi yêu cầu đã rõ, mẫu có thể thừa; khi trang trí tối giản có nhiều cách hiểu, mẫu giúp đóng mơ hồ.
Đây chỉ là ví von. Model không nhìn và nếm như thợ bánh; nó nhận pattern từ chuỗi input-output trong context của lượt hiện tại.
c. Không phải huấn luyện lại model
Model dùng examples trong prompt là in-context learning (học trong ngữ cảnh), không tự động đổi tham số như fine-tuning (tinh chỉnh bằng huấn luyện bổ sung). Paper GPT-3 năm 2020 đánh giá zero-, one- và few-shot qua tương tác văn bản, không cập nhật trọng số trong lúc làm task (Brown và cộng sự).
Hình 1 — Zero-shot và few-shot khác ở examples trong prompt, không phải ở việc người dùng huấn luyện lại model.
2. Example giúp AI bắt pattern như thế nào?
a. Một example nói nhiều hơn format
Một cặp input → output có thể cho model thấy nhiều thứ cùng lúc:
- Nhãn hợp lệ và cách viết hoa.
- Độ dài câu trả lời.
- Có được giải thích hay chỉ trả kết quả.
- Cách xử lý một câu ở ranh giới hai nhãn.
Đó là pattern (khuôn mẫu) model rút ra. Nếu ba examples đều trả đúng một nhãn in hoa, model có thêm tín hiệu để làm giống vậy. Nếu example thứ ba lại trả một đoạn văn, chính bạn đã đưa hai pattern xung đột.
b. Từ zero-shot sang few-shot
Task phân loại phản hồi có thể viết zero-shot như sau:
Goal: Gán một nhãn.
Nhãn: GIAO HÀNG,
SẢN PHẨM hoặc HỖ TRỢ.
Chỉ trả nhãn, không giải thích.
Nếu model hay gán Hộp móp vào giao hàng, thêm examples:
Giao trễ hai ngày.
→ GIAO HÀNG
Hộp bị móp khi nhận.
→ SẢN PHẨM
Nhắn hai lần chưa ai trả lời.
→ HỖ TRỢ
Các mẫu định nghĩa taxonomy của bài tập. Đội khác có thể xếp hộp móp vào VẬN CHUYỂN; examples phải phản ánh rule thật của họ.
c. Model có thể bắt chước cả lỗi
Example sai nhãn, thiên lệch hoặc format lệch có thể truyền lỗi. Vì vậy, example là một phần instruction cần review.
3. Khi nào nên dùng Zero-shot, khi nào dùng Few-shot?
a. Zero-shot là baseline hợp lý
Baseline (mốc so sánh) là kết quả ban đầu dùng để biết thay đổi sau có thật sự tốt hơn không. Với task quen thuộc như tóm tắt đoạn này thành ba bullet, hãy thử zero-shot rõ trước. Nếu output đã đạt rubric, thêm examples chỉ tốn token và chiếm context window — lượng thông tin model xử lý trong một lượt, đã giải thích ở bài #2.
Zero-shot phù hợp khi:
- Task phổ biến, goal và output dễ mô tả.
- Bạn chưa có examples đã kiểm chất lượng.
- Input dài, cần dành context cho dữ liệu chính.
- Bạn muốn tạo baseline trước khi tối ưu.
b. Few-shot hữu ích khi pattern khó viết thành luật
Few-shot đáng thử khi label là nội bộ, tone cần bắt đúng, format có nét riêng hoặc có edge case (trường hợp ranh giới). Ví dụ Không tìm thấy hướng dẫn đổi trả có thể là SẢN PHẨM hoặc HỖ TRỢ; một example đã duyệt giúp chốt rule của đội bạn.
Anthropic khuyên examples liên quan, đa dạng và có cấu trúc. Con số gợi ý của một nhà cung cấp không phải luật cho mọi model/task. Hãy thử số nhỏ rồi đo.
| Tín hiệu | Zero-shot | Few-shot | Lý do |
|---|---|---|---|
| Task rõ, output phổ biến | Nên thử trước | Có thể thừa | Cần baseline gọn |
| Nhãn nội bộ | Có thể thử | Thường hữu ích | Example chốt taxonomy |
| Format/tone rất riêng | Khó diễn đạt hết | Hữu ích | Mẫu cho thấy pattern |
| Chưa có mẫu đã duyệt | An toàn hơn | Chưa nên dùng | Mẫu sai truyền lỗi |
| Input đã rất dài | Tiết kiệm context | Cân nhắc kỹ | Example cũng tốn token |
Đoán chắc: cứ thêm nhiều ví dụ thì output sẽ chính xác và ổn định hơn.
Có điều kiện: examples chỉ hữu ích khi đúng, liên quan, đa dạng và làm rubric tốt hơn trên input chưa thấy.
4. Checklist viết Few-shot không dạy nhầm
a. Năm bước trước khi thêm examples
- Viết goal, labels, constraint và output trước.
- Chạy zero-shot để có baseline.
- Chọn examples từ rule đã được người có trách nhiệm duyệt.
- Giữ cấu trúc input-output nhất quán và tách rõ khỏi input thật.
- Chạy test giữ riêng; chỉ giữ few-shot nếu cải thiện mà không tạo lỗi mới.
b. Ba tiêu chí của example tốt
- Liên quan: giống task và dữ liệu thật, không chỉ giống chủ đề chung.
- Đa dạng: phủ vài nhãn và edge case khác nhau, không lặp ba câu giao trễ.
- Nhất quán: cùng delimiter, cùng label, cùng mức giải thích và cùng rule.
Đa dạng không nghĩa càng nhiều càng tốt. Ba mẫu cùng một lỗi không dạy cách phân biệt nhãn khác.
c. Giữ đề kiểm tra ngoài bài mẫu
Held-out test (bộ test giữ riêng) là input không xuất hiện trong examples. Nếu bạn chấm lại đúng câu Giao trễ hai ngày, chưa biết model áp dụng pattern cho câu mới hay chỉ bắt chước. Hãy giữ vài câu mới, chấm zero-shot và few-shot bằng cùng rubric.
OpenAI cũng khuyến nghị chạy eval khi thay đổi prompt dùng trong ứng dụng (OpenAI Prompting guide). Với bài tập nhỏ, eval chỉ cần bảng đúng nhãn, đúng format, bám dữ liệu và không suy diễn.
Hình 2 — Example liên quan, đa dạng và nhất quán hữu ích hơn một chồng mẫu chưa được kiểm.
5. Bài tập 15 phút: A/B Zero-shot và Few-shot
Dùng chatbot miễn phí và mở hai chat mới. Không cần API hoặc nạp tiền. Dùng đúng dữ liệu giả dưới đây.
a. Prompt A và Prompt B
Prompt A — zero-shot: nêu goal phân loại, ba labels và constraint chỉ trả một nhãn. Không thêm example.
Prompt B — few-shot: giữ nguyên Prompt A và thêm ba examples:
Giao trễ hai ngày. → GIAO HÀNGHộp bị móp khi nhận. → SẢN PHẨMNhắn hai lần chưa ai trả lời. → HỖ TRỢ
Sau đó gửi riêng ba câu test cho cả A và B:
Tài xế gọi nhưng không giao đến địa chỉ.Sản phẩm có vết xước nhỏ.Không tìm thấy hướng dẫn đổi trả.
Hình 3 — Chỉ giữ examples khi Prompt B tốt hơn trên input mới, không phải vì prompt nhìn chuyên nghiệp hơn.
Mẫu đối chiếu đã điền
| Tiêu chí | Prompt A — mẫu ghi | Prompt B — mẫu ghi | Cách chấm |
|---|---|---|---|
| Đúng nhãn mẫu | 2/3 | 3/3 | GIAO HÀNG / SẢN PHẨM / HỖ TRỢ |
| Chỉ trả một nhãn | 3/3 | 3/3 | Không có giải thích thừa |
| Bám dữ liệu | 3/3 | 3/3 | Không tự thêm nguyên nhân |
| Ổn định format | 3/3 | 3/3 | Ba output cùng cách viết |
Bảng trên là một mẫu điền minh họa, không phải kết quả cố định. Ghi lại kết quả thật của công cụ. Nếu A đã đạt 4/4 tiêu chí, zero-shot là lựa chọn gọn. Nếu B sửa lỗi mà không tạo lỗi mới, few-shot có giá trị. Mỗi vòng chỉ đổi examples; đừng đổi cả model, instruction và dữ liệu.
Dừng nếu bạn định đưa phản hồi khách hàng thật, tên, số điện thoại hoặc dữ liệu nội bộ vào chatbot không được phép.
6. Tổng kết: thêm mẫu khi mẫu giải quyết được lỗi
a. Năm ý chính
- Zero-shot không có example của task; one-shot có một; few-shot có vài examples.
- Few-shot cho model thấy pattern trong context, không tự động fine-tune model.
- Zero-shot rõ là baseline tốt cho task phổ biến.
- Examples phải liên quan, đa dạng, nhất quán và đã kiểm đúng.
- Chỉ kết luận few-shot tốt hơn khi held-out test và rubric cho thấy vậy.
b. Câu hỏi tự kiểm tra
- Zero-shot có đồng nghĩa prompt không có instruction không?
- Few-shot khác fine-tuning ở điểm nào?
- Vì sao không nên dùng lại examples làm test set?
- Khi zero-shot đã đạt rubric, có cần thêm năm examples không?
c. Gợi ý đáp án
Xem gợi ý câu 1
Không. Zero-shot vẫn có instruction, dữ liệu và constraint; nó chỉ không có example của task. Xem mục 1.
Xem gợi ý câu 2
Few-shot đặt demonstrations trong context hiện tại; fine-tuning là huấn luyện bổ sung làm thay đổi tham số. Xem mục 1.
Xem gợi ý câu 3
Chấm lại bài mẫu không kiểm được khả năng áp dụng pattern cho input mới. Xem mục 4.
Xem gợi ý câu 4
Không nhất thiết. Giữ zero-shot nếu examples không làm rubric tốt hơn. Xem mục 3 và 5.
d. Thuật ngữ cần nhớ
| Thuật ngữ | Giải thích ngắn |
|---|---|
| Zero-shot | Prompt không chứa example của task |
| One-shot | Prompt có một example |
| Few-shot | Prompt có vài examples |
| Demonstration | Cặp input-output làm mẫu |
| Pattern | Khuôn về nhãn, format, tone hoặc cách xử lý |
| In-context learning | Dùng examples trong context hiện tại |
| Fine-tuning | Huấn luyện bổ sung thay đổi tham số model |
| Baseline | Mốc ban đầu để so thay đổi |
| Edge case | Trường hợp ranh giới dễ gán nhầm |
| Held-out test | Input giữ riêng, không nằm trong examples |
e. Nguồn tham khảo
- Google AI for Developers — Prompt design strategies
- Anthropic — Use examples effectively
- OpenAI — Prompting
- Brown và cộng sự — Language Models are Few-Shot Learners
Bài tiếp theo: Chain of Thought và Reasoning — cách yêu cầu AI giải quyết task nhiều bước mà không biến phần suy luận thành một màn trình diễn dài.
Nội dung này phục vụ mục đích giáo dục, không phải lời khuyên đầu tư hoặc tín hiệu giao dịch. Mọi thị trường đều có rủi ro mất vốn.
Bài tiếp theo