เพื่อปรับปรุงความน่าเชื่อถือและประสิทธิภาพของ LLM หนึ่งในเทคนิคทางวิศวกรรมที่รวดเร็วที่สำคัญคือการแบ่งงานออกเป็นงานย่อย เมื่อระบุงานย่อยเหล่านั้นแล้ว LLM จะได้รับพร้อมท์ด้วยงานย่อย จากนั้นการตอบสนองจะถูกใช้เป็นอินพุตไปยังพร้อมท์อื่น นี่คือสิ่งที่เรียกว่าการผูกมัดพร้อมท์ โดยที่งานจะถูกแบ่งออกเป็นงานย่อยที่มีแนวคิดในการสร้างห่วงโซ่ของการดำเนินการพร้อมท์
การผูกมัดพร้อมต์มีประโยชน์ในการทำงานที่ซับซ้อนให้สำเร็จ ซึ่ง LLM อาจประสบปัญหาในการแก้ไขหากได้รับแจ้งพร้อมแจ้งที่มีรายละเอียดมาก ในการต่อสายโซ่พร้อมท์ การแจ้งลูกโซ่จะทำการเปลี่ยนแปลงหรือกระบวนการเพิ่มเติมในการตอบสนองที่สร้างขึ้นก่อนที่จะถึงสถานะสุดท้ายที่ต้องการ
นอกจากการบรรลุประสิทธิภาพที่ดีขึ้นแล้ว การเชื่อมโยงโซ่พร้อมท์ยังช่วยเพิ่มความโปร่งใสของแอปพลิเคชัน LLM ของคุณ เพิ่มความสามารถในการควบคุม และความน่าเชื่อถือ ซึ่งหมายความว่าคุณสามารถแก้ปัญหาด้วยการตอบสนองของโมเดลได้ง่ายขึ้นมาก และวิเคราะห์และปรับปรุงประสิทธิภาพในขั้นตอนต่างๆ ที่จำเป็นต้องปรับปรุง
นอกจากการบรรลุประสิทธิภาพที่ดีขึ้นแล้ว การเชื่อมโยงโซ่พร้อมท์ยังช่วยเพิ่มความโปร่งใสของแอปพลิเคชัน LLM ของคุณ เพิ่มความสามารถในการควบคุม และความน่าเชื่อถือ ซึ่งหมายความว่าคุณสามารถแก้ปัญหาด้วยการตอบสนองของโมเดลได้ง่ายขึ้นมาก และวิเคราะห์และปรับปรุงประสิทธิภาพในขั้นตอนต่างๆ ที่จำเป็นต้องปรับปรุง
การผูกมัดพร้อมท์สามารถใช้ได้ในสถานการณ์ต่างๆ ที่อาจเกี่ยวข้องกับการดำเนินการหรือการเปลี่ยนแปลงหลายอย่าง ตัวอย่างเช่น กรณีการใช้งานทั่วไปประการหนึ่งของ LLM เกี่ยวข้องกับการตอบคำถามเกี่ยวกับเอกสารข้อความขนาดใหญ่ จะช่วยได้หากคุณออกแบบพรอมต์สองรายการที่แตกต่างกัน โดยพรอมต์แรกมีหน้าที่แยกคำพูดที่เกี่ยวข้องเพื่อตอบคำถาม และพรอมต์ที่สองใช้ในการป้อนคำพูดและเอกสารต้นฉบับเพื่อตอบคำถามที่กำหนด กล่าวอีกนัยหนึ่ง คุณจะสร้างพรอมต์ที่แตกต่างกันสองรายการเพื่อดำเนินการตอบคำถามที่ให้ไว้ในเอกสาร
พรอมต์แรกด้านล่างจะดึงคำพูดที่เกี่ยวข้องออกจากเอกสารที่ถามคำถาม โปรดทราบว่าเพื่อความง่าย เราได้เพิ่มตัวยึดตำแหน่งสำหรับเอกสาร {{document}}เพื่อทดสอบพร้อมท์ คุณสามารถคัดลอกและวางบทความจากวิกิพีเดีย เช่น หน้านี้สำหรับ prompt engineering
- เนื่องจากบริบทที่ใช้สำหรับงานนี้กว้างขึ้น เราจึงใช้โมเดล gpt-4-1106-preview จาก OpenAI คุณสามารถใช้พร้อมท์กับ LLM ที่มีเนื้อหายาวอื่นๆ เช่น 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}}
####
นี่คือภาพหน้าจอของข้อความแจ้งทั้งหมด รวมถึงคำถามที่ส่งผ่านโดยใช้บทบาท user
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>
เครื่องหมายคำพูดที่ส่งคืนในพรอมต์แรกสามารถใช้เป็นข้อมูลป้อนในพรอมต์ที่สองด้านล่างได้แล้ว โปรดทราบว่าคุณสามารถล้างเครื่องหมายคำพูดได้อีกเล็กน้อย เช่น ลบการอ้างอิงออก การอ้างอิงเหล่านั้นสามารถลบออกหรือใช้เป็นส่วนหนึ่งของพรอมต์อื่นในห่วงโซ่ได้ แต่คุณสามารถเพิกเฉยต่อสิ่งนี้ได้ในตอนนี้ พรอมต์ที่สองจะนำคำพูดที่เกี่ยวข้องซึ่งแยกออกมาโดย Prompt 1 และเตรียมคำตอบที่เป็นประโยชน์สำหรับคำถามที่ให้ไว้ในเอกสารและคำพูดที่แยกออกมาเหล่านั้น พรอมต์ที่สองอาจเป็นดังนี้:
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.
อย่างที่คุณเห็น การทำให้ง่ายขึ้นและการสร้างลูกโซ่พร้อมต์เป็นวิธีการพร้อมท์ที่มีประโยชน์ ซึ่งการตอบสนองจำเป็นต้องผ่านการดำเนินการหรือการเปลี่ยนแปลงหลายอย่าง เพื่อเป็นแบบฝึกหัด โปรดออกแบบข้อความแจ้งที่จะลบการอ้างอิง (เช่น [27]) ออกจากคำตอบ ก่อนที่จะส่งสิ่งนี้เป็นการตอบกลับขั้นสุดท้ายไปยังผู้ใช้แอปพลิเคชันของคุณ
คุณยังดูตัวอย่างเพิ่มเติมของ prompt chaining ได้ในเอกสารนี้
ที่ใช้ประโยชน์จาก Claude LLM ตัวอย่างของเราได้รับแรงบันดาลใจและดัดแปลงมาจากตัวอย่างของพวกเขา