OpenAI
หน้านี้แปลด้วยระบบอัตโนมัติ ดูต้นฉบับภาษาอังกฤษ.

แนวทางปฏิบัติที่ดีที่สุดสำหรับวิศวกรรมคำสั่งด้วย OpenAI API

วิธีให้คำแนะนำที่ชัดเจนและมีประสิทธิภาพแก่โมเดล OpenAI

อัปเดตล่าสุด: yesterday

วิธีการทำงานของวิศวกรรมคำสั่ง

เนื่องจากวิธีที่ โมเดล ของ 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. แปลงไมล์เป็นกิโลเมตร

import

9. ใช้ฟีเจอร์ Generate Anything

นักพัฒนาสามารถใช้ฟีเจอร์ 'Generate Anything' เพื่ออธิบายงานหรือผลลัพธ์ภาษาธรรมชาติที่คาดหวัง และรับคำสั่งที่ปรับให้เหมาะโดยเฉพาะ

เรียนรู้เพิ่มเติมเกี่ยวกับการใช้ฟีเจอร์ 'Generate Anything'

พารามิเตอร์

โดยทั่วไป เราพบว่า model และ temperature เป็นพารามิเตอร์ที่ใช้บ่อยที่สุดในการปรับผลลัพธ์ของโมเดล

  1. model - โมเดล ที่มีประสิทธิภาพสูงกว่ามักมีราคาแพงกว่าและอาจมีเวลาแฝงสูงกว่า

  2. temperature - ตัวชี้วัดว่าโมเดลจะส่งออก Token ที่มีโอกาสน้อยบ่อยเพียงใด ยิ่ง temperature สูง ผลลัพธ์ก็จะยิ่งสุ่มมากขึ้น (และมักสร้างสรรค์มากขึ้น) อย่างไรก็ตาม สิ่งนี้ไม่เหมือนกับ “ความถูกต้องตามข้อเท็จจริง” สำหรับการใช้งานเชิงข้อเท็จจริงส่วนใหญ่ เช่น การดึงข้อมูล และ Q&A ที่ตรงข้อเท็จจริง temperature ที่ 0 ดีที่สุด

  3. max_completion_tokens (ความยาวสูงสุด) - ไม่ได้ควบคุมความยาวของผลลัพธ์ แต่เป็นขีดจำกัดตัดจบแบบตายตัวสำหรับการสร้าง Token ตามหลักแล้วคุณจะไม่ชนขีดจำกัดนี้บ่อยนัก เพราะโมเดลของคุณจะหยุดเองเมื่อคิดว่าจบแล้ว หรือเมื่อถึงลำดับหยุดที่คุณกำหนดไว้

  4. stop (ลำดับหยุด) - ชุดของอักขระ (Token) ที่เมื่อถูกสร้างขึ้น จะทำให้การสร้างข้อความหยุดลง

สำหรับคำอธิบายพารามิเตอร์อื่น ๆ โปรดดูข้อมูลอ้างอิง API

บทความนี้มีประโยชน์หรือไม่