Few-shot prompting là gì? Hướng dẫn cho người mới

Tìm hiểu cách dùng ví dụ trong few-shot prompting, cách chọn và kiểm thử prompt, khi nào nên áp dụng và những hạn chế cần lưu ý.
Minh họa cho Guide AI With Examples

Few-shot prompting là cách hướng dẫn mô hình AI bằng một số ví dụ ngay trong prompt, trước khi yêu cầu mô hình xử lý trường hợp mới. Thay vì chỉ mô tả kết quả mong muốn, bạn cho mô hình thấy các cặp đầu vào và đầu ra mẫu.

Chẳng hạn, bạn có thể đưa vào một số tin nhắn khách hàng được gắn nhãn “Cần xử lý” hoặc “Chỉ cung cấp thông tin”, rồi yêu cầu mô hình phân loại tin nhắn mới. Cách này hữu ích khi chỉ dẫn bằng lời chưa làm rõ các nhóm phân loại, định dạng hoặc phong cách cần dùng.

Tóm tắt cốt lõi (Key Takeaways)

  • Đây là gì: Few-shot prompting dùng nhiều ví dụ trong prompt để minh họa nhiệm vụ hoặc mẫu phản hồi.
  • Cách hoạt động: Ví dụ hướng dẫn mô hình trong yêu cầu hiện tại; chúng không thay đổi tham số nền tảng hay huấn luyện lại mô hình.
  • Vì sao hữu ích: Cách này có thể giúp nhiệm vụ lặp lại nhất quán hơn, nhưng ví dụ cần phù hợp, rõ ràng và được kiểm thử.

Few-shot prompting là gì?

Few-shot prompting là cách đưa cho Large Language Model (mô hình ngôn ngữ lớn) một số ví dụ trước khi yêu cầu mô hình tạo câu trả lời. Large Language Model là hệ thống AI được huấn luyện để xử lý và tạo văn bản. Các ví dụ trong prompt cho thấy cách làm nhiệm vụ, định dạng kết quả hoặc tuân theo phong cách cụ thể.

Ví dụ đơn giản:

“`text
Tin nhắn: “Bạn có thể gửi hóa đơn đã cập nhật trước thứ Sáu không?”
Phân loại: Cần xử lý

Tin nhắn: “Văn phòng sẽ đóng cửa vào thứ Hai tuần tới.”
Phân loại: Chỉ cung cấp thông tin

Tin nhắn: “Vui lòng xem hợp đồng đính kèm và gửi nhận xét của bạn.”
Phân loại:
“`

Mô hình dùng hai cặp đầu vào – đầu ra đầu tiên làm mẫu, rồi phân loại tin nhắn mới. Các ví dụ chỉ hướng dẫn phản hồi trong yêu cầu hiện tại, không dạy vĩnh viễn cho mô hình một quy tắc mới. DataCamp mô tả few-shot prompting là việc cung cấp một số ít ví dụ về nhiệm vụ trước khi tạo phản hồi.

Few-shot prompting hoạt động như thế nào?

Few-shot prompting đưa ra các ví dụ để mô hình áp dụng một mẫu cho đầu vào mới, mà không cần thay đổi tham số nền tảng của mô hình.

1. Nêu nhiệm vụ. Giải thích mô hình cần làm gì, chẳng hạn phân loại email hoặc trích xuất thông tin.
2. Cung cấp ví dụ. Ghép một số đầu vào với đầu ra mong muốn.
3. Đưa đầu vào mới. Yêu cầu mô hình áp dụng mẫu cho trường hợp chưa xuất hiện trong ví dụ.
4. Kiểm tra kết quả. Đánh giá đầu ra theo yêu cầu của nhiệm vụ.

Ví dụ không trở thành dữ liệu huấn luyện mới theo nghĩa thông thường. Chúng nằm trong prompt mà mô hình xem xét khi tạo phản hồi. Vì vậy, few-shot prompting có thể điều chỉnh mô hình đa dụng cho một nhiệm vụ hẹp hơn mà không thay đổi tham số của mô hình. DataCamp giải thích sự khác biệt giữa việc điều chỉnh dựa trên prompt và thay đổi tham số.

Giả sử bạn muốn phân loại email hỗ trợ. Có thể đưa vào hai hoặc ba tin nhắn đã gắn nhãn, rồi thêm tin nhắn cần xử lý:

“`text
Phân loại mỗi tin nhắn thành Thanh toán, Hỗ trợ kỹ thuật hoặc Truy cập tài khoản.
Chỉ trả về tên phân loại.

Tin nhắn: “Tôi bị tính phí hai lần cho gói đăng ký.”
Phân loại: Thanh toán

Tin nhắn: “Trang tổng quan hiển thị lỗi khi tôi tải báo cáo lên.”
Phân loại: Hỗ trợ kỹ thuật

Tin nhắn: “Tôi không thể đăng nhập vì không còn quyền truy cập vào số điện thoại cũ.”
Phân loại:
“`

Các ví dụ thể hiện cả nhóm phân loại lẫn định dạng đầu ra, giúp mô hình hiểu nhiệm vụ hơn so với một câu hướng dẫn đơn lẻ.

Minh họa cho Few-shot prompting hoạt động như thế nào

Zero-shot, one-shot và few-shot prompting

Các thuật ngữ này cho biết prompt có bao nhiêu ví dụ; chúng không chỉ các loại mô hình AI khác nhau.

Phương pháp prompting Số lượng ví dụ Cấu trúc prompt điển hình
Zero-shot prompting Không có Hướng dẫn, sau đó là đầu vào mới
One-shot prompting Một Hướng dẫn, một ví dụ, sau đó là đầu vào mới
Few-shot prompting Nhiều Hướng dẫn, một số ví dụ, sau đó là đầu vào mới

Với zero-shot prompting, bạn có thể yêu cầu: “Hãy phân loại email này thành Thanh toán, Hỗ trợ kỹ thuật hoặc Truy cập tài khoản.” Mô hình nhận hướng dẫn nhưng không có ví dụ.

Với one-shot prompting, bạn thêm một ví dụ đã gắn nhãn; cách này có thể đủ cho nhiệm vụ đơn giản, dễ minh họa. Few-shot prompting cung cấp nhiều ví dụ, giúp mô hình nhận biết các nhóm phân loại, quy tắc định dạng hoặc khác biệt giữa những trường hợp tương tự. IBM cũng phân biệt ba cách theo số lượng ví dụ: zero-shot không có, one-shot có một và few-shot có nhiều ví dụ. Xem giải thích của IBM về few-shot prompting.

Ví dụ đơn giản về few-shot prompt

Ví dụ sau phân loại email công việc thành ba nhóm:

“`text
Bạn phân loại email công việc vào một trong các nhóm sau:
– Cần xử lý: người nhận phải thực hiện một việc gì đó
– Chỉ cung cấp thông tin: tin nhắn cung cấp thông tin nhưng không yêu cầu hành động
– Theo dõi: tin nhắn tiếp tục một cuộc trao đổi đang diễn ra hoặc yêu cầu cập nhật trạng thái

Chỉ trả về tên phân loại.

Email: “Vui lòng phê duyệt ngân sách dự án đã sửa đổi trước thứ Năm.”
Phân loại: Cần xử lý

Email: “Cuộc họp toàn công ty hằng quý sẽ diễn ra vào ngày 12 tháng 9.”
Phân loại: Chỉ cung cấp thông tin

Email: “Tôi muốn hỏi xem bạn đã có cơ hội xem đề xuất chưa.”
Phân loại: Theo dõi

Email: “Bạn có thể xác nhận chúng ta nên dùng phiên bản nào của báo cáo cho cuộc họp với khách hàng không?”
Phân loại:
“`

Prompt gồm bốn phần:

  • Hướng dẫn nhiệm vụ: Nêu việc mô hình cần làm.
  • Định nghĩa nhóm phân loại: Làm rõ ý nghĩa của từng nhãn.
  • Các ví dụ: Ghép email với nhóm phân loại mong muốn.
  • Đầu vào mới: Email cuối cùng cần được phân loại.

Có thể dùng cùng cấu trúc để phân loại yêu cầu hỗ trợ, trích xuất trường dữ liệu từ hóa đơn hoặc tạo câu trả lời ngắn theo giọng điệu đã được phê duyệt. Ví dụ cần thể hiện đúng mẫu mà bạn muốn mô hình tuân theo. DataCamp xác định các cặp đầu vào – đầu ra, định dạng nhất quán và mức độ phù hợp với nhiệm vụ là những đặc điểm thường thấy của các ví dụ minh họa hữu ích.

Khi nào nên dùng few-shot prompting?

Hãy dùng few-shot prompting khi ví dụ làm rõ nhiệm vụ hơn chỉ dẫn bằng lời, nhất là với nhiệm vụ có mẫu lặp lại hoặc quy ước riêng của tổ chức.

Một số trường hợp phù hợp:

1. Phân loại: Sắp xếp tin nhắn khách hàng vào các nhóm như thanh toán, giao hàng hoặc hỗ trợ kỹ thuật.
2. Trích xuất có cấu trúc: Minh họa cách chuyển ghi chú không có cấu trúc thành các trường như ngày, người phụ trách, mức độ ưu tiên và bước tiếp theo.
3. Định dạng nhất quán: Minh họa cách tạo bảng ngắn, bản ghi dạng JSON, danh sách gạch đầu dòng hoặc một phần báo cáo cố định.
4. Bắt chước giọng điệu và phong cách: Dùng email hoặc nội dung tiếp thị đã được phê duyệt khi câu chữ cần theo một phong cách cụ thể.
5. Chuyển đổi mã hoặc văn bản: Cho thấy cách chuyển định dạng nguồn sang định dạng đầu ra yêu cầu.

Nếu nhóm cần câu trả lời chăm sóc khách hàng ngắn và bình tĩnh, nhóm có thể đưa vào một số câu trả lời đã được phê duyệt cùng tin nhắn gốc của khách hàng. Ví dụ giúp mô hình làm theo cách diễn đạt và mức độ chi tiết mong muốn. Few-shot prompting cũng được dùng trong các nhiệm vụ như phân tích cảm xúc, nhận dạng thực thể có tên, hội thoại và tạo mã. IBM cung cấp các ví dụ về những lĩnh vực ứng dụng này.

Không phải nhiệm vụ nào cũng cần few-shot prompting. Nếu một chỉ dẫn rõ ràng đã tạo ra kết quả phù hợp, thêm ví dụ có thể chỉ làm prompt dài hơn.

Cách chọn các ví dụ hữu ích

Chọn ví dụ phù hợp, nhất quán và đại diện cho đầu vào thực tế để giúp mô hình nhận ra mẫu mong muốn thay vì tạo thêm sự không chắc chắn.

1. Chọn ví dụ từ nhiệm vụ thực tế. Với tin nhắn hỗ trợ, hãy dùng tin nhắn hỗ trợ thay vì văn bản không liên quan.
2. Ghép mỗi đầu vào với một đầu ra rõ ràng. Mô hình cần thấy kết quả đúng trông như thế nào.
3. Dùng cùng một cấu trúc. Giữ nhất quán tên trường, dấu phân cách và kiểu đầu ra.
4. Thể hiện những khác biệt có ý nghĩa. Cho thấy các trường hợp tương tự cần nhận nhãn khác nhau như thế nào.
5. Đưa vào trường hợp biên quan trọng khi cần. Nếu yêu cầu khẩn cấp được xử lý khác yêu cầu thông thường, hãy minh họa sự khác biệt đó.
6. Loại bỏ ví dụ mâu thuẫn. Các đầu vào tương tự nhưng có nhãn không nhất quán khiến quy tắc mong muốn khó nhận biết hơn.

So sánh hai cách trình bày:

“`text
Ví dụ có cấu trúc thiếu nhất quán:
Email: “Hóa đơn có sai sót.”
Kết quả: Vấn đề về thanh toán

Văn bản: “Bạn có thể giúp tôi đăng nhập không?”
Đầu ra: Truy cập tài khoản

Tin nhắn: “Đơn hàng của tôi đang ở đâu?”
Phân loại: Giao hàng
“`

“`text
Ví dụ nhất quán:
Email: “Hóa đơn có sai sót.”
Phân loại: Thanh toán

Email: “Bạn có thể giúp tôi đăng nhập không?”
Phân loại: Truy cập tài khoản

Email: “Đơn hàng của tôi đang ở đâu?”
Phân loại: Giao hàng
“`

Phiên bản thứ hai dùng cùng tên trường và định dạng nhãn, giúp nhận diện cấu trúc mong muốn dễ hơn. Ví dụ cũng nên phù hợp với mức độ chi tiết và ngôn ngữ cần có trong đầu ra. DataCamp khuyến nghị dùng các cặp đầu vào – đầu ra phù hợp và định dạng nhất quán khi tạo ví dụ minh họa.

Nên đưa vào bao nhiêu ví dụ?

Không có số lượng ví dụ tối ưu cho mọi nhiệm vụ, mô hình hoặc prompt. Hãy bắt đầu bằng một nhóm nhỏ ví dụ phù hợp, rồi kiểm thử xem việc thêm ví dụ có khắc phục được vấn đề thực tế hay không.

Với nhiệm vụ phân loại email đơn giản, bạn có thể bắt đầu bằng vài ví dụ bao quát các nhóm chính. Nếu mô hình nhầm lẫn giữa hai nhóm, hãy thêm ví dụ phân biệt rõ chúng. Nếu ví dụ bổ sung không cải thiện kết quả, hãy bỏ đi để prompt ngắn hơn.

Một hướng dẫn về prompting đề xuất khoảng hai đến năm ví dụ như phạm vi thực tế, đồng thời lưu ý lợi ích có thể giảm dần khi thêm nhiều ví dụ. Đây là khuyến nghị riêng của nguồn đó, không phải quy tắc áp dụng cho mọi trường hợp. Xem khuyến nghị và phần lưu ý của PromptHub.

Ví dụ dùng chung không gian ngữ cảnh với hướng dẫn, lịch sử hội thoại, tài liệu và nội dung khác. Vì vậy, ví dụ dài sẽ chiếm chỗ của các phần còn lại và có thể làm tăng chi phí xử lý hoặc giảm không gian dành cho phản hồi, tùy công cụ. Comet thảo luận về sự đánh đổi liên quan đến ngân sách ngữ cảnh này.

Cách kiểm thử và cải thiện few-shot prompt

Kiểm thử prompt trên những đầu vào mới, không dùng làm ví dụ, để xác định mô hình có áp dụng được mẫu hay chỉ lặp lại các ví dụ quen thuộc.

1. Để riêng đầu vào kiểm thử. Giữ một số trường hợp đại diện bên ngoài prompt.
2. Chạy prompt. Dùng cùng hướng dẫn và ví dụ cho từng đầu vào kiểm thử.
3. So sánh đầu ra với kết quả mong muốn. Kiểm tra nhãn, định dạng, mức độ đầy đủ và giọng điệu.
4. Tìm nguyên nhân lỗi. Có thể nhãn chưa rõ, thiếu trường hợp biên, ví dụ mâu thuẫn hoặc hướng dẫn còn mơ hồ.
5. Mỗi lần chỉ thay đổi một yếu tố. Thay một ví dụ, làm rõ một nhãn hoặc điều chỉnh định dạng đầu ra.
6. Chạy lại cùng bài kiểm thử. Xác nhận thay đổi có hiệu quả và không tạo vấn đề mới.

Nếu bộ phân loại email liên tục xếp câu “Vui lòng xác nhận khoản thanh toán đã được nhận chưa” vào nhóm yêu cầu thanh toán mới thay vì nhóm theo dõi, hãy thêm hoặc sửa ví dụ để làm rõ khác biệt đó. Thêm nhiều ví dụ không liên quan chưa chắc giải quyết được lỗi.

Đây là phương pháp kiểm tra thực tế, không phải bảo đảm về độ tin cậy. Với quyết định có tác động lớn, hãy đối chiếu đầu ra với thông tin có thẩm quyền và để một người chịu trách nhiệm về quyết định cuối cùng.

Few-shot prompting và fine-tuning

Few-shot prompting đưa ví dụ vào prompt; fine-tuning dùng ví dụ trong một quy trình huấn luyện riêng.

Khía cạnh Few-shot prompting Fine-tuning
Nơi cung cấp ví dụ Bên trong prompt Trong một quy trình huấn luyện riêng
Tác động đến tham số mô hình Không thay đổi tham số Điều chỉnh mô hình thông qua huấn luyện
Phù hợp nhất với Hướng dẫn nhiệm vụ nhanh và thử nghiệm Điều chỉnh ổn định hơn cho một trường hợp sử dụng lặp lại
Cách thay đổi Sửa prompt hoặc các ví dụ Chạy hoặc yêu cầu một quy trình huấn luyện khác
Đánh đổi chính Sử dụng không gian của prompt Cần thêm dữ liệu, thiết lập và đánh giá

Dán một số email đã được phê duyệt vào yêu cầu là few-shot prompting. Huấn luyện một mô hình riêng bằng tập hợp ví dụ là fine-tuning. Few-shot prompting giúp thử nhanh một mẫu nhiệm vụ; fine-tuning là lựa chọn riêng có thể cân nhắc khi một trường hợp sử dụng lặp lại cần sự điều chỉnh ổn định hơn. Hai cách này không thể thay thế cho nhau. DataCamp phân biệt few-shot prompting với việc thay đổi các tham số nền tảng của mô hình.

Hạn chế của few-shot prompting là gì?

Few-shot prompting giúp làm rõ nhiệm vụ nhưng không bảo đảm kết quả chính xác hoặc nhất quán.

1. Ví dụ kém có thể dạy sai mẫu. Ví dụ gắn nhãn sai hoặc không rõ ràng có thể ảnh hưởng đến đầu ra.
2. Ví dụ có thể bỏ sót trường hợp quan trọng. Mô hình có thể gặp khó khi đầu vào mới khác với các ví dụ.
3. Nhiệm vụ phức tạp cần nhiều hơn việc nhận dạng mẫu. Ví dụ không giải quyết được yêu cầu mơ hồ hoặc thông tin chưa đầy đủ.
4. Kết quả phụ thuộc vào mô hình. Các mô hình khác nhau có thể phản hồi khác nhau với cùng bộ ví dụ.
5. Ví dụ chiếm không gian ngữ cảnh. Ví dụ dài cạnh tranh chỗ với hướng dẫn, tài liệu, lịch sử hội thoại và đầu ra được yêu cầu.
6. Đầu ra có vẻ hợp lý vẫn có thể sai. Bản phân loại hoặc bản nháp được định dạng tốt vẫn cần xem xét nếu sai sót có thể gây hậu quả đáng kể.

Hiệu quả phụ thuộc vào độ phức tạp của nhiệm vụ, chất lượng và mức độ phù hợp của ví dụ, chất lượng prompt và năng lực của mô hình nền tảng. DataCamp đề cập đến các yếu tố này khi thảo luận về giới hạn của few-shot prompting.

Trong công việc, không đưa thông tin khách hàng mật, mật khẩu, API key, hợp đồng riêng tư hoặc dữ liệu nhạy cảm khác vào prompt, trừ khi tổ chức đã phê duyệt công cụ và điều khoản xử lý dữ liệu. Việc nhà cung cấp có dùng nội dung đã gửi để huấn luyện mô hình hay không khác với thời gian họ lưu giữ hoặc ghi nhật ký nội dung đó. Hãy kiểm tra cả hai chính sách trước khi dùng dữ liệu kinh doanh thực tế.

Danh sách kiểm tra cho người mới bắt đầu

Dùng danh sách này khi tạo few-shot prompt đầu tiên:

  • Nêu nhiệm vụ bằng một hướng dẫn rõ ràng.
  • Định nghĩa nhóm phân loại hoặc trường bắt buộc nếu có thể gây nhầm lẫn.
  • Thêm một nhóm nhỏ ví dụ đầu vào – đầu ra phù hợp.
  • Giữ định dạng và nhãn của ví dụ nhất quán.
  • Đưa vào ví dụ thể hiện khác biệt hoặc trường hợp biên quan trọng.
  • Nêu rõ định dạng đầu ra bắt buộc.
  • Kiểm thử prompt trên đầu vào mới chưa dùng làm ví dụ.
  • Khi tinh chỉnh, mỗi lần chỉ thay đổi một hướng dẫn hoặc một ví dụ.
  • Xem xét đầu ra quan trọng; ví dụ không bảo đảm kết quả.
  • Nhớ rằng ví dụ hướng dẫn yêu cầu hiện tại, không huấn luyện lại mô hình.

Few-shot prompting là một kỹ thuật prompt engineering: cho mô hình AI thấy nhiệm vụ trông như thế nào thay vì chỉ dựa vào hướng dẫn. Hãy dùng kỹ thuật này khi ví dụ làm rõ mẫu mong muốn, giữ chúng tập trung và kiểm thử kết quả trước khi dựa vào đầu ra cho công việc quan trọng.

Previous Article

Cấu trúc prompt cho người mới bắt đầu

Next Article

Cách sử dụng ràng buộc trong prompt