วิธีการทำงานของวิศวกรรมคำสั่ง
เนื่องจากวิธีที่ โมเดล ของ OpenAI ได้รับการฝึก จึงมีรูปแบบคำสั่งบางอย่างที่ทำงานได้ดีเป็นพิเศษและนำไปสู่ผลลัพธ์จากโมเดลที่มีประโยชน์มากกว่า
คู่มือวิศวกรรมคำสั่งอย่างเป็นทางการโดย OpenAI มักเป็นจุดเริ่มต้นที่ดีที่สุดสำหรับเคล็ดลับในการเขียนคำสั่ง
ด้านล่างนี้เราแสดงรูปแบบคำสั่งจำนวนหนึ่งที่เราพบว่าใช้ได้ผลดี แต่คุณสามารถลองสำรวจรูปแบบอื่น ๆ ได้ตามสบาย ซึ่งอาจเหมาะกับงานของคุณมากกว่า
หลักทั่วไปและตัวอย่าง
หมายเหตุ: “{text input here}” เป็นตัวแทนข้อความ/บริบทจริง
1. ใช้โมเดลล่าสุด
เพื่อผลลัพธ์ที่ดีที่สุด โดยทั่วไปเราแนะนำให้ใช้โมเดลล่าสุดที่มีความสามารถสูงสุด โมเดลรุ่นใหม่กว่ามักทำวิศวกรรมคำสั่งได้ง่ายกว่า
หมายเหตุ: มีความแตกต่างบางประการที่ควรพิจารณาเมื่อเขียนคำสั่งสำหรับโมเดลการให้เหตุผล เทียบกับการเขียนคำสั่งสำหรับโมเดล GPT รายละเอียดเพิ่มเติมที่นี่
2. วางคำสั่งไว้ที่ต้นคำสั่ง และใช้ ### หรือ """ เพื่อแยกคำสั่งออกจากบริบท
มีประสิทธิภาพน้อยกว่า ❌:
สรุปข้อความด้านล่างเป็นรายการหัวข้อย่อยของประเด็นที่สำคัญที่สุด
{text input here}ดีกว่า ✅:
สรุปข้อความด้านล่างเป็นรายการหัวข้อย่อยของประเด็นที่สำคัญที่สุด
ข้อความ: """
{text input here}
"""3. ระบุให้ชัดเจน บรรยายให้ชัด และให้รายละเอียดมากที่สุดเท่าที่เป็นไปได้เกี่ยวกับบริบท ผลลัพธ์ ความยาว รูปแบบ สไตล์ ฯลฯ ที่ต้องการ
ระบุให้ชัดเจนเกี่ยวกับบริบท ผลลัพธ์ ความยาว รูปแบบ สไตล์ ฯลฯ
มีประสิทธิภาพน้อยกว่า ❌:
เขียนบทกวีเกี่ยวกับ OpenAI ดีกว่า ✅:
เขียนบทกวีสั้น ๆ ที่สร้างแรงบันดาลใจเกี่ยวกับ OpenAI โดยเน้นที่การเปิดตัวผลิตภัณฑ์ DALL-E ล่าสุด (DALL-E คือโมเดล ML แปลงข้อความเป็นภาพ) ในสไตล์ของ {famous poet}4. ระบุรูปแบบผลลัพธ์ที่ต้องการผ่านตัวอย่าง
มีประสิทธิภาพน้อยกว่า ❌:
ดึงเอนทิตีที่กล่าวถึงในข้อความด้านล่าง ดึงเอนทิตี 4 ประเภทต่อไปนี้: ชื่อบริษัท ชื่อบุคคล หัวข้อเฉพาะ และธีม
ข้อความ: {text}จงแสดงและบอก — โมเดลจะตอบสนองได้ดีกว่าเมื่อเห็นข้อกำหนดรูปแบบที่ชัดเจน วิธีนี้ยังทำให้แยกวิเคราะห์ผลลัพธ์หลายรายการด้วยโปรแกรมได้อย่างเชื่อถือได้ง่ายขึ้น
ดีกว่า ✅:
ดึงเอนทิตีสำคัญที่กล่าวถึงในข้อความด้านล่าง ขั้นแรกให้ดึงชื่อบริษัททั้งหมด จากนั้นดึงชื่อบุคคล แล้วดึงหัวข้อเฉพาะที่สอดคล้องกับเนื้อหา และสุดท้ายดึงธีมภาพรวมทั่วไป
รูปแบบที่ต้องการ:
ชื่อบริษัท: <comma_separated_list_of_company_names>
ชื่อบุคคล: -||-
หัวข้อเฉพาะ: -||-
ธีมทั่วไป: -||-
ข้อความ: {text}5. เริ่มด้วย zero-shot จากนั้น few-shot หากทั้งสองอย่างไม่ได้ผล ค่อย fine-tune
✅ Zero-shot
ดึงคีย์เวิร์ดจากข้อความด้านล่าง
ข้อความ: {text}
คีย์เวิร์ด:✅ Few-shot - ให้ตัวอย่างสักสองสามตัวอย่าง
ดึงคีย์เวิร์ดจากข้อความที่เกี่ยวข้องด้านล่าง
ข้อความ 1: Stripe มี API ที่นักพัฒนาเว็บสามารถใช้เพื่อผสานการประมวลผลการชำระเงินเข้ากับเว็บไซต์และแอปพลิเคชันมือถือของตน
คีย์เวิร์ด 1: Stripe, การประมวลผลการชำระเงิน, APIs, นักพัฒนาเว็บ, เว็บไซต์, แอปพลิเคชันมือถือ
##
ข้อความ 2: OpenAI ได้ฝึกโมเดลภาษาล้ำสมัยที่เก่งมากในการทำความเข้าใจและสร้างข้อความ API ของเราเปิดให้เข้าถึงโมเดลเหล่านี้ และสามารถใช้เพื่อแก้ปัญหาแทบทุกงานที่เกี่ยวข้องกับการประมวลผลภาษา
คีย์เวิร์ด 2: OpenAI, โมเดลภาษา, การประมวลผลข้อความ, API.
##
ข้อความ 3: {text}
คีย์เวิร์ด 3:✅Fine-tune: ดูแนวทางปฏิบัติที่ดีที่สุดสำหรับการ fine-tune ที่นี่.
6. ลดคำอธิบายที่ “ฟุ้ง” และไม่แม่นยำ
มีประสิทธิภาพน้อยกว่า ❌:
คำอธิบายสำหรับผลิตภัณฑ์นี้ควรสั้นพอสมควร มีเพียงไม่กี่ประโยค และไม่ยาวไปกว่านั้นมากนักดีกว่า ✅:
ใช้ย่อหน้าความยาว 3 ถึง 5 ประโยคเพื่ออธิบายผลิตภัณฑ์นี้7. แทนที่จะบอกแค่ว่าไม่ควรทำอะไร ให้บอกว่าควรทำอะไรแทน
มีประสิทธิภาพน้อยกว่า ❌:
ต่อไปนี้เป็นบทสนทนาระหว่างเอเจนต์กับลูกค้า ห้ามถามชื่อผู้ใช้หรือรหัสผ่าน ห้ามพูดซ้ำ
ลูกค้า: ฉันเข้าสู่ระบบบัญชีของฉันไม่ได้
เอเจนต์:ดีกว่า ✅:
ต่อไปนี้เป็นบทสนทนาระหว่างเอเจนต์กับลูกค้า เอเจนต์จะพยายามวินิจฉัยปัญหาและแนะนำวิธีแก้ไข โดยหลีกเลี่ยงการถามคำถามใด ๆ ที่เกี่ยวข้องกับ PII แทนที่จะขอ PII เช่น ชื่อผู้ใช้หรือรหัสผ่าน ให้แนะนำผู้ใช้ไปที่บทความช่วยเหลือ www.samplewebsite.com/help/faq
ลูกค้า: ฉันเข้าสู่ระบบบัญชีของฉันไม่ได้
เอเจนต์:8. เฉพาะสำหรับการสร้างโค้ด - ใช้ “คำขึ้นต้น” เพื่อชี้นำโมเดลไปสู่รูปแบบเฉพาะ
มีประสิทธิภาพน้อยกว่า ❌:
# เขียนฟังก์ชัน python แบบง่ายที่
# 1. ถามฉันหาตัวเลขเป็นไมล์
# 2. แปลงไมล์เป็นกิโลเมตรในตัวอย่างโค้ดด้านล่าง การเพิ่ม “import” เป็นการบอกใบ้แก่โมเดลว่าควรเริ่มเขียนเป็น Python (ในทำนองเดียวกัน “SELECT” ก็เป็นคำใบ้ที่ดีสำหรับการเริ่มต้นคำสั่ง SQL)
ดีกว่า ✅:
# เขียนฟังก์ชัน python แบบง่ายที่
# 1. ถามฉันหาตัวเลขเป็นไมล์
# 2. แปลงไมล์เป็นกิโลเมตร
import9. ใช้ฟีเจอร์ Generate Anything
นักพัฒนาสามารถใช้ฟีเจอร์ 'Generate Anything' เพื่ออธิบายงานหรือผลลัพธ์ภาษาธรรมชาติที่คาดหวัง และรับคำสั่งที่ปรับให้เหมาะโดยเฉพาะ
เรียนรู้เพิ่มเติมเกี่ยวกับการใช้ฟีเจอร์ 'Generate Anything'
พารามิเตอร์
โดยทั่วไป เราพบว่า model และ temperature เป็นพารามิเตอร์ที่ใช้บ่อยที่สุดในการปรับผลลัพธ์ของโมเดล
model- โมเดล ที่มีประสิทธิภาพสูงกว่ามักมีราคาแพงกว่าและอาจมีเวลาแฝงสูงกว่าtemperature- ตัวชี้วัดว่าโมเดลจะส่งออก Token ที่มีโอกาสน้อยบ่อยเพียงใด ยิ่งtemperatureสูง ผลลัพธ์ก็จะยิ่งสุ่มมากขึ้น (และมักสร้างสรรค์มากขึ้น) อย่างไรก็ตาม สิ่งนี้ไม่เหมือนกับ “ความถูกต้องตามข้อเท็จจริง” สำหรับการใช้งานเชิงข้อเท็จจริงส่วนใหญ่ เช่น การดึงข้อมูล และ Q&A ที่ตรงข้อเท็จจริงtemperatureที่ 0 ดีที่สุดmax_completion_tokens(ความยาวสูงสุด) - ไม่ได้ควบคุมความยาวของผลลัพธ์ แต่เป็นขีดจำกัดตัดจบแบบตายตัวสำหรับการสร้าง Token ตามหลักแล้วคุณจะไม่ชนขีดจำกัดนี้บ่อยนัก เพราะโมเดลของคุณจะหยุดเองเมื่อคิดว่าจบแล้ว หรือเมื่อถึงลำดับหยุดที่คุณกำหนดไว้stop(ลำดับหยุด) - ชุดของอักขระ (Token) ที่เมื่อถูกสร้างขึ้น จะทำให้การสร้างข้อความหยุดลง
สำหรับคำอธิบายพารามิเตอร์อื่น ๆ โปรดดูข้อมูลอ้างอิง API
