ข้ามไปเนื้อหาหลัก
AI Mastery· ~8 นาที· อัปเดตล่าสุด

สร้าง AI-powered App (RAG เบื้องต้น)

RAG คืออะไร และทำไมองค์กรถึงต้องการทำ RAG

RAG: การสอน AI ให้รู้จักความลับองค์กร

สมมติเราอยากทำแชทบอทตอบกฎระเบียบ HR ของบริษัทเราเอง ถ้าเราถาม ChatGPT ตรงๆ มันจะมั่ว เพราะมันไม่เคยอ่านคู่มือพนักงานของเรา การทำ RAG (Retrieval-Augmented Generation: การเสริมความรู้ให้ AI จากฐานข้อมูลภายนอก) จึงเป็นกระบวนการ 3 ขั้นตอน:

สอบแบบเปิดหนังสือ (Open Book Exam)

แทนที่จะไล่ AI ไปทำข้อสอบปากเปล่าโดยอาศัยแค่ความจำ (แล้วมันก็ชอบมั่ว) RAG คือการเอา "คู่มือ" ของเราวางไว้ให้ AI เปิดอ่านเฉพาะหน้าที่เกี่ยวข้อง ก่อนที่จะตอบคำถาม

  1. Retrieve (ค้นหา): User พิมพ์คำถาม ระบบจะไปค้นหาในฐานข้อมูลเอกสารของเราว่ามีย่อหน้าไหนที่เกี่ยวกับคำถามบ้าง (ดึงมา 3 ย่อหน้า)
  2. Augment (แปะใส่ Prompt): นำคำถาม และ 3 ย่อหน้านั้น มายัดใส่รวมกันใน Prompt ส่งไปให้ LLM
  3. Generate (สร้างคำตอบ): สั่ง LLM ว่า "จงตอบคำถามนี้ โดยใช้ข้อมูลจาก 3 ย่อหน้านี้เท่านั้น"

สรุป Key Takeaways

  • RAG (Retrieval-Augmented Generation) คือการให้ AI อ่านเอกสารองค์กรก่อนตอบคำถาม
  • แก้ปัญหา AI มั่ว (Hallucination) และปัญหาความลับองค์กร (AI ตัวหลักไม่รู้ข้อมูลเรา)
  • ใช้ Vector Database เพื่อค้นหาข้อความที่ใกล้เคียงคำถาม

คำถามที่พบบ่อย

RAG ต่างจากการ fine-tune ยังไง เลือกอะไร

RAG = ให้โมเดล "เปิดหนังสือ" ค้นข้อมูลเราตอนตอบ — อัปเดตความรู้ง่ายแค่แก้เอกสาร เหมาะกับข้อมูลที่เปลี่ยนบ่อย ส่วน fine-tune = สอนพฤติกรรม/สไตล์ใหม่ลงไปในตัวโมเดล เหมาะกับการปรับ "วิธีตอบ" ไม่ใช่การเพิ่มข้อเท็จจริง — งานความรู้องค์กร 90% เริ่มที่ RAG

ทำไม RAG ยังตอบผิดทั้งที่ข้อมูลอยู่ในเอกสารแล้ว

จุดพังมักอยู่ที่ "การค้น" ไม่ใช่ตัวโมเดล — เอกสารถูกหั่น (chunk) แล้วใจความขาด, คำถามผู้ใช้ใช้คำต่างจากในเอกสารจนค้นไม่เจอ วิธีไล่: ดูว่า chunk ที่ถูกดึงมามีคำตอบไหม ถ้าไม่มีให้ปรับขนาด chunk / วิธีค้น ถ้ามีแล้วยังตอบผิดค่อยปรับ prompt

Vector database คืออะไร ต้องใช้ไหม

เป็นฐานข้อมูลที่ค้นด้วย "ความหมายใกล้เคียง" (semantic search) แทนคำตรงตัว — เป็นหัวใจของ RAG ส่วนใหญ่ แต่โปรเจกต์เล็กๆ เอกสารไม่กี่ร้อยชิ้นเริ่มจากของง่ายอย่าง pgvector บน PostgreSQL ที่มีอยู่แล้วได้ ไม่ต้องรีบเพิ่มระบบใหม่

อ่านจบแล้วอย่าลืมทำเครื่องหมาย