← 返回列表

AI สัมภาษณ์ตอนที่ 12: ปรับแต่ง Prompt อย่างไร?

การปรับแต่ง Prompt (Prompt Engineering / Optimization) เป็นทักษะสำคัญที่ทำให้โมเดลภาษาขนาดใหญ่ "เชื่อฟัง" โดยเฉพาะอย่างยิ่งในระบบ RAG ซึ่งกำหนดโดยตรงว่าโมเดลจะยึดตามเนื้อหาที่ดึงมา หลีกเลี่ยงภาพหลอน และจัดรูปแบบผลลัพธ์ตามที่กำหนดหรือไม่


หนึ่ง หลักการสำคัญของการปรับแต่ง Prompt

  1. ชัดเจน > ซับซ้อน: คำสั่งที่ตรงไปตรงมาง่าย ๆ มักมีประสิทธิภาพมากกว่าการใช้ Chain-of-Thought ที่ซับซ้อน
  2. กำหนดข้อจำกัดให้เพียงพอ: บอกโมเดลอย่างชัดเจนว่า "ทำอะไรได้ ทำอะไรไม่ได้"
  3. ให้ตัวอย่าง: Few-shot มีเสถียรภาพมากกว่า Zero-shot
  4. ตรวจสอบได้: ให้โมเดลแสดงการอ้างอิงหรือความเชื่อมั่น เพื่อให้ง่ายต่อการประเมินผล downstream
  5. ปรับปรุงแบบวนซ้ำ: เริ่มจาก baseline แก้ไขทีละตัวแปร เปรียบเทียบผลลัพธ์

สอง เทคนิคการปรับแต่งเฉพาะ (จากง่ายไปยาก)

1. การกำหนดบทบาท (System Prompt)

คุณเป็นผู้ช่วยบริการลูกค้ามืออาชีพ คุณสามารถตอบคำถามโดยใช้【เอกสารอ้างอิง】ที่ให้ด้านล่างเท่านั้น
หากคุณไม่ทราบคำตอบ ให้พูดตรง ๆ ว่า "ไม่มีข้อมูลในเอกสาร" อย่าสร้างข้อมูลขึ้นเอง
  • ผล: กำหนดขอบเขตและน้ำเสียง
  • จุดปรับ: น้ำเสียง (มืออาชีพ/เป็นกันเอง), ความเข้มงวดของข้อจำกัด (เข้ม/ผ่อน)

2. คำสั่งที่ชัดเจน

❌ แย่: "ตอบคำถามผู้ใช้"
✅ ดี: "ตอบโดยอิงจาก【เอกสารอ้างอิง】ด้านล่างเท่านั้น หากเอกสารอ้างอิงไม่มีคำตอบ ให้ตอบว่า 'ฉันไม่สามารถตอบคำถามนี้'"

3. การควบคุมรูปแบบผลลัพธ์

โปรดส่งออกในรูปแบบ JSON ดังนี้:
{
  "answer": "คำตอบของคุณ",
  "confidence": "สูง/กลาง/ต่ำ",
  "sources": [1, 3]
}
  • วัตถุประสงค์: ให้สะดวกต่อการแยกวิเคราะห์ downstream, การอ้างอิง, การดีบัก

4. ตัวอย่าง Few-shot (มีประสิทธิภาพมาก)

ตัวอย่าง 1:
คำถาม: วันหยุดพักร้อนมีกี่วัน?
เอกสารอ้างอิง: กฎวันหยุดพักร้อน: ครบ 1 ปีได้ 5 วัน, ครบ 10 ปีได้ 10 วัน
คำตอบ: ครบ 1 ปีได้ 5 วัน, ครบ 10 ปีได้ 10 วัน

ตัวอย่าง 2:
คำถาม: ค่าล่วงเวลาคำนวณอย่างไร?
เอกสารอ้างอิง: วันทำงานปกติ 1.5 เท่า, วันหยุดสุดสัปดาห์ 2 เท่า
คำตอบ: วันทำงานปกติ 1.5 เท่า, วันหยุดสุดสัปดาห์ 2 เท่า

ตอนนี้ตอบ:
คำถาม: {คำถามผู้ใช้}
เอกสารอ้างอิง: {เนื้อหาที่ดึงมา}
คำตอบ:
  • เทคนิค: ตัวอย่างควรครอบคลุมระดับความยากต่าง ๆ และควรรวมตัวอย่าง "ไม่สามารถตอบ" ด้วย

5. การบังคับให้อ้างอิง

ในตอนท้ายของคำตอบ ให้ระบุหมายเลขแหล่งที่มาด้วย [citation:X] เช่น "วันหยุดพักร้อนคือ 5 วัน[citation:1]"
หากบูรณาการหลายแหล่ง ให้ระบุแยกกัน

6. การกำหนดเกณฑ์การปฏิเสธตอบ

  • ข้อจำกัดแบบแข็ง: "หากเอกสารอ้างอิงไม่เกี่ยวข้องกับคำถามเลย ให้ตอบว่า 'เอกสารไม่เกี่ยวข้อง'"
  • ข้อจำกัดแบบอ่อน: ร่วมกับคะแนนความเชื่อมั่นจากการดึงข้อมูล หากต่ำกว่าเกณฑ์ ให้ดำเนินการปฏิเสธตอบโดยอัตโนมัติ

7. Chain-of-Thought สำหรับการอนุมานหลายขั้นตอน

คำถาม: ใครเป็นเจ้านายของจางซาน?
ขั้นตอน: 1. หาแผนกของจางซานก่อน 2. หาหัวหน้าแผนกนั้น 3. ให้คำตอบสุดท้าย
โปรดคิดตามขั้นตอนแล้วจึงส่งออก

8. คำสั่งเชิงลบ (Negative Prompting)

อย่าสร้างคำตอบ อย่าใช้คำคลุมเครือเช่น "อาจจะ" "บางที" อย่าส่งออกตัวเลขที่ไม่ได้อยู่ในเอกสารอ้างอิง

สาม จะประเมิน Prompt ดีหรือไม่ดีได้อย่างไร?

ตัวชี้วัด ความหมาย วิธีการวัด
ความเที่ยงตรง คำตอบยึดตามเอกสารอ้างอิงอย่างเคร่งครัดหรือไม่ Manual หรือ Faithfulness ของ RAGAS
ความแม่นยำในการปฏิเสธตอบ ปฏิเสธตอบเมื่อควรปฏิเสธหรือไม่ คำนวณบนชุดทดสอบที่ไม่มีคำตอบ
อัตราการปฏิบัติตามรูปแบบ ส่งออก JSON / การอ้างอิงตามที่กำหนดหรือไม่ Regular expression matching
ความพึงพอใจของผู้ใช้ คำตอบมีประโยชน์หรือไม่ Feedback ออนไลน์ / A/B testing

คำแนะนำ: เตรียมชุดทดสอบขนาดเล็ก (20-50 กรณีขอบ) ทุกครั้งที่เปลี่ยน Prompt ให้รันและบันทึกการเปลี่ยนแปลง

สี่ ข้อผิดพลาดทั่วไปและทิศทางการปรับแต่ง

ปัญหาที่พบ สาเหตุที่เป็นไปได้ วิธีการปรับแต่ง
โมเดลไม่สนใจเอกสารอ้างอิง ตอบเอง คำสั่งไม่บังคับเพียงพอ เปลี่ยนเป็น "อิงจาก เอกสารด้านล่างเท่านั้น" และใช้ few-shot แสดงการปฏิเสธตอบ
โมเดลมักบอกว่า "ไม่รู้" เกณฑ์ปฏิเสธตอบสูงเกินไป ลดเกณฑ์หรือตรวจสอบคุณภาพการดึงข้อมูล
รูปแบบผลลัพธ์ไม่เป็นระเบียบ ไม่เป็น JSON คำสั่งไม่ชัดเจน เพิ่มตัวอย่างรูปแบบที่เข้มงวด หรือใช้ function calling
คำตอบยาว/สั้นเกินไป ไม่ได้ระบุความยาว "ตอบไม่เกิน 3 ประโยค"
การอนุมานหลายขั้นตอนผิดพลาด ความสามารถในการอนุมานของโมเดลไม่เพียงพอ กำหนดให้แสดงการคิดทีละขั้นตอน หรือเปลี่ยนเป็นโมเดลที่แข็งแรงขึ้น
เกิดภาพหลอนเรื่องตัวเลข/วันที่ โมเดลพึ่งพาความรู้ของตัวเอง เน้นย้ำ "อย่าใช้ตัวเลขใด ๆ ที่คุณจำได้ ให้ดูเฉพาะเอกสาร"

评论

暂无已展示的评论。

发表评论(匿名)