BLOGS

ปลดล็อก Gen AI ให้เทพกว่าเดิมด้วยเทคนิคการ Prompt แบบ Chain of Thought

Thakorn.T • 08/07/2024
Google Cloud Solutions Specialist

ในโลกที่ขับเคลื่อนด้วยการที่ข้อมูล AI เข้ามามีบทบาทสำคัญในการประมวลผลข้อมูลมหาศาล และช่วยเราตัดสินใจอย่างชาญฉลาด Language Model ขนาดใหญ่ อย่างเช่น Gemini หรือ ChatGPT ได้แสดงให้เห็นถึงประสิทธิภาพอันน่าทึ่งในการทำงานด้านภาษา ไม่ว่าจะเป็น การเขียนบทความ สร้างสรรค์เนื้อหา หรือแม้แต่การแปลภาษา

แต่อย่างไรก็ตาม แม้โมเดลที่ล้ำหน้าที่สุดก็ยังคงต้องเผชิญความท้าทายในการแก้ปัญหาเชิงตรรกะที่ซับซ้อนครับ ซึ่งเป็นสิ่งที่มนุษย์อย่างเรา ๆ สามารถทำได้อย่างเป็นธรรมชาติ เช่น การแก้โจทย์คณิตศาสตร์ หรือการใช้ Common Sense ในการตัดสินใจ

ทีนี้คำถามคือ แล้วเราจะช่วยให้ AI มีความคิดเชิงตรรกะได้อย่างไร ? Chain of Thought Prompting คือกุญแจสำคัญและเป็นคำตอบของบทความนี้ครับ

Chain of Thought ทำให้ AI คิดเป็นขั้นเป็นตอน

ลองนึกภาพ AI ที่ไม่เพียงแค่ให้คำตอบได้ แต่ยังอธิบายกระบวนการคิดเป็นขั้นตอนอย่างละเอียด เหมือนกับที่มนุษย์เราคิดหาคำตอบและใช้เหตุผลต่าง ๆ พยายามอธิบายออกมา นี่คือที่มาของเทคนิค Chain of Thought Prompting เทคนิคที่จะช่วยให้ AI แก้ปัญหาเชิงตรรกะได้ครับ

ตัวอย่าง :

  • โจทย์ : “โต๊ะตัวหนึ่งมีขา 4 ขา ถ้ามีโต๊ะ 5 ตัว จะมีกี่ขา ?”
  • Standard Prompting : AI อาจตอบผิดพลาด เช่น “9 ขา” เพราะทำการบวกเลขจากโจทย์ตรง ๆ
  • Chain of Thought Prompting : AI จะคิดดังนี้
    • “โต๊ะ 1 ตัว มี 4 ขา”
    • “ดังนั้น โต๊ะ 5 ตัว จะมี 4 x 5 = 20 ขา”
    • “คำตอบคือ 20”

มาดูตัวอย่างที่ดูซับซ้อนมากขึ้นอย่าง Prompt นี้ครับ

Q : ปัจจุบันลูกค้ามี Google Workspace 3 Accounts ต่อมาลูกค้ามีการซื้อ Google Workspace เพิ่ม เพราะมีการขยายทีมเพิ่มอีก 2 ทีม ซึ่งแต่ละทีมมีสมาชิก 4 คน ลูกค้าจะมีกี่ Account ?
A :  คำตอบคือ 11 Accounts

Q : โรงคั่วกาแฟมีกาแฟในสต๊อก 20 กิโลกรัม นำมาคั่วบรรจุถุง 12 กิโลกรัม จำเป็นต้องซื้อกาแฟมาเพิ่มอีก 8 กิโลกรัม  ดังนั้นทางโรงคั่วจะมีกาแฟเหลือทั้งหมดกี่กิโลกรัม ?
A :

สังเกตว่า AI อาจจะมีการตอบผิดเนื่องจากอาจจะข้ามขั้นตอนลำดับความคิดไป ดังนั้นเราจึงใช้เทคนิค Chain of Thought เข้าช่วยดังตัวอย่าง Prompt นี้ครับ

Q : ปัจจุบันลูกค้ามี Google Workspace 3 Accounts ต่อมาลูกค้ามีการซื้อ Google Workspace เพิ่ม เพราะมีการขยายทีมเพิ่มอีก 2 ทีม ซึ่งแต่ละทีมมีสมาชิก 4 คน ลูกค้าจะมีกี่ Account ?
A :  ลูกค้ามี 3 Account มีขยายทีมเพิ่ม 2 ทีม ทีมละ 4 คน ดังนั้นขยายทีมเพิ่ม 2 x 4 = 8 คน เดิมมี 3 + 8 = 11 คำตอบคือ 11 Accounts

Q : โรงคั่วกาแฟมีกาแฟในสต๊อก 20 กิโลกรัม นำมาคั่วบรรจุถุง 12 กิโลกรัม จำเป็นต้องซื้อกาแฟมาเพิ่มอีก 8 กิโลกรัม ดังนั้นทางโรงคั่วจะมีกาแฟเหลือทั้งหมดกี่กิโลกรัม ?
A :

สังเกตว่าจะมีการคิดเป็นขั้นเป็นตอนและได้คำตอบที่ถูกต้องครับ การคิดและอธิบายออกมาในลักษณะนี้ไม่ต่างจากมนุษย์ หรือแม้กระทั่งผู้เขียนเองก็มีการพูดคนเดียวอยู่บ่อยครั้ง เพื่อย้ำกระบวนการคิด เช่น ตอนผัดข้าวผัด ก็จะมีการบอกขั้นตอนตัวเอง ว่าต้องผัดกระเทียมก่อนนะ ใส่หัวหอมสับลงไปด้วย พอเริ่มสุกหอมแล้ว ค่อยยีไข่ แล้วใส่ข้าว ใส่ซอสเป็นอันเสร็จ การพูดคนเดียวในใจแบบนี้เราเรียกว่า Internal Monologue หรือ Inner Speech เป็นหลักการที่ทำให้เกิด Chain of Thought ครับ

จริง ๆ แล้ว AI ที่เก่งกาจก็จำลองมาจากมนุษย์นี่แหละครับ ไม่ว่าจะ Deep Learning ที่ใช้ Neural Network ก็จำลองหลักการจากโครงข่ายประสาทในสมองมนุษย์ ยิ่ง AI เก่งมาก สามารถเทียบเท่ามนุษยได้เลย คือยิ่งต้องคิดยิ่งต้องเหมือนมนุษย์มากขึ้นครับ 

คราวนี้ลองมาดูตัวอย่างที่ซับซ้อนขึ้นและเราก็ใช้หลักการ Chain of Thought กัน

Q : ปัจจุบันลูกค้ามี Google Workspace 3 Accounts ต่อมาลูกค้ามีการซื้อ Google Workspace เพิ่ม เพราะมีการขยายทีมเพิ่มอีก 2 ทีม ซึ่งแต่ละทีมมีสมาชิก 4 คน ลูกค้าจะมีกี่ Account ?
A :  ลูกค้ามี 3 Account มีขยายทีมเพิ่ม 2 ทีม ทีมละ 4 คน ดังนั้นขยายทีมเพิ่ม 2 x 4 = 8 คน เดิมมี 3 + 8 = 11 คำตอบคือ 11 Accounts

Q : โรงคั่วกาแฟ kōhī kobu มีเครื่องคั่วอยู่ 3 เครื่อง มี 1 เครื่องคั่วกาแฟได้จำนวน 20 กิโลกรัม อีก 2 เครื่องคั่วได้ 5 กิโลกรัม ในวันถัดมาได้ทำการเปลี่ยนเครื่องคั่ว 5 กิโลกรัม 1 เครื่อง เป็นเครื่อง 10 กิโลกรัม ดังนั้นจะผลิตกาแฟได้วันละกี่กิโลกรัม
A :

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

Q : ปัจจุบันลูกค้ามี Google Workspace 3 Accounts ต่อมาลูกค้ามีการซื้อ Google Workspace เพิ่ม เพราะมีการขยายทีมเพิ่มอีก 2 ทีม คือทีม AI กับทีม MKT  ซึ่งแต่ละทีมมีสมาชิก 4 คน เดือนถัดมาทีม AI รับคนเพิ่มอีก 2 คนเพื่อมาทำ R&D คำถามคือเดือนถัดลูกค้าจะมีกี่ Account ?
A :  ลูกค้ามี 3 Account มีขยายทีมเพิ่ม 2 ทีม ทีมละ 4 คน ดังนั้นขยายทีมเพิ่ม 2 x 4 = 8 คน เดิมมี 3 + 8 = 11 ในเดือนถัดมา ทีม AI รับคนเพิ่ม 2 คน 11+2 คำตอบคือ 13 Accounts

Q : โรงคั่วกาแฟ kōhī kobu มีเครื่องคั่วอยู่ 3 เครื่อง มี 1 เครื่องคั่วกาแฟได้จำนวน 20 กิโลกรัม อีก 2 เครื่องคั่วได้ 5 กิโลกรัม ในวันถัดมาได้ทำการเปลี่ยนเครื่องคั่ว 5 กิโลกรัม 1 เครื่อง เป็นเครื่อง 10 กิโลกรัม ดังนั้นจะผลิตกาแฟได้วันละกี่กิโลกรัม
A :

เมื่อมีการยกตัวอย่างที่มีความครอบคลุมกับ Use-cases ที่เราจะใช้ก็ทำให้ผลลัพธ์ดีขึ้นและถูกต้อง อย่างไรก็ตามจากตัวอย่างนั้นเรามีการให้ Example ซึ่งตามหลักการก็คือ Few-shot Prompting นั่นเองที่ทำให้ AI มีลำดับความคิดมากขึ้น หากเราไม่ได้ยกตัวอย่างหรือเรียกว่า Zero-shot Prompting ก็อาจทำได้ แต่บางครั้งอาจข้ามขั้นตอนบางลำดับที่สำคัญและมีผลต่อคำตอบครับ ด้วยการคิดแบบเป็นขั้นเป็นตอนแบบนี้ AI จะสามารถแก้โจทย์ที่ซับซ้อนขึ้นได้อย่างถูกต้องมากยิ่งขึ้น และยังช่วยให้มนุษย์เราเข้าใจกระบวนการคิดของ AI ได้ดียิ่งขึ้นอีกด้วย

Chain of Thought Use-cases

เราสามารถใช้เทคนิคนี้ใน Use-cases ต่าง ๆ ได้ ไม่จำเป็นต้องเป็น Math เสมอไป ดังตัวอย่างนี้ครับ

ผลลัพธ์จาก Chain of Thought ยังใช้ได้ผลดีกับงานอื่น ๆ เช่น

  • Transforming/Enriching Data การแปลงข้อมูลต่าง ๆ
  • Interpreting Data การอธิบายข้อมูล
  • Code Generation การสร้างโค้ดและอธิบายโค้ด
  • Creating Synthetic Data การสังเคราะห์ข้อมูล

ข้อดีของ Chain of Thought

  1. ง่ายและใช้แรงน้อย เพราะเราแค่ Prompt เท่านั้น
  2. ใช้กับงานได้หลากหลายเปรียบเสมือนการพูดคุยเพื่อแก้ปัญหาต่าง ๆ
  3. สามารถใช้ตีความได้ บางครั้งที่เราต้อง Debug แต่ละ Use-cases เราอาจใช้ตัว LLM เพื่ออธิบายหรือตีความให้ Business Users หรือคนอื่น ๆ เข้าใจได้
  4. ใช้กับ LLMs ทั่วไปได้ไม่จำเป็นต้องเป็นค่ายใด ที่สำคัญคือไม่ต้อง Train หรือ Tune Model ใหม่
  5. ผลลัพธ์สุดท้ายหรือคำตอบที่ได้จาก LLMs มีความคลาดเคลื่อนแปรปรวนน้อยกว่า

แม้ว่าจะมีข้อดีมากมายแต่ก็มีข้อเสียบางประการที่ผู้เขียนอยากจะแจ้งไว้ให้ผู้อ่านรับทราบ เผื่อจะได้ตระหนักถึงเวลาจะใช้นะครับ

ข้อเสียของ Chain of Thought

  • ต้นทุนเพิ่มขึ้น : เนื่องจากการที่เรามี Prompt ที่ยาวขึ้น ทั้ง Input และ Output ทำให้ LLMs ใช้ Resources มากขึ้น ไม่ว่าจะทรัพยากรด้านเวลาหรือค่าใช้จ่าย
  • ใช้เวลานานขึ้น : เนื่องจากต้อง Interpreting หรืออธิบายเราออกมาด้วยจึงทำให้ใช้เวลาตอบนานขึ้น
  • อาจเกิดการ “หลอน” (Hallucination) : LLM อาจสร้างข้อมูลเท็จขึ้นมา

Chain of Thought Best Practices

  1. ห้ามใช้ LLMs ตัวเล็ก ๆ นะครับ ต้องอย่างน้อย 15B Parameters ซึ่งเลือกใช้ Gemini จะดีที่สุด
  2. ใส่คำตอบหลังจากอธิบายไปแล้วใน Chain of Thought ห้ามใส่ก่อนนะครับ! ประโยคจะได้เป็นเหตุผลเป็นผล
  3. ตั้งค่า Temperature เป็น 0 อย่างที่เราเคยอธิบายใน Blog ก่อน ๆ แล้วว่า การที่ค่า Temperature สูงทำให้ AI คิดสร้างสรรค์ออกนอกกรอบ ดังนั้นตั้งค่าเป็น 0 ให้ AI อยู่ในโลกความเป็นจริง
  4. ใช้ Few-Shot พยายามอย่าใช้แค่ One-Shot หรือ Zero-shot
  5. พยายามเขียนตัวอย่างที่ครอบคลุมมากที่สุด
  6. พยายามอย่าใช้สมการทางคณิตศาสตร์มาให้เหตุผลหรืออธิบายแทนการอธิบายด้วยคำพูด การอธิบายด้วยคำพูดแบบ NL (Natural Language) ให้ผลดีกว่า และอาจจะใช้สมการมาช่วยเสริมก็ได้
  7. อย่าไปกังวลที่ลำดับของแต่ละตัวอย่างใน Few-shot แต่ละแบบมากไป เพราะลำดับตัวอย่างส่งผลต่อประสิทธิภาพน้อยมาก 
  8. อย่าคาดหวังว่า Chain of Thought จะปรับปรุงผลลัพธ์ได้ดีมาก หากงานที่เราใช้มีหลักการให้เหตุผลแค่ 1-2 ขั้นตอน
  9. อย่ากังวลว่าผลลัพธ์จากคำถามกับตัวอย่างที่เราให้จะต้องมีขั้นตอนเหมือนกันเป๊ะ ๆ
  10. ให้ตัวอย่างเหมาะสมกับการกระจายตัวของข้อมูลคุณ เช่น ถ้ามีข้อมูล Class A 60% และ Class B 40% โดยให้เขียน 3 ตัวอย่างเป็น Class A และ 2 ตัวอย่างเป็น Class B และไม่จำเป็นต้องเขียน Few-shot นี้เกิน 6 ตัวอย่าง เพราะอาจจะมีแค่บางงานที่ใช้ได้ดีกับตัวอย่างเยอะ ๆ

Self-consistency คืออะไร ?

อย่างไรก็ตามเมื่อมีโอกาสที่ LLMs จะตอบผิดพลาดได้จึงต้องใช้หลักการ Self-consistency ซึ่งเป็นเทคนิคที่ใช้เพื่อปรับปรุงความแม่นยำของ Chain of Thought หลักการคือยิงคำถามนี้ให้ LLMs ตอบอย่างต่อเนื่องหลายครั้ง LLMs อาจจะมีคำตอบที่ดีหรือไม่ดี หรือตอบไม่เหมือนเดิม แต่อย่างไรก็ตามผลลัพธ์ที่ดีที่สุด หรืออาจจะถูกต้องจะเป็นผลลัพธ์ที่ LLMs ตอบซ้ำกันมากที่สุดหรือเรียกว่า Common Response หากนำมานับจะมีจำนวนมากที่สุดเมื่อเทียบกับคำตอบอื่นอย่างมีนัย

Conclusion

การ Prompt นั้นมีหลากหลายเทคนิค มีทั้งยากและง่าย ซึ่งการที่ได้ผลลัพธ์ที่ดีก็คือมนุษย์อย่างเราต้อง Breif มันนี่แหละครับ และนี่คือเทคนิค Chain of Thought ที่ผมอยากจะบอกเล่าถึงผู้อ่านทุกท่านให้เข้าใจและนำไปใช้งาน และในเรื่องถัด ๆ ไป ผมจะนำอีกเทคนิคที่ต่อยอดจาก Chain of Thought นั่นคือ ReAct Prompting ที่ไม่ใช่ Javascript Framework แต่เป็น ReAct ที่ย่อมาจาก Reasoning + Acting เป็นเทคนิคที่อาจจะยากนิดนึงแต่รับรองว่าสนุกแน่นอนครับ

และท่านใดที่ต้องการปรึกษาเรื่อง Generative AI หรืองานด้าน Analytics อื่น ๆ ก็สามารถปรึกษาผมและทีมงานผู้เชี่ยวชาญจาก Tangerine ได้ทันทีนะครับ

หากท่านสนใจบริการหรือต้องการคำปรึกษาเพิ่มเติม
ติดต่อเราได้ที่ marketing@tangerine.co.th หรือโทร 094-999-4263
ท่านจะได้รับคำตอบจากผู้เชี่ยวชาญที่ได้รับการรับรองมาตรฐาน

Get a Free Consultation
Contact Form_EN Sources (#25)