Product Management
Đăng nhập
ESC

Nhập từ khóa để tìm kiếm

↑↓ Di chuyển
Enter Mở
ESC Đóng

Bài 5 — Few-shot: dạy agent bằng ví dụ

Đã đọc 0/9 mục · còn khoảng 4 phút
Cách chúng tôi ghi nhận

Một mục được tính là đã đọc khi nó nằm giữa màn hình đủ lâu so với độ dài của nó (bảng và sơ đồ tính một nửa), bạn vẫn đang cuộn hoặc bấm phím, và bạn đã thấy tới cuối mục. Lướt nhanh hoặc để tab mở không được tính. Chúng tôi chỉ lưu thời gian đọc từng mục — không lưu gì khác.

Có những hành vi rất khó mô tả bằng lời nhưng dễ chỉ ra bằng ví dụ. Few-shot là kỹ thuật đưa vài cặp input→output mẫu vào prompt để agent bắt chước. Đây là công cụ mạnh nhất để ổn định định dạng và xử lý ca khó (edge case).

Khi nào dùng few-shot

  • Output cần định dạng chính xác (JSON, bảng, nhãn cố định).
  • Có quy tắc ngầm khó diễn đạt (giọng điệu, mức độ chi tiết).
  • Có ca biên dễ sai (input trống, mơ hồ, nhiều ý).
Khi nào KHÔNG cần: tác vụ đơn giản mà lời mô tả đã đủ rõ — thêm ví dụ chỉ tốn token.

Cấu trúc một khối few-shot

VÍ DỤ 1 (ca bình thường)
Input: "Đơn 12345 tới đâu rồi?"
Output: {"nhom":"don_hang","uu_tien":"trung","ly_do":"hoi trang thai don"}

VÍ DỤ 2 (ca biên: input trống)
Input: ""
Output: {"nhom":"hoi_dap","uu_tien":"trung","ly_do":"noi dung trong, can nguoi kiem tra"}

VÍ DỤ 3 (ca khó: đe dọa pháp lý)
Input: "Tôi sẽ kiện shop vì giao sai hàng!"
Output: {"nhom":"khieu_nai","uu_tien":"cao","ly_do":"co yeu to phap ly, uu tien xu ly"}

Nguyên tắc vàng: chọn ví dụ dạy ranh giới quyết định, không phải ca dễ nhất. Ví dụ 2 và 3 mới thực sự dạy được điều mô tả bằng lời khó truyền đạt.

Bao nhiêu ví dụ là đủ

Thường 2–5 ví dụ. Nguyên tắc:

  • 1 ví dụ điển hình để neo định dạng.
  • 1–2 ví dụ ca biên (trống, mơ hồ).
  • 1 ví dụ ca nhạy cảm (nơi agent phải từ chối / leo thang).
Quá nhiều ví dụ (10+) tốn token và có thể khiến agent bám cứng vào mẫu, kém linh hoạt với input mới.

Cạm bẫy: few-shot cũng dạy điều sai

Agent bắt chước cả lỗi trong ví dụ. Nếu ví dụ của bạn có một JSON thiếu dấu ngoặc, hoặc một câu trả lời quá dài dòng, agent sẽ nhân bản lỗi đó. Ví dụ phải hoàn hảo như output mong muốn.

Ngoài ra, hãy đa dạng ví dụ. Nếu cả 3 ví dụ đều là câu hỏi về đơn hàng, agent có thể tưởng mọi thứ đều là đơn hàng.

Các bước xây khối few-shot

  • Thu thập input thật từ log (không bịa) — càng gần thực tế càng tốt.
  • Chọn 1 ca điển hình + 2 ca biên + 1 ca nhạy cảm.
  • Tự tay viết output hoàn hảo cho từng ca (đây là "chân lý" agent sẽ bắt chước).
  • Kiểm tra JSON hợp lệ, giọng điệu nhất quán.
  • Đặt few-shot sau system prompt, trước input người dùng.
  • Khi phát hiện agent sai một ca mới trong sản xuất → thêm chính ca đó thành ví dụ (vòng lặp cải thiện).

Checklist few-shot

  • [ ] Ví dụ dạy ranh giới, không chỉ ca dễ.
  • [ ] Có ít nhất 1 ca biên và 1 ca nhạy cảm.
  • [ ] Mọi output ví dụ đều hoàn hảo (không lỗi để bắt chước).
  • [ ] Ví dụ đa dạng, không lệch về một nhóm.
  • [ ] Lấy từ input thật, không bịa.

Sai lầm thường gặp

  • Chỉ đưa ca đẹp: Agent giỏi ca đẹp nhưng sập ở ca thật. Ưu tiên ca biên.
  • Ví dụ có lỗi: Agent nhân bản lỗi. Soát kỹ từng output mẫu.
  • Ví dụ lệch nhóm: 5 ví dụ cùng loại làm agent thiên vị. Trộn nhiều loại.
  • Nhồi 15 ví dụ: Tốn token, agent cứng nhắc. 2–5 ví dụ chất lượng thắng số lượng.
  • Bịa input: Input tưởng tượng thường sạch hơn thực tế nên không dạy được ca khó.

Vị trí và thứ tự của ví dụ cũng quan trọng

Một chi tiết hay bị bỏ qua: thứ tự ví dụ ảnh hưởng đến hành vi. Ví dụ đặt cuối cùng thường có ảnh hưởng mạnh nhất vì nó gần input người dùng nhất, nên đừng để ca đặc biệt nhất nằm ở vị trí dễ bị "pha loãng". Ngoài ra hãy giữ định dạng ví dụ giống hệt định dạng bạn muốn nhận lại — nếu output mong muốn là JSON một dòng thì ví dụ cũng phải một dòng, đừng để ví dụ xuống dòng đẹp mắt rồi ngạc nhiên khi agent bắt chước cách xuống dòng đó. Cuối cùng, phân định rõ đâu là ví dụ và đâu là input thật bằng nhãn ("VÍ DỤ" và "INPUT THẬT"); nếu không, agent có thể lẫn lộn ví dụ với dữ liệu cần xử lý, đặc biệt khi input người dùng tình cờ trông giống một ví dụ. Những chi tiết nhỏ này thường là khác biệt giữa few-shot hoạt động ổn định và few-shot cho kết quả thất thường.

Few-shot giúp agent làm đúng ở input bình thường. Bài tiếp theo lo phần input thù địch — prompt injection.

Học xong bài này rồi? Tạo tài khoản miễn phí để lưu lại — lần sau vào là biết ngay đang dở ở đâu, và học hết khóa thì có chứng chỉ. Lưu tiến độ của tôi