← กลับหน้าหลัก
MINI-HACKATHON 3

FahMai RAG System

สร้างระบบตอบคำถามลูกค้าร้านอิเล็กทรอนิกส์ ด้วย Thai LLM ล้วนๆ

RAG system illustration

เกี่ยวกับการแข่งขัน

FahMai RAG Challenge (Level 1)

บน Kaggle

มีคนสมัคร 256 คน เข้าแข่งจริง 55 คน ส่งผลงานรวม 107 ครั้ง

โจทย์

สร้างระบบ RAG ตอบคำถาม 100 ข้อ เกี่ยวกับร้านอิเล็กทรอนิกส์ชื่อ 'ฟ้าใหม่' แต่ละข้อมี 10 ตัวเลือก (ไม่ใช่แค่ 4 แบบปกติ!)

Knowledge Base

ไฟล์ markdown ราว 40 ไฟล์ ครอบคลุมข้อมูลสินค้า นโยบายร้าน และข้อมูลทั่วไป — ทั้งหมดเป็นภาษาไทย

ข้อจำกัดสำคัญ

ห้ามใช้ GPT-4 หรือ Claude — ต้องใช้ Thai LLM เท่านั้น ไม่ว่าจะเป็น Typhoon, OpenThaiGPT, KBTG หรือ Pathumma

ความท้าทาย

Thai LLM vs GPT-4

Thai LLM ยังตามหลัง GPT-4 อยู่พอสมควร — ต้องออกแบบ pipeline ที่ช่วยเสริมจุดอ่อนตรงนี้ เช่น การใช้ multi-model voting, retrieval ที่เหมาะสม, และ prompt engineering ที่ดี

10 ตัวเลือก = ความยากขึ้น 10 เท่า

10 ตัวเลือกต่อข้อ ทำให้สุ่มตอบได้แค่ 10% — ต้องมีกลยุทธ์จริงๆ ไม่ใช่แค่โชค ดังนั้นการจัดอันดับและประเมินความเชื่อมั่นของคำตอบจึงเป็นสิ่งสำคัญ

เมื่อไหร่ควรตอบว่า "ไม่รู้"

ตัวเลือกที่ 9 (ไม่มีข้อมูลในระบบ) กับตัวเลือกที่ 10 (คำถามไม่เกี่ยวกับร้าน) — ต้องรู้ให้ได้ว่าเมื่อไหร่ควรตอบตัวเลือกเหล่านี้ แทนที่จะเดามั่ว

สถาปัตยกรรม 4 ขั้นตอน (Pipeline)

1

ขั้นที่ 1: Question Router — จัดประเภทคำถาม

ก่อนจะตอบ ผมให้ระบบวิเคราะห์ก่อนว่าคำถามนี้เกี่ยวกับอะไร — สินค้า นโยบาย ข้อมูลร้าน หรือไม่เกี่ยวกับร้านเลย? ใช้ keyword matching + TF-IDF ช่วยจัดกลุ่ม ถ้าคำถามไม่เกี่ยวกับร้านเลย ก็ตอบตัวเลือกที่ 10 ทันที ไม่ต้องเสียเวลาค้นข้อมูล

2

ขั้นที่ 2: Smart Retrieval — ค้นหาข้อมูลที่เกี่ยวข้อง

ใช้ TF-IDF ค้น knowledge base ดึงเอกสารที่ตรงกับคำถามมากที่สุด แล้ว chunk ให้พอดีกับ context window ของ Thai LLM — เพราะถ้ายัดข้อมูลมากไป model จะสับสนเอง

3

ขั้นที่ 3: Multi-model Voting + Choice Shuffling

ส่วนนี้เป็นหัวใจของ pipeline — ผมส่งคำถามให้ Thai LLM หลายตัว (Typhoon, OpenThaiGPT, KBTG) อ่านพร้อมกัน

เทคนิคสำคัญคือ Choice Shuffling: ในแต่ละรอบ ผมสลับลำดับตัวเลือก เพราะ LLM มีแนวโน้มชอบตอบตัวเลือกแรกๆ (position bias) — พอสลับแล้วโหวต ก็ลด bias ได้

4

ขั้นที่ 4: Answer Validation

ถ้าทุก model ไม่มั่นใจในคำตอบ ระบบจะกลับไปดูว่าควรตอบตัวเลือกที่ 9 (ไม่มีข้อมูล) หรือไม่ คำตอบสุดท้ายตัดสินจาก majority voting

เทคโนโลยี

Typhoon OpenThaiGPT KBTG TF-IDF Python RAG

ดาวน์โหลด Notebook

hack3-fahmai-rag-pipeline.ipynb

📥 ดาวน์โหลด