Thứ Sáu, 31 tháng 10, 2025

Hướng dẫn kỹ thuật lời nhắc. Kỹ thuật viết lời nhắc. Lời nhắc theo chuỗi tư duy


Chain-of-Thought Prompting

Theo: https://www.promptingguide.ai/techniques/cot

Image Source: Wei et al. (2022)

Được giới thiệu trong Wei et al. (2022), lời nhắc theo chuỗi tư duy - CoT (Chain-of-Thought) cho phép khả năng suy luận phức tạp thông qua các bước suy luận trung gian. Bạn có thể kết hợp nó với lời nhắc với vài ví dụ/minh họa (Few-shot Prompting) để đạt kết quả tốt hơn cho các nhiệm vụ phức tạp hơn đòi hỏi phải suy luận trước khi phản hồi.

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.
Đáp án: Cộng tất cả các số lẻ (9, 15, 1) được 25. Đáp án 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.
Đáp án: Cộng tất cả các số lẻ (17, 19) được 36. Đáp án 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.
Đáp án: Cộng tất cả các số lẻ (11, 13) được 24. Đáp án 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.
Đáp án: Cộng tất cả các số lẻ (17, 9, 13) được 39. Đáp án 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.
Đáp án:

Output:

Cộng tất cả các số lẻ (15, 5, 13, 7, 1) được 41. Đáp án là Sai.

Wow! Chúng ta có thể thấy một kết quả hoàn hảo khi đưa ra bước lập luận. Thực tế, chúng ta có thể giải quyết bài toán này bằng cách cung cấp ít ví dụ hơn nữa, tức là chỉ cần một ví dụ là đủ:

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.
Đáp án: Cộng tất cả các số lẻ (9, 15, 1) được 25. Đáp án 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.
Đáp án:

Output:

Cộng tất cả các số lẻ (15, 5, 13, 7, 1) được 41. Đáp án là Sai.

Lưu ý rằng các tác giả cho rằng đây là một khả năng mới nổi xuất hiện với các mô hình ngôn ngữ đủ lớn.

Lời nhắc không có ví dụ/minh họa (COT Zero-shot)

Image Source: Kojima et al. (2022)

Một ý tưởng mới xuất hiện gần đây hơn là ý tưởng về chiến lược Zero-shot CoT (Kojima và cộng sự, 2022), về cơ bản bao gồm việc thêm câu "Hãy suy nghĩ từng bước" vào lời nhắc ban đầu. Hãy thử một bài toán đơn giản và xem mô hình hoạt động như thế nào:

Prompt:

Tôi ra chợ mua 10 quả táo. Tôi đưa 2 quả cho người hàng xóm và 2 quả cho thợ sửa chữa. Sau đó, tôi đi mua thêm 5 quả táo và ăn 1 quả. Hỏi tôi còn lại bao nhiêu quả táo? 

Output:

11 quả táo

Câu trả lời không đúng! Bây giờ chúng ta hãy thử với lời nhắc đặc biệt.

Prompt:

Tôi ra chợ mua 10 quả táo. Tôi đưa 2 quả cho người hàng xóm và 2 quả cho thợ sửa chữa. Sau đó, tôi mua thêm 5 quả táo và ăn 1 quả. Vậy tôi còn lại bao nhiêu quả táo?

Hãy suy nghĩ theo từng bước một.

Output:

Ban đầu, bạn có 10 quả táo.
Bạn đã tặng 2 quả táo cho người hàng xóm và 2 quả cho thợ sửa chữa, vậy bạn còn lại 6 quả táo.
Sau đó, bạn mua thêm 5 quả táo, vậy là bạn còn lại 11 quả táo.
Cuối cùng, bạn ăn 1 quả táo, vậy là bạn còn lại 10 quả táo.

Thật ấn tượng khi lời nhắc đơn giản này lại hiệu quả trong nhiệm vụ này. Điều này đặc biệt hữu ích khi bạn không có quá nhiều ví dụ để sử dụng trong lời nhắc.

Chuỗi tư duy Tự động (Auto-CoT)

Khi áp dụng lời nhắc theo chuỗi tư duy với các bài minh họa, quá trình này bao gồm việc tự tay tạo ra các ví dụ hiệu quả và đa dạng. Nỗ lực thủ công này có thể dẫn đến các giải pháp không tối ưu. Zhang và cộng sự (2022) đề xuất một phương pháp để loại bỏ các nỗ lực thủ công bằng cách tận dụng các chương trình học thuật (LLM) với lời nhắc "Hãy suy nghĩ từng bước" để tạo ra các chuỗi suy luận cho từng bài minh họa. Quá trình tự động này vẫn có thể dẫn đến sai sót trong các chuỗi được tạo ra. Để giảm thiểu ảnh hưởng của sai sót, tính đa dạng của các bài minh họa là rất quan trọng. Nghiên cứu này đề xuất Auto-CoT, phương pháp này lấy mẫu các câu hỏi với tính đa dạng và tạo ra các chuỗi suy luận để xây dựng các bài minh họa.

Chuỗi tư duy tự động (Auto-CoT) bao gồm hai giai đoạn chính:

  • Giai đoạn 1): Phân cụm câu hỏi: Phân chia các câu hỏi của một tập dữ liệu nhất định thành một vài cụm

  • Giai đoạn 2): Lấy mẫu trình diễn: Chọn một câu hỏi đại diện từ mỗi cụm và tạo chuỗi suy luận của nó bằng Zero-Shot-CoT (Chuỗi tư duy không có ví dụ/minh họa) với các phương pháp suy luận đơn giản

Các phương pháp suy luận đơn giản có thể là độ dài của câu hỏi (ví dụ: 60 mã thông báo) và số bước trong quá trình suy luận (ví dụ: 5 bước suy luận). Điều này khuyến khích mô hình sử dụng các minh họa đơn giản và chính xác.

Quá trình này được minh họa dưới đây:

Image Source: Zhang et al. (2022)

Mã cho chuỗi tư duy tự động (Auto-CoT) có sẵn ở đây.

Về ‘Kỹ thuật viết lời nhắc’ ………. Phần trước ………. Phần tiếp theo

Introduced in Wei et al. (2022), chain-of-thought (CoT) prompting enables complex reasoning capabilities through intermediate reasoning steps. You can combine it with few-shot prompting to get better results on more complex tasks that require reasoning before responding.

Prompt:

The odd numbers in this group add up to an even number: 4, 8, 9, 15, 12, 2, 1.
A: Adding all the odd numbers (9, 15, 1) gives 25. The answer is False.

The odd numbers in this group add up to an even number: 17,  10, 19, 4, 8, 12, 24.
A: Adding all the odd numbers (17, 19) gives 36. The answer is True.

The odd numbers in this group add up to an even number: 16,  11, 14, 4, 8, 13, 24.
A: Adding all the odd numbers (11, 13) gives 24. The answer is True.

The odd numbers in this group add up to an even number: 17,  9, 10, 12, 13, 4, 2.
A: Adding all the odd numbers (17, 9, 13) gives 39. The answer is False.

The odd numbers in this group add up to an even number: 15, 32, 5, 13, 82, 7, 1. 
A:

Output:

Adding all the odd numbers (15, 5, 13, 7, 1) gives 41. The answer is False.

Wow! We can see a perfect result when we provided the reasoning step. In fact, we can solve this task by providing even fewer examples, i.e., just one example seems enough:

Prompt:

The odd numbers in this group add up to an even number: 4, 8, 9, 15, 12, 2, 1.
A: Adding all the odd numbers (9, 15, 1) gives 25. The answer is False.

The odd numbers in this group add up to an even number: 15, 32, 5, 13, 82, 7, 1. 
A:

Output:

Adding all the odd numbers (15, 5, 13, 7, 1) gives 41. The answer is False.

Keep in mind that the authors claim that this is an emergent ability that arises with sufficiently large language models.

Zero-shot COT Prompting

One recent idea that came out more recently is the idea of zero-shot CoT (Kojima et al. 2022) that essentially involves adding "Let's think step by step" to the original prompt. Let's try a simple problem and see how the model performs:

Prompt:

I went to the market and bought 10 apples. I gave 2 apples to the neighbor and 2 to the repairman. I then went and bought 5 more apples and ate 1. How many apples did I remain with?

Output:

11 apples

The answer is incorrect! Now Let's try with the special prompt.

Prompt:

I went to the market and bought 10 apples. I gave 2 apples to the neighbor and 2 to the repairman. I then went and bought 5 more apples and ate 1. How many apples did I remain with?

Let's think step by step.

Output:

First, you started with 10 apples.
You gave away 2 apples to the neighbor and 2 to the repairman, so you had 6 apples left.
Then you bought 5 more apples, so now you had 11 apples.
Finally, you ate 1 apple, so you would remain with 10 apples.

It's impressive that this simple prompt is effective at this task. This is particularly useful where you don't have too many examples to use in the prompt.

Automatic Chain-of-Thought (Auto-CoT)

When applying chain-of-thought prompting with demonstrations, the process involves hand-crafting effective and diverse examples. This manual effort could lead to suboptimal solutions. Zhang et al. (2022) propose an approach to eliminate manual efforts by leveraging LLMs with "Let's think step by step" prompt to generate reasoning chains for demonstrations one by one. This automatic process can still end up with mistakes in generated chains. To mitigate the effects of the mistakes, the diversity of demonstrations matter. This work proposes Auto-CoT, which samples questions with diversity and generates reasoning chains to construct the demonstrations.

Auto-CoT consists of two main stages:

  • Stage 1): question clustering: partition questions of a given dataset into a few clusters

  • Stage 2): demonstration sampling: select a representative question from each cluster and generate its reasoning chain using Zero-Shot-CoT with simple heuristics

The simple heuristics could be length of questions (e.g., 60 tokens) and number of steps in rationale (e.g., 5 reasoning steps). This encourages the model to use simple and accurate demonstrations.

The process is illustrated below:

Code for Auto-CoT is available here.

Dịch: Lê Trung Nghĩa

letrungnghia.foss@gmail.com

Thứ Năm, 30 tháng 10, 2025

Hướng dẫn kỹ thuật lời nhắc. Kỹ thuật viết lời nhắc. Lời nhắc với vài ví dụ/minh họa (Few-Shot Prompting)


Few-Shot Prompting

Theo: https://www.promptingguide.ai/techniques/fewshot


Video: Few-Shot Prompting Explained

Mặc dù các mô hình ngôn ngữ lớn thể hiện khả năng zero-shot đáng chú ý, chúng vẫn còn hạn chế trong các tác vụ phức tạp hơn khi sử dụng thiết lập zero-shot. Kỹ thuật nhắc với vài ví dụ/minh họa (Few-Shot Prompting) có thể được sử dụng như một kỹ thuật cho phép học trong ngữ cảnh, trong đó chúng tôi cung cấp các minh họa trong lời nhắc để điều khiển mô hình đạt hiệu suất tốt hơn. Các minh họa này đóng vai trò là điều kiện cho các ví dụ tiếp theo, trong đó chúng tôi muốn mô hình tạo ra phản hồi.

Theo Touvron và cộng sự, 2023, các thuộc tính few-shot lần đầu tiên xuất hiện khi các mô hình được thu nhỏ đến kích thước đủ lớn (Kaplan và cộng sự, 2020). Hãy cùng minh họa kỹ thuật nhắc few-shot thông qua một ví dụ được trình bày trong Brown và cộng sự, 2020. Trong ví dụ này, nhiệm vụ là sử dụng đúng một từ mới trong câu.

Prompt:

"Whatpu" là một loài động vật nhỏ, có lông, bản địa của Tanzania. Ví dụ về một câu sử dụng từ "whatpu" là:
Chúng tôi đang đi du lịch ở Châu Phi và thấy những chú "whatpu" rất dễ thương này.
 
"Farduddle" có nghĩa là nhảy lên nhảy xuống thật nhanh. Ví dụ về một câu sử dụng từ "farduddle" là:

Output:

Khi chúng tôi thắng trận, tất cả chúng tôi đều bắt đầu "farduddle" để ăn mừng.

Chúng ta có thể quan sát thấy mô hình đã học được cách thực hiện nhiệm vụ bằng cách chỉ cung cấp cho nó một ví dụ (nghĩa là: có 1 ví dụ). Đối với các nhiệm vụ khó hơn, chúng ta có thể thử nghiệm bằng cách tăng số lần trình diễn (nghĩa là: 3 ví dụ, 5 ví dụ, 10 ví dụ, v.v.).

Theo những phát hiện của Min và cộng sự (2022), sau đây là một vài mẹo nữa về trình diễn/ví dụ khi thực hiện vài ví dụ:

  • "không gian nhãn và phân phối của văn bản đầu vào được chỉ định bởi các lần trình diễn đều quan trọng (bất kể các nhãn có chính xác cho từng đầu vào hay không)"

  • định dạng bạn sử dụng cũng đóng một vai trò quan trọng trong hiệu suất, ngay cả khi bạn chỉ sử dụng nhãn ngẫu nhiên, điều này vẫn tốt hơn nhiều so với việc không sử dụng nhãn nào cả.

  • các kết quả bổ sung cho thấy việc chọn nhãn ngẫu nhiên từ một phân phối nhãn thực sự (thay vì phân phối đều) cũng hữu ích.

Hãy cùng thử một vài ví dụ. Trước tiên, chúng ta hãy thử một ví dụ với các nhãn ngẫu nhiên (có nghĩa là các nhãn Âm và Dương được gán ngẫu nhiên cho các đầu vào):

Prompt:

Tuyệt vời! //Tiêu cực
Tệ quá! // Tích cực
Ôi, phim này hay quá! // Tích cực
Thật là một chương trình tệ hại! //

Output:

Tiêu cực

Chúng tôi vẫn nhận được câu trả lời đúng, mặc dù các nhãn đã được sắp xếp ngẫu nhiên. Lưu ý rằng chúng tôi cũng giữ nguyên định dạng, điều này cũng hữu ích. Trên thực tế, với những thử nghiệm tiếp theo, có vẻ như các mô hình GPT mới hơn mà chúng tôi đang thử nghiệm đang trở nên mạnh mẽ hơn ngay cả với các định dạng ngẫu nhiên. Ví dụ:

Prompt:

Tích cực: Tuyệt vời!
Tệ quá! Tiêu cực
Ôi, phim này hay quá!
Tích cực
Thật là một chương trình tệ hại! --

Output:

Tiêu cực

Mặc dù định dạng trên không nhất quán nhưng mô hình vẫn dự đoán đúng nhãn. Chúng ta cần tiến hành phân tích kỹ lưỡng hơn để xác nhận liệu điều này có đúng với các tác vụ khác nhau và phức tạp hơn hay không, bao gồm các biến thể khác nhau của lời nhắc.

Hạn chế của Lời nhắc với vài ví dụ/minh họa

Lời nhắc với vài ví dụ/minh họa (Few-shot Promping) tiêu chuẩn làm việc tốt với nhiều tác vụ nhưng vẫn chưa phải là một kỹ thuật hoàn hảo, đặc biệt là khi xử lý các tác vụ suy luận phức tạp hơn. Hãy cùng chứng minh lý do tại sao lại như vậy. Bạn còn nhớ ví dụ trước, trong đó chúng ta đã đưa ra tác vụ sau:

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 sẽ cho kết quả như sau:

Đúng vậy, tổng các số lẻ trong nhóm này bằng 107, tức là một số chẵn.

Đây không phải là câu trả lời đúng, điều này không chỉ làm nổi bật những hạn chế của các hệ thống này mà còn cho thấy cần phải có kỹ thuật nhắc tiên tiến hơn.

Chúng ta hãy thử thêm một số ví dụ để xem liệu việc nhắc với vài ví dụ/minh họa (Few-shot Prompting) có cải thiện kết quả hay không.

Prompt:

Tổng các số lẻ trong nhóm này bằng một số chẵn: 4, 8, 9, 15, 12, 2, 1. 
Đáp án: Sai.

Tổng các số lẻ trong nhóm này bằng một số chẵn: 17, 10, 19, 4, 8, 12, 24. 
Đáp án: Đúng.

Tổng các số lẻ trong nhóm này bằng một số chẵn: 16, 11, 14, 4, 8, 13, 24. 
Đáp án: Đúng.

Tổng các số lẻ trong nhóm này bằng một số chẵn: 17, 9, 10, 12, 13, 4, 2. 
Đáp án: 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.
Đáp án:

Output:

Câu trả lời là Đúng.

Điều đó không hiệu quả. Có vẻ như lời nhắc dạng few-shot là không đủ để có được phản hồi đáng tin cậy cho loại vấn đề suy luận này. Ví dụ trên cung cấp thông tin cơ bản về nhiệm vụ. Nếu bạn xem xét kỹ hơn, loại nhiệm vụ mà chúng tôi đã giới thiệu bao gồm một vài bước suy luận. Nói cách khác, sẽ hữu ích nếu chúng ta chia nhỏ vấn đề thành các bước và chứng minh điều đó cho mô hình. Gần đây, lời nhắc theo dòng suy nghĩ – CoT (Chain of Thought prompting) đã được phổ biến để giải quyết các nhiệm vụ số học, suy luận thông thường và suy luận biểu tượng phức tạp hơn.

Nhìn chung, việc cung cấp các ví dụ có vẻ hữu ích để giải quyết một số nhiệm vụ. Khi lời nhắc không có ví dụ/minh họa và lời nhắc với vài ví dụ/minh họa là không đủ, điều đó có nghĩa là những gì mô hình học được là không đủ để thực hiện tốt nhiệm vụ. Từ đây, bạn nên bắt đầu suy nghĩ về việc tinh chỉnh mô hình của mình hoặc thử nghiệm các kỹ thuật nhắc nâng cao hơn. Tiếp theo, chúng ta sẽ nói về một trong những kỹ thuật nhắc phổ biến được gọi là lời nhắc theo dòng suy nghĩ (Chain-of-Thought Prompting), kỹ thuật này đã trở nên rất phổ biến.

Về ‘Kỹ thuật viết lời nhắc’ ………. Phần trước ………. Phần tiếp theo

While large-language models demonstrate remarkable zero-shot capabilities, they still fall short on more complex tasks when using the zero-shot setting. Few-shot prompting can be used as a technique to enable in-context learning where we provide demonstrations in the prompt to steer the model to better performance. The demonstrations serve as conditioning for subsequent examples where we would like the model to generate a response.

According to Touvron et al. 2023 few shot properties first appeared when models were scaled to a sufficient size (Kaplan et al., 2020). Let's demonstrate few-shot prompting via an example that was presented in Brown et al. 2020. In the example, the task is to correctly use a new word in a sentence.

Prompt:

A "whatpu" is a small, furry animal native to Tanzania. An example of a sentence that uses the word whatpu is:
We were traveling in Africa and we saw these very cute whatpus.
 
To do a "farduddle" means to jump up and down really fast. An example of a sentence that uses the word farduddle is:

Output:

When we won the game, we all started to farduddle in celebration.

We can observe that the model has somehow learned how to perform the task by providing it with just one example (i.e., 1-shot). For more difficult tasks, we can experiment with increasing the demonstrations (e.g., 3-shot, 5-shot, 10-shot, etc.).

Following the findings from Min et al. (2022), here are a few more tips about demonstrations/exemplars when doing few-shot:

  • "the label space and the distribution of the input text specified by the demonstrations are both important (regardless of whether the labels are correct for individual inputs)"

  • the format you use also plays a key role in performance, even if you just use random labels, this is much better than no labels at all.

  • additional results show that selecting random labels from a true distribution of labels (instead of a uniform distribution) also helps.

Let's try out a few examples. Let's first try an example with random labels (meaning the labels Negative and Positive are randomly assigned to the inputs):

Prompt:

This is awesome! // Negative
This is bad! // Positive
Wow that movie was rad! // Positive
What a horrible show! //

Output:

Negative

We still get the correct answer, even though the labels have been randomized. Note that we also kept the format, which helps too. In fact, with further experimentation, it seems the newer GPT models we are experimenting with are becoming more robust to even random formats. Example:

Prompt:

Positive This is awesome! 
This is bad! Negative
Wow that movie was rad!
Positive
What a horrible show! --

Output:

Negative

There is no consistency in the format above but the model still predicted the correct label. We have to conduct a more thorough analysis to confirm if this holds for different and more complex tasks, including different variations of prompts.

Limitations of Few-shot Prompting

Standard few-shot prompting works well for many tasks but is still not a perfect technique, especially when dealing with more complex reasoning tasks. Let's demonstrate why this is the case. Do you recall the previous example where we provided the following task:

The odd numbers in this group add up to an even number: 15, 32, 5, 13, 82, 7, 1. 

A: 

If we try this again, the model outputs the following:

Yes, the odd numbers in this group add up to 107, which is an even number.

This is not the correct response, which not only highlights the limitations of these systems but that there is a need for more advanced prompt engineering.

Let's try to add some examples to see if few-shot prompting improves the results.

Prompt:

The odd numbers in this group add up to an even number: 4, 8, 9, 15, 12, 2, 1.
A: The answer is False.

The odd numbers in this group add up to an even number: 17,  10, 19, 4, 8, 12, 24.
A: The answer is True.

The odd numbers in this group add up to an even number: 16,  11, 14, 4, 8, 13, 24.
A: The answer is True.

The odd numbers in this group add up to an even number: 17,  9, 10, 12, 13, 4, 2.
A: The answer is False.

The odd numbers in this group add up to an even number: 15, 32, 5, 13, 82, 7, 1. 
A: 

Output:

The answer is True.

That didn't work. It seems like few-shot prompting is not enough to get reliable responses for this type of reasoning problem. The example above provides basic information on the task. If you take a closer look, the type of task we have introduced involves a few more reasoning steps. In other words, it might help if we break the problem down into steps and demonstrate that to the model. More recently, chain-of-thought (CoT) prompting has been popularized to address more complex arithmetic, commonsense, and symbolic reasoning tasks.

Overall, it seems that providing examples is useful for solving some tasks. When zero-shot prompting and few-shot prompting are not sufficient, it might mean that whatever was learned by the model isn't enough to do well at the task. From here it is recommended to start thinking about fine-tuning your models or experimenting with more advanced prompting techniques. Up next we talk about one of the popular prompting techniques called chain-of-thought prompting which has gained a lot of popularity.

Dịch: Lê Trung Nghĩa

letrungnghia.foss@gmail.com

Thứ Tư, 29 tháng 10, 2025

Hướng dẫn kỹ thuật lời nhắc. Kỹ thuật viết lời nhắc. Lời nhắc không có ví dụ/minh họa (Zero-Shot Prompting)


Zero-Shot Prompting

Theo: https://www.promptingguide.ai/techniques/zeroshot

 

Video: Zero-shot Prompting Explained

Các mô hình ngôn ngữ lớn (LLM) hiện nay, chẳng hạn như GPT-3.5 Turbo, GPT-4 và Claude 3, được tinh chỉnh để tuân theo hướng dẫn và được huấn luyện trên một lượng lớn dữ liệu. Huấn luyện quy mô lớn giúp các mô hình này có khả năng thực hiện một số tác vụ theo cách "zero-shot". Nhắc nhở zero-shot có nghĩa là lời nhắc được sử dụng để tương tác với mô hình sẽ không chứa ví dụ hoặc minh họa. Lời nhắc zero-shot trực tiếp hướng dẫn mô hình thực hiện một tác vụ mà không cần bất kỳ ví dụ bổ sung nào để điều khiển.

Chúng tôi đã thử một vài ví dụ zero-shot trong phần trước. Dưới đây là một trong những ví dụ (tức là phân loại văn bản) mà chúng tôi đã sử dụng:

Prompt:

Phân loại văn bản thành trung tính, tiêu cực hoặc tích cực.

Văn bản: Tôi nghĩ kỳ nghỉ này ổn.
Cảm xúc:

Output:

Trung tính

Lưu ý rằng trong lời nhắc ở trên, chúng tôi không cung cấp cho mô hình bất kỳ ví dụ văn bản nào bên cạnh các phân loại của chúng, LLM đã hiểu "cảm xúc" -- đó là khả năng của zero-shot đang hoạt động.

Việc tinh chỉnh chỉ dẫn đã được chứng minh là cải thiện việc học zero-shot (Wei và cộng sự, 2022). Việc tinh chỉnh chỉ dẫn về cơ bản là khái niệm tinh chỉnh các mô hình trên các tập dữ liệu được mô tả thông qua các chỉ dẫn. Hơn nữa, việc học tăng cường từ phản hồi của con người - RLHF (Reinforcement Learning from Human Feedback) đã được áp dụng để mở rộng quy mô tinh chỉnh chỉ dẫn, trong đó mô hình được căn chỉnh để phù hợp hơn với sở thích của con người. Sự phát triển gần đây này hỗ trợ các mô hình như ChatGPT. Chúng ta sẽ thảo luận về tất cả các phương pháp và cách tiếp cận này trong các phần tiếp theo.

Khi zero-shot không hoạt động, nên cung cấp các bản trình diễn hoặc ví dụ trong lời nhắc, dẫn đến việc nhắc với vài ví dụ/minh họa (Few-Shot Prompting). Trong phần tiếp theo, chúng tôi sẽ trình bày về việc nhắc với vài ví dụ/minh họa này.

Về ‘Kỹ thuật viết lời nhắc’ ………. Phần tiếp theo

Large language models (LLMs) today, such as GPT-3.5 Turbo, GPT-4, and Claude 3, are tuned to follow instructions and are trained on large amounts of data. Large-scale training makes these models capable of performing some tasks in a "zero-shot" manner. Zero-shot prompting means that the prompt used to interact with the model won't contain examples or demonstrations. The zero-shot prompt directly instructs the model to perform a task without any additional examples to steer it.

We tried a few zero-shot examples in the previous section. Here is one of the examples (ie., text classification) we used:

Prompt:

Classify the text into neutral, negative or positive. 

Text: I think the vacation is okay.
Sentiment:

Output:

Neutral

Note that in the prompt above we didn't provide the model with any examples of text alongside their classifications, the LLM already understands "sentiment" -- that's the zero-shot capabilities at work.

Instruction tuning has been shown to improve zero-shot learning Wei et al. (2022). Instruction tuning is essentially the concept of finetuning models on datasets described via instructions. Furthermore, RLHF (reinforcement learning from human feedback) has been adopted to scale instruction tuning wherein the model is aligned to better fit human preferences. This recent development powers models like ChatGPT. We will discuss all these approaches and methods in upcoming sections.

When zero-shot doesn't work, it's recommended to provide demonstrations or examples in the prompt which leads to few-shot prompting. In the next section, we demonstrate few-shot prompting.

Dịch: Lê Trung Nghĩa

letrungnghia.foss@gmail.com



Thứ Ba, 28 tháng 10, 2025

Hướng dẫn kỹ thuật lời nhắc. Kỹ thuật viết lời nhắc


Prompting Techniques

Theo: https://www.promptingguide.ai/techniques

Kỹ thuật Nhắc (Prompt Engineering) giúp thiết kế và cải thiện lời nhắc một cách hiệu quả để đạt được kết quả tốt hơn cho các nhiệm vụ khác nhau với Mô hình Ngôn ngữ Lớn - LLM (Large Language Model).

Mặc dù các ví dụ cơ bản trước đây khá thú vị, nhưng trong phần này, chúng tôi sẽ đề cập đến các kỹ thuật viết lời nhắc nâng cao hơn, cho phép chúng ta thực hiện các nhiệm vụ phức tạp hơn và cải thiện độ tin cậy cũng như hiệu suất của LLM.

  1. Lời nhắc không có ví dụ/minh họa ( Zero-Shot Prompting)

  2. Lời nhắc có vài ví dụ/minh họa (Few-Shot Prompting)

  3. Lời nhắc theo chuỗi tư duy (Chain-of-Thought Prompting)

  4. Siêu lời nhắc (Meta Prompting)

  5. Tự nhất quán (Self-Consistency)

  6. Lời nhắc Kiến thức được Tạo (Generated Knowledge Prompting)

  7. Chuỗi Lời nhắc (Prompt Chaining)

  8. Cây Tư duy (Tree of Thoughts (ToT))

  9. Tạo sinh Tăng cường Truy xuất (Retrieval Augmented Generation (RAG))

  10. Suy luận Tự động và Sử dụng Công cụ (Automatic Reasoning and Tool-use (ART))

  11. Kỹ thuật Nhắc Tự động (Automatic Prompt Engineer (APE))

  12. Nhắc Chủ động (Active-Prompt)

  13. Lời nhắc Kích thích Định hướng (Directional Stimulus Prompting)

  14. Mô hình Ngôn ngữ Hỗ trợ Chương trình - PAL (Program-Aided Language Models)

  15. Lời nhắc Tái Hành động - ReAct (ReAct Prompting)

  16. Phản xạ (Reflexion)

  17. Lời nhắc CoT Đa phương thức (Multimodal CoT Prompting)

  18. GraphPrompts - Lời nhắc đồ họa (GraphPrompts)

Về mục lục ………. Phần tiếp theo

Prompt Engineering helps to effectively design and improve prompts to get better results on different tasks with LLMs.

While the previous basic examples were fun, in this section we cover more advanced prompting engineering techniques that allow us to achieve more complex tasks and improve reliability and performance of LLMs.

  1. Zero-Shot Prompting

  2. Few-Shot Prompting

  3. Chain-of-Thought Prompting

  4. Meta Prompting

  5. Self-Consistency

  6. Generated Knowledge Prompting

  7. Prompt Chaining

  8. Tree of Thoughts (ToT)

  9. Retrieval Augmented Generation (RAG)

  10. Automatic Reasoning and Tool-use (ART)

  11. Automatic Prompt Engineer (APE)

  12. Active-Prompt

  13. Directional Stimulus Prompting

  14. PAL (Program-Aided Language Models)

  15. ReAct Prompting

  16. Reflexion

  17. Multimodal CoT Prompting

  18. GraphPrompts

Dịch: Lê Trung Nghĩa

letrungnghia.foss@gmail.com

Thứ Hai, 27 tháng 10, 2025

Hướng dẫn kỹ thuật lời nhắc. Giới thiệu. Ví dụ về lời nhắc


Examples of Prompts

Theo: https://www.promptingguide.ai/introduction/examples

Phần trước đã giới thiệu một ví dụ cơ bản về cách để nhắc cho một mô hình ngôn ngữ lớn - LLM (Large Language Model).

Phần này sẽ cung cấp thêm các ví dụ về cách sử dụng lời nhắc để hoàn thành các nhiệm vụ khác nhau và giới thiệu các khái niệm chính trong quá trình thực hiện. Thông thường, cách tốt nhất để học các khái niệm là thông qua các ví dụ. Một vài ví dụ dưới đây minh họa cách bạn có thể sử dụng các lời nhắc được thiết kế tốt để thực hiện các loại nhiệm vụ khác nhau.

Chủ đề:

  • Tóm tắt văn bản

  • Trích xuất thông tin

  • Trả lời câu hỏi

  • Phân loại văn bản

  • Hội thoại

  • Tạo mã

  • Suy luận


Video: Các ví dụ cơ bản về lời nhắc cho LLM

Tóm tắt văn bản

Một trong những nhiệm vụ tiêu chuẩn trong việc tạo ra ngôn ngữ tự nhiên là tóm tắt văn bản. Tóm tắt văn bản có thể bao gồm nhiều lĩnh vực và phạm vi khác nhau. Trên thực tế, một trong những ứng dụng hứa hẹn nhất của mô hình ngôn ngữ là khả năng tóm tắt các bài viết và khái niệm thành các bản tóm tắt nhanh chóng và dễ đọc. Hãy cùng thử một nhiệm vụ tóm tắt cơ bản bằng cách sử dụng các lời nhắc.

Giả sử bạn muốn tìm hiểu về thuốc kháng sinh, bạn có thể thử một lời nhắc như sau:

Prompt:

Giải thích về thuốc kháng sinh

A:

Output:

Thuốc kháng sinh là một loại thuốc được sử dụng để điều trị nhiễm trùng do vi khuẩn. Chúng hoạt động bằng cách tiêu diệt vi khuẩn hoặc ngăn chặn chúng sinh sôi, cho phép hệ thống miễn dịch của cơ thể chống lại nhiễm trùng. Kháng sinh thường được dùng đường uống dưới dạng viên nén, viên nang hoặc dung dịch lỏng, hoặc đôi khi được tiêm tĩnh mạch. Chúng không hiệu quả đối với nhiễm trùng do vi-rút, và việc sử dụng không đúng cách có thể dẫn đến kháng kháng sinh.

"A:" là một định dạng gợi ý rõ ràng mà bạn sử dụng trong phần trả lời câu hỏi. Bạn đã sử dụng nó ở đây để cho mô hình biết rằng có một câu trả lời dự kiến. Trong ví dụ này, không rõ điều này hữu ích như thế nào so với việc không sử dụng nó, nhưng chúng ta sẽ để dành điều đó cho các ví dụ sau. Giả sử rằng đây là quá nhiều thông tin và bạn muốn tóm tắt lại. Trên thực tế, bạn có thể hướng dẫn mô hình tóm tắt thành một câu như sau:

Prompt:

Thuốc kháng sinh là một loại thuốc được sử dụng để điều trị nhiễm trùng do vi khuẩn. Chúng hoạt động bằng cách tiêu diệt hoặc ngăn chặn vi khuẩn sinh sôi, cho phép hệ thống miễn dịch của cơ thể chống lại nhiễm trùng. Thuốc kháng sinh thường được dùng đường uống dưới dạng viên nén, viên nang hoặc dung dịch lỏng, hoặc đôi khi được tiêm tĩnh mạch. Chúng không hiệu quả đối với nhiễm trùng do vi-rút, và việc sử dụng không đúng cách có thể dẫn đến tình trạng kháng kháng sinh.

Giải thích những điều trên chỉ trong một câu:

Output:

Thuốc kháng sinh là thuốc được sử dụng để điều trị nhiễm trùng do vi khuẩn bằng cách tiêu diệt hoặc ngăn chặn vi khuẩn sinh sôi, nhưng chúng không hiệu quả đối với vi-rút và việc lạm dụng có thể dẫn đến tình trạng kháng kháng sinh.

Việc không quá chú trọng đến độ chính xác của kết quả đầu ra ở trên, điều mà chúng ta sẽ đề cập trong hướng dẫn sau, mô hình đã cố gắng tóm tắt đoạn văn trong một câu. Bạn có thể khéo léo với các hướng dẫn, nhưng chúng ta sẽ để dành điều đó cho chương sau. Hãy thoải mái dừng lại ở đây và thử nghiệm để xem bạn có nhận được kết quả tốt hơn không.

Trích xuất thông tin

Mặc dù các mô hình ngôn ngữ được đào tạo để thực hiện việc tạo ngôn ngữ tự nhiên và các tác vụ liên quan, nhưng nó cũng rất có khả năng thực hiện phân loại và một loạt các tác vụ xử lý ngôn ngữ tự nhiên (NLP) khác.

Dưới đây là ví dụ về lời nhắc trích xuất thông tin từ một đoạn văn nhất định.

Prompt:

Lời tuyên bố ghi công và lời cảm ơn tác giả trong các bài báo nghiên cứu cần nêu rõ ràng và cụ thể liệu các tác giả có sử dụng các công nghệ AI như ChatGPT trong quá trình chuẩn bị bản thảo và phân tích hay không và ở mức độ nào. Chúng cũng nên chỉ ra những LLM nào đã được sử dụng. Điều này sẽ cảnh báo các biên tập viên và người phản biện xem xét kỹ lưỡng hơn các bản thảo để phát hiện các thành kiến tiềm ẩn, sai sót và ghi nguồn không đúng cách. Tương tự, các tạp chí khoa học nên minh bạch về việc sử dụng LLM, ví dụ như khi lựa chọn bản thảo đã nộp.

y đề cập đến sản phẩm dựa trên mô hình ngôn ngữ lớn được đề cập trong đoạn văn trên:

Output:

Sản phẩm dựa trên mô hình ngôn ngữ lớn được đề cập trong đoạn văn trên là ChatGPT.

Có nhiều cách để cải thiện kết quả ở trên, nhưng cách này đã rất hữu ích.

 

Đến thời điểm này, hẳn bạn đã thấy rõ rằng mình có thể yêu cầu mô hình thực hiện các tác vụ khác nhau chỉ bằng cách ra lệnh cho nó. Đó là một khả năng mạnh mẽ mà các nhà phát triển sản phẩm AI đang sử dụng để xây dựng các sản phẩm và trải nghiệm mạnh mẽ.

Nguồn đoạn văn: ChatGPT: năm ưu tiên nghiên cứu

Trả lời câu hỏi

Một trong những cách tốt nhất để mô hình phản hồi bằng các câu trả lời cụ thể là cải thiện định dạng của lời nhắc. Như đã đề cập trước đó, lời nhắc có thể kết hợp các chỉ dẫn, ngữ cảnh, chỉ số đầu vào và đầu ra để có được kết quả tốt hơn. Mặc dù các thành phần này không bắt buộc, nhưng nó lại là một phương pháp hay vì bạn càng đưa ra chỉ dẫn cụ thể thì kết quả càng tốt. Dưới đây là ví dụ về cách thức thực hiện sau một lời nhắc có cấu trúc hơn.

Prompt:

Trả lời câu hỏi dựa trên ngữ cảnh bên dưới. Trả lời ngắn gọn và súc tích. Nếu không chắc chắn, hãy trả lời "Không chắc chắn về câu trả lời".

Bối cảnh: Teplizumab có nguồn gốc từ một công ty dược phẩm ở New Jersey tên là Ortho Pharmaceutical. Tại đó, các nhà khoa học đã tạo ra phiên bản đầu tiên của kháng thể, được gọi là OKT3. Ban đầu có nguồn gốc từ chuột, phân tử này có khả năng liên kết với bề mặt tế bào T và hạn chế khả năng tiêu diệt tế bào của chúng. Năm 1986, nó được phê duyệt để giúp ngăn ngừa đào thải nội tạng sau ghép thận, trở thành kháng thể điều trị đầu tiên được phép sử dụng trên người.

Câu hỏi: OKT3 ban đầu có nguồn gốc từ đâu?
Trả lời:

Output:

Chuột.

Bối cảnh lấy từ Nature.

Phân loại văn bản

Cho đến nay, bạn đã sử dụng các hướng dẫn đơn giản để thực hiện một tác vụ. Là một kỹ sư về lời nhắc, bạn cần cải thiện khả năng cung cấp chỉ dẫn tốt hơn. Nhưng chưa hết! Bạn cũng sẽ thấy rằng đối với các trường hợp sử dụng khó hơn, chỉ cung cấp chỉ dẫn thôi là chưa đủ. Đây là lúc bạn cần suy nghĩ kỹ hơn về ngữ cảnh và các yếu tố khác nhau mà bạn có thể sử dụng trong một lời nhắc. Các yếu tố khác bạn có thể cung cấp là dữ liệu đầu vào hoặc ví dụ.

Hãy thử chứng minh điều này bằng cách cung cấp một ví dụ về phân loại văn bản.

Prompt:

Phân loại văn bản thành trung tính, tiêu cực hoặc tích cực.

Văn bản: Tôi nghĩ đồ ăn ổn.

Output:

Trung tính

 

Bạn đã đưa ra chỉ dẫn phân loại văn bản và mô hình trả lời là ’Neutral’, điều này là đúng. Điều này không có gì sai, nhưng giả sử điều bạn thực sự cần là mô hình đưa ra nhãn theo đúng định dạng bạn muốn. Vậy, thay vì Neutral, bạn muốn nó trả về giá trị neutral. Làm thế nào để đạt được điều này? Có nhiều cách khác nhau để thực hiện. Ở đây, bạn quan tâm đến tính cụ thể, vì vậy bạn càng cung cấp nhiều thông tin cho lời nhắc thì kết quả càng tốt. Bạn có thể thử cung cấp các ví dụ để xác định hành vi chính xác. Hãy thử lại:

Prompt:

Phân loại văn bản thành trung tính, tiêu cực hoặc tích cực.

Văn bản: Tôi nghĩ kỳ nghỉ ổn.
Cảm xúc: trung tính

Văn bản: Tôi nghĩ đồ ăn ổn.
Cảm xúc:

Output:

trung tính

Hoàn hảo! Lần này, mô hình trả về giá trị neutral, chính là nhãn cụ thể mà bạn đang tìm kiếm. Có vẻ như ví dụ được cung cấp trong lời nhắc đã giúp mô hình đưa ra kết quả cụ thể.

Để nêu bật lý do tại sao đôi khi việc cụ thể lại quan trọng, hãy xem ví dụ bên dưới và tìm ra vấn đề:

Prompt:

Phân loại văn bản thành trung tính, tiêu cực hoặc tích cực.

Văn bản: Tôi nghĩ kỳ nghỉ này ổn.
Cảm xúc:

Output:

Trung tính

Vấn đề ở đây là gì? Gợi ý là, nhãn neutral được tạo ra hoàn toàn bị mô hình bỏ qua. Thay vào đó, mô hình đưa ra kết quả Neutral vì nó có phần thiên vị nhãn đó. Nhưng hãy giả sử rằng thứ bạn thực sự muốn là neutral. Bạn sẽ khắc phục điều này như thế nào? Có lẽ bạn có thể thử thêm mô tả vào nhãn hoặc thêm ví dụ vào lời nhắc? Nếu bạn không chắc chắn, chúng ta sẽ thảo luận một vài ý tưởng trong các phần tiếp theo.

Hội thoại

Có lẽ một trong những điều thú vị nhất bạn có thể đạt được với kỹ thuật nhắc là chỉ dẫn cho hệ thống LLM về cách hoạt động, ý định và bản sắc của nó. Điều này đặc biệt hữu ích khi bạn đang xây dựng các hệ thống hội thoại như chatbot dịch vụ khách hàng.

Ví dụ: hãy tạo một hệ thống hội thoại có khả năng tạo ra các câu trả lời mang tính kỹ thuật và khoa học hơn cho các câu hỏi. Lưu ý cách bạn hướng dẫn hệ thống cách hoạt động thông qua hướng dẫn. Điều này đôi khi được gọi là việc nhắc vai trò.

Prompt:

Sau đây là cuộc trò chuyện với một trợ lý nghiên cứu AI. Giọng điệu của trợ lý mang tính kỹ thuật và khoa học.

Con người: Xin chào, bạn là ai?
AI: Xin chào! Tôi là trợ lý nghiên cứu AI. Hôm nay tôi có thể giúp gì cho bạn?
Con người: Bạn có thể cho tôi biết về sự hình thành của hố đen không?
AI:

Output:

Chắc chắn rồi! Hố đen là những vùng không thời gian có lực hấp dẫn mạnh đến mức không gì, kể cả ánh sáng, có thể thoát ra khỏi nó. Chúng được tạo ra khi một ngôi sao cực lớn chết đi và lõi của nó sụp đổ vào chính nó, tạo thành một điểm kỳ dị có mật độ vô hạn. Lực hấp dẫn cực mạnh của điểm kỳ dị kéo tất cả vật chất và bức xạ xung quanh nó, tạo thành hố đen.

Trợ lý nghiên cứu AI của chúng ta nghe có vẻ hơi chuyên môn quá, phải không? OK, hãy thay đổi hành vi này và hướng dẫn hệ thống đưa ra những câu trả lời dễ hiểu hơn.

Prompt:

Sau đây là cuộc trò chuyện với một trợ lý nghiên cứu AI. Câu trả lời của trợ lý phải dễ hiểu ngay cả với học sinh tiểu học.

Con người: Xin chào, bạn là ai?
AI: Xin chào! Tôi là trợ lý nghiên cứu AI. Hôm nay tôi có thể giúp gì cho bạn?
Con người: Bạn có thể cho tôi biết về sự hình thành của hố đen không? 
AI:

Output:

Chắc chắn rồi! Hố đen được tạo ra khi một ngôi sao cực lớn cạn kiệt nhiên liệu và sụp đổ vào bên trong. Lực hấp dẫn của ngôi sao mạnh đến mức không gì, kể cả ánh sáng, có thể thoát khỏi lực hút của nó. Điều này tạo ra một điểm trong không-thời gian với lực hấp dẫn cực mạnh được gọi là hố đen. 

Bạn đã có một số tiến bộ. Bạn có thể tiếp tục cải thiện nó. Nếu bạn thêm nhiều ví dụ hơn, bạn có thể sẽ có được kết quả tốt hơn nữa.

Tạo mã

Một ứng dụng mà LLM khá hiệu quả là tạo mã. Copilot là một ví dụ điển hình. Có rất nhiều tác vụ tạo mã mà bạn có thể thực hiện với các lời nhắc thông minh. Hãy cùng xem một vài ví dụ dưới đây.

Trước tiên, hãy thử một chương trình đơn giản chào đón người dùng.

Prompt:

/*
Hỏi tên người dùng và nói "Xin chào"
*/

Output:

let name = prompt("Tên bạn là gì?");
console.log(`Xin chào, ${name}!`);

Lưu ý rằng bạn thậm chí không cần chỉ định ngôn ngữ sử dụng.

Hãy đổi hướng một chút. Ví dụ dưới đây cho thấy LLM có thể mạnh mẽ như thế nào nếu bạn đầu tư thêm một chút công sức vào việc thiết kế các lời nhắc.

Prompt:

"""
Bảng departments, các cột = [DepartmentId, DepartmentName]
Bảng students, các cột = [DepartmentId, StudentId, StudentName]
Tạo một truy vấn MySQL cho tất cả sinh viên trong Khoa Khoa học máy tính
"""

Output:

SELECT StudentId, StudentName 
FROM students 
WHERE DepartmentId IN (SELECT DepartmentId FROM departments WHERE DepartmentName = 'Computer Science');

Điều này rất ấn tượng. Trong trường hợp này, bạn đã cung cấp dữ liệu về lược đồ cơ sở dữ liệu và yêu cầu nó tạo ra một truy vấn MySQL hợp lệ.

Suy luận

Có lẽ một trong những nhiệm vụ khó khăn nhất đối với một LLM hiện nay là nhiệm vụ đòi hỏi một số dạng suy luận. Suy luận là một trong những lĩnh vực thú vị nhất do các loại ứng dụng phức tạp có thể xuất hiện từ LLM.

Đã có một số cải tiến trong các bài tập liên quan đến năng lực toán học. Tuy nhiên, điều quan trọng cần lưu ý là các LLM hiện tại gặp khó khăn trong việc thực hiện các bài tập suy luận, do đó đòi hỏi các kỹ thuật viết lời nhắc. Chúng tôi sẽ đề cập đến các kỹ thuật nâng cao cấp này trong hướng dẫn tiếp theo. Trước mắt, chúng tôi sẽ trình bày một vài ví dụ cơ bản để thể hiện năng lực số học.

Prompt:

9.000 * 9.000 bằng bao nhiêu?

Output:

81,000,000

Hãy thử thứ gì đó khó hơn.

Prompt:

Tổng các số lẻ trong nhóm này bằng một số chẵn: 15, 32, 5, 13, 82, 7, 1. 
A: 

Output

Không, tổng các số lẻ trong nhóm này bằng một số lẻ: 119.

Không đúng! Hãy thử cải thiện bài toán này bằng cách cải thiện lời nhắc.

Prompt:

Tổng các số lẻ trong nhóm này bằng một số chẵn: 15, 32, 5, 13, 82, 7, 1. 
Giải bài toán bằng cách chia nhỏ bài toán thành các bước. Đầu tiên, hãy xác định các số lẻ, cộng chúng lại và cho biết kết quả là số lẻ hay số chẵn.

Output:

Các số lẻ: 15, 5, 13, 7, 1
Tổng: 41
41 là một số lẻ.

Tốt hơn nhiều rồi, phải không? Nhân tiện, chúng tôi đã thử nhiệm vụ này vài lần và đôi khi mô hình bị lỗi. Nếu bạn cung cấp hướng dẫn tốt hơn kết hợp với ví dụ, kết quả có thể sẽ chính xác hơn.

Trong phần tiếp theo, chúng tôi sẽ đề cập đến các khái niệm và kỹ thuật lập trình nhắc nhở nâng cao hơn nữa để cải thiện hiệu suất cho tất cả các nhiệm vụ này và cả những nhiệm vụ khó hơn.

Sổ tay

Nếu bạn muốn thực hành với các lời nhắc trên bằng Python, chúng tôi đã chuẩn bị một sổ tay để kiểm tra một số lời nhắc bằng cách sử dụng các mô hình OpenAI.

Về phần ‘Giới thiệu’ ………. Phần trước ………. Phần tiếp theo

The previous section introduced a basic example of how to prompt LLMs.

This section will provide more examples of how to use prompts to achieve different tasks and introduce key concepts along the way. Often, the best way to learn concepts is by going through examples. The few examples below illustrate how you can use well-crafted prompts to perform different types of tasks.

Topics:

Video: Basic Prompt Examples for LLMs

Text Summarization

One of the standard tasks in natural language generation is text summarization. Text summarization can include many different flavors and domains. In fact, one of the most promising applications of language models is the ability to summarize articles and concepts into quick and easy-to-read summaries. Let's try a basic summarization task using prompts.

Let's say you are interested to learn about antibiotics, you could try a prompt like this:

Prompt:

Explain antibiotics

A:

Output:

Antibiotics are a type of medication used to treat bacterial infections. They work by either killing the bacteria or preventing them from reproducing, allowing the body’s immune system to fight off the infection. Antibiotics are usually taken orally in the form of pills, capsules, or liquid solutions, or sometimes administered intravenously. They are not effective against viral infections, and using them inappropriately can lead to antibiotic resistance.

The "A:" is an explicit prompt format that you use in question answering. You used it here to tell the model that there is an answer expected further. In this example, it's not clear how this is useful vs not using it but we will leave it that for later examples. Let's just assume that this is too much information and you want to summarize it further. In fact, you can instruct the model to summarize into one sentence like so:

Prompt:

Antibiotics are a type of medication used to treat bacterial infections. They work by either killing the bacteria or preventing them from reproducing, allowing the body’s immune system to fight off the infection. Antibiotics are usually taken orally in the form of pills, capsules, or liquid solutions, or sometimes administered intravenously. They are not effective against viral infections, and using them inappropriately can lead to antibiotic resistance.

Explain the above in one sentence:

Output:

Antibiotics are medications used to treat bacterial infections by either killing the bacteria or stopping them from reproducing, but they are not effective against viruses and overuse can lead to antibiotic resistance.

Without paying too much attention to the accuracy of the output above, which is something we will touch on in a later guide, the model tried to summarize the paragraph in one sentence. You can get clever with the instructions but we will leave that for a later chapter. Feel free to pause here and experiment to see if you get better results.

Information Extraction

While language models are trained to perform natural language generation and related tasks, it's also very capable of performing classification and a range of other natural language processing (NLP) tasks.

Here is an example of a prompt that extracts information from a given paragraph.

Prompt:

Author-contribution statements and acknowledgements in research papers should state clearly and specifically whether, and to what extent, the authors used AI technologies such as ChatGPT in the preparation of their manuscript and analysis. They should also indicate which LLMs were used. This will alert editors and reviewers to scrutinize manuscripts more carefully for potential biases, inaccuracies and improper source crediting. Likewise, scientific journals should be transparent about their use of LLMs, for example when selecting submitted manuscripts.

Mention the large language model based product mentioned in the paragraph above:

Output:

The large language model based product mentioned in the paragraph above is ChatGPT.

There are many ways you can improve the results above, but this is already very useful.

By now it should be obvious that you can ask the model to perform different tasks by simply instructing it what to do. That's a powerful capability that AI product developers are already using to build powerful products and experiences.

Paragraph source: ChatGPT: five priorities for research

Question Answering

One of the best ways to get the model to respond with specific answers is to improve the format of the prompt. As covered before, a prompt could combine instructions, context, input, and output indicators to get improved results. While these components are not required, it becomes a good practice as the more specific you are with instruction, the better results you will get. Below is an example of how this would look following a more structured prompt.

Prompt:

Answer the question based on the context below. Keep the answer short and concise. Respond "Unsure about answer" if not sure about the answer.

Context: Teplizumab traces its roots to a New Jersey drug company called Ortho Pharmaceutical. There, scientists generated an early version of the antibody, dubbed OKT3. Originally sourced from mice, the molecule was able to bind to the surface of T cells and limit their cell-killing potential. In 1986, it was approved to help prevent organ rejection after kidney transplants, making it the first therapeutic antibody allowed for human use.

Question: What was OKT3 originally sourced from?

Answer:

Output:

Mice.

Context obtained from Nature.

Text Classification

So far, you have used simple instructions to perform a task. As a prompt engineer, you need to get better at providing better instructions. But that's not all! You will also find that for harder use cases, just providing instructions won't be enough. This is where you need to think more about the context and the different elements you can use in a prompt. Other elements you can provide are input data or examples.

Let's try to demonstrate this by providing an example of text classification

Prompt:

Classify the text into neutral, negative or positive. 

Text: I think the food was okay. 
Sentiment:

Output:

Neutral

You gave the instruction to classify the text and the model responded with 'Neutral', which is correct. Nothing is wrong with this but let's say that what you really need is for the model to give the label in the exact format you want. So instead of Neutral, you want it to return neutral. How do you achieve this? There are different ways to do this. You care about specificity here, so the more information you can provide the prompt, the better results. You can try providing examples to specify the correct behavior. Let's try again:

Prompt:

Classify the text into neutral, negative or positive. 

Text: I think the vacation is okay.
Sentiment: neutral 

Text: I think the food was okay. 
Sentiment:

Output:

neutral

Perfect! This time the model returned neutral which is the specific label you were looking for. It seems that the example provided in the prompt helped the model to be specific in its output.

To highlight why sometimes being specific is important, check out the example below and spot the problem:

Prompt:

Classify the text into nutral, negative or positive. 

Text: I think the vacation is okay.
Sentiment:

Output:

Neutral

What is the problem here? As a hint, the made-up nutral label is completely ignored by the model. Instead, the model outputs Neutral as it has some bias towards that label. But let's assume that what you really want is nutral. How would you fix this? Maybe you can try adding descriptions to the labels or add more examples to the prompt? If you are not sure, we will discuss a few ideas in the upcoming sections.

Conversation

Perhaps one of the more interesting things you can achieve with prompt engineering is instructing the LLM system on how to behave, its intent, and its identity. This is particularly useful when you are building conversational systems like customer service chatbots.

For instance, let's create a conversational system that's able to generate more technical and scientific responses to questions. Note how you are explicitly telling it how to behave through the instruction. This is sometimes referred to as role prompting.

Prompt:

The following is a conversation with an AI research assistant. The assistant tone is technical and scientific.

Human: Hello, who are you?
AI: Greeting! I am an AI research assistant. How can I help you today?
Human: Can you tell me about the creation of blackholes?
AI:

Output:

Sure! Black holes are regions of spacetime where the gravitational force is so strong that nothing, not even light, can escape from it. They are created when a very massive star dies and its core collapses in on itself, forming a singularity of infinite density. The intense gravity of the singularity pulls in all the matter and radiation around it, creating the black hole.

Our AI research assistant sounds a bit too technical, right? Okay, let's change this behavior and instruct the system to give more accessible answers.

Prompt:

The following is a conversation with an AI research assistant. The assistant answers should be easy to understand even by primary school students.

Human: Hello, who are you?
AI: Greeting! I am an AI research assistant. How can I help you today?
Human: Can you tell me about the creation of black holes?
AI: 

Output:

Sure! Black holes are created when a very massive star runs out of fuel and collapses in on itself. The gravity of the star is so strong that nothing, not even light, can escape its pull. This creates a point in space-time with an intense gravitational force called a black hole.

You made some progress. You can continue improving it. If you add more examples, you might get even better results.

Code Generation

One application where LLMs are quite effective is code generation. Copilot is a great example of this. There are a vast number of code-generation tasks you can perform with clever prompts. Let's look at a few examples below.

First, let's try a simple program that greets the user.

Prompt:

/*
Ask the user for their name and say "Hello"
*/

Output:

let name = prompt("What is your name?");
console.log(`Hello, ${name}!`);

Notice that you didn't even need to specify the language to use.

Let's switch levels a bit. The example below shows how powerful LLMs can be with a little more effort in designing the prompts.

Prompt:

"""
Table departments, columns = [DepartmentId, DepartmentName]
Table students, columns = [DepartmentId, StudentId, StudentName]
Create a MySQL query for all students in the Computer Science Department
"""

Output:

SELECT StudentId, StudentName 
FROM students 
WHERE DepartmentId IN (SELECT DepartmentId FROM departments WHERE DepartmentName = 'Computer Science');

This is very impressive. In this case, you provided data about the database schema and asked it to generate a valid MySQL query.

Reasoning

Perhaps one of the most difficult tasks for an LLM today is one that requires some form of reasoning. Reasoning is one of most interesting areas due to the types of complex applications that can emerge from LLMs.

There have been some improvements in tasks involving mathematical capabilities. That said, it's important to note that current LLMs struggle to perform reasoning tasks so this requires even more advanced prompt engineering techniques. We will cover these advanced techniques in the next guide. For now, we will cover a few basic examples to show arithmetic capabilities.

Prompt:

What is 9,000 * 9,000?

Output:

81,000,000

Let's try something more difficult.

Prompt:

The odd numbers in this group add up to an even number: 15, 32, 5, 13, 82, 7, 1. 

A: 

Output

No, the odd numbers in this group add up to an odd number: 119.

That's incorrect! Let's try to improve this by improving the prompt.

Prompt:

The odd numbers in this group add up to an even number: 15, 32, 5, 13, 82, 7, 1. 

Solve by breaking the problem into steps. First, identify the odd numbers, add them, and indicate whether the result is odd or even. 

Output:

Odd numbers: 15, 5, 13, 7, 1
Sum: 41 
41 is an odd number.

Much better, right? By the way, we tried this task a couple of times and the model sometimes fails. If you provide better instructions combined with examples, it might help get more accurate results.

In the upcoming section, we will cover even more advanced prompt engineering concepts and techniques for improving performance on all these and more difficult tasks.

Notebook

If you want to practice with the prompts above using Python, we have prepared a notebook to test some of the prompts using the OpenAI models.

Dịch: Lê Trung Nghĩa

letrungnghia.foss@gmail.com