เคย Prompt คุยกับ AI แล้วได้คำตอบไม่ค่อยถูกใจ หรือจะใช้แบบลึกๆ แต่นึกต่อยอดไม่ออกมั้ยครับ ไม่เป็นไร เราเริ่มกลับมาพื้นฐานใหม่ไปพร้อมๆ กันสำหรับการปูพื้นฐานในการเป็น Prompt Engineer ครับ
AI และ LLM
เวลาที่เรา Prompt เพื่อส่งคำสั่ง ถามคำถาม เรามีมายาคติว่า “ชั้นกำลังคุยกับ AI อยู่”
โอเค .. เราต้องแยกการทำความเข้าใจออกมาแบบบ้านๆ ก่อน
“ฉากหน้า AI : กายเนื้อ ร่างกาย แบบจับต้องได้”
“LLM : วิญญาณ ที่มีการเรียนรู้ ประสบการณ์ติดตัวมา”
“LLM Model : วิญญาณแต่ละดวง ที่มีการเรียนรู้ ประสบการณ์ติดตัวมาแตกต่างกัน”
นึกภาพคนผีเข้าได้มั้ยครับ
สมมุติคุณไปเจอหญิงสาวที่ที่โดน “วิญญาณ” อื่นๆ สิง เช่น วิญญาณเด็กสิงร่าง เธอก็จะร้องเป็นเด็ก วิญญาณคนแก่สิงร่าง เธอก็เดินหง่อมเป็นคนแก่ แต่ฉากหน้าก็หญิงสาวคนเดิมนี่ล่ะ
โอเค มันฟังดูการเปรียบเทียบแบบโลกวิญญาณไปหน่อย แต่น่าจะพอเห็นภาพว่าใต้ฉากหน้า AI มันขับเคลื่อนด้วย LLM Model หรือวิญญาณ ที่มีการเรียนรู้นี่แหล่ะ
ฉะนั้น การ Prompt คือการที่เราสื่อสาร LLM Model โดยป้อนคำถาม input แล้วให้่ได้ Output ออกมา
เหมือนที่หมอปลา บริกรรมคาถาคุยกับผี นี่คือ input ด้วย Prompt แล้ว Output คือ ถ้าไม่คุยกันจนผีออกจากร่าง หรือถ้าไม่ออกก็ล่อมันทั้งศาลแล้วง้ายด้วยฆ้อนนี่แหล่ะ
โอเค จากเรื่องผีกลับมาเรื่องไอทีต่อ
องค์ประกอบของ Prompt
รูปแบบของคำที่ใช้ ขึ้นอยู่กับงานที่คุณมอบหมายงาน ให้กับ Model ก่อนที่จะป้อนอะไรลงไป คุณจะต้องตรวจสอบคำ Prompt ที่มีองค์ประกอบบางส่วนหรือทั้งหมดต่อไปนี้
• Instructions (คำแนะนำ) : นี่คืองานที่ LLM ต้องทำ ซึ่งจะให้คำอธิบายงานหรือคำแนะนำเกี่ยวกับวิธีที่ Model ควรทำงาน
• Context (บริบท) : นี่คือข้อมูลภายนอกเพื่อแนะนำ Model
• Input data (ข้อมูล Input) : Input ที่คุณต้องการคำตอบ
• Output indicator (ตัวบ่งชี้ Output ) : ประเภทหรือรูปแบบ Output
รวมบริบทหากจำเป็น
ก่อนจะ Prompt ทุกครั้ง ควรให้บริบทเพิ่มเติมใดๆ ที่จะช่วยให้ Model ตอบสนองได้อย่างถูกต้อง
ตัวอย่างเช่น
หากคุณขอให้ Model วิเคราะห์ธุรกิจ ก็ให้รวมข้อมูลเกี่ยวกับประเภทของธุรกิจเข้าไปด้วย เช่น บริษัทนั้นทำอะไร
รายละเอียดประเภทนี้ใน Input จะให้ผลลัพธ์ที่เกี่ยวข้องมากขึ้น บริบทที่คุณให้ไว้สามารถใช้ร่วมกันได้ในหลายอินพุตหรือเฉพาะสำหรับแต่ละอินพุตก็ได้
ตัวอย่างที่ไม่ดี :
“Summarize this article: [insert article text]”
“สรุปบทความนี้: [ใส่ข้อความบทความ]”
ตัวอย่างที่ดี :
“Provide a summary of this article to be used in a blog post: [insert article text]”
“จัดทำสรุปของบทความนี้เพื่อใช้ในโพสต์บล็อก: [ใส่ข้อความบทความ]”
ใช้คำสั่งสำหรับประเภทคำตอบที่เหมาะสม
หากคุณต้องการรูปแบบผลลัพธ์เฉพาะ เช่น บทสรุป คำถาม หรือบทกวี ให้ระบุประเภทคำตอบโดยตรง นอกจากนี้ คุณยังจำกัดคำตอบได้ตามความยาว รูปแบบ ข้อมูลที่รวม ข้อมูลที่ไม่รวม และอื่นๆ
ตัวอย่างที่ไม่ดี :
“What is the capital?”
“เมืองหลวงคือที่ไหน?ตัวอย่างที่ดี :
“What is the capital of New York? Provide the answer in a full sentence.”
“เมืองหลวงของนิวยอร์คอยู่ที่ไหน? จงตอบคำถามนี้ให้ครบถ้วนเป็นประโยคสมบูรณ์”
พิจารณาผลลัพธ์ใน Prompt
ระบุผลลัพธ์ที่ร้องขอในตอนท้ายของ เพื่อย้ำให้ Model เน้นที่เนื้อหาที่เหมาะสม
ตัวอย่างที่ไม่ดี:
“Calculate the area of a circle.”
“คำนวณพื้นที่ของวงกลม”
ตัวอย่างที่ดี :
“Calculate the area of a circle with a radius of 3 inches (7.5 cm). Round your answer to the nearest integer.”
“คำนวณพื้นที่ของวงกลมที่มีรัศมี 3 นิ้ว (7.5 ซม.) ปัดเศษคำตอบเป็นจำนวนเต็มที่ใกล้เคียงที่สุด”
..
เริ่มคำถามด้วยคำถาม
เขียนคำถามโดยเริ่มด้วยคำ เช่น ใคร อะไร ที่ไหน เมื่อไหร่ ทำไม และอย่างไร
ตัวอย่างที่ไม่ดี :
“Summary of this event”
“สรุปเหตุการณ์นี้”
ตัวอย่างที่ดี :
“Why did this happen? Explain in three sentences.”
“ทำไมเหตุการณ์นี้จึงเกิดขึ้น อธิบายเป็นสามประโยค”
..
ให้ตัวอย่างคำตอบ
ควรใช้รูปแบบผลลัพธ์ที่คาดหวังเป็นตัวอย่างคำตอบในข้อความแจ้ง ล้อมรอบข้อความแจ้งในวงเล็บเพื่อให้ชัดเจนว่าเป็นตัวอย่าง
ข้อความ Prompt ที่ไม่ดี :
“Determine the sentiment of this social media post: [insert post]”
“ระบุความรู้สึกของโพสต์โซเชียลมีเดียนี้: [ใส่ข้อความต้นทาง]”ข้อความ Prompt ที่ดี :
Determine the sentiment of the following social media post using these examples:
post: “great pen” => Positive
post: “I hate when my phone battery dies” => Negative
[insert social media post] =>
ระบุความรู้สึกของโพสต์โซเชียลมีเดียต่อไปนี้โดยใช้ตัวอย่างเหล่านี้:
โพสต์: “ปากกาที่ยอดเยี่ยม” => เชิงบวก
โพสต์: “ฉันเกลียดเมื่อแบตเตอรี่โทรศัพท์ของฉันหมด” => เชิงลบ
[ใส่ข้อความแจ้งในโซเชียลมีเดีย] =>
แบ่งงานที่ซับซ้อนออก
ตัวโมเดลอาจสับสนได้เมื่อได้รับมอบหมายให้ทำงานที่ซับซ้อน ให้เยอะ หม้แบบไม่รู้จักจบ ลองแบ่งงานที่ซับซ้อนออกโดยใช้เทคนิคต่อไปนี้:
แบ่งงานออกเป็นงานย่อยหลายๆ งาน หากคุณไม่สามารถรับผลลัพธ์ ก็ให้ลองแบ่งงานออกเป็นคำสั่งหลายๆ คำสั่ง ถามแบบ Model ว่าเข้าใจคำแนะนำของคุณหรือไม่ ให้ชี้แจงตามคำตอบของแบบ Model หากคุณไม่ทราบวิธีแบ่งงานออกเป็นงานย่อย ให้ขอให้ Model ช่วยคิดทีละขั้นตอน
สรุป : วิธีเหล่านี้นี้อาจใช้ไม่ได้กับแบบ Model ทุกตัวครับ อย่างที่ผมบอกไปตอนต้น คือวิญญาณแต่ละดวงมีภูมิหลังต่างกัน และ LLM Model ก็เช่นกัน ฉลาดมากน้อย เก่งมาก เก่งน้อย ถนัดอะไร ไม่ถนัดอะไร ขึ้นอยู่กับภูมิหลังที่ไปเทรน หรือไปดูดซับอะไรมาจาก internet แต่คุณสามารถลองปรับคำแนะนำไปใช้สำหรับงานแต่ละอย่างได้ครับ
ที่มา : www.skillbuilder.aws