learningai.vn
VI
Phần 2 · Chương 5

Đừng Chỉ Mô Tả, Hãy Cho AI Xem Ví Dụ

Thời gian đọc: 11 phút

Có những lúc một ví dụ cụ thể hiệu quả hơn lời giải thích dài. Hãy cho mô hình xem kết quả bạn muốn.

Có một cảm giác khó chịu mà hầu như ai từng dùng chatbot để làm việc nghiêm túc cũng sẽ gặp. Bạn đã giải thích rất kỹ điều mình muốn: giọng văn ra sao, bố cục thế nào, độ dài bao nhiêu. Bạn bấm gửi. Nhưng câu trả lời nhận lại chỉ gần đúng. Nó gần đến mức khiến bạn bực mình, vì vẫn chưa phải thứ bạn cần. Các gạch đầu dòng thì có, nhưng cách viết lại cứng nhắc. Cái bảng thì sai định dạng. Bản tóm tắt dài ba câu, trong khi bạn chỉ muốn một câu. Thế là bạn tiếp tục giải thích, thêm chi tiết, chỉnh yêu cầu. Kết quả có khá hơn một chút, nhưng vẫn lệch. Vấn đề không phải là bạn mô tả kém. Vấn đề là ngay từ đầu, bạn đang cố mô tả quá nhiều. Với nhiều loại công việc, cách nhanh hơn không phải là nói cho mô hình biết một kết quả tốt trông như thế nào, mà là cho nó xem trực tiếp một ví dụ tốt.

Nhân viên mới và hai bản báo cáo mẫu

Hãy tưởng tượng một nhân viên mới, thông minh và nhanh nhạy, trong buổi sáng đầu tiên đi làm. Bạn có thể dành hai mươi phút để giải thích cho họ bản báo cáo tuần cần trình bày ra sao: chỗ nào cần bôi đậm, phần tóm tắt đặt ở đâu, giọng văn cần trang trọng đến mức nào. Nhưng kết quả vẫn có thể hơi lệch, vì mỗi lời hướng dẫn đều buộc họ phải tự hiểu và diễn giải lại. Cách khác đơn giản hơn là đặt trước mặt họ hai bản báo cáo hoàn chỉnh của tháng trước và nói: "Làm bản tuần này giống những bản này." Họ nhìn qua các ví dụ, nhận ra khuôn mẫu, rồi tạo ra bản báo cáo thứ ba gần như đúng y như mong muốn, có khi còn nhanh hơn cả thời gian bạn uống xong ly cà phê. Họ không cần học từng quy tắc riêng lẻ. Họ nhìn thấy quy tắc ngay trong chính các ví dụ có sẵn.

Nước cờ thứ hai chính là nội dung của toàn bộ chương này. Thay vì giảng giải cho chatbot biết báo cáo cần có định dạng ra sao, bạn đưa cho nó hai bản báo cáo đã hoàn chỉnh. Cách làm này có tên là few-shot prompting, đôi khi cũng được gọi là multi-shot prompting. Nói đơn giản, prompt là phần chữ bạn nhập vào để giao việc cho mô hình. Few-shot prompting nghĩa là bạn đặt vài ví dụ hoàn chỉnh của nhiệm vụ ngay trong phần prompt, rồi sau đó mới đưa ra yêu cầu thật. Từ "shot" nghe có vẻ lạ, nhưng thật ra rất đơn giản: một "shot" là một ví dụ đã được làm xong. Hai "shot" là hai ví dụ, còn "a few shots" là vài ví dụ. Những ví dụ này tự mang theo cách hướng dẫn bên trong chúng, nên bạn không cần phải viết hướng dẫn thành từng câu riêng.

mô tả bằng lời
tả định dạng bằng lờigiọng, bố cục, độ dài
AI tự suy ra định dạng
đúng một phầnbạn phải chỉnh lại
cung cấp ví dụ
ví dụ 1đầu vào + đầu ra
ví dụ 2đầu vào + đầu ra
đầu vào mới
AI làm theo mẫu
khớp khuôn mẫu
Chỉ mô tả kết quả mong muốn bằng lời dễ khiến AI đoán sai định dạng. Khi bạn cung cấp các ví dụ hoàn chỉnh, AI có một mẫu rõ hơn để làm theo.

Vì sao đưa ví dụ thường hiệu quả hơn giải thích dài dòng

Cũng nên dừng lại một chút để hiểu vì sao mẹo này hiệu quả như vậy. Lý do liên quan trực tiếp đến cách hoạt động của mô hình đã nói ở Phần 1. Hãy nhớ rằng việc chính của mô hình là viết tiếp phần văn bản đang có theo cách hợp lý nhất. Nói cách khác, nó đọc mẫu chữ trước mặt, nhận ra hình dạng và quy luật của mẫu đó, rồi viết tiếp theo cùng kiểu. Đây chính là điều mà một ví dụ đã giải sẵn tận dụng rất tốt. Khi bạn đưa vào hai ví dụ hoàn chỉnh, rồi thêm một đầu vào mới, bạn đã cho mô hình thấy một khuôn mẫu rất rõ ràng. Việc tiếp tục khuôn mẫu đó lại chính là điều mà một cỗ máy chuyên dự đoán phần chữ tiếp theo làm rất giỏi. Mô hình nhìn vào những gì bạn đưa cho nó, rồi tạo ra thêm nội dung cùng loại.

Đó là lý do vài ví dụ đôi khi hiệu quả hơn cả một đoạn mô tả dài. Có những kiểu nội dung rất khó diễn tả thành quy tắc rõ ràng. Chẳng hạn, nếu bạn cố viết thành hướng dẫn chính xác để một email nghe vừa ấm áp vừa chuyên nghiệp, kết quả thường sẽ là một đoạn mô tả khá mơ hồ, và mỗi người đọc có thể hiểu theo một cách khác nhau. Nhưng nếu bạn đưa ra một ví dụ đúng, người khác có thể hiểu ngay chỉ trong một dòng. Việc bắt chước cấu trúc của một ví dụ tốt cũng là điều mà mô hình AI làm rất giỏi. Điều này cũng đúng với bố cục của một bảng gọn gàng, cách viết tiêu đề theo phong cách riêng của công ty, hoặc độ dài vừa đủ cho một bản tóm tắt. Những thứ này rất khó mô tả chi tiết bằng lời, nhưng lại rất dễ hiểu khi được đưa ra làm mẫu. Khi bạn cho mô hình xem ví dụ, bạn bỏ qua được bước dễ gây sai lệch, đó là bước biến ý định của bạn thành lời hướng dẫn, rồi buộc mô hình phải suy ngược lại ý định ấy từ những lời hướng dẫn đó. Trong quá trình chuyển qua chuyển lại như vậy, ý nghĩa ban đầu rất dễ bị mất đi.

Cách dùng ví dụ tốt rất đơn giản: mỗi ví dụ nên có đủ đầu vào và đầu ra. Chẳng hạn, đây là một email khách hàng viết lộn xộn, đó là đầu vào. Đây là câu trả lời lịch sự và đúng ý, đó là đầu ra. Bạn đặt hai phần này cạnh nhau, lặp lại hai hoặc ba lần để mô hình thấy rõ khuôn mẫu, rồi đưa cho mô hình một email mới chưa có câu trả lời. Mô hình sẽ tự viết phần còn thiếu bằng cách bắt chước dạng câu trả lời trong các ví dụ trước. Các ví dụ có hai tác dụng cùng lúc: chúng cho mô hình biết cần làm việc gì, đồng thời cho mô hình thấy một câu trả lời tốt nên trông như thế nào, mà không cần viết ra bất kỳ quy tắc nào.

"Học trong ngữ cảnh" không phải là học thật

Đôi khi bạn sẽ nghe người ta gọi few-shot prompting bằng một tên khác nghe chuyên môn hơn: học trong ngữ cảnh, hay in-context learning. Thuật ngữ này khá hữu ích, nhưng bạn không nên hiểu chữ "học" theo nghĩa thông thường. Mô hình không thật sự học thêm điều gì từ các ví dụ bạn đưa ra. Nó chỉ đọc các ví dụ ngay trong cuộc trò chuyện đó, nhận ra khuôn mẫu cần làm theo, rồi dùng khuôn mẫu ấy để tạo câu trả lời. Khi cuộc trò chuyện kết thúc, những ví dụ đó không được lưu lại để lần sau mô hình làm tốt hơn. Nói đơn giản, mô hình chỉ nhìn qua ví dụ, bắt chước cách làm trong lúc đó, rồi tiếp tục xử lý yêu cầu.

Điều này quan trọng vì nó giúp bạn hiểu rõ điều gì đang thay đổi và điều gì vẫn giữ nguyên. Khi bạn thêm ví dụ, bạn chỉ thay đổi một thứ duy nhất: phần đầu vào mà mô hình đọc trong lần yêu cầu đó. Bên trong mô hình không có gì thay đổi. Các thiết lập của mô hình vẫn giữ nguyên, và mô hình không được huấn luyện lại. Bạn có thể hình dung giống như một máy bán nước tự động. Khi bạn bấm nút chọn một món hàng, máy sẽ đưa món đó cho bạn. Nhưng việc này không làm máy học được khẩu vị của bạn. Người khách tiếp theo vẫn nhìn thấy đúng những nút bấm như trước. Các ví dụ bạn đưa vào cũng hoạt động như vậy. Chúng chỉ hướng dẫn mô hình tạo ra câu trả lời cho lần yêu cầu hiện tại, rồi sau đó biến mất.

Cái bẫy: đưa ví dụ không phải là huấn luyện AI

Đây là một hiểu lầm nên bỏ qua, dù rất dễ mắc phải. Nhiều người nghĩ rằng: "Khi mình đưa ví dụ cho chatbot, mình đang huấn luyện nó, vì vậy nó sẽ ghi nhớ và ngày càng thông minh hơn." Nghe có vẻ hợp lý. Bạn đã cho mô hình thấy mình muốn báo cáo được trình bày như thế nào, nên tưởng rằng lần sau mô hình sẽ tự biết. Nhưng thực ra không phải vậy. Khi hiểu điều này, việc mô hình quên hết sẽ không còn gây ngạc nhiên nữa. Nếu định dạng rất quan trọng, hãy luôn giữ sẵn ví dụ, vì bạn sẽ cần dán lại chúng trong mỗi cuộc trò chuyện mới.

Còn một điểm nhỏ nhưng quan trọng: kết quả có thể không như bạn nghĩ. Ví dụ cũng là một phần của ngữ cảnh, tức là phần nội dung bạn đưa cho mô hình. Vì vậy, nhiều người dễ nghĩ rằng càng đưa nhiều ví dụ càng tốt. Nhưng thực tế không phải vậy. Một vài ví dụ rõ ràng, đa dạng và được chọn kỹ thường hiệu quả hơn một danh sách dài các ví dụ. Lý do là khi bạn đưa vào quá nhiều thông tin, sự chú ý của mô hình bị dàn trải. Vì thế, nhiều ví dụ bình thường đôi khi còn cho kết quả tệ hơn vài ví dụ tốt. Hãy chọn những ví dụ sạch, rõ và bao quát đúng các trường hợp bạn quan tâm, rồi dừng lại.

Vì sao cách này có cơ sở thật

Không có điều gì trong chuyện này là hiển nhiên ngay từ đầu. Năm 2020, một bài học lớn xuất hiện cùng hệ thống GPT-3, đến mức chính các nhà nghiên cứu tạo ra nó cũng bất ngờ. Họ phát hiện rằng GPT-3 có thể làm những việc hoàn toàn mới chỉ nhờ vài ví dụ được nhập vào prompt. Không cần huấn luyện thêm, không cần sắp xếp cầu kỳ, chỉ cần đưa vài ví dụ đã có lời giải rồi đặt câu hỏi thật. Kết quả bất ngờ này giải thích phần lớn vì sao đến nay việc gõ ví dụ vào ô chat vẫn hiệu quả. Mẹo bạn sắp thử không phải là kinh nghiệm truyền miệng. Nó là cách áp dụng trong đời thường của một phát hiện khoa học thật sự về khả năng của các mô hình này.

Tự thử: so sánh nói bằng lời và cho ví dụ

Chọn một việc định dạng nhỏ để thử. Ví dụ, bạn có thể biến một ghi chú thô thành một mục lịch gọn gàng. Trước tiên, hãy thử bằng cách nhập một câu hướng dẫn trong đoạn chat mới, không kèm ví dụ: "Biến cái này thành một mục lịch: ăn trưa với Lan thứ Năm lúc 1 giờ chiều ở quán cà phê." Sau đó, hãy xem kỹ kết quả nhận được: mô hình chọn định dạng nào, sắp xếp thông tin ra sao, và cách diễn đạt có đúng với thứ bạn muốn thấy trên lịch hay không.

Hãy mở một cuộc trò chuyện mới và thử cách "cho xem". Lần này, hãy dán hai ví dụ đã hoàn chỉnh trước mẩu ghi chú thật của bạn, chẳng hạn: "khám răng thứ Ba 9h sáng -> Thứ Ba, 9:00 - Khám răng" và "gọi cho mẹ tối Chủ Nhật -> Chủ Nhật, 19:00 - Gọi điện cho mẹ". Sau đó, thêm mẩu ghi chú thật về bữa trưa với Lan ở bên dưới. Đặt kết quả của cách "cho xem" và cách "nói" cạnh nhau. Hãy quan sát xem bản "cho xem" có làm theo bố cục của các ví dụ tốt hơn không, như viết hoa thứ trong tuần, trình bày giờ gọn gàng, dùng dấu gạch và nhãn rõ ràng, dù bạn chưa viết bất kỳ quy tắc định dạng nào. Sự khác biệt giữa hai lần chạy chính là mẹo này được thể hiện rõ ngay trên màn hình của bạn.

gpt-5.5 với định dạng chỉ tả bằng lời, lối "nói" (kết quả của bạn sẽ đọc ra khác):
Nói cho mô hình:
PROMPT
Biến cái này thành một mục lịch: ăn trưa với Lan thứ Năm 1h chiều ở quán cà phê.
gpt-5.5

Mục lịch

  • Tiêu đề: Ăn trưa với Lan
  • Thời gian: Thứ Năm, 02/07/2026, lúc 13:00
  • Địa điểm: Quán cà phê
  • Ghi chú: Ăn trưa với Lan ở quán cà phê.
gpt-5.5 được cho xem hai ví dụ trước, lối "cho xem", một đoạn chat riêng (kết quả của bạn sẽ đọc ra khác):
Cho mô hình xem:
PROMPT
khám răng thứ Ba 9h sáng -> Thứ Ba, 9:00 - Khám răng gọi cho mẹ tối Chủ Nhật -> Chủ Nhật, 19:00 - Gọi điện cho mẹ ăn trưa với Lan thứ Năm 1h chiều ở quán cà phê ->
gpt-5.5

Thứ Năm, 13:00 - Ăn trưa với Lan ở quán cà phê

Ở lần "nói", nó tự tạo ra một bố cục gọn gàng theo cách riêng. Ở lần "cho xem", nó lập tức làm đúng theo mẫu một dòng trong các ví dụ, gồm thứ trong tuần viết hoa, giờ giấc, dấu gạch và nhãn, dù không có dòng quy tắc nào được viết ra.

Khi nào nên đưa ví dụ cho AI

Đây là phần thực tế quan trọng nhất. Nếu bạn cứ nhập đi nhập lại cùng một kiểu hướng dẫn mà vẫn chỉ nhận được câu trả lời gần đúng, nhưng chưa thật sự đúng, đó là lúc bạn nên ngừng mô tả dài dòng và bắt đầu đưa ví dụ cụ thể. Hãy dán vào hai ví dụ cho thấy kết quả tốt trông như thế nào, chẳng hạn như giọng văn email bạn muốn, cách trình bày bảng tính, hoặc độ dài của một bản tóm tắt. Đây thường là cách nhanh nhất để nhận được kết quả ổn định và có thể dùng được trong công việc hằng ngày. Cách này cũng không cần kỹ năng đặc biệt. Bạn đã biết mình muốn gì, chỉ cần đưa cho mô hình một mẫu hoàn chỉnh thay vì chỉ giải thích bằng lời. Vì các ví dụ sẽ mất đi khi cuộc trò chuyện kết thúc, bạn nên tập thói quen lưu lại những ví dụ tốt nhất ở một nơi dễ tìm để có thể dán lại khi cần. Đó là cách chủ động đầu tiên để điều khiển mô hình. Chương tiếp theo sẽ giới thiệu cách thứ hai: không chỉ cho mô hình xem câu trả lời hoàn chỉnh, mà còn yêu cầu mô hình cho bạn thấy các bước nó đã đi qua để tạo ra câu trả lời đó, rồi dùng lại cách suy luận ấy như một công thức.

Nguồn

Language Models are Few-Shot Learners (GPT-3)
Bài báo năm 2020 giới thiệu GPT-3, khám phá nằm sau chương này, cho thấy một mô hình có thể xử lý những công việc mới toanh chỉ từ vài ví dụ gõ vào trong prompt.
Effective context engineering for AI agents
Cơ sở cho lời nhắc của chương rằng thêm ví dụ không phải lúc nào cũng tốt hơn, vì sự chú ý của mô hình bị kéo mỏng khi bạn nhồi vào quá nhiều.
CHÚ THÍCH
  1. 1.
    Anthropic, 'Effective context engineering for AI agents' (anthropic.com/engineering/effective-context-engineering-for-ai-agents). Bài viết giải thích rằng các mô hình có một 'attention budget' (ngân sách chú ý) bị bào mòn bởi mỗi token thêm vào, và rằng, vì transformer tạo ra các quan hệ token theo cặp với số lượng bình phương, 'as its context length increases, a model's ability to capture these pairwise relationships gets stretched thin' (khi độ dài ngữ cảnh tăng lên, khả năng nắm bắt các quan hệ theo cặp này của mô hình bị kéo mỏng ra), đúng cơ chế nằm sau luận điểm của chương rằng thêm ví dụ không phải lúc nào cũng tốt hơn.
  2. 2.
    Tom Brown, Benjamin Mann, Nick Ryder, Melanie Subbiah, và cộng sự, 'Language Models are Few-Shot Learners,' Advances in Neural Information Processing Systems 33 (NeurIPS 2020). Bài báo giới thiệu GPT-3, một mô hình 175 tỉ tham số, và cho thấy mô hình này thực hiện những công việc mới lạ 'without any gradient updates or fine-tuning, with tasks and few-shot demonstrations specified purely via text interaction with the model' (không cần bất kỳ cập nhật gradient hay tinh chỉnh nào, với công việc và các ví dụ few-shot được đặc tả hoàn toàn qua tương tác bằng chữ với mô hình), đúng cái kết quả mà chương này mô tả là ập tới vào năm 2020.