Prompt
Chaining
Theo:
https://www.promptingguide.ai/techniques/prompt_chaining
Giới thiệu Chuỗi lời nhắc
Video:
Chuỗi
lời nhắc với GPT-4o và Flowise AI (Sách hướng dẫn)Để cải thiện độ tin cậy và hiệu suất của LLM, một
trong những kỹ thuật thiết kế lời nhắc quan trọng là chia nhỏ tác vụ
thành các tác vụ con. Khi các tác vụ con đó đã được xác định, LLM sẽ
được nhắc nhở bằng một tác vụ con và sau đó phản hồi của nó được sử dụng
làm đầu vào cho một lời nhắc khác. Đây chính là phương pháp xâu chuỗi
lời nhắc, trong đó một tác vụ được chia thành các tác vụ con với mục
đích tạo ra một chuỗi các thao tác nhắc.
Xâu chuỗi lời nhắc rất hữu ích để hoàn thành các tác
vụ phức tạp mà LLM có thể gặp khó khăn khi được nhắc bằng một lời nhắc
quá chi tiết. Trong việc xâu chuỗi nhắc nhở, các lời nhắc chuỗi thực
hiện các chuyển đổi hoặc quy trình bổ sung dựa trên các phản hồi được
tạo ra trước khi đạt đến trạng thái mong muốn cuối cùng.
Bên cạnh việc đạt được hiệu suất tốt hơn, việc xâu
chuỗi lời nhắc còn giúp tăng cường tính minh bạch của ứng dụng LLM, tăng
khả năng kiểm soát và độ tin cậy. Điều này có nghĩa là bạn có thể gỡ
lỗi các vấn đề với phản hồi của mô hình dễ dàng hơn nhiều, đồng thời
phân tích và cải thiện hiệu suất trong các giai đoạn khác nhau cần cải
thiện.
Xâu chuỗi lời nhắc đặc biệt hữu ích khi xây dựng các
trợ lý đàm thoại được LLM hỗ trợ và cải thiện tính cá nhân hóa cũng như
trải nghiệm người dùng trong ứng dụng của bạn.
Các trường hợp sử dụng cho chuỗi lời nhắc
Chuỗi nhắc cho QA tài liệu
Chuỗi lời nhắc có thể được sử dụng trong các tình
huống khác nhau, bao gồm nhiều thao tác hoặc chuyển đổi. Ví dụ, một
trường hợp sử dụng phổ biến của LLM liên quan đến việc trả lời các câu
hỏi về một tài liệu văn bản lớn. Sẽ rất hữu ích nếu bạn thiết kế hai lời
nhắc khác nhau, trong đó lời nhắc đầu tiên chịu trách nhiệm trích xuất
các trích dẫn liên quan để trả lời câu hỏi và lời nhắc thứ hai lấy dữ
liệu đầu vào là các trích dẫn và tài liệu gốc để trả lời câu hỏi cho
trước. Nói cách khác, bạn sẽ tạo hai lời nhắc khác nhau để thực hiện
nhiệm vụ trả lời một câu hỏi được đưa ra trong tài liệu.
Lời nhắc đầu tiên bên dưới trích xuất các trích dẫn
liên quan từ tài liệu được đưa ra cho câu hỏi. Lưu ý rằng để đơn giản,
chúng tôi đã thêm một trình giữ chỗ cho tài liệu {{document}}. Để kiểm
tra lời nhắc, bạn có thể sao chép và dán một bài viết từ Wikipedia,
chẳng hạn như trang này, để thiết kế lời nhắc. Do ngữ cảnh được sử dụng
rộng hơn cho nhiệm vụ này, chúng tôi đang sử dụng mô hình
gpt-4-1106-preview từ OpenAI. Bạn có thể sử dụng lời nhắc này với các
LLM ngữ cảnh dài khác như Claude.
Prompt 1:
Bạn là một trợ lý hữu ích. Nhiệm vụ của bạn là giúp trả lời một câu hỏi được đưa ra trong tài liệu. Bước đầu tiên là trích xuất các trích dẫn liên quan đến câu hỏi từ tài liệu, được phân cách bằng
{{document}}
Sau đây là ảnh chụp màn hình toàn bộ lời nhắc bao gồm câu hỏi được truyền bằng việc sử dụng vai trò của người dùng.
Output of Prompt 1:
<quotes>
- Lời nhắc chuỗi suy nghĩ (CoT)[27]
- Lời nhắc kiến thức được tạo ra[37]
- Lời nhắc từ ít nhất đến nhiều nhất[38]
- Giải mã tính tự nhất quán[39]
- Lời nhắc dựa trên độ phức tạp[41]
- Tự tinh chỉnh[42]
- Lời nhắc cây suy nghĩ[43]
- Lời nhắc Maieutic[45]
- Lời nhắc kích thích định hướng[46]
- Đảo ngược văn bản và nhúng[59]
- Sử dụng giảm dần độ dốc để tìm kiếm lời nhắc[61][62][63][64]
- Chèn lời nhắc[65][66][67]
</quotes>
Các trích dẫn được trả về trong lời nhắc đầu tiên giờ
đây có thể được sử dụng làm đầu vào cho lời nhắc thứ hai bên dưới. Lưu ý
rằng bạn có thể dọn dẹp các trích dẫn thêm một chút, tức là xóa các
trích dẫn. Các trích dẫn đó có thể được xóa hoặc sử dụng như một phần
của một lời nhắc khác trong chuỗi, nhưng bạn có thể bỏ qua điều này ngay
bây giờ. Lời nhắc thứ hai sau đó sẽ lấy các trích dẫn liên quan được
trích xuất bởi lời nhắc 1 và chuẩn bị một câu trả lời hữu ích cho câu
hỏi được đưa ra trong tài liệu và các trích dẫn được trích xuất đó. Lời
nhắc thứ hai có thể như sau:
Prompt 2:
Cho một tập hợp các trích dẫn liên quan (được phân cách bằng <quotes></quotes>) được trích xuất từ một tài liệu và tài liệu gốc (được phân cách bằng ####), vui lòng soạn câu trả lời cho câu hỏi. Đảm bảo câu trả lời chính xác, có giọng điệu thân thiện và hữu ích.
{{document}}
<quotes>
- Lời nhắc chuỗi suy nghĩ (CoT)[27]
- Lời nhắc kiến thức được tạo ra[37]
- Lời nhắc từ ít nhất đến nhiều nhất[38]
- Giải mã tính nhất quán tự thân[39]
- Lời nhắc dựa trên độ phức tạp[41]
- Tự tinh chỉnh[42]
- Lời nhắc cây suy nghĩ[43]
- Lời nhắc Maieutic[45]
- Lời nhắc kích thích định hướng[46]
- Đảo ngược văn bản và nhúng[59]
- Sử dụng gradient descent để tìm kiếm lời nhắc [61][62][63][64]
- Chèn lời nhắc [65][66][67]
</quotes>
Đầu ra của Lời nhắc 2: (Output of Prompt 2:)
Các kỹ thuật nhắc được nêu trong tài liệu này bao gồm:
1. Lời nhắc chuỗi tư duy (CoT) [27]
2. Lời nhắc kiến thức được tạo ra [37]
3. Lời nhắc từ ít nhất tới nhiều nhất [38]
4. Giải mã tự nhất quán [39]
5. Lời nhắc dựa trên sự phức tạp [41]
6. Tự tinh chỉnh [42]
7. Lời nhắc Cây tư duy [43]
8. Lời nhắc Maieutic[45]
9. Lời nhắc kích thích định hướng [46]
10. Đảo ngược văn bản và nhúng [59]
11. Sử dụng độ dốc giảm dần để tìm kiếm các lời nhắc [61][62][63][64]
12. Chèn lời nhắc [65][66][67]
Mỗi kỹ thuật này sử dụng các chiến lược riêng để tăng cường hoặc chỉ định các tương tác với các mô hình ngôn ngữ lớn nhằm tạo ra kết quả mong muốn.
Như bạn thấy, việc đơn giản hóa và tạo chuỗi lời nhắc
là một phương pháp nhắc hữu ích khi các phản hồi cần trải qua nhiều
thao tác hoặc chuyển đổi. Để thực hành, bạn có thể thiết kế một lời nhắc
loại bỏ các trích dẫn (ví dụ: [27]) khỏi phản hồi trước khi gửi phản
hồi này dưới dạng phản hồi cuối cùng cho người dùng ứng dụng của bạn.
Bạn cũng có thể tìm thêm các ví dụ về chuỗi lời nhắc trong tài liệu này, sử dụng Claude LLM. Ví dụ của chúng tôi được lấy cảm hứng và điều chỉnh từ các ví dụ của họ.
Về ‘Kỹ thuật viết lời nhắc’ ………. Phần trước ………. Phần tiếp theo
Video: Prompt
Chaining with GPT-4o and Flowise AI (Tutorial)
Introduction
to Prompt Chaining
To improve the
reliability and performance of LLMs, one of the important prompt
engineering techniques is to break tasks into its subtasks. Once
those subtasks have been identified, the LLM is prompted with a
subtask and then its response is used as input to another prompt.
This is what's referred to as prompt chaining, where a task is split
into subtasks with the idea to create a chain of prompt operations.
Prompt chaining
is useful to accomplish complex tasks which an LLM might struggle to
address if prompted with a very detailed prompt. In prompt chaining,
chain prompts perform transformations or additional processes on the
generated responses before reaching a final desired state.
Besides
achieving better performance, prompt chaining helps to boost the
transparency of your LLM application, increases controllability, and
reliability. This means that you can debug problems with model
responses much more easily and analyze and improve performance in the
different stages that need improvement.
Prompt chaining
is particularly useful when building LLM-powered conversational
assistants and improving the personalization and user experience of
your applications.
Use
Cases for Prompt Chaining
Prompt
Chaining for Document QA
Prompt chaining
can be used in different scenarios that could involve several
operations or transformations. For instance, one common use case of
LLMs involves answering questions about a large text document. It
helps if you design two different prompts where the first prompt is
responsible for extracting relevant quotes to answer a question and a
second prompt takes as input the quotes and original document to
answer a given question. In other words, you will be creating two
different prompts to perform the task of answering a question given
in a document.
The first prompt
below extracts the relevant quotes from the document given the
question. Note that for simplicity, we have added a placeholder for
the document {{document}}.
To test the prompt you can copy and paste an article from Wikipedia
such as this page for prompt
engineering. Due to larger context used for this task, we are
using the gpt-4-1106-preview
model from OpenAI. You can use the prompt with other long-context
LLMs like Claude.
Prompt 1:
You are a helpful assistant. Your task is to help answer a question given in a document. The first step is to extract quotes relevant to the question from the document, delimited by ####. Please output the list of quotes using <quotes></quotes>. Respond with "No relevant quotes found!" if no relevant quotes were found.
####
{{document}}
####
Here is a screenshot of the entire
prompt including the question which is passed using the user
role.
Output of
Prompt 1:
<quotes>
- Chain-of-thought (CoT) prompting[27]
- Generated knowledge prompting[37]
- Least-to-most prompting[38]
- Self-consistency decoding[39]
- Complexity-based prompting[41]
- Self-refine[42]
- Tree-of-thought prompting[43]
- Maieutic prompting[45]
- Directional-stimulus prompting[46]
- Textual inversion and embeddings[59]
- Using gradient descent to search for prompts[61][62][63][64]
- Prompt injection[65][66][67]
</quotes>
The quotes that were returned in
the first prompt can now be used as input to the second prompt below.
Note that you can clean up the quotes a bit more, i.e., remove the
citations. Those citations could be removed or utilized as part of
another prompt in the chain but you can ignore this for now. The
second prompt then takes the relevant quotes extracted by prompt 1
and prepares a helpful response to the question given in the document
and those extracted quotes. The second prompt can be the following:
Prompt 2:
Given a set of relevant quotes (delimited by <quotes></quotes>) extracted from a document and the original document (delimited by ####), please compose an answer to the question. Ensure that the answer is accurate, has a friendly tone, and sounds helpful.
####
{{document}}
####
<quotes>
- Chain-of-thought (CoT) prompting[27]
- Generated knowledge prompting[37]
- Least-to-most prompting[38]
- Self-consistency decoding[39]
- Complexity-based prompting[41]
- Self-refine[42]
- Tree-of-thought prompting[43]
- Maieutic prompting[45]
- Directional-stimulus prompting[46]
- Textual inversion and embeddings[59]
- Using gradient descent to search for prompts[61][62][63][64]
- Prompt injection[65][66][67]
</quotes>
Output of Prompt 2:
The prompting techniques mentioned in the document include:
1. Chain-of-thought (CoT) prompting[27]
2. Generated knowledge prompting[37]
3. Least-to-most prompting[38]
4. Self-consistency decoding[39]
5. Complexity-based prompting[41]
6. Self-refine[42]
7. Tree-of-thought prompting[43]
8. Maieutic prompting[45]
9. Directional-stimulus prompting[46]
10. Textual inversion and embeddings[59]
11. Using gradient descent to search for prompts[61][62][63][64]
12. Prompt injection[65][66][67]
Each of these techniques employs unique strategies to enhance or specify the interactions with large language models to produce the desired outcomes.
As you can see, simplifying and
creating prompt chains is a useful prompting approach where the
responses need to undergo several operations or transformations. As
an exercise, feel free to design a prompt that removes the citations
(e.g., [27]) from the response before sending this as a final
response to the user of your application.
You can also
find more examples of prompt chaining in this documentation
that leverages the Claude LLM. Our example is inspired and adapted
from their examples.
Dịch: Lê Trung Nghĩa
letrungnghia.foss@gmail.com