เอกสารนี้เหมาะสำหรับใคร?

  • เอกสารสำหรับผู้ที่ต้องการพัฒนาความสามารถในการเขียนพรอมป์ต์สำหรับ Post-Trained LLM
  • เหมาะสำหรับผู้ที่แม้จะมีพื้นฐานด้านเทคนิคไม่มาก แต่มีประสบการณ์ใช้งาน LLM เบื้องต้น
  • ช่วงแรก: ให้ความเข้าใจเชิงสัญชาตญาณเกี่ยวกับการฝึกหลังและพรอมป์ต์
  • ช่วงหลัง: ให้ขั้นตอนและเคล็ดลับในการเขียนพรอมป์ต์อย่างเป็นรูปธรรม

ทำไมจึงต้องมีคู่มือการปรับแต่ง?

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

Pre-Training vs. Post-Training

การฝึกล่วงหน้า (Pre-training)

  • แนวคิดของการฝึกล่วงหน้า
    • การฝึกล่วงหน้าเป็นแนวคิดที่มีมานานใน deep learning โดยเป็นวิธีที่ใช้ชุดข้อมูลขนาดใหญ่กว่ามาก (B) ซึ่งคล้ายกับชุดข้อมูลขนาดเล็ก (A) เพื่อเรียนรู้คุณลักษณะทั่วไปก่อน แล้วจึงค่อยปรับละเอียดบนชุดข้อมูล A
    • ตัวอย่างเช่น อาจนึกถึงชุดข้อมูลแมมโมแกรมขนาดเล็ก (A) และชุดข้อมูลภาพธรรมชาติขนาดใหญ่ที่เก็บมาจากอินเทอร์เน็ต (B)
  • ขั้นตอนของการฝึกล่วงหน้า
    1. ฝึกโมเดลบนชุดข้อมูลขนาดใหญ่ (B) เพื่อเรียนรู้คุณลักษณะทั่วไปที่มีประโยชน์
    2. จากนั้นทำการ fine-tune โมเดลให้เหมาะกับชุดข้อมูล A เพื่อให้ได้ประสิทธิภาพที่ดีขึ้นบน A
    3. กล่าวอย่างเจาะจงคือ โมเดลจะเรียนรู้ทักษะพื้นฐาน เช่น การแบ่งส่วนวัตถุหรือการจดจำแนวคิดโดยไม่ขึ้นกับตำแหน่งในภาพจากชุดข้อมูล B ก่อน แล้วจึงต่อยอดด้วยการเรียนรู้ทักษะเฉพาะของชุดข้อมูล A
  • ความจำเป็นของการฝึกล่วงหน้า
    • หากไม่มีการเรียนรู้ผ่านชุดข้อมูล B ชุดข้อมูล A เพียงอย่างเดียวอาจมีข้อมูลไม่พอสำหรับการเรียนรู้ทักษะทั่วไป ทำให้ประสิทธิภาพลดลง
    • โมเดลที่ได้เรียนรู้ทักษะทั่วไปจากชุดข้อมูล B แล้ว จะต้องเรียนรู้เพิ่มเติมเพียงทักษะเฉพาะทางบนชุดข้อมูล A ที่มีข้อมูลจำกัด
  • กรณีของ LLM (Large Language Model)
    • การฝึกล่วงหน้าของ LLM เกิดขึ้นจากการทำ “งานทำนายคำถัดไป” บนข้อความจากอินเทอร์เน็ต
    • ในกระบวนการนี้ โมเดลจะเรียนรู้โครงสร้างของโลกที่สะท้อนอยู่บนเว็บโดยปริยาย
  • อินเทอร์เน็ตกับการสะท้อนโลก
    • คำถามว่าอินเทอร์เน็ตสะท้อนโลกแบบใดเป็นคำถามสำคัญ และเพื่อทำความเข้าใจเรื่องนี้ เราอาจใช้คำเปรียบเทียบเรื่อง “cinematic universe”

สัญชาตญาณเรื่อง 'cinematic universe' ของการฝึกล่วงหน้า

  • ข้อความกับการพรรณนาโลก
    • Large Language Model (LLM) เรียนรู้โลกผ่านข้อความ
    • ข้อความไม่ได้มีข้อจำกัดว่าจะต้องสะท้อนเฉพาะ “ความจริง” เท่านั้น
    • นอกเหนือจากข้อมูลเท็จหรือข้อความที่ผิดพลาดแล้ว ยังมีอีกหลายเหตุผลที่ทำให้ข้อความไม่ได้สะท้อนความเป็นจริงเชิงวัตถุวิสัยเพียงหนึ่งเดียว
  • ตัวอย่าง: Aragorn และ Gondor
    • ประโยค “Aragorn ลงท้ายที่สุดก็ได้เป็นกษัตริย์แห่ง Gondor” จะจริงหรือไม่ ขึ้นอยู่กับบริบทและข้อสมมติ
      • จักรวาลภาพยนตร์ของ “The Lord of the Rings”: อาจถือว่าเป็นความจริง
      • “Marvel Cinematic Universe” หรือโลกความจริง: ไม่เป็นความจริง เพราะ Aragorn และ Gondor เป็นสิ่งสมมติ
  • เกณฑ์ของความจริง
    • การที่ข้อความหนึ่งจริงหรือไม่นั้นขึ้นอยู่กับว่าเราตั้งอยู่บนสมมติฐานของ “โลกแบบไหน”
    • นี่เป็นประเด็นที่ถกเถียงกันมายาวนานในปรัชญาและภาษาศาสตร์ และสามารถดูภาพรวมอย่างละเอียดเกี่ยวกับความจริงได้ที่ลิงก์นี้
    • ในทางปฏิบัติ เราอาจทำให้เรียบง่ายเป็นแนวคิดว่า “ข้อความจะจริงหรือไม่ขึ้นอยู่กับ cinematic universe ที่ข้อความนั้นตั้งอยู่เป็นฉากหลัง”
  • ข้อมูล pre-training กับ cinematic universe
    • คอร์ปัสสำหรับ pre-training มีลักษณะใกล้เคียงกับผลรวมของ cinematic universe หลากหลายแบบที่วัฒนธรรมมนุษย์สร้างขึ้น
    • ให้แม่นยำขึ้นคือ มันเป็นชุดรวมของวัฒนธรรมที่มีส่วนร่วมอย่างมากต่อแหล่งข้อมูลสำหรับ pre-training (เช่น เว็บ)

สำคัญ
คอร์ปัสสำหรับ pre-training อาจมองได้ว่าเป็นผลรวมของ cinematic universe ที่วัฒนธรรมมนุษย์สร้างขึ้น และสะท้อนโดยเฉพาะวัฒนธรรมที่มีส่วนสำคัญต่อแหล่งข้อมูลอย่างเว็บ

  • ความเข้าใจบริบทของโมเดล
    • LLM จะอนุมานว่ากำลังอยู่ใน “universe” แบบใดจากบริบทที่ได้รับ (กล่าวคือ prefix)
    • จากนั้นจะปฏิบัติตามกฎ ธรรมเนียม และข้อเท็จจริงของ universe นั้น
    • พรอมป์ต์ที่มีสัญญาณบริบทชัดเจนจะช่วยให้โมเดลเข้าใจ “สคริปต์” ได้ง่ายขึ้น
      • ตัวอย่าง: จุดเริ่มต้นของบทความบล็อกเกี่ยวกับนิวยอร์ก (“Concrete jungle where dreams are made of ไม่ใช่แค่เนื้อเพลง แต่คือความจริงอันเปี่ยมพลังของนิวยอร์ก...”)
    • ในทางกลับกัน พรอมป์ต์ที่มีบริบทอ่อน เช่น “Hi, how are you?” ทำให้โมเดลตัดสินได้ยากว่ากำลังอยู่ใน universe แบบใด
      • เพราะสำนวนทั่วไปแบบนี้ปรากฏอยู่ในคอร์ปัสหลากหลายประเภท จึงเปิดความเป็นไปได้ไว้หลายทาง
  • บทบาทของการฝึกหลัง (Post-training)
    • เมื่อบริบทไม่เพียงพอ post-training จะมีบทบาทสำคัญในการช่วยให้โมเดลสร้างผลลัพธ์ที่เฉพาะเจาะจงและสอดคล้องกันมากขึ้น

การฝึกหลัง (Post-training)

  • บทบาทของการฝึกหลัง
    • การฝึกหลังให้แนวทางเกี่ยวกับ “default universe” ที่ LLM จะทำงานอยู่เป็นพื้นฐาน
    • แทนที่จะให้โมเดลอนุมาน universe จากพรอมป์ต์เพียงอย่างเดียว การฝึกหลังจะกำหนดข้อสมมติบางอย่างให้คงที่ หรือกำหนดข้อจำกัดเพื่อแก้ความกำกวมอย่างสม่ำเสมอ
    • สิ่งนี้จำเป็นต่อการเพิ่มประโยชน์ใช้สอยของโมเดล เช่น มีประโยชน์ในการสอนให้ LLM “ทำตามคำสั่งของผู้ใช้” เป็นค่าเริ่มต้น
  • ความสำคัญของการฝึกหลัง
    • หากไม่มีการฝึกหลัง คำสั่งอย่าง “เขียนรายงานเกี่ยวกับ George Washington” อาจทำงานผิดพลาดโดยกลายเป็นการสร้างข้อความที่ต่อเนื่องจากคำสั่งนั้นอย่างเดียว
    • การฝึกหลังช่วยให้พฤติกรรมพื้นฐานของโมเดลสอดคล้องกับบรรทัดฐานทางสังคมมากขึ้น
    • สิ่งนี้ช่วยให้โมเดลกลายเป็นเครื่องมือที่ปลอดภัยและมีประสิทธิผลยิ่งขึ้น

สำคัญ
การฝึกหลังสอนให้โมเดลทำหน้าที่พื้นฐานได้อย่างสม่ำเสมอและคงเส้นคงวาในสภาพแวดล้อมการนำไปใช้งานที่หลากหลาย

  • สิ่งที่สามารถเรียนรู้ได้จากการฝึกหลัง
    • สิ่งที่โมเดลเรียนรู้ได้ระหว่างการฝึกหลังมีได้ตั้งแต่เรื่องเชิงปฏิบัติและเป็นรูปธรรม ไปจนถึงเรื่องที่เป็นอัตวิสัยและเป็นส่วนตัว
  • เนื้อหาสำคัญที่สามารถสอนในการฝึกหลัง
    • วิธีปฏิบัติตามรูปแบบเฉพาะ
      • ตัวอย่าง: Gemma's Formatter สมมติว่าโมเดลทำงานอยู่ใน cinematic universe ที่สนทนากับผู้ใช้อยู่เสมอ
      • ในสถานการณ์นี้ โมเดลจะทำงานตามคำสั่งของระบบ และบทสนทนาจะเริ่มต้นด้วยเทิร์นของผู้ใช้มนุษย์เสมอ
    • วิธีทำตามคำสั่งของผู้ใช้
      • ตัวอย่าง: เมื่อได้รับคำขอว่า “เขียนเรียงความเกี่ยวกับสุนัข” ก็ควรต้องเขียนเรียงความจริง ๆ
      • สามารถสอนผ่านการฝึกหลังเพื่อไม่ให้เพิกเฉยต่อคำขอของผู้ใช้แล้วตอบในรูปแบบอื่น
    • การทำให้สอดคล้องกับ “โลกความจริง”
      • ใช้เพื่อปรับ default cinematic universe ของโมเดลให้สอดคล้องกับ “โลกความจริง” ที่ผู้ใช้ส่วนใหญ่น่าจะสนใจ
      • ตัวอย่าง: สำหรับคำถามว่า “คนดัง $CELEBRITY เกิดที่ไหน?” ระบบจะตั้งต้นจากข้อมูลในโลกความจริง ไม่ใช่โลกของแฟนฟิกชัน
    • การเสริมความปลอดภัย
      • อินเทอร์เน็ตมีบรรทัดฐานเชิงคุณค่าหลากหลาย และบางเนื้อหาอาจไม่เหมาะกับสภาพแวดล้อมการเผยแพร่เชิงพาณิชย์
      • การฝึกหลังช่วยปรับโมเดลให้สอดคล้องกับนโยบายความปลอดภัยเฉพาะ และกำหนดเกณฑ์เชิงบรรทัดฐานสำหรับเนื้อหาที่สร้างขึ้น
      • สิ่งนี้ทำให้โมเดลมีข้อสมมติเชิงบรรทัดฐานที่จำเป็นแฝงอยู่เมื่อต้องสร้างข้อความที่ซับซ้อน
  • สรุป
    • การฝึกหลังช่วยให้โมเดลทำงานได้อย่างสม่ำเสมอและตรงตามความคาดหวังในสภาพแวดล้อมการใช้งานที่หลากหลาย
    • เป็นกระบวนการที่จำเป็นต่อการเพิ่มทั้งประโยชน์ใช้สอยและความปลอดภัยของโมเดลให้สูงสุด

การเก็บรวบรวมข้อมูลสำหรับการฝึกภายหลัง

  • สรุปสำคัญ
    • ระหว่างการฝึกภายหลัง LLM จะเรียนรู้และถูกประเมินโดยอิงจากข้อมูลที่ผู้ประเมินมนุษย์สร้างขึ้น
    • ระหว่างการฝึกภายหลัง โมเดลจะใช้ผู้ประเมินมนุษย์ที่สร้างข้อมูลเป็นต้นแบบในฐานะ “นักแสดงบทบาทดิจิทัล”
  • กระบวนการเก็บรวบรวมข้อมูลสำหรับการฝึกภายหลัง
    • การสร้างชุดข้อมูลตัวอย่างอินพุตที่หลากหลาย
      • สร้างชุดพรอมป์ต์ที่อธิบายงานที่ LLM สามารถทำได้ (เช่น ปรับโครงสร้างข้อมูลเป็น JSON, ช่วยวางแผนงานแต่งงาน เป็นต้น)
      • ข้อมูลนี้อาจสร้างขึ้นจากสัญชาตญาณของนักพัฒนา หรือจากไอเดียที่ผู้ประเมินมนุษย์เสนอ
    • การสรรหาผู้ประเมินมนุษย์
      • บทบาทของผู้ประเมิน: เขียน “คำตอบที่ถูกต้อง” สำหรับตัวอย่างอินพุต หรือประเมินคำตอบของโมเดลตามลำดับความเหมาะสม
      • ผู้ประเมินจะสร้างข้อมูลคนละประเภทกันตามขั้นตอนของการฝึกโมเดล
    • การเขียนแนวทางการประเมิน
      • จัดเตรียมตัวอย่างและคำแนะนำอย่างละเอียดเพื่อให้ผู้ประเมินเข้าใจงานได้ดี
    • การเก็บข้อมูลและดำเนินการฝึกภายหลัง
      • นำข้อมูลที่เก็บรวบรวมมาใช้กับโมเดลที่ผ่านการฝึกล่วงหน้าเพื่อทำการฝึกภายหลัง
    • การนำโมเดลไปใช้งานจริง
      • หลังจากเสร็จสิ้นการฝึกภายหลังแล้ว จึงนำโมเดลไปใช้งานในสภาพแวดล้อมจริง
  • ผลกระทบของการฝึกภายหลัง
    • หนึ่งในเหตุผลที่ LLM สามารถแสดงพฤติกรรมคล้ายมนุษย์ได้ คือมันได้เรียนรู้จากชุดข้อมูลพฤติกรรมมนุษย์ที่ถูกรวบรวมอย่างรอบคอบ
    • การฝึกล่วงหน้าสร้างความสามารถหลักของโมเดล ส่วนการฝึกภายหลังจะปรับทิศทางพฤติกรรมของโมเดลผ่านการสาธิตของมนุษย์

สำคัญ
เหตุผลที่ LLM สามารถแสดงพฤติกรรมคล้ายมนุษย์ได้ เป็นเพราะมันได้เรียนรู้จากข้อมูลพฤติกรรมมนุษย์ที่ถูกรวบรวมอย่างรอบคอบ

  • ความท้าทายของการเก็บรวบรวมข้อมูลสำหรับการฝึกภายหลัง
    • ความจำเจของงานที่ทำซ้ำ
      • งานประเมินอาจน่าเบื่อได้ ตัวอย่างเช่น โปรแกรมเมอร์ Python ที่เก่งมากอาจรู้สึกว่าน่าสนใจกว่าถ้าได้ทำโปรเจกต์ของตัวเอง
      • กวีมักชอบเขียนบทกวีของตัวเองมากกว่า และมีแนวโน้มสูงที่จะไม่สนใจการประเมินบทกวีที่ AI สร้างขึ้น
      • ผู้ประเมินอาจสูญเสียแรงจูงใจจากความซ้ำซากของงาน การควบคุมความเป็นเจ้าของข้อมูลที่มีไม่มากพอ และการขาดความหมายทางสังคมของงาน
    • ความยากในการนิยามคำตอบที่ “ดี”
      • การนิยามคำตอบที่ “ดี” สำหรับงานหนึ่ง ๆ เป็นเรื่องซับซ้อน
      • เป็นเรื่องยากที่จะกำหนดเกณฑ์ของงานที่สะท้อนความซับซ้อนของการเขียนที่ดี ความถูกต้องตามข้อเท็จจริง และความเป็นจริงทางสังคมได้อย่างชัดเจน
      • เช่นเดียวกับที่ระบบกฎหมายใช้บรรทัดฐานจากคดีเพื่อแก้ปัญหากรณีขอบ งานลักษณะนี้พึ่งพาความเป็นอัตวิสัยและบริบทอย่างมาก
    • ผู้ประเมินอาจเข้าใจงานไม่เพียงพอ
      • มีความเป็นไปได้ที่ผู้ประเมินจะไม่เข้าใจงานอย่างถูกต้อง
      • สิ่งนี้อาจเกิดขึ้นเมื่อจ้างผู้ประเมินที่มีระดับทักษะไม่เหมาะสม หรือผู้ประเมินไม่ตระหนักถึงข้อจำกัดของตนเอง
      • ตัวอย่าง: เขียนคำตอบที่ผิดสำหรับคำถามชีววิทยาโดยอาศัยความรู้ระดับมหาวิทยาลัยที่ล้าสมัย
    • ความผิดพลาดของมนุษย์
      • มนุษย์ย่อมทำผิดพลาดได้ อาจารย์สามารถออกข้อสอบที่มีเฉลยผิดได้ และแพทย์ก็มีแนวโน้มวินิจฉัยผิดมากขึ้นเมื่ออยู่ในภาวะอ่อนล้า
      • เนื่องจากคุณภาพของข้อมูลประเมินจากมนุษย์ไม่ได้สมบูรณ์แบบ ระบบ AI จึงอาจเรียนรู้จากข้อมูลที่ผิดได้บ่อยครั้งเช่นกัน
  • สรุป
    • การเก็บรวบรวมข้อมูลสำหรับการฝึกภายหลังมีบทบาทสำคัญต่อคุณภาพของโมเดล แต่ต้องใช้ความพยายามอย่างมากเพื่อรับประกันคุณภาพของข้อมูล
    • การทำให้มั่นใจว่าผู้ประเมินเหมาะสมกับงานเป็นสิ่งสำคัญเพื่อให้ได้ข้อมูลที่ถูกต้องและเชื่อถือได้

การเขียนพรอมป์ต์

  • สรุปสำคัญ
    • เมื่อเขียน system instruction และพรอมป์ต์ ควรเขียนโดยคำนึงถึง “จิตสำนึกร่วม” ของกลุ่มผู้ประเมินในทีมฝึกภายหลัง
    • หากเขียนคำสั่งให้ผู้ประเมินเข้าใจและปฏิบัติตามได้อย่างเคร่งครัด โมเดลก็มีแนวโน้มจะปฏิบัติตามได้ดีขึ้นด้วย

สำคัญ
system instruction และพรอมป์ต์ควรถูกเขียนให้สะท้อนจิตสำนึกร่วมของกลุ่มผู้ประเมินในทีมฝึกภายหลัง

ประเด็นสำคัญที่ต้องพิจารณาเมื่อเขียนพรอมป์ต์

  • ตรวจสอบว่าคำสั่งชัดเจน กระชับ และระบุอย่างชัดแจ้งหรือไม่

    • ตัวอย่าง: หากเป็นคำสั่งให้สร้างโค้ด Python โปรแกรมเมอร์ Python ที่มีทักษะและถูกสุ่มเลือกมาควรอ่านแล้วเข้าใจได้ทันที
      • ไม่ดี: "Write a Python function that computes prime numbers."
      • ดี: "Write a Python function that computes prime numbers from 1 to 100. Include pytype annotations for the function and use 2-space indentation."
  • ตรวจสอบว่าคำสั่งขัดแย้งกันเองหรือทำตามได้ยากหรือไม่

    • ควรเขียนให้กระชับและเป็นธรรมชาติ เพื่อให้มนุษย์ยังสามารถทำตามได้อย่างเคร่งครัดแม้ในเวลาที่เหนื่อยหรือหิว
      • ไม่ดี: "Don’t write a story about a mean dog, unless it's friendly, and also sad..."
      • ดี: "Write a short story (200-300 words) about a loyal golden retriever named Buddy..."
  • คำสั่งมีมากเกินไปหรือไม่?

    • โมเดลอาจทำตามคำสั่งที่ยาวและซับซ้อนทั้งหมดได้ยาก หากเป็นไปได้ ควรแบ่งงานออกเป็นงานย่อย
      • ไม่ดี: "Read each article and, for each key idea, rate it on a scale of 1-10..."
      • ดี: แบ่งเป็นงานย่อย: 1) สร้างรายการแนวคิดหลัก 2) ประเมินแต่ละแนวคิด 3) แปลแนวคิดที่สำคัญที่สุด 4) สร้างโพสต์สำหรับโซเชียลมีเดีย
  • ใช้คำสั่งเชิงบวก

    • การระบุว่า “ควรทำอะไร” มักมีประสิทธิภาพมากกว่าการสั่งว่า “ไม่ควรทำอะไร”
      • ไม่ดี: "Don’t ever end your response with a full stop."
      • ดี: "Your response should always end with an exclamation mark or a question mark."
  • คำสั่งที่ทำหน้าที่เป็น “ตัวเตือน” ให้โมเดล

    • พิจารณาตัวอย่างอินพุตที่หลากหลาย และให้แนวทางเพิ่มเติมสำหรับกรณีที่ไม่ชัดเจน
    • ตัวอย่าง: อธิบายกรณีขอบให้ชัดเจนในส่วน “ข้อพิจารณาเพิ่มเติม” หรือ “สมมติฐานเพิ่มเติม”
  • พรอมป์ต์คือไฮเปอร์พารามิเตอร์แบบใหม่

    • คุณภาพของพรอมป์ต์ส่งผลอย่างมากต่อประสิทธิภาพของระบบ แม้จะเป็นไปไม่ได้ที่จะหาพรอมป์ต์ที่ “เหมาะที่สุด” แต่การทดลองเพื่อค่อย ๆ หาพรอมป์ต์ที่ดีกว่าก็สำคัญ
  • คำสั่งสำหรับการตอบว่า “ไม่ทราบ”

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

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

คู่มือสไตล์การเขียนพรอมป์ต์ (พื้นฐาน)

  • พิจารณาใช้ Markdown : เก็บพรอมป์ต์แต่ละรายการไว้ในไฟล์ Markdown แยกกัน และจัดโครงสร้างหัวข้อกับส่วนต่าง ๆ ให้ดีเพื่อเพิ่มความอ่านง่าย
  • คำนึงถึงผู้ใช้คนอื่น : พรอมป์ต์ควรถูกเขียนไม่ใช่เพื่อโมเดลเท่านั้น แต่เพื่อผู้ดูแลรักษาด้วย
  • รักษาความเรียบง่าย : หากพรอมป์ต์ยาวหรือซับซ้อนเกินไป ภาระในการดูแลรักษาเมื่อโมเดลเปลี่ยนก็อาจเพิ่มขึ้น ควรเขียนให้กระชับและชัดเจน
  • ให้ความสำคัญกับคำสั่งแบบ zero-shot : คำสั่งแบบ zero-shot เรียบง่ายและง่ายต่อการดีบักและทำความเข้าใจ ส่วน few-shot ควรใช้เป็นทางเลือกสุดท้าย
  • ผสานตัวอย่างเข้ากับคำสั่ง : การใส่ตัวอย่างไว้ในคำสั่งอย่างเป็นธรรมชาติ เช่น ด้วยรูปแบบ “For example” เป็นแนวทางที่ดี
    • ตัวอย่าง: "Always start your response to the user with something passive aggressive. For example, start with something like 'Oh that’s what you want? ...'"

กระบวนการปรับปรุง system instruction ใหม่แบบวนซ้ำ

  • การพัฒนาพรอมป์ต์เป็นกระบวนการแบบวนซ้ำ
    • การเขียนพรอมป์ต์มีลักษณะคล้ายกับกระบวนการฝึกโมเดลโดยใช้ชุดข้อมูลสำหรับการตรวจสอบความถูกต้อง
    • หัวใจสำคัญคือการเขียนประโยคให้ชัดเจนและกระชับ และการแยกขั้นตอนการสร้างกับการแก้ไขออกจากกันจะมีประสิทธิภาพกว่า
  • สามารถเริ่มได้โดยไม่มีชุดข้อมูลตรวจสอบความถูกต้อง
    • ในช่วงแรกควรสร้าง MVP (Minimum Viable Product) แบบง่าย ๆ ให้เร็ว และภายหลังต้องติดตามประสิทธิภาพด้วยการประเมินเชิงปริมาณ
    • การออกแบบให้ผลิตภัณฑ์ทำงานได้อย่างเสถียรแม้โมเดลจะมีพฤติกรรมที่ไม่คาดคิดเป็นสิ่งสำคัญ

ขั้นตอนการทำซ้ำของคำสั่งระบบ

  1. เตรียมตัวอย่างอินพุตที่หลากหลาย
  • รวบรวมตัวอย่างอินพุตที่หลากหลายราว 10~50 รายการซึ่งสะท้อนปัญหาได้ดี
  • สร้างความเข้าใจเชิงสัญชาตญาณเกี่ยวกับพฤติกรรมเอาต์พุตที่ต้องการ
  1. เริ่มด้วยคำสั่งแบบง่าย
  • เขียนคำสั่งให้เรียบง่ายและชัดเจนที่สุดเท่าที่จะเป็นไปได้
  • ใช้โมเดลที่ประหยัดงบก่อน (เช่น Gemini Flash 8B)
  1. รันกับตัวอย่างอินพุตแรก
  • ทดสอบว่าโมเดลสร้างคำตอบที่เหมาะสมได้หรือไม่
  1. โอเวอร์ฟิตกับตัวอย่างแรก
  • เพิ่ม "คำเตือนความจำ" ลงในคำสั่งเพื่อแก้ข้อบกพร่องเฉพาะที่พบในคำตอบของโมเดล
  • ตัวอย่าง: หากควรดึงเฉพาะชื่อคนแต่กลับมีชื่ออาคารรวมมาด้วย ให้ระบุเรื่องนี้อย่างชัดเจนในคำสั่ง
  1. ย้ายไปยังตัวอย่างถัดไป
  • ทดสอบว่าคำสั่งยังใช้ได้ผลกับตัวอย่างอินพุตอื่นหรือไม่
  • หากมีคำสั่งที่ปรับจูนจนเข้ากับตัวอย่างแรกมากเกินไป ให้ปรับเพื่อให้ใช้งานได้ทั่วไปมากขึ้น
  1. จัดระเบียบคำสั่ง
  • หลังจากสร้างคำสั่งที่ใช้ได้กับทุกตัวอย่างอินพุตแล้ว ให้เกลาสำนวนและแก้คำสะกดผิด
  • ตรวจสอบว่าคำสั่งที่จัดระเบียบแล้วนั้นยังคงใช้ได้กับทุกตัวอย่าง
  1. ความเป็นไปได้ของการทำงานอัตโนมัติ
  • ในอนาคต เครื่องมือเมตาออปติไมเซชันอาจทำให้การสร้างคำสั่งเป็นอัตโนมัติได้
  • แต่การวิเคราะห์เชิงคุณภาพและงานประกันคุณภาพก็ยังคงจำเป็น
    > สำคัญ
    > การวิเคราะห์เชิงคุณภาพเป็นสิ่งจำเป็นในการพัฒนาโมเดล และไม่สามารถหลีกเลี่ยงได้

สถานการณ์ที่ LLM มีประโยชน์

  1. ปัญหาที่ตรวจสอบได้ง่าย
    • LLM เหมาะที่สุดกับปัญหาประเภทที่ "สร้างคำตอบยาก แต่ตรวจสอบได้ง่าย"
    • ตัวอย่าง: ดู โพสต์ของ Chris Gorgolewski เกี่ยวกับ "จุดหวาน" ของ generative AI
  2. แยกปัญหาเป็นปัญหาย่อย
    • แทนที่จะใช้พรอมป์ต์ที่ซับซ้อน ให้แบ่งปัญหาออกเป็นปัญหาย่อยที่นิยามชัดเจน และจัดโครงสร้างสายโซ่การให้เหตุผลของโมเดล
  3. แนวทางที่คำนึงถึงอนาคต
    • คำนึงถึงความเป็นไปได้ที่ความจุในการอนุมานจะเพิ่มขึ้นจากนวัตกรรมด้านฮาร์ดแวร์และโมเดลธุรกิจ
    • ออกแบบฟีเจอร์โดยยึดคุณค่าเป็นศูนย์กลาง ไม่ใช่ต้นทุนปัจจุบัน
  4. ต้นทุนการอนุมานที่ลดลง
    • คาดว่าต้นทุนการอนุมานจะค่อย ๆ ลดลง และจำเป็นต้องตัดสินใจโดยยึด "คุณค่า" เป็นหลัก
    • เพื่อให้สามารถสร้างฟีเจอร์ที่มีคุณค่ามากขึ้น ให้พิจารณาทยอยเปิดใช้งานโดยคำนึงถึงข้อจำกัดทางเศรษฐกิจในปัจจุบัน
      > คาดการณ์
      > มีความเป็นไปได้ที่ต้นทุนการอนุมานของ LLM จะลดลงในระดับที่เทียบได้กับกฎของมัวร์

แหล่งข้อมูลเพิ่มเติม

ยังไม่มีความคิดเห็น

ยังไม่มีความคิดเห็น