Mặc dù các mô hình ngôn ngữ lớn có khả năng zero-shot ấn tượng, nhưng chúng vẫn gặp khó khăn với những nhiệm vụ phức tạp hơn khi sử dụng chế độ zero-shot. Few-shot prompting là một kỹ thuật có thể được sử dụng để học theo ngữ cảnh, trong đó chúng ta cung cấp các minh họa trong prompt để hướng dẫn mô hình hoạt động tốt hơn. Các minh họa này đóng vai trò như điều kiện cho các ví dụ tiếp theo, nơi chúng ta muốn mô hình tạo ra một phản hồi chính xác.
Theo Touvron, khả năng few-shot đầu tiên xuất hiện khi các mô hình được mở rộng đến một kích thước đủ lớn (theo Kaplan et al., 2020).
Hãy cùng xem một ví dụ về few-shot prompting được trình bày trong nghiên cứu Brown et al. 2020. Trong ví dụ này, nhiệm vụ là sử dụng chính xác một từ mới trong một câu.
Prompt:
"Còn cái nịt" là một từ thường dùng trên mạng Tiktok của giới trẻ Việt Nam khi nói ai đó bị mất hết tài sản. Một ví dụ về một câu sử dụng từ Còn cái nịt là:
Dính vào cờ bạc thì còn cái nịt.
"Mãi bên nhau bạn nhé" thường được nói khi ai đó muốn giữ gìn một mối quan hệ tốt đẹp với bạn. Một ví dụ về một câu sử dụng Mãi bên nhau bạn nhé là:
Output:
Chúng ta đã trải qua rất nhiều kỷ niệm tuyệt vời, mãi bên nhau bạn nhé.
Chúng ta có thể thấy rằng mô hình đã học cách thực hiện nhiệm vụ chỉ với một ví dụ (tức là 1-shot). Đối với các nhiệm vụ khó hơn, chúng ta có thể thử tăng số lượng ví dụ (ví dụ: 3-shot, 5-shot, 10-shot, v.v.).
Theo nghiên cứu của Min và cộng sự (2022), dưới đây là một số mẹo về việc sử dụng ví dụ khi thực hiện few-shot:
- Không gian nhãn và phân bố của văn bản đầu vào được chỉ định bởi các ví dụ đều quan trọng (dù cho các nhãn có đúng cho từng đầu vào hay không).
- Định dạng mà bạn sử dụng cũng đóng vai trò quan trọng trong hiệu suất, thậm chí nếu bạn chỉ sử dụng các nhãn ngẫu nhiên, điều này vẫn tốt hơn là không có nhãn nào.
- Kết quả bổ sung cho thấy việc chọn nhãn ngẫu nhiên từ một phân bố nhãn thực (thay vì một phân bố đều) cũng có ích.
Hãy thử một vài ví dụ. Đầu tiên, chúng ta sẽ thử một ví dụ với các nhãn ngẫu nhiên (có nghĩa là nhãn Tiêu cực và Tích cực được gán ngẫu nhiên cho các đầu vào):
Prompt:
Thật tuyệt vời! // Tiêu cực
Thật tệ! // Tích cực
Ồ, bộ phim đó thật tuyệt! // Tích cực
Thật là một chương trình tệ hại! //
Output:
Thật là một chương trình tệ hại! // Tiêu cực
Chúng ta vẫn nhận được câu trả lời đúng, mặc dù các nhãn đã được ngẫu nhiên hóa. Cho thấy các mô hình trí tuệ nhân tạo như GPT đã trở nên thông minh hơn và có thể nhận dạng chính xác hơn. Tuy nhiên nếu các ví dụ và các nhãn dán được cung cấp chính xác và nhất quán, bạn có thể gặt hái được kết quả chính xác hơn nữa.
Chúng ta thấy rằng các mô hình ngôn ngữ lớn có thể xử lý những nhiệm vụ đơn giản mà không cần ví dụ (zero-shot), nhưng chúng hoạt động tốt hơn với những nhiệm vụ phức tạp hơn khi có thêm hướng dẫn (few-shot prompting). Việc cung cấp ví dụ trong prompt giúp mô hình học hỏi và tạo ra các phản hồi chính xác hơn. Thử nghiệm với số lượng ví dụ và cách định dạng chúng có thể cải thiện hiệu suất, ngay cả khi nhãn được gán ngẫu nhiên.
Những hạn chế của Few-shot Prompting
Kỹ thuật few-shot prompting cơ bản thường hoạt động tốt cho nhiều nhiệm vụ, nhưng vẫn chưa hoàn hảo, đặc biệt là khi phải xử lý các bài toán suy luận phức tạp hơn. Để minh họa điều này, chúng ta sẽ xem xét một ví dụ trước đó:
Các số lẻ trong nhóm này cộng lại thành một số chẵn: 15, 32, 5, 13, 82, 7, 1.
A:
Nếu chúng ta thử lại, mô hình đưa ra kết quả như sau:
Có, các số lẻ trong nhóm này cộng lại thành 107, là một số chẵn.
Đây không phải là câu trả lời đúng, điều này cho thấy hạn chế của hệ thống và cần có kỹ thuật prompt nâng cao hơn.
Chúng ta thử thêm một số ví dụ để xem liệu few-shot prompting có cải thiện kết quả không.
Prompt:
Các số lẻ trong nhóm này cộng lại thành một số chẵn: 4, 8, 9, 15, 12, 2, 1.
A: Câu trả lời là Sai.
Các số lẻ trong nhóm này cộng lại thành một số chẵn: 17, 10, 19, 4, 8, 12, 24.
A: Câu trả lời là Đúng.
Các số lẻ trong nhóm này cộng lại thành một số chẵn: 16, 11, 14, 4, 8, 13, 24.
A: Câu trả lời là Đúng.
Các số lẻ trong nhóm này cộng lại thành một số chẵn: 17, 9, 10, 12, 13, 4, 2.
A: Câu trả lời là Sai.
Các số lẻ trong nhóm này cộng lại thành một số chẵn: 15, 32, 5, 13, 82, 7, 1.
A:
Output:
Câu trả lời là Đúng.
Kết quả không như mong đợi. Có vẻ như few-shot prompting không đủ để có được câu trả lời đáng tin cậy cho loại bài toán suy luận này. Ví dụ trên chỉ cung cấp thông tin cơ bản về nhiệm vụ. Nếu xem xét kỹ, nhiệm vụ mà chúng ta đưa ra đòi hỏi thêm vài bước suy luận. Nói cách khác, có thể giúp nếu chúng ta chia vấn đề thành các bước và trình bày cho mô hình. Gần đây, kỹ thuật chain-of-thought (CoT) đã trở nên phổ biến để giải quyết các nhiệm vụ suy luận số học, suy luận thông thường và ký hiệu phức tạp hơn.
Tóm lại, việc cung cấp ví dụ là hữu ích cho việc giải quyết một số nhiệm vụ. Khi zero-shot prompting và few-shot prompting không đủ, có thể là mô hình chưa học đủ để thực hiện tốt nhiệm vụ. Từ đây, nên cân nhắc tinh chỉnh mô hình của bạn hoặc thử nghiệm với các kỹ thuật prompting nâng cao hơn. Tiếp theo, chúng ta sẽ nói về một trong những kỹ thuật prompting phổ biến được gọi là chain-of-thought prompting, đã thu hút nhiều sự chú ý.