Prompt Engineering คือ เป็นคอนเซ็ปต์ใหม่ ในวิชาปัญญาประดิษฐ์ (AI) อยู่ในสาขา ประมวลผลภาษาธรรมชาติ (Natural Language Processing, NLP) โดยโฟกัสที่การพัฒนาและปรับ Prompt ให้เหมาะสมสำหรับการใช้สั่งการโมเดลภาษาขนาดใหญ่ (Large Language Model, LM) อย่างมีประสิทธิภาพ Prompt Engineering เกี่ยวข้องกับทักษะและเทคนิคในการทำความเข้าใจขีดความสามารถและข้อจำกัดของโมเดลภาษาขนาดใหญ่ (LLM)

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

Artificial Intelligence & AI & Machine Learning.
Artificial Intelligence & AI & Machine Learning. Credit: File:Artificial Intelligence & AI & Machine Learning – 30212411048.jpg – Wikimedia Commons

โดยทั่วไป งาน Prompt Engineering จะเป็นการแปลงรายละเอียดของงานต่าง ๆ ให้เป็น ชุดข้อมูล Prompt เตรียมไว้สำหรับใช้ในการเทรนโมเดลภาษา ให้มีความสามารถเฉพาะด้าน เพิ่มขึ้นตามที่ต้องการ เรียกว่า “Prompt-Based Learning” หรือ “Prompt Learning”

นักวิจัยมีการใช้ Prompt Engineering ในการเพิ่มประสิทธิภาพในการทำงานของ LLM ในงานต่างๆ เช่น การตอบคำถามทั่วไป Arithmetic Reasoning ส่วนนักพัฒนาซอฟต์แวร์มีการใช้ Prompt Engineering เป็นเทคนิคในการออกแบบ Prompt โต้ตอบระหว่าง LLM และเครื่องมือภายนอกอื่น ๆ อย่างมีประสิทธิภาพ

The link between man and machine with robots excited in the background. Credit: https://commons.wikimedia.org/wiki/File:AI_Humans_and_Robots.jpg
The link between man and machine with robots excited in the background. Credit: https://commons.wikimedia.org/wiki/File:AI_Humans_and_Robots.jpg

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

เรามาเริ่มกันเลยดีกว่า

Open In Colab

อ้างอิง

แชร์ให้เพื่อน:

Surapong Kanoktipsatharporn on Linkedin
Surapong Kanoktipsatharporn
CTO at Bua Labs
The ultimate test of your knowledge is your capacity to convey it to another.

Published by Surapong Kanoktipsatharporn

The ultimate test of your knowledge is your capacity to convey it to another.