25 คะแนน โดย GN⁺ 2023-12-17 | 2 ความคิดเห็น | แชร์ทาง WhatsApp
  • คู่มือที่แบ่งปันกลยุทธ์และเทคนิคเพื่อให้ได้ผลลัพธ์ที่ดียิ่งขึ้นจากโมเดลภาษาขนาดใหญ่ (หรือที่เรียกว่าโมเดล GPT)
  • วิธีการที่อธิบายไว้ที่นี่บางครั้งสามารถนำมาผสมผสานกันเพื่อให้ได้ผลลัพธ์ที่ดีกว่าเดิม และแนะนำให้ทดลองเพื่อค้นหาวิธีที่เหมาะสมที่สุด
  • สามารถสำรวจตัวอย่างพรอมป์ต์เพื่อเรียนรู้ว่าโมเดลทำอะไรได้บ้าง

หกกลยุทธ์เพื่อให้ได้ผลลัพธ์ที่ดีกว่า

เขียนคำสั่งให้ชัดเจน

  • โมเดลไม่สามารถอ่านใจได้ จึงต้องขอสิ่งที่ต้องการอย่างชัดเจน
  • ใส่รายละเอียดเพื่อให้ได้คำตอบที่เกี่ยวข้องมากขึ้น ขอให้โมเดลสวมบทบาทเป็นบุคคลเฉพาะ หรือใช้ตัวคั่นเพื่อระบุส่วนที่แยกจากกันของอินพุตให้ชัดเจน
  • ระบุขั้นตอนที่จำเป็นต่อการทำงานให้เสร็จสิ้น ยกตัวอย่าง และกำหนดความยาวของเอาต์พุตตามที่ต้องการ

ให้ข้อความอ้างอิง

  • โมเดลภาษาสามารถสร้างคำตอบปลอมอย่างมั่นใจได้ โดยเฉพาะเมื่อถามถึงหัวข้อที่ยากมาก หรือขอคำอ้างอิงหรือ URL
  • สั่งให้โมเดลตอบโดยใช้ข้อความอ้างอิง หรือสั่งให้ตอบพร้อมยกข้อความจากข้อความอ้างอิง

แบ่งงานที่ซับซ้อนออกเป็นงานย่อยที่ง่ายกว่า

  • เช่นเดียวกับที่การแยกระบบที่ซับซ้อนออกเป็นองค์ประกอบแบบโมดูลาร์เป็นแนวปฏิบัติที่ดีในวิศวกรรมซอฟต์แวร์ งานที่ส่งให้โมเดลภาษาก็เช่นกัน
  • งานที่ซับซ้อนมีอัตราความผิดพลาดสูง และมักนิยามใหม่ให้เป็นเวิร์กโฟลว์ของงานที่ง่ายกว่าได้
  • ใช้การจัดประเภทเจตนาเพื่อระบุคำสั่งที่เกี่ยวข้องที่สุดกับคำถามของผู้ใช้ และสำหรับแอปพลิเคชันสนทนาที่ต้องมีบทสนทนายาวมาก ให้สรุปหรือกรองบทสนทนาก่อนหน้า
  • สรุปเอกสารยาวเป็นส่วน ๆ และประกอบเป็นบทสรุปทั้งหมดแบบเวียนซ้ำ

ให้โมเดลมี "เวลาคิด"

  • แทนที่โมเดลจะรีบตอบ การขอ "ห่วงโซ่ความคิด" ก่อนให้คำตอบสามารถนำไปสู่คำตอบที่น่าเชื่อถือยิ่งขึ้นได้
  • สั่งให้โมเดลจัดเตรียมวิธีแก้ของตัวเองก่อน และใช้บทพูดภายในหรือชุดของคิวรีเพื่อซ่อนกระบวนการให้เหตุผลของโมเดล
  • ถามโมเดลว่ามีสิ่งใดที่พลาดไปจากรอบก่อนหน้าหรือไม่

ใช้เครื่องมือภายนอก

  • ป้อนผลลัพธ์จากเครื่องมืออื่นให้โมเดลเพื่อชดเชยจุดอ่อนของโมเดล
  • ใช้การค้นหาแบบอิง embedding เพื่อทำระบบค้นหาความรู้ที่มีประสิทธิภาพ ใช้การรันโค้ดเพื่อคำนวณได้แม่นยำขึ้น หรือเรียกใช้ API ภายนอก
  • อนุญาตให้โมเดลเข้าถึงฟังก์ชันเฉพาะ

ทดสอบการเปลี่ยนแปลงอย่างเป็นระบบ

  • การปรับปรุงประสิทธิภาพจะทำได้ง่ายขึ้นเมื่อสามารถวัดผลได้
  • จำเป็นต้องกำหนดชุดทดสอบที่ครอบคลุม (หรือ "eval") เพื่อตรวจสอบว่าการเปลี่ยนแปลงส่งผลเชิงบวกต่อประสิทธิภาพโดยรวมหรือไม่
  • ประเมินโดยเปรียบเทียบเอาต์พุตของโมเดลกับคำตอบมาตรฐาน

ความเห็นของ GN⁺

  • ประเด็นสำคัญที่สุด: Prompt Engineering เป็นวิธีหลักในการเพิ่มประสิทธิภาพของโมเดลภาษา โดยช่วยให้เข้าใจเจตนาของผู้ใช้ได้อย่างแม่นยำและให้คำแนะนำที่เป็นรูปธรรมเพื่อให้ได้ผลลัพธ์ตามต้องการ
  • เหตุผลที่น่าสนใจ: กลยุทธ์เหล่านี้ทำให้การใช้งานโมเดลภาษาปัญญาประดิษฐ์มีประสิทธิภาพมากขึ้น และช่วยให้แสดงสมรรถนะได้สูงขึ้นยิ่งกว่าเดิม โดยเฉพาะในโมเดลรุ่นใหม่อย่าง GPT-4
  • จุดที่น่าจับตา: คู่มือนี้นำเสนอวิธีใช้โมเดลให้เกิดประสิทธิผลมากขึ้นในงานจริง ผ่านตัวอย่างและกลยุทธ์ที่เป็นรูปธรรมซึ่งช่วยแก้ปัญหาทั่วไปที่วิศวกรซอฟต์แวร์ระดับเริ่มต้นอาจพบเมื่อใช้งานโมเดลภาษา

2 ความคิดเห็น

 
GN⁺ 2023-12-17
ความเห็นจาก Hacker News
  • การพูดคุยเกี่ยวกับ system prompt ของ ChatGPT

    • โมเดลรุ่นล่าสุดของ ChatGPT รับมือกับกฎที่ซับซ้อนได้อย่างมีประสิทธิภาพ
    • จากประสบการณ์ การออกคำสั่งที่เข้มงวดกว่าการใช้ system prompt ให้ผลดีกว่า
    • การรองรับ function calling และข้อมูลแบบมีโครงสร้างเป็นรูปแบบหนึ่งของ prompt engineering ที่ทรงพลังกว่าการใช้ system prompt เพียงอย่างเดียวมาก
    • มีตัวอย่างเดโมที่น่าสนใจซึ่งเปรียบเทียบ system prompt กับผลลัพธ์ข้อมูลแบบมีโครงสร้าง
  • ประสบการณ์การสั่งชีสเบอร์เกอร์เป็นภาษาสเปน

    • พนักงานเสิร์ฟมีปฏิกิริยาแปลก ๆ ต่อคำแปลภาษาสเปนที่ ChatGPT และ Google Translate แนะนำ
    • สนใจจะปรับปรุงคำแปล จึงขอคำแปลภาษาสเปนที่ปรับให้เหมาะกับชาวเม็กซิกันอเมริกัน
    • วันถัดมาลองสั่งด้วยวลี "Cheeseburger sin pepinillos" แล้วพนักงานเสิร์ฟบอกว่าอันนั้นดีกว่า
  • การพูดคุยเกี่ยวกับลักษณะของ LLM (Large Language Models)

    • แทบไม่มีเส้นแบ่งระหว่างอินพุตกับคำสั่ง ทำให้อินพุตของผู้ใช้ถูกมองว่าเป็นส่วนหนึ่งของพรอมป์ต์
    • สิ่งนี้ทำให้เกิดช่องโหว่ "prompt injection" ที่เป็นที่รู้จัก แต่ก็เป็นผลจากคุณลักษณะโดยธรรมชาติที่โมเดลไม่แยกคำสั่งออกจากอินพุต
    • เมื่อพรอมป์ต์กับอินพุตถูกรวมเข้าด้วยกันก็จะกลายเป็นอินพุตทั้งหมดของโปรแกรม ทำให้ยากที่จะมั่นใจในพฤติกรรมของโปรแกรม
    • นี่คือเหตุผลที่ LLM ยังไม่ถูกใช้อย่างน่าเชื่อถือเพียงพอสำหรับงานที่ซับซ้อน
  • ความลังเลในการเรียนรู้การเขียนพรอมป์ต์

    • ลังเลที่จะใช้เวลามากกับการเรียนรู้การเขียนพรอมป์ต์ให้เชี่ยวชาญ เพราะเวอร์ชันใหม่และ LLM ตัวอื่น ๆ ตอบสนองต่างกัน
    • เมื่อระบบฉลาดขึ้น อาจไม่จำเป็นต้องใช้พรอมป์ต์ที่ซับซ้อนอีกต่อไป
  • การเปรียบเทียบระหว่าง prompt engineering กับคำค้นหาขั้นสูงของ Google

    • แชตบอตทำงานได้ดีกับคำถามพื้นฐาน แต่เมื่อข้อมูลที่ต้องการซับซ้อนขึ้น ก็ยากที่จะได้ข้อมูลที่ถูกต้อง
    • เช่นเดียวกับ Google Search ที่หาข้อมูลพื้นฐานได้ง่าย แต่เมื่ออยากได้ผลลัพธ์ที่เฉพาะเจาะจงมากขึ้น ก็จะใช้ตัวดำเนินการค้นหาขั้นสูง
  • การเปรียบเทียบระหว่างพรอมป์ต์ของ Google Search กับพรอมป์ต์ของ LLM

    • ผู้คนคุ้นเคยกับการพิมพ์คีย์เวิร์ดง่าย ๆ ลงใน Google เพื่อให้ได้สิ่งที่ต้องการจากอินเทอร์เน็ต
    • ตอนนี้การต้องเขียนประโยคที่ซับซ้อนจะต้องใช้เวลาในการปรับตัว และอาจเป็นเพียงช่วงเปลี่ยนผ่านชั่วคราว
  • ความล้มเหลวของการสื่อสารระหว่างมนุษย์และข้อจำกัดของ LLM

    • การสื่อสารระหว่างมนุษย์ล้มเหลวบ่อยครั้ง และคนส่วนใหญ่ก็ไม่ใช่นักสื่อสารที่มีประสิทธิภาพ
    • จึงยากที่จะคาดหวังว่าเครื่องจักรจะอ่านใจและเจตนาของมนุษย์ได้ดีกว่า
    • prompt engineering ควรมีไว้เพื่อช่วยพัฒนาความสามารถในการสื่อสารระหว่างมนุษย์ด้วยกัน
  • คำวิจารณ์ต่อคำว่า "prompt engineering"

    • มีความเห็นว่าคำว่า "engineering" ถูกใช้เกินความจำเป็น
  • บทบาทของ LLM ในการสอนให้มนุษย์สื่อสารได้ชัดเจนขึ้น

    • มนุษย์กำลังเรียนรู้วิธีสื่อสารให้ชัดเจนขึ้นผ่าน LLM
  • ความง่ายในการพัฒนาแชตแอปที่ใช้ LLM

    • แม้ไม่มีความก้าวหน้าทางทฤษฎี ก็ยังมีข้อดีมากมายในการพัฒนาแชตแอปที่ใช้ LLM
    • ยังต้องอาศัยความพยายามจากนักพัฒนาเพื่อให้ได้ผลลัพธ์ที่ดีกว่าปัจจุบัน