Category: Prompt Engineering

  • แนวคิดในการออกแบบ Prompt ที่มีประสิทธิภาพ หรือ “Design prompts that work”

    แนวคิดในการออกแบบ Prompt ที่มีประสิทธิภาพ หรือ “Design prompts that work”

    Prompt Engineering คือกระบวนการสร้างและปรับแต่งคำสั่ง (prompt) ที่เฉพาะเจาะจงและละเอียด เพื่อให้ได้การตอบสนองที่ต้องการจากโมเดล AI เชิงสร้างสรรค์. กระบวนการนี้มักถูกเปรียบกับการ “เขียนโค้ดด้วยภาษาอังกฤษ” ซึ่งบ่งชี้ถึงความซับซ้อนและความละเอียดอ่อนที่จำเป็นในการสื่อสารกับปัญญาประดิษฐ์ การทำความเข้าใจและเชี่ยวชาญในทักษะนี้จึงเป็นสิ่งสำคัญอย่างยิ่งในการดึงศักยภาพสูงสุดจาก AI ที่มีอยู่ในปัจจุบัน

    “Design prompts that work”

    สรุปเป็นขั้นตอน 5 ขั้นตอนดังนี้ครับ

    1. Task (ภารกิจ)

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

    • อธิบายอย่างชัดเจน: ระบุว่าคุณต้องการให้เครื่องมือ AI สร้างอะไร
    • กำหนด Persona: ให้ AI สวมบทบาทเป็นใคร เช่น ผู้เชี่ยวชาญด้านการตลาด, นักเขียนเชิงสร้างสรรค์, หรือที่ปรึกษาด้านการเงิน การกำหนดบุคลิกนี้จะช่วยให้ AI สร้างคำตอบที่เหมาะสมกับบริบทมากขึ้น
    • ระบุ Format: บอกรูปแบบของผลลัพธ์ที่ต้องการ เช่น บทความ, อีเมล, รายชื่อ, ตาราง หรือแม้กระทั่งบทกวี

    ตัวอย่าง: “เขียนอีเมลในฐานะผู้จัดการฝ่ายการตลาด เพื่อแจ้งลูกค้าถึงโปรโมชันใหม่ โดยใช้ภาษาที่กระชับและเป็นกันเอง”

    2. Context (บริบท)

    บริบทคือข้อมูลเพิ่มเติมที่จำเป็นทั้งหมด เพื่อให้ AI เข้าใจและทำงานได้อย่างถูกต้องและตรงตามความต้องการของคุณ

    • ให้รายละเอียดที่จำเป็น: ระบุข้อมูลที่เกี่ยวข้องทั้งหมด เช่น กลุ่มเป้าหมาย, จุดประสงค์, ข้อมูลพื้นฐานของเรื่องที่ต้องการ, หรือข้อจำกัดต่างๆ
    • สร้างความเข้าใจ: ช่วยให้ AI เข้าใจว่าคุณต้องการให้มันทำอะไรในเชิงลึกมากขึ้น

    ตัวอย่าง: “โปรโมชันใหม่นี้สำหรับลูกค้าที่ซื้อสินค้าเกิน 1,000 บาท ภายในสิ้นเดือนนี้เท่านั้น” (ข้อมูลนี้จะช่วยให้ AI ไม่ส่งอีเมลหาลูกค้าที่ไม่ตรงกลุ่มเป้าหมาย)

    3. References (ข้อมูลอ้างอิง)

    หากคุณมีตัวอย่างหรือข้อมูลอ้างอิงที่ต้องการให้ AI นำมาใช้ประกอบการสร้างผลงาน ให้ระบุในขั้นตอนนี้

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

    ตัวอย่าง: “ให้ใช้ภาษาที่มีลักษณะคล้ายกับตัวอย่างบทความนี้: [แนบลิงก์หรือข้อความตัวอย่าง]”

    4. Evaluate (ประเมินผล)

    หลังจากที่ AI สร้างผลลัพธ์ออกมาแล้ว คุณต้องทำการประเมินว่าผลลัพธ์นั้นมีประโยชน์และตรงตามความต้องการของคุณหรือไม่

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

    ตัวอย่าง: “ผลลัพธ์ที่ได้ตรงตามที่ต้องการหรือไม่? ภาษาที่ใช้เหมาะสมกับกลุ่มเป้าหมายหรือยัง?”

    5. Iterate (ปรับปรุง)

    หากผลลัพธ์ที่ได้จากการประเมินยังไม่เป็นที่พอใจ คุณต้องกลับไปแก้ไข Prompt และให้ AI ลองสร้างผลลัพธ์ใหม่อีกครั้ง

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

    ตัวอย่าง: “ช่วยแก้ไขส่วนท้ายของอีเมลให้สั้นลงและเพิ่มปุ่ม Call to Action ที่ชัดเจนขึ้น”

    ตารางกรอบแนวคิด TCREI

    โดยสรุปแล้ว หลักการที่ใช้ในการจดจำ 5 ขั้นตอนข้างต้นคือ Thoughtfully Create Really Excellent Inputs หรือ TCREI ซึ่งย่อมาจาก Task, Context, References, Evaluate, และ Iterate นั่นเองครับ


    ตัวอย่าง TCREI

    👉การสืบสวนธุรกรรมคริปโต

    Task: ทำหน้าที่เป็นนักสืบสอบสวนด้านอาชญากรรมไซเบอร์ สร้างขั้นตอนติดตามธุรกรรม Bitcoin ที่เกี่ยวข้องกับบัญชีต้องสงสัย พร้อมวิเคราะห์ความเสี่ยงทางกฎหมาย

    Context: คดีเกี่ยวข้องกับการฟอกเงินผ่านตลาดมืด ใช้ข้อมูลจาก Blockchain Explorer (เช่น Blockchair, Mempool.space) ต้องจัดทำรายงานให้พนักงานสอบสวนเข้าใจได้ใน 15 นาที

    References: แนบตัวอย่างรายงานการติดตามธุรกรรมจากคดีเก่า พร้อมรูปแบบตารางที่ใช้สรุป (Transaction ID, Time, Amount, Link)

    Evaluate: ตรวจความครบถ้วนของการระบุเส้นทางการโอน (อย่างน้อย 3 hop), ความถูกต้องของเวลา/จำนวน, การอ้างอิงแหล่งข้อมูล

    Iterate: หากไม่ครบข้อมูล ให้ถามกลับเฉพาะจุดที่ขาด เช่น รายละเอียดวอลเล็ตหรือช่วงเวลาของธุรกรรม


    👉การวิเคราะห์ข้อมูลอาชญากรรมพื้นที่

    Task: ทำหน้าที่เป็นนักวิเคราะห์ข้อมูล สร้าง Heatmap การเกิดคดีลักทรัพย์ในเขตเมืองจากข้อมูลตำรวจ

    Context: ข้อมูลย้อนหลัง 12 เดือน มีพิกัด GPS ของจุดเกิดเหตุ ต้องเน้นช่วงเวลาที่คดีเพิ่มสูงผิดปกติ เพื่อใช้วางกำลังสายตรวจ

    References: แนบตัวอย่าง Heatmap และตารางสรุปที่เคยใช้ในโครงการวิเคราะห์คดีชิงทรัพย์

    Evaluate: ตรวจว่าผลลัพธ์มีการไฮไลต์ช่วงเวลาความเสี่ยงสูง และใช้สเกลสีที่เข้าใจง่าย

    Iterate: หากยังไม่ชัดเจน ให้ปรับการแสดงผลเป็น Time-series + Heatmap ควบคู่กัน

    😊 คิดว่าน่าจะมีประโยชน์นะครับ ของดีจาก Google : พัฒนาโดยผู้เชียวชาญด้าน AI ของ Google ผ่านหลักสูตร “Prompting Essentials”

  • หลักการพื้นฐานของ Prompt ใน Generative AI  เบื้องต้น : part 1

    หลักการพื้นฐานของ Prompt ใน Generative AI เบื้องต้น : part 1

    คำว่า “Prompt” และความสำคัญของมันในบริบทของ “บทนำ” สามารถอธิบายได้ดังนี้:

    1. คำนิยามของ “Prompt”

    • Prompt คืออินพุตที่ให้กับโมเดล Generative AI (GenAI) เพื่อชี้นำผลลัพธ์ของมัน
    • Prompt สามารถประกอบด้วย ข้อความ, รูปภาพ, เสียง หรือสื่อรูปแบบอื่น ๆ
    • แม้ว่า Prompt มักจะมีส่วนประกอบที่เป็นข้อความ แต่สิ่งนี้อาจเปลี่ยนแปลงได้เมื่อรูปแบบที่ไม่ใช่ข้อความกลายเป็นเรื่องปกติมากขึ้น
    • ตัวอย่างของ Prompt ได้แก่:
      • ข้อความ เช่น “เขียนบทกวีเกี่ยวกับต้นไม้” หรือ “เขียนอีเมลสามย่อหน้าสำหรับแคมเปญการตลาดของบริษัทบัญชี”
      • รูปภาพ เช่น ภาพถ่ายกระดาษที่เขียนว่า “10*179 คืออะไร”
      • การบันทึกเสียง เช่น การบันทึกการประชุมออนไลน์พร้อมคำสั่ง “สรุปสิ่งนี้”
    • ในอดีต บางงานวิจัยเคยพิจารณาเฉพาะส่วนหนึ่งของอินพุตเป็น Prompt (เช่น คำว่า “llama” ใน “Translate English to French: llama”) และเรียกส่วนอื่นว่า “คำอธิบายงาน” แต่ปัจจุบัน เอกสารฉบับนี้และงานวิจัยล่าสุดอื่น ๆ อ้างถึงสตริงทั้งหมดที่ส่งไปยัง LLM ว่าเป็น Prompt

    2. ความสำคัญของ Prompt

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

    3. Prompt Template (เทมเพลต Prompt)

    • Prompt มักถูกสร้างขึ้นผ่าน Prompt Template (เทมเพลต Prompt)
    • Prompt Template คือฟังก์ชันที่มีตัวแปรหนึ่งตัวหรือมากกว่า ซึ่งจะถูกแทนที่ด้วยสื่อบางอย่าง (โดยปกติคือข้อความ) เพื่อสร้าง Prompt
    • จากนั้น Prompt ที่ได้สามารถถือเป็นอินสแตนซ์ของเทมเพลตได้
    • ตัวอย่างเช่น สำหรับงานจำแนกทวีตแบบไบนารี Prompt Template อาจเป็น: “Classify the tweet as positive or negative: {TWEET}” โดยแต่ละทวีตในชุดข้อมูลจะถูกแทรกลงในอินสแตนซ์แยกต่างหากของเทมเพลต เพื่อสร้าง Prompt ให้กับ LLM

    4. ส่วนประกอบของ Prompt: Prompt มีส่วนประกอบทั่วไปหลายอย่างที่มักจะรวมอยู่ด้วย:

    • Directive (คำสั่ง): เป็นเจตนาหลักของ Prompt มักอยู่ในรูปของคำแนะนำหรือคำถาม (เช่น “Tell me five good books to read.”) อาจเป็นคำสั่งที่ซ่อนอยู่ก็ได้ เช่น ในกรณีของ One-Shot ที่มีวัตถุประสงค์เพื่อแปลภาษาอังกฤษเป็นสเปน
    • Examples (ตัวอย่าง): หรือที่เรียกว่า exemplars หรือ shots ทำหน้าที่เป็นตัวสาธิตเพื่อนำทาง GenAI ในการทำงานให้สำเร็จ
    • Output Formatting (การจัดรูปแบบผลลัพธ์): เป็นสิ่งที่ต้องการให้ GenAI แสดงข้อมูลในรูปแบบที่เฉพาะเจาะจง เช่น CSV, Markdown, XML หรือแม้แต่รูปแบบที่กำหนดเอง
    • Style Instructions (คำแนะนำด้านสไตล์): เป็นประเภทของการจัดรูปแบบผลลัพธ์ที่ใช้เพื่อปรับเปลี่ยนสไตล์แทนที่จะเป็นโครงสร้าง (เช่น “Write a clear and curt paragraph about llamas.”)
    • Role (บทบาท): หรือที่เรียกว่า persona เป็นส่วนประกอบที่มักกล่าวถึงและสามารถปรับปรุงการเขียนและสไตล์ข้อความได้ (เช่น “Pretend you are a shepherd and write a limerick about llamas.”)
    • Additional Information (ข้อมูลเพิ่มเติม): มักจำเป็นต้องรวมข้อมูลเพิ่มเติมใน Prompt (เช่น ชื่อและตำแหน่งในกรณีของการเขียนอีเมล) บางครั้งเรียกว่า ‘context’ แต่เอกสารนี้ไม่แนะนำเนื่องจากมีความหมายที่ซ้อนทับกัน

    5. ความท้าทายด้านคำศัพท์

    • คำศัพท์ในวงการ Prompt กำลังพัฒนาอย่างรวดเร็ว
    • มีคำนิยามที่ยังไม่เป็นที่เข้าใจดี (เช่น prompt, prompt engineering) และคำนิยามที่ขัดแย้งกัน (เช่น role prompt vs persona prompt)
    • การขาดคำศัพท์ที่สอดคล้องกันขัดขวางความสามารถของชุมชนในการอธิบายเทคนิคการ Prompt ต่างๆ ที่ใช้อยู่ได้อย่างชัดเจน
    • เอกสารนี้พยายามให้คำศัพท์ที่แข็งแกร่งซึ่งครอบคลุมคำที่ใช้กันทั่วไปส่วนใหญ่ในสาขานี้

    6. ประวัติโดยย่อของ Prompts

    • แนวคิดของการใช้ Natural Language Prefixes หรือ Prompts เพื่อดึงพฤติกรรมและการตอบสนองของโมเดลภาษา มีมาก่อนยุค GPT-3 และ ChatGPT
    • GPT-2 ใช้ Prompt และมีการกล่าวถึงการใช้ครั้งแรกในบริบทของ Generative AI โดย Fan et al. (2018)
    • อย่างไรก็ตาม แนวคิดของ Prompt มีมาก่อนโดยแนวคิดที่เกี่ยวข้อง เช่น Control Codes (Pfaff, 1979; Poplack, 1980; Keskar et al., 2019) และ Prompt การเขียนในวรรณคดี
    • คำว่า Prompt Engineering ดูเหมือนจะเกิดขึ้นเมื่อไม่นานมานี้จาก Radford et al. (2021) และต่อมาเล็กน้อยจาก Reynolds and McDonell (2021)

    โดยสรุป "Prompt" เป็นอินพุตสำคัญที่ใช้ชี้นำ GenAI โดยอาจมีหลายรูปแบบและส่วนประกอบ และการทำความเข้าใจและใช้ Prompt อย่างมีประสิทธิภาพเป็นสิ่งจำเป็นในยุคของ AI ในขณะที่สาขาวิชานี้กำลังพัฒนาและคำศัพท์ยังคงมีการเปลี่ยนแปลงอยู่