Prompt Engineering คือ เป็นคอนเซ็ปต์ใหม่ ในวิชาปัญญาประดิษฐ์ (AI) อยู่ในสาขา ประมวลผลภาษาธรรมชาติ (Natural Language Processing, NLP) โดยโฟกัสที่การพัฒนาและปรับ Prompt ให้เหมาะสมสำหรับการใช้สั่งการโมเดลภาษาขนาดใหญ่ (Large Language Model, LM) อย่างมีประสิทธิภาพ Prompt Engineering เกี่ยวข้องกับทักษะและเทคนิคในการทำความเข้าใจขีดความสามารถและข้อจำกัดของโมเดลภาษาขนาดใหญ่ (LLM)
การเขียนคำอธิบายสิ่งที่เราต้องการ เพื่อสั่งการให้กับ AI รายละเอียดทั้งหมดจะถูกรวมอยู่ใน Prompt ทั้งคำสั่ง บริบท ตัวอย่าง วิธีการ รูปแบบของผลลัพธ์ และข้อความอินพุท ในรูปแบบคำถาม ส่งไปให้ AI, LLM เป็นผู้ตอบ
โดยทั่วไป งาน Prompt Engineering จะเป็นการแปลงรายละเอียดของงานต่าง ๆ ให้เป็น ชุดข้อมูล Prompt เตรียมไว้สำหรับใช้ในการเทรนโมเดลภาษา ให้มีความสามารถเฉพาะด้าน เพิ่มขึ้นตามที่ต้องการ เรียกว่า “Prompt-Based Learning” หรือ “Prompt Learning”
นักวิจัยมีการใช้ Prompt Engineering ในการเพิ่มประสิทธิภาพในการทำงานของ LLM ในงานต่างๆ เช่น การตอบคำถามทั่วไป Arithmetic Reasoning ส่วนนักพัฒนาซอฟต์แวร์มีการใช้ Prompt Engineering เป็นเทคนิคในการออกแบบ Prompt โต้ตอบระหว่าง LLM และเครื่องมือภายนอกอื่น ๆ อย่างมีประสิทธิภาพ
Prompt Engineering เป็นมากกว่าแค่การเขียน Prompt Prompt Engineering มีบทบาทสำคัญในการปรับปรุงความปลอดภัยของ LLM และขยายขีดความสามารถของระบบ ผ่านเชื่อมโยงความรู้เฉพาะทางและทำงานร่วมกับระบบ/บริการจากโลกภายนอก จึงทำให้วิชานี้ต้องใช้ทักษะที่หลากหลาย รวมถึงเข้าใจขีดความสามารถและข้อจำกัดของ LLM
การออกแบบ Prompt Engineering ในระบบที่ซับซ้อน มีผู้ใช้เป็นจำนวนมาก ควรคำนึงถึงระบบรักษาความปลอดภัย ป้องกันการ Prompt Injection จากผู้ไม่หวังดี
Prompt Engineering มักมีการใช้เทคนิคต่าง ๆ ในการออกแบบ Prompt เช่น
- Prefix-tuning
- Chain-of-thought
- Zero-shot Prompting
- Few-shot Prompting
- etc.
ในการใช้งาน ChatGPT หรือโมเดล LLM อื่น ๆ ที่เราไม่ได้ตั้งเซิร์ฟเวอร์เอง ดังระบบ Software as a Service (SAAS) ทั่วไป เราสามารถใช้งานได้ผ่าน 2 ช่องทางด้วยกัน คือ
- ผ่าน UI ของระบบ เช่น หน้าเว็บ New chat (openai.com) หรือ ผ่านแอพที่ทาง Platform มีให้
- ผ่านทาง API Endpoint เช่น OpenAI API
ซึ่งทั้งสองอย่างก็มี ข้อดี ข้อเสีย ราคา และข้อจำกัด ที่แตกต่างกันไป ข้อดีของใช้งานผ่านเว็บได้ง่าย ๆ ผ่านการแชท เป็นระบบ Chatbot ทำให้ใคร ๆ ก็ใช้งานได้อย่างสะดวก เหมือนใช้ LINE, WhatsApp
แต่ข้อดีของการใช้ผ่านทาง API ข้อหนึ่ง คือ เราสามารถเขียนโปรแกรมเล็ก ๆ ขึ้นมาช่วยสร้าง Prompt เราสามารถเขียนโปรแกรมเล็ก ๆ ดึงข้อมูลจากหลาย ๆ แหล่งมาประกอบร่างกันเป็น Prompt ที่ซับซ้อนขึ้น แทนที่จะต้องพิมพ์เองทั้งหมด หรือ ก็อปปี้จากที่อื่นมาแปะเป็นครั้ง ๆ ไป และเราสามารถกำหนด Parameter ต่าง ๆ ที่ส่งให้กับ API ของโมเดล ได้อย่างยืดหยุ่น ปรับจูนได้ละเอียดมากขึ้น รวมไปถึงพัฒนาเป็นแอพของเราเอง เพื่อต่อยอดเปิดเป็น SAAS ให้บริการแก่ผู้อื่นอีกด้วย
ขณะนี้กำลังมีการศึกษา วิจัย ทดลอง อย่างมากมาย ในการเรียกใช้โมเดล LLM, ChatGPT แบบไม่ได้แค่ถามตอบ ครั้งต่อครั้ง แต่เป็นการเขียนโปรแกรมให้ถามตอบอัตโนมัติ ได้คำตอบแล้วย้อนไปถามต่อเป็นลูป หลายสิบ หลายร้อยครั้ง เพื่อสร้างสรรค์ผลงาน หรือตอบโจทย์บางอย่างที่ซับซ้อนขึ้นไปอีกระดับ
ต่อไปเราจะมาเรียนรู้ การใช้งาน LLM, ChatGPT, GPT-3.5, GPT-4 ใช้ผ่านทาง API Endpoint ด้วยภาษา Python รวมถึงเรียนรู้ Prompt Engineering กัน ตั้งแต่หลักการเบื้องต้น ไปจนถึงเทคนิคระดับ Advance
เรามาเริ่มกันเลยดีกว่า
อ้างอิง
- Prompt Engineering Guide | Prompt Engineering Guide (promptingguide.ai)
- Prompt engineering – Wikipedia
- GitHub – dair-ai/Prompt-Engineering-Guide: 🐙 Guides, papers, lecture, notebooks and resources for prompt engineering
- ChatGPT Prompt Engineering for Developers – DeepLearning.AI