เทคโนโลยีโดย milo อ่าน 7 นาทีเรียบเรียงโดยมี AI ช่วย

หยุด AI แต่งเรื่อง: เทคนิค Prompt Engineering ป้องกัน AI Hallucination

เมื่อ AI กลายเป็นผู้ช่วยคนสำคัญ สิ่งที่อันตรายที่สุดคือการที่มันแต่งเรื่องได้สมจริงจนเราหลงเชื่อ บทความนี้เราจะมาเจาะเทคนิค Prompt Engineering เพื่อป้องกัน AI Hallucination กัน

สารบัญ

วันหนึ่ง น้องเจมส์ นักพัฒนาหนุ่มที่เพิ่งเริ่มต้นใช้ ChatGPT อย่างจริงจัง นั่งอ้าปากค้างอยู่หน้าจอ เขาขอให้ AI เขียนโค้ดเชื่อมต่อ API ของบริษัทหนึ่ง ซึ่ง AI ก็ตอบกลับมาอย่างสวยงาม พร้อมคำอธิบายที่ฟังดูน่าเชื่อถือสุดๆ แต่เมื่อน้องเจมส์ก๊อปปี้โค้ดไปรันจริง มันกลับ Error ตลอดทาง เพราะไปค้นหาจริงๆ ปรากฏว่าฟังก์ชันที่ AI บอกมานั้น ไม่เคยมีอยู่ในโลกความเป็นจริงเลยสักนิด

นี่คือสถานการณ์ที่นักพัฒนาและผู้ใช้ AI หลายคนเคยเจอ และมันคือเหตุการณ์ที่เราเรียกว่า AI Hallucination ในบทความก่อนหน้า เราเคยพูดถึง AI Authority Bias หรืออาการที่เราหลงเชื่อ AI มากเกินไปเพราะมันพูดจาดูมีอำนาจและน่าเชื่อถือ วันนี้เราจะมาต่อยอดกันในระดับเทคนิค ดูว่าเราจะใช้ Prompt Engineering เพื่อป้องกันไม่ให้ AI แต่งเรื่องหลอกเราได้อย่างไร

ทำไม AI ถึงเกิดอาการ Hallucination หรือแต่งเรื่อง?

ก่อนจะไปถึงวิธีแก้ เราต้องเข้าใจก่อนว่าทำไมมันถึงเป็นแบบนี้ หลายคนเข้าใจผิดคิดว่า AI คือ Google รูปแบบใหม่ที่จะไปค้นหาข้อมูลจากฐานข้อมูลแล้วสรุปให้ฟัง แต่ความจริงแล้ว Large Language Model (LLM) อย่าง ChatGPT ไม่ได้ทำงานแบบนั้น

AI ที่เราใช้กันอยู่นั้นคือ Probability Engine หรือเครื่องจักรทำนายความน่าจะเป็น มันทำงานโดยการทายว่าคำถัดไปที่ควรจะตามมาคืออะไร จากการเรียนรู้รูปแบบของภาษาจากข้อมูลมหาศาล มันไม่ได้เข้าใจความหมายในแบบที่มนุษย์เข้าใจ และไม่ได้รู้ว่าอะไรคือความจริงหรืออะไรคือเรื่องแต่ง

เมื่อ AI ถูกถามคำถามที่มันไม่มีข้อมูลเพียงพอ หรือเป็นเรื่องที่อยู่นอกเหนือข้อมูลการฝึกฝน (Training Data) มันจะไม่ได้ตอบว่า ฉันไม่รู้ แต่มันจะทำสิ่งที่มันถูกออกแบบมาให้ทำที่สุดคือ สร้างคำตอบที่ดูสมเหตุสมผลที่สุดจากความน่าจะเป็นของคำ ซึ่งบางครั้งก็ดูสมจริงจนน่าตกใจ นี่คือต้นตอของ AI Hallucination

เทคนิคการให้บริบทและข้อจำกัดใน Prompt

เมื่อรู้ว่า AI ชอบทาย สิ่งที่เราต้องทำในฐานะนัก Prompt Engineering คือการลดพื้นที่ให้มันได้ทาย โดยการกำหนดขอบเขต (Constraints) และให้บริบท (Context) ที่ชัดเจน

1. กำหนดขอบเขตความรู้อย่างเด็ดขาด

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

2. สั่งให้ยอมแพ้ (Allow to say I don't know)

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

3. กำหนดรูปแบบคำตอบ

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

ใช้ Chain-of-Thought ให้ AI ตรวจสอบคำตอบตัวเอง

เทคนิคขั้นสูงใน Prompt Engineering ที่นักพัฒนาควรรู้คือ Chain-of-Thought (CoT) หรือการทำให้ AI คิดเป็นทอดๆ ปกติเราถามคำถามแล้วอยากได้คำตอบตรงๆ แต่สำหรับโจทย์ที่ซับซ้อน การให้ AI ตอบตรงๆ จะทำให้มันเสียโอกาสในการตรวจสอบข้อมูล

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

นอกจากนี้ยังมีเทคนิคที่เรียกว่า Self-Correction คือการให้ AI ตอบคำถามไปก่อน แล้วสั่งให้มันรับบทบาทเป็นผู้ตรวจสอบ (Reviewer) เพื่อมาจับผิดคำตอบของตัวเอง วิธีนี้จะช่วยกรอง AI Hallucination ออกไปได้ระดับหนึ่ง

ตัวอย่าง Prompt ที่คุณนำไปใช้ได้จริง

มาดูตัวอย่าง Prompt ที่นำเทคนิคข้างต้นมาผสมกัน เพื่อใช้ในการเขียนโค้ดและหาข้อมูลโดยไม่ให้ AI แต่งเรื่องกัน

Prompt สำหรับเขียนโค้ดอย่างปลอดภัย

คุณเป็น Senior Developer ที่เข้มงวดเรื่องความถูกต้องของโค้ด ฉันต้องการเขียนฟังก์ชัน [ภาษาโปรแกรม] เพื่อ [วัตถุประสงค์]

ข้อจำกัดที่ต้องปฏิบัติ:
1. ใช้เฉพาะ Library มาตรฐานหรือ Library ที่แนบมาให้เท่านั้น ห้ามเสนอ Library ที่ไม่มีอยู่จริง
2. หากคุณไม่แน่ใจว่าฟังก์ชันหรือ Method ใดๆ มีอยู่จริงหรือไม่ ให้บอกว่าไม่แน่ใจ แล้วเสนอแนวทางอื่นแทน
3. อธิบายเหตุผลในการเลือกใช้แต่ละบรรทัด (Chain-of-Thought)
4. หลังจากเขียนโค้ดเสร็จ ให้ทำหน้าที่เป็น Code Reviewer ตรวจสอบโค้ดตัวเองว่ามีจุดที่อาจเกิด Error หรือใช้ฟังก์ชันที่ไม่มีอยู่จริงหรือไม่

Prompt สำหรับสรุปข้อมูลหรือ Fact-check

ฉันจะแปะเอกสารมาให้คุณ ฉันต้องการให้คุณสรุปข้อมูลเกี่ยวกับ [หัวข้อ]

กฎการตอบ:
1. ใช้ข้อมูลเฉพาะที่อยู่ในเอกสารที่แปะมาเท่านั้น ห้ามนำความรู้จากภายนอกมาใส่เด็ดขาด
2. หากเอกสารไม่มีข้อมูลในส่วนที่ถาม ให้ตอบตรงๆ ว่า เอกสารไม่ได้ระบุข้อมูลนี้ไว้
3. ในทุกๆ สรุปที่คุณเขียน ให้ระบุเลขหน้าหรือย่อหน้าที่คุณอ้างอิงมาด้วยเสมอ
4. คิดทีละขั้นตอนว่าข้อมูลนี้อยู่ในส่วนไหนของเอกสาร ก่อนจะสรุปออกมาเป็นประโยค

Prompt สำหรับตรวจสอบคำตอบตัวเอง (Self-Correction)

ฉันมีคำถามว่า [คำถามของคุณ]

ขั้นตอนที่ 1: ให้คุณตอบคำถามนี้อย่างละเอียด
ขั้นตอนที่ 2: หลังจากตอบเสร็จ ให้คุณสลับบทบาทเป็นผู้ตรวจสอบข้อเท็จจริง (Fact-checker) ที่สงสัยในคำตอบของตัวเอง ให้คุณหาจุดที่อาจจะเป็นข้อมูลที่คาดเดา (Hallucination) และตำหนิคำตอบตัวเอง
ขั้นตอนที่ 3: นำข้อตำหนิมาแก้ไขและให้คำตอบสุดท้ายที่ผ่านการตรวจสอบแล้วเท่านั้น

สรุปและชวนคุย

AI Hallucination ไม่ใช่บั๊กที่จะหายไปในเร็ววัน ตราบใดที่ AI ยังทำงานบนพื้นฐานของการทำนายความน่าจะเป็น การแต่งเรื่องก็จะยังเป็นเงาตามตัวมันไป แต่ในฐานะผู้ใช้งาน เราสามารถใช้ Prompt Engineering เป็นเกราะกำบังเพื่อบีบให้ AI ทำงานอยู่ในกรอบที่เราควบคุมได้ ไม่ว่าจะเป็นการให้บริบทที่ชัดเจน การตั้งข้อจำกัด หรือการใช้ Chain-of-Thought เพื่อบังคับให้มันคิดก่อนตอบ

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

คุณเคยโดน AI แต่งเรื่องหลอกจนเกือบเสียหายบ้างไหม? แล้วคุณใช้วิธีไหนเช็คคำตอบของมันอยู่บ้าง มาแชร์กันในคอมเมนต์ได้เลย!

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

พบข้อมูลที่ไม่ถูกต้องหรือคลาดเคลื่อน?เข้าสู่ระบบเพื่อทักท้วง
บทความนี้เป็นอย่างไร?

ยังไม่มีความคิดเห็น — มาเป็นคนแรกกันเถอะ!