[แปล] กลยุทธ์ Prompt Engineering เพื่อให้ได้ผลลัพธ์ที่ดีกว่าจาก Claude-3 (feat. Anthropic)
(discuss.pytorch.kr)เกริ่นนำ
เมื่อราวกลางปีที่แล้ว ผมเคยแปลและสรุป6 กลยุทธ์การเขียนพรอมป์เพื่อให้ได้คำตอบที่ดีกว่า โดยใช้โมเดล ChatGPT ของ OpenAI มาก่อน แต่หลังจากเริ่มใช้งาน Claude-3 อย่างจริงจังเมื่อไม่นานมานี้ ก็พบว่าตัวอย่างพรอมป์มีความต่างกันแบบละเอียดในแง่ของโทนและแนวทาง
พอลองหาข้อมูลอ้างอิงว่ามีอะไรต่างกันบ้าง ก็เจอเอกสาร Prompt Engineering ที่ Anthropic เผยแพร่ จึงลองอ่านคร่าวๆ แล้วพบว่ามีหลายส่วนที่ทับซ้อนกับ 6 กลยุทธ์การเขียนพรอมป์ที่ OpenAI เคยสรุปไว้ เลยไม่ได้เรียบเรียงต้นฉบับทั้งหมด แต่ลองขอให้ ChatGPT ซึ่งเป็นโมเดลคู่แข่ง(...) ช่วยสรุปแบบสั้นๆ แทน
ลองอ่านกันดูครับ และถ้ายังรู้สึกว่าข้อมูลไม่ครบ ขอแนะนำให้ดูควบคู่ไปกับซีรีส์ OpenAI GPT Best Practices: Overview. 6 กลยุทธ์การเขียนพรอมป์เพื่อให้ได้คำตอบที่ดีกว่า (Six strategies for getting better results) และต้นฉบับของ Anthropic ด้วย :D
บทนำ
เอกสารนี้กล่าวถึงกลยุทธ์ Prompt Engineering สำหรับ Claude-3 โดยสามารถใช้กลยุทธ์เหล่านี้เพื่อปรับปรุงประสิทธิภาพของ Claude-3 และปรับแต่งการตอบสนองให้เหมาะกับกรณีการใช้งานเฉพาะได้ เทคนิคเหล่านี้ไม่ถึงกับจำเป็นเสมอไป แต่สามารถช่วยปรับปรุงทั้งอินพุตและเอาต์พุตของ Claude ได้
Prompt Engineering เป็นวิทยาศาสตร์เชิงทดลอง ซึ่งเกี่ยวข้องกับกระบวนการทำซ้ำและทดสอบพรอมป์เพื่อเพิ่มประสิทธิภาพให้ดีที่สุด กล่าวคือ Prompt Engineering จะดำเนินไปผ่านการพัฒนาและประเมินผลแบบวนซ้ำ ตั้งแต่งานอย่างการดึงเอนทิตี การตอบคำถาม และการสรุปข้อความ ไปจนถึงงานที่ซับซ้อนยิ่งขึ้น โดยในกระบวนการนี้จะรวมถึงการสร้างชุดทดสอบต่างๆ การพัฒนาพรอมป์เริ่มต้น การประเมินปฏิกิริยาของโมเดล และการปรับแก้ตามผลลัพธ์
เมื่อเปรียบเทียบ Claude กับโมเดล AI อื่นๆ แล้ว Claude-3 มีจุดเด่นตรงที่สามารถเพิ่มประสิทธิภาพได้ด้วยเทคนิค Prompt Engineering ที่หลากหลาย เช่น การกำหนดบทบาทเฉพาะ หรือการใช้แท็ก XML เทคนิคเหล่านี้ช่วยให้ Claude สร้างผลลัพธ์ที่แม่นยำและสม่ำเสมอมากขึ้น
เทคนิคหลัก
ต่อไปนี้คือเทคนิคหลักที่อธิบายไว้ในเอกสาร:
ถามให้ชัดเจนและตรงไปตรงมา(Be clear & direct
ให้บริบทและคำสั่งที่ชัดเจนแก่ Claude เพื่อบอกว่าคุณต้องการคำตอบแบบใด:
- ให้บริบทและคำสั่งอย่างละเอียด: ควรให้บริบทและคำสั่งที่ละเอียดกับ Claude ให้มากที่สุดเท่าที่จำเป็นเพื่อให้ทำงานได้อย่างถูกต้อง ตัวอย่างเช่น ในการขอให้ลบข้อมูลส่วนบุคคล ควรระบุให้ชัดว่าต้องลบข้อมูลประเภทใด และลบด้วยวิธีใด
| Role | Prompt |
|---|---|
| User | We want to anonymize some text by removing all personally identifiable information (PII). |
Please follow these steps:
- Replace all instances of names, phone numbers, and home and email addresses with 'XXX'.
- If the text contains no PII, copy it word-for-word without replacing anything.
- Output only the processed text, without any additional commentary.
Here is the text to process: {{TEXT}}|
- ใช้รายการลำดับเลขหรือหัวข้อย่อย: เมื่อต้องสั่งงานที่ซับซ้อน การใช้รายการลำดับเลขหรือหัวข้อย่อยเพื่อแยกคำสั่งจะช่วยให้ Claude เข้าใจและปฏิบัติตามได้ดีขึ้น ตัวอย่างเช่น ในการสั่งให้แปลงบทในหนังสือเรียนเป็นแผนการสอน สามารถแยกแต่ละขั้นตอนออกมาอย่างชัดเจนได้
| Role | Prompt |
|---|---|
| User | Your task is turn the given textbook chapter into a comprehensive lesson plan. To do this task, you should: |
- Extract and summarize key concepts by section
- Convert each extracted concept into a 30 minute lesson plan, including a list of questions to check comprehension.
- Design an accompanying homework assignment that reinforces learnings from this chapter.
Here is the chapter:
{{CHAPTER}}|
- ระบุสิ่งที่ต้องการอย่างเฉพาะเจาะจง: หากต้องการคำตอบที่ชัดเจนหรือจุดยืนเฉพาะจาก Claude ควรระบุออกไปอย่างตรงไปตรงมา ตัวอย่างเช่น สำหรับคำถามว่า “นักบาสเกตบอลที่เก่งที่สุดตลอดกาลคือใคร?” คุณสามารถกำหนดให้เลือกผู้เล่นเพียงคนเดียวอย่างชัดเจนได้
| Role | Prompt |
|---|---|
| User | (ตัวอย่างที่ไม่ดี) Who is the best basketball player of all time? |
| (ตัวอย่างที่ดี) Who is the best basketball player of all time? Yes, there are differing opinions, but if you absolutely had to pick one player, who would it be? | |
| Assistant (Claude's response) | There is no definitive answer to who is the best basketball player of all time, as reasonable people can disagree on this. However, if forced to choose just one player, I would say Michael Jordan is most commonly considered the GOAT (Greatest Of All Time) based on his exceptional talent, championships, awards, and cultural impact on the game of basketball. But others like LeBron James, Kareem Abdul-Jabbar, Wilt Chamberlain and Bill Russell are also frequently mentioned in the debate. It's a subjective call without a clear consensus. |
- กฎทองของการพรอมป์อย่างชัดเจน: ลองให้คนอื่นอ่านข้อความพรอมป์ของคุณแล้วดูว่าเขาสามารถทำตามคำสั่งนั้นได้หรือไม่ หลักการนี้ใช้กับ Claude ได้เช่นกัน และช่วยตรวจสอบได้ว่าคำสั่งของคุณชัดเจนเพียงพอหรือยัง
ยกตัวอย่างประกอบ (Use examples
ใส่ตัวอย่างไว้ในพรอมป์เพื่ออธิบายรูปแบบหรือสไตล์ของผลลัพธ์ที่คุณต้องการ
-
ทำไมจึงต้องใช้ตัวอย่าง?: การใช้ตัวอย่างช่วยให้ Claude เข้าใจคำสั่งที่ให้มาได้ดีขึ้น และมองเห็นรูปแบบผลลัพธ์ที่ต้องการได้ชัดเจนขึ้น ซึ่งช่วยให้โมเดลสร้างผลลัพธ์ที่แม่นยำและสม่ำเสมอมากขึ้น
-
การสร้างตัวอย่างที่มีประสิทธิภาพ: ตัวอย่างที่ดีควรแสดงทั้งอินพุตและผลลัพธ์ที่คาดหวังอย่างชัดเจน ตัวอย่างควรสะท้อนกรณีการใช้งานจริง และมีข้อมูลเพียงพอให้ Claude เรียนรู้ได้
| Role | Content |
|---|---|
| User | I will give you some quotes. Please extract the author from the quote block. |
นี่คือตัวอย่าง:
Quote: "When the reasoning mind is forced to confront the impossible again and again, it has no choice but to adapt." ― N.K. Jemisin, The Fifth Season Author: N.K. Jemisin
Quote: "Some humans theorize that intelligent species go extinct before they can expand into outer space. If they're correct, then the hush of the night sky is the silence of the graveyard." ― Ted Chiang, Exhalation Author:| |Assistant (คำตอบของ Claude)|Ted Chiang|
- จัดรูปแบบผลลัพธ์: การใช้ตัวอย่างเพื่อกำหนดรูปแบบผลลัพธ์ที่ต้องการจะช่วยให้ Claude ส่งมอบผลลัพธ์ได้อย่างคาดเดาได้และสม่ำเสมอ ซึ่งมีประโยชน์อย่างยิ่งกับงานอย่างการดึงข้อมูลหรือการสร้างรายงาน
| Role | Content |
|---|---|
| User | `` |
| Text: Sarah Martinez, a dedicated nurse, was known for her compassionate care at the local hospital. David Thompson, an innovative software engineer, worked tirelessly on groundbreaking projects. | |
| Output: |
- Sarah Martinez [NURSE]
- David Thompson [SOFTWARE ENGINEER] ``
`` Text: Chef Oliver Hamilton has transformed the culinary scene with his farm-to-table restaurant. Just down the street, you'll find the library, where head librarian Elizabeth Chen has worked diligently to create a welcoming space for all. Output:
- Oliver Hamilton [CHEF]
- Elizabeth Chen [LIBRARIAN] ``
Text: At the town's bustling farmer's market, you'll find Laura Simmons, a passionate organic farmer known for her delicious produce. In the community center, Kevin Alvarez, a skilled dance instructor, has brought the joy of movement to people of all ages. Output:| |Assistant (คำตอบของ Claude)|1. Laura Simmons [ORGANIC FARMER] 2. Kevin Alvarez [DANCE INSTRUCTOR]|
-
ข้อควรระวัง: เมื่อใช้ตัวอย่าง ควรระวังอย่าพึ่งพาข้อมูลที่จำกัดมากเกินไป และควรป้องกันไม่ให้ Claude พึ่งพาเพียงรูปแบบใดรูปแบบหนึ่งมากเกินควร
-
ทำซ้ำและปรับแก้: หากยังไม่ได้ผลลัพธ์ที่ต้องการจากตัวอย่างที่ให้ไว้ในครั้งแรก ควรปรับแก้ตัวอย่างหรือเพิ่มตัวอย่างใหม่เพื่อค่อยๆ ปรับปรุงให้ดีขึ้น กระบวนการนี้ช่วยยกระดับเอาต์พุตของโมเดลได้อย่างต่อเนื่อง
-
วิเคราะห์ผลลัพธ์: ลองมองหารูปแบบในคำตอบของ Claude ที่แตกต่างจากสิ่งที่ต้องการ วิธีนี้จะช่วยให้คุณระบุได้ว่าตัวอย่างยังไม่ชัดเจน มีส่วนที่อาจทำให้เข้าใจผิด หรือมีจุดใดที่การเพิ่มตัวอย่างจะช่วยได้มากขึ้น
-
เพิ่มตัวอย่าง: หาก Claude มีปัญหากับอินพุตบางประเภท ให้เพิ่มตัวอย่างที่เจาะจงกับสถานการณ์นั้นโดยตรง
-
ปรับแก้ตัวอย่างเดิม: บางครั้งการปรับตัวอย่างเพียงเล็กน้อยก็สร้างความแตกต่างได้มาก ลองทดลองใช้สำนวน รูปแบบ หรือโครงสร้างที่หลากหลายเพื่อดูว่าอะไรได้ผลดีที่สุด
-
ขอความช่วยเหลือจาก Claude: การเขียนตัวอย่างที่ดีเป็นเรื่องยาก! คุณสามารถขอให้ Claude ประเมินความหลากหลายหรือความเกี่ยวข้องของตัวอย่างสำหรับงานที่กำหนด หรือขอชุดตัวอย่างเดิมมาใช้อ้างอิงเพื่อสร้างตัวอย่างใหม่ได้
-
กำหนดบทบาทให้ Claude (Give Claude a role)
เพื่อเพิ่มประสิทธิภาพสำหรับแต่ละกรณีการใช้งาน ให้กำหนดบทบาทเฉพาะให้ Claude เช่น บทบาทของผู้เชี่ยวชาญ:
-
Role prompting ทำงานอย่างไร: การมอบบทบาทที่เฉพาะเจาะจงให้ Claude จะช่วยให้เขาเข้าใจและตอบสนองต่อสถานการณ์หรือปัญหาเฉพาะได้อย่างแม่นยำมากขึ้น ตัวอย่างเช่น หากให้ Claude รับบทเป็น 'ผู้เชี่ยวชาญด้านคณิตศาสตร์' เพื่อแก้โจทย์คณิตศาสตร์ ก็อาจทำผลงานได้ดีขึ้น
-
ควรใช้ role prompting เมื่อใด: วิธีนี้เหมาะอย่างยิ่งเมื่อทำงานเชิงเทคนิคหรือซับซ้อน หรือเมื่อจำเป็นต้องใช้สไตล์การสื่อสารเฉพาะ อีกทั้งยังช่วยปรับปรุงประสิทธิภาพพื้นฐานของ Claude ได้ด้วย
ตัวอย่างเช่น เมื่อคุณต้องแก้โจทย์อย่าง There are two ducks in front of a duck, two ducks behind a duck and a duck in the middle. How many ducks are there? คุณอาจใช้วิธีต่อไปนี้:
| Role | Content |
|---|---|
| User | You are a master logic bot designed to answer complex logic problems. Solve this logic puzzle. There are two ducks in front of a duck, two ducks behind a duck and a duck in the middle. How many ducks are there? |
| Assistant (คำตอบของ Claude) | [Automatically outputting thinking step by step as part of its training...] Without additional clarification or assumptions, the logic puzzle does not provide enough information to determine the exact number of ducks. The answer could range from a minimum of 3 ducks to a maximum of 5 ducks, depending on the interpretation of the given information. |
- ตัวอย่าง role prompting: มีตัวอย่างที่ให้ Claude รับบทบาทต่างกัน เช่น 'ครูอนุบาล' และ 'ศาสตราจารย์มหาวิทยาลัย' เพื่ออธิบายว่า 'ทำไมท้องฟ้าจึงเป็นสีน้ำเงิน' แก่ผู้ฟังที่แตกต่างกัน โดยสไตล์การอธิบายของ Claude จะเปลี่ยนไปตามแต่ละบทบาท
| บทบาท | เนื้อหา |
|---|---|
| ผู้ใช้ | คุณคือครูอนุบาล จงอธิบายอย่างกระชับให้เด็กนักเรียนของคุณฟังว่าทำไมท้องฟ้าจึงเป็นสีน้ำเงิน |
| ผู้ช่วย (คำตอบของ Claude) | เคยสงสัยไหมว่าทำไมท้องฟ้าถึงดูสวยและเป็นสีน้ำเงิน? เหตุผลก็คือแสงอาทิตย์นั่นเอง! เมื่อแสงจากดวงอาทิตย์ส่องผ่านชั้นบรรยากาศของโลก มันจะไปกระทบกับโมเลกุลก๊าซเล็กๆ มากมายในอากาศ สีฟ้าในแสงอาทิตย์จะถูกกระเจิงและสะท้อนไปทั่วโดยโมเลกุลเหล่านี้ และนั่นแหละที่ทำให้ท้องฟ้าดูเป็นสีน้ำเงินสำหรับดวงตาของเรา เจ๋งไหมล่ะ? ท้องฟ้าสีฟ้าสดใสก็เหมือนภาพวาดสีสันชิ้นใหญ่ของธรรมชาติที่ทำมาเพื่อพวกเราเลย! |
| บทบาท | เนื้อหา |
|---|---|
| ผู้ใช้ | คุณคือศาสตราจารย์ฟิสิกส์ระดับบัณฑิตศึกษา จงอธิบายอย่างกระชับให้นักศึกษาของคุณฟังว่าทำไมท้องฟ้าจึงเป็นสีน้ำเงิน |
| ผู้ช่วย (คำตอบของ Claude) | ท้องฟ้าดูเป็นสีน้ำเงินเนื่องมาจากปรากฏการณ์การกระเจิงแบบเรย์ลีห์ของแสงอาทิตย์โดยโมเลกุลในชั้นบรรยากาศของโลก แสงอาทิตย์ซึ่งประกอบด้วยสเปกตรัมของความยาวคลื่น จะมีปฏิสัมพันธ์กับโมเลกุลก๊าซในชั้นบรรยากาศ ความยาวคลื่นที่สั้นกว่าของแสงที่มองเห็นได้ ซึ่งตรงกับสีน้ำเงินและสีม่วง จะถูกโมเลกุลเหล่านี้กระเจิงได้อย่างมีประสิทธิภาพมากกว่าความยาวคลื่นที่ยาวกว่า |
การกระเจิงแบบเลือกของความยาวคลื่นสีน้ำเงินที่สั้นกว่าไปในทุกทิศทางโดยโมเลกุลในบรรยากาศนี้เอง คือสิ่งที่ทำให้ท้องฟ้าดูเป็นสีน้ำเงินเมื่อมองจากพื้นผิวโลก ส่วนความยาวคลื่นที่ยาวกว่าอย่างสีแดงและสีส้ม ซึ่งถูกกระเจิงน้อยกว่า มักจะผ่านชั้นบรรยากาศได้โดยตรงมากกว่า จึงทำให้เกิดเฉดสีแดงที่เราเห็นในช่วงพระอาทิตย์ขึ้นและพระอาทิตย์ตก เมื่อแสงอาทิตย์ต้องเดินทางผ่านชั้นบรรยากาศที่ลึกมากขึ้น|
- เคล็ดลับสำหรับการกำหนดบทบาทอย่างมีประสิทธิภาพ: เมื่อต้องกำหนดบทบาทให้ Claude สิ่งสำคัญคือการให้บริบทและข้อมูลของบทบาทที่เฉพาะเจาะจง ควรทดลองใช้บทบาทและพรอมป์ต์ที่หลากหลายเพื่อค้นหาแนวทางที่เหมาะสมที่สุด
การใช้แท็ก XML (Use XML tags)
คุณสามารถใช้แท็ก XML ร่วมกันเพื่อจัดโครงสร้างพรอมป์ต์และคำตอบให้ชัดเจนมากขึ้นได้:
-
แท็ก XML คืออะไร?: แท็ก XML ใช้สำหรับครอบเนื้อหาด้วยแท็กวงเล็บ เช่น
เนื้อหาแท็กเหล่านี้ช่วยแยกคำสั่ง ตัวอย่าง หรือข้อมูลนำเข้า เพื่อให้ Claude เข้าใจบริบทได้ดีขึ้นและสร้างผลลัพธ์ที่แม่นยำยิ่งขึ้น ในส่วนของชื่อแท็กนั้น ไม่มีแท็ก XML มาตรฐานแบบใดที่ทำให้ Claude ทำงานได้ดีกว่าเป็นพิเศษ ตัวอย่างเช่นทำงานได้ดีพอๆ กับอย่างไรก็ตาม เมื่อใช้ความสามารถในการเรียกฟังก์ชัน จำเป็นต้องใช้ชื่อแท็กที่กำหนดไว้ -
เหตุผลในการใช้แท็ก XML: การใช้แท็ก XML ช่วยให้แยกส่วนต่างๆ ของพรอมป์ต์ได้อย่างชัดเจน และนำไปสู่การตอบสนองที่แม่นยำยิ่งขึ้น มีประโยชน์อย่างยิ่งเมื่อจัดการกับพรอมป์ต์ที่ซับซ้อนหรือข้อมูลนำเข้าหลากหลายประเภท
-
วิธีใช้แท็ก XML: คุณสามารถใช้แท็ก XML เพื่อแยกคำสั่ง เนื้อหา และตัวอย่างออกจากกันได้ และเมื่อจัดการเทมเพลตพรอมป์ต์ที่มีตัวแปรนำเข้า ก็สามารถใช้แท็ก XML เพื่อระบุตำแหน่งที่จะแทรกเนื้อหาได้เช่นกัน:
| บทบาท | เนื้อหา |
|---|---|
| ผู้ใช้ | Please analyze this document and write a detailed summmary memo according to the instructions below, following the format given in the example: |
| `` | |
| {{DOCUMENT}} | |
| `` |
{{DETAILED_INSTRUCTIONS}}
{{EXAMPLE}}|
ต่อไปนี้คือตัวอย่างของข้อมูลนำเข้าตัวแปรแบบเฉพาะเจาะจง:
| บทบาท | เนื้อหา |
|---|---|
| ผู้ใช้ | I will tell you the name of an animal. Please respond with the noise that animal makes. |
{{ANIMAL}} |
นอกจากนี้ยังใช้เมื่อขอผลลัพธ์แบบมีโครงสร้างด้วย:
| บทบาท | เนื้อหา |
|---|---|
| ผู้ใช้ | Please extract the key details from the following email and return them in XML tags: |
- Sender name in `` tags
- Main topic in `` tags
- Any deadlines or dates mentioned in `` tags
`` From: John Smith To: Jane Doe Subject: Project X Update
Hi Jane,
I wanted to give you a quick update on Project X. We've made good progress this week and are on track to meet the initial milestones. However, we may need some additional resources to complete the final phase by the August 15th deadline.
Can we schedule a meeting next week to discuss the budget and timeline in more detail?
Thanks, John ``|
คุณอาจได้รับคำตอบในลักษณะดังต่อไปนี้:
| บทบาท | เนื้อหา |
|---|---|
| ผู้ช่วย (คำตอบของ Claude) | John Smith |
Project X Update |
|
| ``August 15th | |
| ` |
- แนวทางปฏิบัติที่ดีในการใช้ XML: เพื่อใช้ประโยชน์จากแท็ก XML ให้ได้มากที่สุด โปรดคำนึงถึงเคล็ดลับต่อไปนี้:
-
ใช้ชื่อแท็กที่สื่อความหมายซึ่งสะท้อนถึงเนื้อหาที่อยู่ภายในแท็ก เช่น
,, `` เป็นต้น -
ควรใช้ชื่อแท็กให้สอดคล้องกันตลอดทั้งพรอมป์ และแท็กต้องใช้เป็นคู่ระหว่างแท็กเปิด
และแท็กปิด -
หากจำเป็นสามารถซ้อนแท็กได้ แต่ขึ้นอยู่กับความซับซ้อน หากมีการซ้อนเกิน 5 ชั้น อาจทำให้ประสิทธิภาพลดลง
-
การเชื่อมพรอมป์ (Chain prompts)
แบ่งงานที่ซับซ้อนออกเป็นขั้นตอนย่อยที่เล็กลงและจัดการได้ง่ายขึ้นเพื่อให้ได้ผลลัพธ์ที่ดีกว่า:
-
Chain prompts คืออะไร? (What is prompt chaining?): Chain prompts คือวิธีประมวลผลงานแบบลำดับขั้น โดยใช้เอาต์พุตหนึ่งเป็นอินพุตถัดไปเพื่อให้บรรลุเป้าหมายที่ซับซ้อน วิธีนี้ช่วยเพิ่มความแม่นยำและความสม่ำเสมอได้
-
ควรใช้ Chain prompts เมื่อใด (When to use prompt chaining): หากเป็นงานที่ต้องมีหลายขั้นตอนหรือมีคำสั่งที่ซับซ้อน การใช้ Chain prompts จะช่วยปรับปรุงประสิทธิภาพของแต่ละขั้นตอนได้
-
เคล็ดลับสำหรับการใช้ Chain prompts อย่างมีประสิทธิภาพ (Tips for effective prompt chaining): สิ่งสำคัญคือทำให้แต่ละงานย่อยเรียบง่ายและชัดเจน และใช้แท็ก XML เพื่อจัดโครงสร้างข้อมูล
-
ตัวอย่าง (Examples): นำเสนอวิธีใช้ Chain prompts กับงานต่าง ๆ เช่น การสร้างคำตอบโดยใช้เอกสารและคำพูดอ้างอิง หรือการระบุข้อผิดพลาดทางไวยากรณ์และตรวจสอบความถูกต้องของสิ่งเหล่านั้น:
ตัวอย่าง: ตอบคำถามโดยใช้เอกสารและคำพูดอ้างอิง (quotes)
- ให้ Claude สร้างคำตอบโดยใช้คำพูดอ้างอิงภายในเอกสารจากเอกสารที่ให้มาพร้อมกับคำถาม
พรอมป์ 1. ดึงคำพูดอ้างอิง (quotes)
| Role | Content |
|---|---|
| User | Here is a document, in `` XML tags: |
{{DOCUMENT}}
Please extract, word-for-word, any quotes relevant to the question {{QUESTION}}. Please enclose the full list of quotes in `` XML tags. If there are no quotes in this document that seem relevant to this question, please say "I can't find any relevant quotes".|
พรอมป์ 2. (ใช้เอาต์พุต {{QUOTES}} จากพรอมป์ 1) ตอบคำถาม
| Role | Content |
|---|---|
| User | I want you to use a document and relevant quotes from the document to answer a question. |
| Here is the document: | |
| `` | |
| {{DOCUMENT}} | |
| `` |
Here are direct quotes from the document that are most relevant to the question:
{{QUOTES}}
Please use these to construct an answer to the question " {{QUESTION}}"
Ensure that your answer is accurate and doesn't contain any information not directly supported by the quotes.|
ให้ Claude คิด (Let Claude think)
คุณสามารถปรับปรุงคุณภาพของผลลัพธ์จาก Claude ได้ด้วยการกระตุ้นให้คิดอย่างเป็นขั้นตอน:
- รับมือกับคำถามที่ซับซ้อน: เมื่อ Claude เผชิญกับปัญหาที่ซับซ้อน หากแยกปัญหาออกและเข้าหาแบบเป็นขั้นตอน ก็จะสามารถให้คำตอบที่ละเอียดและแม่นยำยิ่งขึ้นได้ ซึ่งมีประโยชน์อย่างยิ่งกับปัญหาที่ต้องใช้การคิดเชิงตรรกะหรือการวิเคราะห์
| Role | Content |
|---|---|
| User | Use the following clues to answer the multiple-choice question below, using this procedure: |
- Go through the clues one by one and consider whether each is potentially relevant
- Combine the relevant clues to reason out the answer to the question
- Map the answer to one of the multiple choice options: (a), (b), or (c)
Clues:
- Miss Scarlett was the only person in the lounge.
- The person with the pipe was in the kitchen.
- Colonel Mustard was the only person in the observatory.
- Professor Plum was not in the library nor the billiard room.
- The person with the candlestick was in the observatory.
Question: Was Colonel Mustard in the observatory with the candlestick? (a) Yes; Colonel Mustard was in the observatory with the candlestick (b) No; Colonel Mustard was not in the observatory with the candlestick (c) Unknown; there is not enough information to determine whether Colonel Mustard was in the observatory with the candlestick |
-
วิธีทำให้คิดเป็นขั้นตอน: ผู้ใช้สามารถใส่คำสั่งว่า “ให้คิดทีละขั้นตอน” ลงในพรอมป์ เพื่อให้ Claude เข้าหาปัญหาแบบวิเคราะห์ได้ วิธีนี้ทำให้ Claude อธิบายแต่ละขั้นตอนก่อนจะไปถึงข้อสรุปสุดท้าย
-
จับภาพกระบวนการคิด: เพื่อแสดงภาพกระบวนการคิด สามารถใช้แท็ก XML เพื่อแยกกระบวนการคิดของ Claude ออกจากคำตอบสุดท้ายอย่างชัดเจน ซึ่งช่วยให้ผู้ใช้เข้าใจขั้นตอนการให้เหตุผลของ Claude ได้ชัดเจนยิ่งขึ้น
| Role | Content |
|---|---|
| User | [Rest of prompt] Before answering the question, please think about it step-by-step within tags. Then, provide your final answer within tags. |
| Assistant (prefill) | `` |
(นี่คือการใช้เทคนิค prefill response ที่จะอธิบายในส่วนถัดไป)
| Role | Content |
|---|---|
| Assistant (คำตอบของ Claude) | [ให้เหตุผลผ่านปัญหาทีละขั้นตอน] |
| `` |
[คำตอบสุดท้าย]|
- ข้อควรพิจารณา: เมื่อใช้เทคนิคนี้ เอาต์พุตของ Claude อาจยาวขึ้น จึงอาจทำให้เวลาในการตอบสนองเพิ่มขึ้นได้ ดังนั้นก่อนใช้งานควรคำนึงถึงลักษณะนี้ และเลือกใช้ในสถานการณ์ที่เหมาะสม
เติมคำตอบของ Claude ล่วงหน้า (Prefill Claude's response)
เพื่อชี้นำเอาต์พุตไปในทิศทางที่ต้องการ คุณสามารถเติมช่วงต้นของคำตอบของ Claude ไว้ล่วงหน้าก่อนเริ่มได้:
- เหตุผลที่ต้องเติมคำตอบของ Claude ล่วงหน้า: เทคนิคนี้มีประโยชน์เมื่อผู้ใช้ต้องการให้ตอบในรูปแบบหรือเนื้อหาเฉพาะ ตัวอย่างเช่น สามารถจัดระเบียบข้อมูลตามรูปแบบที่กำหนดไว้ล่วงหน้า หรือให้เริ่มคำตอบด้วยคำหรือวลีเฉพาะเพื่อรักษาความสม่ำเสมอของคำตอบ ในกรณีด้านล่าง การเติมคำตอบล่วงหน้าให้เริ่มด้วย
{สามารถชี้นำให้ Claude ตอบในรูปแบบ JSON ได้
| ole | Good Prompt |
|---|---|
| User | Please extract the name, size, price, and color from this product description and output it within a JSON object. |
The SmartHome Mini is a compact smart home assistant available in black or white for only $49.99. At just 5 inches wide, it lets you control lights, thermostats, and other connected devices via voice or app—no matter where you place it in your home. This affordable little hub brings convenient hands-free control to your smart devices.|
|Assistant (เติมล่วงหน้า)|{|
คำตอบของ Claude มีดังนี้
| Role | Response |
|---|---|
| Assistant (คำตอบของ Claude) | "name": "SmartHome Mini", |
| "size": "5 inches wide", | |
| "price": "$49.99", | |
| "colors": [ | |
| "black", | |
| "white" | |
| ] | |
| } |
- จะเติมคำตอบของ Claude ล่วงหน้าอย่างไร?: ผู้ใช้สามารถกำหนดทิศทางของคำตอบได้ด้วยการให้ข้อความเริ่มต้นแก่ Claude วิธีนี้มีประโยชน์อย่างยิ่งในระบบอัตโนมัติที่ทำงานผ่าน API และช่วยให้ Claude ให้ข้อมูลที่ต้องการได้อย่างแม่นยำในรูปแบบข้อมูลที่มีโครงสร้าง
ควบคุมรูปแบบเอาต์พุต (Control output format)
คุณสามารถกำหนดรูปแบบเอาต์พุตที่ต้องการเพื่อให้มั่นใจในความสม่ำเสมอและความอ่านง่าย:
- ระบุรูปแบบที่ต้องการ: หากผู้ใช้ระบุรูปแบบเอาต์พุตให้ Claude อย่างชัดเจน ก็จะช่วยเพิ่มความสม่ำเสมอและความถูกต้องของผลลัพธ์ได้ นี่เป็นองค์ประกอบสำคัญอย่างยิ่งโดยเฉพาะในการประมวลผลข้อมูลหรือการเขียนรายงาน ซึ่งจำเป็นต้องมีแนวทางด้านรูปแบบที่ชัดเจน ตัวอย่างเช่น สามารถตั้งค่าให้ตอบในรูปแบบ JSON, XML, HTML, Markdown และรูปแบบอื่น ๆ ได้ การให้คำแนะนำด้านรูปแบบที่ชัดเจนแก่ Claude ในลักษณะนี้จะช่วยรับประกันรูปแบบเอาต์พุตที่สม่ำเสมอ
| Role | Content |
|---|---|
| User | Please write a haiku about a cat. Use JSON format with the keys "first_line", "second_line", and "third_line". |
| Assistant (คำตอบของ Claude) | { |
| "first_line": "Soft furry feline", | |
| "second_line": "Napping in the warm sunlight", | |
| "third_line": "Purring contentedly" | |
| } |
- เติมคำตอบล่วงหน้า: การเติมช่วงต้นของคำตอบไว้ล่วงหน้าจะช่วยชี้นำให้ Claude สร้างเนื้อหาให้ตรงกับรูปแบบที่กำหนด วิธีนี้มีประโยชน์อย่างยิ่งเมื่อใช้รูปแบบข้อมูลที่มีโครงสร้าง
| Role | Content |
|---|---|
| User | Please generate a recipe for chocolate chip cookies in JSON format. |
| Assistant (prefill) | { |
| Assistant (Claude's response) | "title": "Chocolate Chip Cookies", |
| "ingredients": [ | |
| "2 1/4 cups all-purpose flour", | |
| "1 tsp baking soda", | |
| "1 tsp salt", | |
| "1 cup unsalted butter, softened", | |
| "3/4 cup granulated sugar", | |
| "3/4 cup brown sugar", | |
| "1 tsp vanilla extract", | |
| "2 large eggs", | |
| "2 cups semisweet chocolate chips" | |
| ], | |
| "instructions": [ | |
| "Preheat the oven to 375°F (190°C) and line baking sheets with parchment paper.", | |
| "In a medium bowl, whisk together the flour, baking soda, and salt. Set aside.", | |
| "In a large bowl, beat the butter and sugars with an electric mixer until light and fluffy, about 2-3 minutes.", | |
| "Beat in the vanilla and eggs one at a time until well combined.", | |
| "Gradually stir the flour mixture into the butter mixture until just combined.", | |
| "Fold in the chocolate chips.", | |
| "Drop rounded tablespoons of the dough onto the prepared baking sheets, about 2 inches apart.", | |
| "Bake for 9-11 minutes, until the edges are golden brown.", | |
| "Allow the cookies to cool on the baking sheets for 5 minutes before transferring to a wire rack to cool completely." | |
| ], | |
| "yield": "About 3 dozen cookies" | |
| } |
- ยกตัวอย่าง: คุณสามารถให้ตัวอย่างเพื่อสื่อรูปแบบเอาต์พุตที่ต้องการได้ชัดเจนยิ่งขึ้น วิธีนี้ช่วยให้ Claude เข้าใจข้อกำหนดได้ดีขึ้นและสร้างคำตอบในรูปแบบที่เหมาะสมได้ โดยมีประโยชน์อย่างยิ่งกับงานที่ต้องการรูปแบบซับซ้อน
| Role | Content |
|---|---|
| User | Your task is to write a poem. Here are some examples of ideal formatting for the poem: |
`` Title: "Autumn Leaves" Verse 1: Crisp autumn leaves dance In the gentle, chilly breeze A colorful sight
Verse 2: Red, orange, and gold Painting the world with beauty Before winter comes ``
`` Title: "Moonlit Night" Verse 1: Moonlight casts shadows Across the tranquil garden A peaceful retreat
Verse 2: Stars twinkle above As crickets sing their nightsong Nature's lullaby ``
Now, please write a poem about a sunset, following the formatting of the examples above.| |Assistant (prefill)|``| |Assistant (Claude's response)|Title: "Sunset Symphony" Verse 1: Fiery sun descends Painting the sky with wonder A masterpiece forms
Verse 2: Pinks, purples, and reds Blending in pure harmony Day bids night hello ``|
- เคล็ดลับสำหรับการควบคุมเอาต์พุต: เพื่อควบคุมเอาต์พุตได้อย่างมีประสิทธิภาพ ควรให้ตัวอย่างที่หลากหลายและคำสั่งที่ชัดเจน ควรย้ำรูปแบบที่ต้องการพร้อมยกตัวอย่างหลายประเภทเท่าที่เป็นไปได้ และค้นหาวิธีที่เหมาะสมที่สุดผ่านการทดลอง กระบวนการนี้จะช่วยให้คุณผสมผสานเทคนิคต่าง ๆ เพื่อดึงผลลัพธ์ที่ดีที่สุดออกมา พร้อมปรับปรุงประสิทธิภาพของ Claude ได้อย่างต่อเนื่อง
ขอให้ Claude เขียนใหม่ (Ask Claude for rewrites)
บอกส่วนที่ต้องการแก้ไขด้วยปากกาแดง (rubric) เพื่อให้ Claude วนซ้ำและปรับปรุงเอาต์พุต:
-
เหตุผลในการขอให้เขียนใหม่: เมื่อคำตอบแรกของ Claude ยังไม่ถูกต้องหรือไม่ตรงความคาดหวัง คุณสามารถขอให้เขียนใหม่เพื่อปรับปรุงเอาต์พุตได้ ผู้ใช้สามารถระบุรายละเอียดด้านรูปแบบ สไตล์ หรือตัวเนื้อหาให้ชัดเจน เพื่อชี้นำให้ Claude ตอบได้แม่นยำยิ่งขึ้น
-
วิธีขอให้เขียนใหม่: ใส่ข้อความที่สร้างไว้ก่อนหน้านี้ผ่าน API แล้วเพิ่มคำสั่งเฉพาะสำหรับการเขียนใหม่ ตัวอย่างเช่น คุณอาจขอให้เขียนย่อหน้าขึ้นมาใหม่โดยเน้นประเด็นเฉพาะ
| Role | Prompt |
|---|---|
| User | Here's a paragraph: |
| `` | |
| {{PARAGRAPH}} | |
| `` |
I'd like you to rewrite it using the following instructions:
{{INSTRUCTIONS}}
Please put your rewrite in tags.| |Assistant (prefill)||
- การเขียนคำสั่งสำหรับการเขียนใหม่อย่างมีประสิทธิภาพ: คำสั่งสำหรับการเขียนใหม่ควรชัดเจนและเจาะจง ควรระบุรูปแบบ น้ำเสียง สไตล์ และข้อมูลเพิ่มเติมที่ต้องการ เพื่อให้ Claude เข้าใจได้อย่างแม่นยำว่าคุณคาดหวังอะไร
| Role | Prompt |
|---|---|
| User | Tell me about all the ways I can get fitter. |
| Assistant (Claude's response) | Here are some ways you can get fitter: [list-style response] |
| User | Rewrite this as a single paragraph of text, focusing on the most effective strategies. |
| Assistant (Claude's response) | If you're looking to get fitter, some of the most effective strategies include: [brief paragraph-style response] |
- กระบวนการเขียนใหม่แบบวนซ้ำ: บางครั้งการเขียนใหม่เพียงครั้งเดียวอาจยังไม่เพียงพอที่จะได้ผลลัพธ์ที่สมบูรณ์แบบ ในกรณีเช่นนี้ คุณสามารถปรับปรุงผลลัพธ์ทีละน้อยผ่านการเขียนใหม่หลายรอบ และให้ฟีดแบ็กในแต่ละขั้นตอนเพื่อให้ Claude เรียนรู้ความต้องการของผู้ใช้ได้
เคล็ดลับสำหรับหน้าต่างบริบทยาว (Long context window tips)
คุณสามารถปรับแต่งพรอมป์ให้เหมาะกับการใช้หน้าต่างบริบทยาวของ Claude ได้:
ต่อไปนี้คือคำอธิบายโดยละเอียดของแต่ละส่วนในเอกสาร "เคล็ดลับสำหรับหน้าต่างบริบทยาว (Long Context Window Tips)":
- การจัดการเอกสารยาว (Handling Long Documents): เมื่อต้องจัดการกับเอกสารยาว ควรวางข้อมูลสำคัญไว้ในช่วงต้นของเอกสาร และวางคำถามไว้ท้ายเอกสาร วิธีนี้จะช่วยให้ Claude ประมวลผลข้อมูลที่จำเป็นได้อย่างมีประสิทธิภาพตลอดทั้งเอกสาร และให้คำตอบที่เหมาะสมได้
Here are some documents for you to reference for your task:
(a unique identifying source for this item - could be a URL, file name, hash, etc)
(the text content of the document - could be a passage, web page, article, etc)
(a unique identifying source for this item - could be a URL, file name, hash, etc)
(the text content of the document - could be a passage, web page, article, etc)
...
[Rest of prompt]
-
การจัดวางเอกสาร-คำถาม (Document-query Placement): คำถามที่เกี่ยวข้องกับเอกสารควรวางไว้หลังจากให้ข้อมูลเอกสารแล้ว โครงสร้างนี้ช่วยให้ Claude อ้างอิงเอกสารทั้งหมดเพื่อให้คำตอบได้แม่นยำยิ่งขึ้น
-
เคล็ดลับในการเขียน Q&A จากเอกสาร (Tips for Document Q&A): เมื่อต้องทำงานถาม-ตอบโดยอิงเอกสาร ให้วางคำถามไว้ท้ายเอกสาร และให้ค้นหาข้อความอ้างอิงที่เกี่ยวข้องเพื่อนำมาสะท้อนในคำตอบ ซึ่งช่วยเพิ่มความแม่นยำของผลลัพธ์ได้
| Role | Content |
|---|---|
| User | I'm going to give you a document. Read the document carefully, because I'm going to ask you a question about it. Here is the document: {{TEXT}} |
First, find the quotes from the document that are most relevant to answering the question, and then print them in numbered order in `` tags. Quotes should be relatively short. If there are no relevant quotes, write "No relevant quotes" instead.
Then, answer the question in `` tags. Do not include or reference quoted content verbatim in the answer. Don't say "According to Quote [1]" when answering. Instead make references to quotes relevant to each section of the answer solely by adding their bracketed numbers at the end of relevant sentences.
Thus, the format of your overall response should look like what's shown between the `` tags. Make sure to follow the formatting and spacing exactly.
[Examples of question + answer pairs, with answers written exactly like how Claude's output should be structured]
If the question cannot be answered by the document, say so.
Here is the first question: {{QUESTION}}|
- การสร้างคำถามแบบปรนัย (Multiple Choice Question Generation): เมื่อสร้างคำถามแบบปรนัยจากเอกสาร ให้จัดเตรียมตัวอย่างคำถามและคำตอบที่อิงจากเนื้อหาในเอกสาร วิธีนี้ช่วยให้ Claude รักษารูปแบบและเนื้อหาให้สม่ำเสมอขณะสร้างคำถามได้
| บทบาท | เนื้อหา |
|---|---|
| ผู้ใช้ | งานของคุณคือสร้างคำถามแบบปรนัยหลายตัวเลือกจากเนื้อหาในเอกสารต่อไปนี้: |
| `` | |
| {{DOCUMENT}} | |
| `` |
ต่อไปนี้คือตัวอย่างคำถามแบบปรนัยหลายตัวเลือกและคำตอบที่อ้างอิงจากส่วนอื่นของข้อความ: `` Q1: [คำถามตัวอย่าง 1 ที่สร้างจากข้อมูลภายในเอกสาร] A. [ตัวเลือกคำตอบ A] B. [ตัวเลือกคำตอบ B] C. [ตัวเลือกคำตอบ C] D. [ตัวเลือกคำตอบ D] Answer: [ตัวอักษรคำตอบที่ถูกต้อง]
Q2: [คำถามตัวอย่าง 2 ที่สร้างจากข้อมูลภายในเอกสาร] A. [ตัวเลือกคำตอบ A] B. [ตัวเลือกคำตอบ B] C. [ตัวเลือกคำตอบ C] D. [ตัวเลือกคำตอบ D] Answer: [ตัวอักษรคำตอบที่ถูกต้อง] ``
คำสั่ง:
- สร้างคำถามแบบปรนัย 5 ข้อจากข้อความที่ให้มา
- แต่ละข้อควรมีตัวเลือกคำตอบ 4 ตัวเลือก (A, B, C, D)
- ระบุคำตอบที่ถูกต้องของแต่ละข้อ
- ตรวจสอบให้แน่ใจว่าคำถามเกี่ยวข้องกับข้อความ และตัวเลือกคำตอบทั้งหมดมีความเป็นไปได้สมเหตุสมผล.|
อ่านเพิ่มเติม
https://docs.anthropic.com/claude/docs/prompt-engineering
บทความนี้เรียบเรียงโดยอ้างอิงจากเนื้อหาที่สรุปด้วยโมเดล GPT จึงอาจมีบางส่วนที่สรุปคลาดเคลื่อนจากเนื้อหาหรือเจตนาของต้นฉบับ หากคุณสนใจประเด็นนี้ โปรดอ่านต้นฉบับประกอบด้วย! ระหว่างอ่าน หากพบข้อความที่แปลกหรือไม่ถูกต้อง กรุณาแจ้งในคอมเมนต์ด้วย 🤗
⚠️โฆษณา⚠️: บทความนี้ที่ ชุมชนผู้ใช้ PyTorch เกาหลี รวบรวมไว้มีประโยชน์สำหรับคุณหรือไม่? หาก สมัครสมาชิก เราจะส่งบทความสำคัญให้ทางอีเมล💌! (ค่าเริ่มต้นคือ Weekly แต่ เปลี่ยนเป็น Daily ได้.)
ยังไม่มีความคิดเห็น