AI Chatbot พ่นข้อมูลจริงหรือหลอก? — Hallucination, RAG และสิ่งที่ HR สาย Tech หาจริงๆ

AI Chatbot ทำง่าย ใครๆก็ทำได้ — แต่ที่พ่นมา มันจริงหรือหลอก?

AI Chatbot ทำง่าย ใครๆก็ทำได้! ขอแค่คุณต่อ API เป็นก็พ่นได้แล้ว 🙂

แต่! สิ่งที่พ่นมา มันจริงหรือหลอก? ทำไมไม่มีใครบอกกัน


ปัญหาที่ไม่มีใครพูดถึง

ผมเจอบทความนึงเกี่ยวกับ HR ในสาย Tech ที่กำลังหา AI Engineer สาย LLM เขาบอกว่า:

“ส่วนใหญ่ที่เจอก็จะเอาของสำเร็จรูปมา Plug กันเป็น — และใช่ครับ ผมก็ทำแบบนั้น 😅”

สิ่งที่ตลาดหาจริงๆ ไม่ใช่คนที่เอา AI มาใช้เป็น แต่คือ คนที่เข้าใจแล้วปรับ Tune ได้

และคำที่สะกิดใจผมมากที่สุดคือ RAG


RAG คืออะไร?

RAG = Retrieval-Augmented Generation

ฟังดูซับซ้อน แต่หลักการง่ายมาก:

User ถาม → ค้นหาข้อมูลที่เกี่ยวข้อง → ยัดเข้า Prompt → AI ตอบ

พูดง่ายๆ คือ แทนที่จะให้ AI จำทุกอย่าง → ให้ AI ค้นหาก่อนแล้วค่อยตอบ

เหมือนนักเรียนที่สอบแบบ Open Book ดีกว่าให้ท่องจำทุกอย่างครับ


ทำไม RAG ถึงสำคัญ?

LLM ทุกตัวมีปัญหาเดียวกันคือ Hallucination — พูดเรื่องที่ไม่มีจริงด้วยความมั่นใจ 100%

ลองถาม ChatGPT ว่า “ยอดขายของบริษัทเราเดือนนี้เท่าไหร่?” — มันตอบได้ แต่ตอบ ผิดแน่นอน เพราะมันไม่รู้ข้อมูลภายในของคุณ

RAG แก้ปัญหานี้โดยการ ดึงข้อมูลจริงมาให้ AI ก่อนตอบ


3 ขั้นตอนของ RAG

1. Retrieval — ค้นหา

นี่คือจุดที่คนส่วนใหญ่ทำแบบง่ายๆ แล้วหยุด แต่จริงๆ มีหลายวิธี:

Keyword Search (SQL/BM25)

User: "ยอดขาย Product A เดือนมกราคม"
→ SELECT * WHERE product = 'A' AND month = 'Jan'

เร็ว แต่ต้องพิมพ์ถูกเป๊ะ ถ้าพิมพ์ผิดนิดเดียวก็ไม่เจอ

Vector Search (Semantic)

User: "สินค้าสำหรับเด็กแรกเกิด"
→ [0.2, 0.8, 0.1, ...] ← แปลงเป็น Vector
→ หาข้อมูลที่ "ความหมายใกล้เคียง"
→ เจอ: ทาล์ค, แป้ง, ครีมทาผิวเด็ก

ฉลาดกว่า แต่บางทีก็ดึงข้อมูลที่ไม่ตรงมาด้วย

Hybrid Search (Vector + SQL)

Vector หาความหมาย + SQL กรองข้อมูลแน่นอน
→ ได้ทั้ง Semantic และ Exact match

นี่คือวิธีที่ production-grade ใช้กันจริงครับ

1.5 Reranking — คัดกรองผลลัพธ์

นี่คือขั้นตอนที่คนมักข้ามไป แต่สำคัญมากครับ

ดึงมาได้ 20 ชิ้น ไม่ได้แปลว่าทุกชิ้นเกี่ยวข้อง Reranker จะให้คะแนนแต่ละชิ้นแล้วเลือกเฉพาะที่ดีที่สุด:

❌ ไม่มี Reranker:
ดึงมา 20 ชิ้น → ยัดทั้งหมดเข้า Prompt
→ Context เต็มไปด้วยขยะ → คำตอบแย่

✅ มี Reranker:
ดึงมา 20 ชิ้น → คัดเหลือ Top-3 ที่ตรงที่สุด
→ Prompt สะอาด → คำตอบดี

Flow ที่ถูกต้องจึงเป็น:

Retrieval → Reranking → Augmented → Generation
   ดึง        คัดกรอง    เสริมข้อมูล     ตอบ

2. Augmented — เสริมข้อมูล

หลังจากดึงข้อมูลได้แล้ว ต้องยัดเข้า Prompt ให้ถูกวิธี:

❌ แบบง่าย: "นี่คือข้อมูล: [ยัดทุกอย่างเข้าไป] ตอบคำถาม"

✅ แบบดี:
- เลือกเฉพาะข้อมูลที่เกี่ยวข้อง (Top-K)
- ระบุ Source ชัดเจน (ข้อมูลจาก Report ไหน?)
- บอก AI ว่าข้อมูลนี้ใช้ได้ถึงวันที่เท่าไหร่
- สั่งให้ AI ห้ามแต่งเรื่องถ้าไม่มีข้อมูล

Context Window มีขนาดจำกัด ยัดขยะเข้าไปมากเท่าไหร่ คำตอบก็แย่ลงเท่านั้น

3. Generation — สร้างคำตอบ

ขั้นตอนนี้คือส่วนที่คนเห็นมากที่สุด แต่จริงๆ ถ้า Retrieval และ Augmented ดี Generation ก็จะดีตามครับ

สิ่งที่ต้องระวัง:

  • Source Citation — ให้ AI อ้างอิงแหล่งข้อมูลเสมอ
  • Guardrails — ถ้าไม่มีข้อมูล ต้องบอกว่าไม่รู้ ไม่ใช่แต่งเอง
  • Structured Output — บังคับ JSON format เพื่อ Validate ก่อนแสดงผล

สิ่งที่ตลาดหาจริงๆ

กลับมาที่บทความ HR ที่ผมอ่าน เขาบอกว่าคนที่หายากไม่ใช่คนที่ต่อ API OpenAI เป็น แต่คือคนที่:

  1. รู้ว่าจะ Retrieve ยังไง — Raw text / JSON / Vector / Hybrid
  2. รู้ว่าจะส่ง Context ยังไง — Single view / Multiple view / Window context
  3. รู้ว่าจะ Tune Prompt ยังไง — ให้ตอบตรง มีอ้างอิง ไม่แต่งเรื่อง
  4. วัดผลได้ — มี Evaluation pipeline บอกได้ว่าดีขึ้นหรือแย่ลง

ประสบการณ์จริงจากการสร้าง Production RAG

ในระบบที่ผมสร้างอยู่ เราใช้ RAG หลายชั้น:

  • Structured RAG — ดึงข้อมูลผ่าน Tool Calling
  • Hybrid Search — Vector (Upstash) + SQL (Azure) ทำงานร่วมกัน
  • LangSmith — ติดตาม trace ทุก request พร้อม PII masking
  • Guardrails — AI ห้ามตอบถ้าไม่มีข้อมูลจริง

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


สรุป

Plug API ได้    → Junior
RAG เป็น        → Mid
Tune RAG ได้    → Senior
วัดผล RAG ได้   → คนที่ตลาดหา

AI Chatbot ทำง่ายจริงครับ แต่ Chatbot ที่ เชื่อถือได้ นั้นไม่ง่ายเลย

และความแตกต่างระหว่างสองอย่างนี้คือ RAG ที่ออกแบบมาดีนั่นเอง 🎯


Scroll to Top