LLM Note 2
Data Mastery Series — Episode 47: Summarization Techniques and Advanced RAG
LLM Note 2
Data Mastery Series — Episode 47: Summarization Techniques and Advanced RAG

Connect with me and follow our journey: Linkedin, Facebook
Welcome back to the Data Mastery Series! ถ้าใครติดตามมาถึงตอนนี้ เราได้ศึกษา Basic LangChain, Basic LangGraph, หรือ LLM Note 1 กันไปแล้ว สำหรับใครที่สนใจสามารถย้อนดูได้ที่ link ด้านล่าง:
- Langchain v0.1 (Part 1–17)
- LangGraph (Part 18–19)
- LLM Note 1 (Chat Demo, Memory, Behavior Monitoring & Security Insights)
Note: Blog นี้เป็นพื้นที่ที่ผมใช้ Note เนื้อหาที่ได้เรียนรู้จากแหล่งข้อมูลต่าง ๆ เกี่ยวกับ LLM ใครอยากเรียนรู้ไปพร้อมกันในสไตล์ง่าย ๆ สามารถอ่านต่อได้เลยครับ!
1. Summarization
1.1) Demo 1: Summarization from PDF File
ใน Langchain v0.1 (Part 1–17) และ LLM Note 1 เราได้ศึกษาเกี่ยวกับการทำ One-shot Q&A ไปแล้ว ครั้งนี้เราจะต่อยอดไปที่การ Summarization เพื่อให้ได้ผลลัพธ์ดังนี้:
- Pro & Con Summarization
- 1 Paragraph Summarization
- Bullet Summarization
Demo นี้ช่วยแสดงความสำคัญของ Prompt Design และแสดงให้เห็นว่า Prompt ที่แตกต่างกันส่งผลต่อ Output อย่างไร

Figure: Example of PDF Summarization Demo
1.2) Demo 2: Long VDO Summarization
Summarization เป็นเรื่องที่ค่อนข้าง Personal ครับ แต่ละคนก็มีความชอบที่แตกต่างกันไป Demo ที่สองนี้เลยจะแสดงให้เห็นผลลัพธ์ของ Summarization 4 แบบครับ ได้แก่ 1) One Paragraph , 2) 5 Bullet, 3) Topic-Based and 4) Detail Information
ในที่นี้เน้นที่ Detail Information Summarization เพราะการสรุปเนื้อหาวิดีโอยาว ๆ ด้วย LLM เดียวอาจเจอปัญหา Token Limitation ดังนั้นต้องออกแบบ Workflow ใหม่ที่ครอบคลุมกว่า:
- Topic Extraction: ใช้ LLM ดึง Topic หลักจากวิดีโอ
- Detailed Information: ใช้ Topic เหล่านี้เพื่อสรุปเนื้อหาในแต่ละหัวข้อ

Figure: Example of Long Video Summarization Demo
Workflow นี้ช่วยให้ได้เนื้อหาที่ครบถ้วนและหลีกเลี่ยงปัญหา Token Limitation
2) Advanced RAG
(SOURCE) Advanced Retrieval Augmented Generation (RAG) คือการผสานกระบวนการดึงข้อมูล (Retrieval) และการสร้างเนื้อหา (Generation) เพื่อเพิ่มประสิทธิภาพการตอบคำถาม โดยเน้นแก้ปัญหาของระบบพื้นฐาน (Naive RAG)
2.1) RAG พื้นฐาน (Naive RAG)
Naive RAG คือขั้นตอนพื้นฐานในการทำ RAG ซึ่งมี 3 ขั้นตอนหลัก:
- Indexing: การสร้าง Vector Database โดยแปลงเอกสารเป็น “chunk” แล้วเข้ารหัสด้วยโมเดล Transformer Encoder
- Retrieval: ดึง chunk ที่มีความเกี่ยวข้องกับคำถามของผู้ใช้มากที่สุด
- Generation: ป้อน chunk ที่ได้และคำถามไปยัง LLM เพื่อสร้างคำตอบ
2.2) ปัญหาของ Naive RAG
Naive RAG มีข้อจำกัดในทุกขั้นตอน ดังนี้:
- Indexing:
- การดึงข้อมูลไม่สมบูรณ์: ไม่สามารถดึงข้อมูลจากรูปภาพ ตาราง หรือข้อมูลที่ไม่เป็นโครงสร้างในไฟล์ PDF ได้อย่างมีประสิทธิภาพ
- การแบ่ง Chunking ไม่เหมาะสม: ใช้ขนาด Chunk ที่ตายตัว หรือ “one-size-fits-all” ทำให้ Chunk อาจมีข้อมูลไม่ครบถ้วน หรือมีข้อมูลที่ซ้ำซ้อน
- โครงสร้าง Index ไม่เหมาะสม: ทำให้การค้นหาข้อมูลไม่มีประสิทธิภาพ
- ความสามารถของ Embedding Model: Embedding Model อาจยังไม่สามารถจับความหมายของข้อความได้แม่นยำ - Retrieval:
- ความเกี่ยวข้องต่ำ: Context ที่ได้จากการ Retrieve อาจไม่เกี่ยวข้องกับคำถาม หรือมีความถูกต้องต่ำ
- อัตราการ Recall ต่ำ: ทำให้พลาดข้อมูลที่เกี่ยวข้อง ทำให้ LLM ตอบได้ไม่ดี
- การตีความคำถามผิดพลาด: คำถามอาจไม่แม่นยำ หรือ Embedding Model ไม่สามารถจับความหมายของคำถามได้ ทำให้ค้นหาข้อมูลที่เกี่ยวข้องไม่ได้
- ข้อจำกัดของ Algorithm: Algorithm ที่ใช้ค้นหาอาจมีข้อจำกัด ไม่สามารถผสมผสานการค้นหาด้วย Keyword, Semantic และ Vector ได้
- ข้อมูลซ้ำซ้อน: บริบทที่ได้จากการค้นหาอาจมีข้อมูลที่ซ้ำกัน ทำให้คำตอบที่ได้มีเนื้อหาที่ซ้ำซาก - Generation:
- ข้อมูลที่ดึงมาอาจไม่เชื่อมโยงกับคำถาม ทำให้คำตอบไม่ถูกต้องหรือขาดความสมเหตุสมผล
- เสี่ยงต่อการ “hallucination” หรือการให้ข้อมูลที่ผิด
2.3) Advanced RAG
เมื่อเห็นข้อจำกัดของ Naive RAG จึงมีการพัฒนาไปสู่ Advanced RAG ที่มีความซับซ้อนมากขึ้น โดยมีคุณสมบัติหลักๆ ดังนี้:
- Advanced Retrieval Algorithm: ใช้อัลกอริทึมการค้นหาที่ซับซ้อนขึ้น เช่น Semantic Search, Contextual Understanding
- Enhanced Integration: มีการผสมผสานข้อมูลที่ได้จากการค้นหาที่ดีขึ้น โดยมีการให้ความสำคัญกับบริบท (contextual) และความเกี่ยวข้อง (relevance)
- Iterative Refinement: มีความสามารถในการปรับปรุงกระบวนการค้นหาและสร้างคำตอบแบบวนซ้ำ เพื่อให้ได้คำตอบที่แม่นยำและเกี่ยวข้องมากขึ้น
- Feedback Loop: มีการใช้ Feedback จากผู้ใช้ หรือจากกลไกการเรียนรู้ เพื่อปรับปรุงระบบอย่างต่อเนื่อง
Advanced RAG จะมีขั้นตอนการทำงานที่ซับซ้อนขึ้น โดยจะแบ่งออกเป็น 4 ส่วนหลักๆ ได้แก่:
- Pre-Retrieval Optimization: การปรับปรุงก่อนขั้นตอน retrieval เช่น การ index แบบละเอียด และการปรับ query ให้เหมาะสม
- Retrieval Optimization: การพัฒนา embedding models ที่แม่นยำและ dynamic, รวมถึงการใช้ hybrid search
- Post-Retrieval Optimization: การ re-rank เอกสารที่ดึงมา และกรองข้อมูลที่ไม่เกี่ยวข้อง
- Generation Techniques: การสร้างคำตอบที่ปรับแต่งตามความต้องการ เช่น การใช้ self-reflection mechanism และ query rewriting
✨🎯🌟 Advanced Retrieval Augmented Generation (RAG) 📝🗒️💡
เนื้อหาส่วนนี้ ผมอาจไม่เข้าใจทั้งหมด แต่ Note ไว้เผื่ออยากรู้เรื่องไหน จะได้ไปดูแบบลึกๆ ภายหลัง (แต่แค่ concept ผมว่าก็ใช้เป็น Idea ได้แล้วครับ)
📌 1) Pre-Retrieval Optimization:
1.1) PDF Parsing: PDF มักจะมีข้อมูลที่ไม่ได้อยู่ในรูปแบบข้อความธรรมดา เช่น ตาราง รูปภาพ ซึ่งต้องใช้เทคนิคเฉพาะในการดึงข้อมูลออกมาให้ได้
- Rule-based: ใช้กฎในการดึงข้อมูล แต่ไม่ค่อยยืดหยุ่น
- Deep Learning: ใช้ Object Detection และ OCR ในการระบุส่วนต่างๆ ของเอกสาร (เช่น ตาราง, รูปภาพ) แล้วดึงข้อมูลออกมา มีความแม่นยำกว่า แต่ใช้เวลาประมวลผลนานกว่า
- Multimodal LLM: ใช้ LLM ในการเข้าใจโครงสร้างและดึงข้อมูลสำคัญ
1.2) Context Enrichment: เพิ่มบริบทให้ LLM เข้าใจเนื้อหามากขึ้น โดยมีเทคนิคดังนี้:
- Sentence Window Retrieval: ดึงประโยคที่เกี่ยวข้อง แล้วเพิ่มประโยคข้างเคียงเข้าไปด้วย
- Auto-merging Retriever (Parent Document Retriever): แบ่งเอกสารเป็น Chunk เล็ก (Child Chunk) และ Chunk ใหญ่ (Parent Chunk) เวลาค้นหาจะค้นหาจาก Child Chunk ก่อน แต่ถ้าพบหลาย Child Chunk ที่มาจาก Parent Chunk เดียวกัน จะรวม Parent Chunk นั้นมาใช้
1.3) Query Rewriting: ปรับปรุงคำถามของผู้ใช้ให้ตรงกับความหมายและบริบทของเอกสารมากขึ้น
- HyDE (Hypothetical Document Embeddings): ให้ LLM สร้างเอกสารสมมติจากคำถาม แล้วนำไปค้นหาเอกสารจริง → “ความสามารถจะขึ้นกับ LLM Model”
- Rewrite-Retrieve-Read: ให้ LLM Rewrite คำถามก่อน (Query Rewriting) แล้วค่อยไปทำกระบวนการ Retrieval (การดึงข้อมูล) → “เปลี่ยนจาก Retrieve-then-Read เป็น Rewrite-Retrieve-Read”
- Step-Back Prompting: ให้ LLM คิดถึงหลักการพื้นฐานก่อน พื่อทำความเข้าใจในระดับแนวคิดที่สูงขึ้น (High-Level Concepts) และหลักการพื้นฐาน (Basic Principles) แล้วค่อยตอบคำถามเฉพาะ → “หลักการทำคือ 1) Abstraction (การตั้งคำถามกว้าง) และ 2) Reasoning (ใช้เหตุผล)”
- Query2Doc: เป็นเทคนิคหนึ่งในการปรับปรุงคำถาม (Query Rewriting) โดยขยายคำค้น (Query Expansion)(q+) โดยใช้ LLM ในการสร้างเอกสารจำลอง (Pseudo-Documents)(d’) ผ่านการตั้งคำถาม (Prompts) เพียงไม่กี่ครั้ง จากนั้นนำเอกสารจำลองเหล่านี้มารวมกับคำค้นเดิม (Original Query) โดยคั่นด้วยตัวอักษร [SEP] เพื่อสร้างคำค้นใหม่ → “
q+ = concat(q, [SEP], d’)และในปัจจุบัน LangChain และ LlamaIndex ยังไม่มีการนำเทคนิค Query2doc มาใช้งานในระบบ” - ITER-RETGEN: ทำการ Retrieval และ Generation แบบวนซ้ำ โดยใช้ผลลัพธ์จากรอบก่อนหน้ามาปรับปรุง → “ในแต่ละรอบ ระบบจะใช้คำถามเดิมและคำตอบรอบก่อนหน้า (yt-1) เพื่อปรับปรุงการดึงข้อมูล สูตรคือ
yt = M(Dyt−1 || q)โดย
-yt= ผลลัพธ์ (Generation Output) ของรอบปัจจุบัน (รอบ t)
-M= โมเดล LLM Model
-Dyt−1= ข้อมูลที่ถูกดึงมา (Retrieved Knowledge) ในรอบก่อนหน้า
-q= คำถามต้นฉบับ (Original Query)
1.4) Semantic Chunking: แบ่งเอกสารเป็น Chunk ตามความหมาย ไม่ใช่แค่ขนาด
- Embedding-based: เป็นวิธีการแบ่งเอกสารออกเป็นชิ้นๆ โดยอาศัยหลักการความคล้ายคลึงของความหมาย (Semantic Similarity) ของข้อความ
- Model-based: ใช้ Model อาทิ Naive BERT, Cross Segment Attention, SeqModel, etc. ในการแบ่ง Chunk
- LLM-based: ใช้ LLM ในการสร้าง Proposition ซึ่งเป็นหน่วยข้อมูลที่เล็กและมีความหมายชัดเจน
1.5) Data Modification: ปรับปรุงข้อมูลทั้งภายในและภายนอก เพื่อเพิ่มประสิทธิภาพในการ Retrieval
- RA-DIT: ปรับปรุง Dataset สำหรับ LLM และ Retriever ให้เหมาะสม
- RECITation-augmented gEneration (RECITE): ใช้เทคนิคการสร้างคำถาม-คำตอบแบบสังเคราะห์ (synthetic question-passage pairs) และคำแนะนำในเนื้อหา (passage hints) เพื่อเพิ่มความหลากหลายและความแม่นยำของคำตอบ
- Universal Prompt Retrieval for Improving Zero-Shot Evaluation (UPRISE): ปรับปรุงข้อมูลให้เป็นรูปแบบโครงสร้าง (structured format) และเลือก Prompt ที่เหมาะสม
- Generate rather than Retrieve (GENREAD): สร้างเอกสารจากคำถามแล้วจัดกลุ่ม (clustering) เพื่อตัดข้อมูลที่ไม่เกี่ยวข้องออก
- KnowledGPT: เพิ่มข้อมูลที่เป็นโครงสร้างและมีความหมาย (semantically rich information) ผ่านการเชื่อมโยงหน่วยข้อมูลสำคัญ (entity linking) เข้าไปในข้อมูลดิบ
1.6) Query Routing: ให้ LLM ตัดสินใจว่าจะทำอะไรต่อไป เช่น สรุป, ค้นหาข้อมูล, หรือลองหลายๆ วิธี (Multiple routes) แล้วนำผลลัพธ์มาสรุป → “ตัวอย่างเช่น Multi-Document Agents”
📌 2) Retrieval Techniques:
Fusion Retrieval / Hybrid Search: ผสมผสานการค้นหาแบบ Keyword-based (เช่น BM25) กับ Semantic Search เพื่อให้ได้ผลลัพธ์ที่ดีขึ้น โดยใช้ RRF (Reciprocal Rank Fusion) ในการจัดอันดับผลลัพธ์ → “ในบทความนี้ไม่ได้เขียนละเอียดมาก อาจต้องไปอ่านใน Langchain v0.1 (Part 1–17)”
📌 3) Post-Retrieval Techniques:
- 1️⃣ Prompt Compression:
กระบวนการ RAG มักประสบปัญหา 2 อย่างนี้คือ
- 1) Context Length (Token) Limitation
- 2) ไม่ใช่ทุกเนื้อหาที่ Retrieve มาจะมีประโยชน์ต่อการตอบ
Prompt Compression คือเทคนิคที่ช่วยลดขนาดของ prompt โดยยังคงข้อมูลที่สำคัญไว้ เพื่อเพิ่มประสิทธิภาพของ LLM และลดค่าใช้จ่ายในการประมวลผล โดย Prompt Compression สามารถแบ่งออกเป็น 4 วิธีหลัก:
- Compression ที่ใช้ Information Entropy:
🔹 Selective Context: ใช้ SLM (Small Language Model) ในลดความยาวของ context โดยกรองเฉพาะเนื้อหาที่สำคัญ ออกมาใช้
🔹 LMLingua: ใช้ Budget Controller ในการจัดสรร Compression Ratio ให้แต่ละส่วนของ Prompt และใช้ Iterative Token-level Prompt Compression (ITPC) ในการบีบอัดข้อมูลอย่างละเอียด
🔹 Instruction Tuning: ปรับปรุง SLM ที่ใช้สำหรับบีบอัด Prompt เข้าใจและสอดคล้องกับ LLM หลัก มากขึ้น
🔹 LongLLMLingua: ปรับปรุง LLMLingua ให้สามารถนำคำถามของผู้ใช้มาพิจารณาในการบีบอัดข้อมูล - Compression ที่ใช้ Soft Prompt Tuning:
🔹 AutoCompressor: ใช้ “Summary Tokens” และ “Summary Vectors” เพื่อบีบอัดข้อมูล โดยมีการ Fine-tuning Model ให้สามารถสร้างข้อความที่กระชับ
🔹 GIST ก็เป็นอีก 1 วิธี - Compression ที่ใช้ Data Distillation:
🔹 LLMLingua-2: ปรับปรุง LLMLingua โดยใช้ Data Distillation และ Token Classification
🔹 RECOMP: ใช้ Extractive (ใช้ Dual Encoder Model เพื่อเลือกเฉพาะประโยคสำคัญ) และ Abstractive Compressor (ใช้ Encoder-Decoder Model เพื่อสร้างสรุปข้อมูลใหม่) ในการบีบอัดข้อมูล - Compression ที่ใช้ Token Merging หรือ Token Pruning:
🔹 เช่น ToMe, AdapLeR
🔹 มักต้องใช้ Fine-Tuning หรือการสร้างผลลัพธ์ระหว่างการประมวลผล
Prompt Compression ช่วยให้ LLM ประมวลผลได้เร็วขึ้น ประหยัดค่าใช้จ่าย และลดขนาดข้อมูลที่ไม่จำเป็น → “LongLLMLingua และ LLMLingua-2 เป็นตัวเลือกที่นิยมใช้งานในปัจจุบัน”
- 2️⃣ Re-Ranking:
Re-ranking เหมือนการเลือกแหล่งข้อมูลที่สำคัญที่สุดจากหนังสือหลายเล่มในห้องสมุด เมื่อเราต้องทำข้อสอบแบบ open-book เราจะเลือกแหล่งข้อมูลที่ตอบคำถามได้แม่นยำที่สุดและไม่เสียเวลาค้นหามากเกินไป
Re-ranking แบ่งออกเป็น 2 ประเภทหลัก:
- Re-ranking Models: ใช้โมเดลเฉพาะที่พิจารณาความสัมพันธ์ระหว่างคำถามและเอกสารเพื่อประเมินความเกี่ยวข้อง → “โมเดล Re-ranking ที่นิยม เช่น Cohere Re-ranking Model, BGE Re-ranking Model (open-source)”
- LLM-Based Re-ranking: ใช้ LLM ในการทำ Re-ranking โดยตรง เนื่องจาก LLM สามารถเข้าใจบริบทและความหมายของคำถามและเอกสารได้ลึกซึ้ง → “ทำได้ในหลายรูปแบบเช่น 1) Fine-Tuning LLM สำหรับงาน Re-ranking, 2) Prompting LLM, 3) Data Augmentation ระหว่างการฝึกโมเดล”
🔹 ตัวอย่าง Tools เช่น “RankGPT เป็นเครื่องมือที่ใช้ LLM ในการทำ Re-ranking แบบ zero-shot โดยใช้กลยุทธ์ Sliding Window และ Permutation Generation เพื่อจัดเรียงข้อความหลายส่วนให้ตรงกับคำถาม”
การใช้โมเดล Re-ranking จะช่วยปรับปรุง Hit Rate และ Mean Reciprocal Rank (MRR) ซึ่งหมายถึงความสามารถในการดึงเนื้อหาที่ตรงกับคำถามได้ดีขึ้น
- 3️⃣ Filtering:
Filtering เป็นกระบวนการกรองข้อมูลที่ได้จากการ retrieval โดยเน้นการคัดเลือกเฉพาะข้อมูลที่มีคุณภาพ และเกี่ยวข้องกับคำถามมากที่สุด
- Chain-of-Knowledge (COK): ใช้เทคนิค Progressive Rationale Correction ซึ่งเป็นการปรับปรุงเหตุผลและข้อมูลที่ถูกดึงมาแบบ iterative
- Self-RAG: ใช้ self-reflection mechanism หรือกลไกการสะท้อนย้อนกลับ เพื่อตรวจสอบคุณภาพของข้อมูล และ ใช้ critique tokens ในการประเมินเอกสารที่ถูกดึงมา โดยพิจารณา ความเกี่ยวข้อง (relevance), การสนับสนุน (supportiveness), และประโยชน์ของข้อมูล (utility)
- Token Filtering เป็นวิธีการกรองที่เน้นการคัดเลือกข้อมูลระดับ token หรือ คำ ภายในเอกสาร ซึ่งช่วยลดปริมาณข้อมูลที่ไม่จำเป็น และทำให้การสร้างเนื้อหามีประสิทธิภาพมากขึ้น เช่น
🔹 Fusion-in-Decoder with Token Filtering (FiD-TF): ใช้วิธีการ dynamic filtering เพื่อลบ token ที่ไม่จำเป็นออก
🔹 RECOMP (Retrieve, Compress, Prepend): ใช้วิธีการ compress documents โดยสรุปข้อมูลที่สำคัญให้สั้นลง
Filtering เป็นเทคนิคสำคัญที่ช่วยให้ระบบ RAG สามารถสร้างคำตอบที่ตรงประเด็น มีคุณภาพ และคำนึงถึงข้อจำกัดของโมเดล LLM เช่น context length ได้ดียิ่งขึ้น
- 4️⃣ Self-RAG:
Self-RAG: เป็นแนวคิดที่ช่วยให้ LLM สามารถตัดสินใจได้ว่า “เมื่อใดควรดึงข้อมูลเพิ่ม และเมื่อใดควรสร้างคำตอบโดยตรง” โดยมีขั้นตอนการทำงานคือ Retrieval as needed, Parallel Generation, Evaluation and Selection → “เช่น 1) ยอดขายวันนี้เป็นเท่าไร = ต้องมีการ Retrieve แต่ถ้า 2) สรุปเนื้อหา xx ให้ที ไม่ต้อง Retrieve”
- 5️⃣ Corrective RAG (CRAG):
Corrective RAG (CRAG): ดึงข้อมูลแล้ว “ประเมินคุณภาพก่อนนำไปใช้” โดยมีการเพิ่ม Retrieval Evaluator เพื่อประเมินคุณภาพของเอกสารที่ได้จากการค้นหา โดยมี 3 กรณีคือ
- ✅ Correct → ใช้ข้อมูลที่ดึงมาได้เลย
- ❌ Incorrect → ข้อมูลไม่เกี่ยวข้อง → ใช้ Web Search ค้นหาเพิ่มเติม
- ⚠️ Ambiguous → ข้อมูลไม่เพียงพอ → ใช้ ทั้ง Web Search และ Knowledge Refinement
- 6️⃣ RAG Fusion:
RAG Fusion: กระบวนการที่ช่วยให้การดึงข้อมูลมีความแม่นยำมากขึ้นโดย สร้างคำถามหลายชุด จากคำถามหลัก เพื่อขยายขอบเขตการค้นหาข้อมูล โดยมีการทำงานดังนี้
🔹 Step 1: สร้างคำถามย่อย (Derivative Queries) จากคำถามหลัก
🔹 Step 2: ใช้ Vector Search ค้นหาเอกสาร
🔹 Step 3: ใช้ Reciprocal Rank Fusion (RRF) จัดลำดับข้อมูล
🔹 Step 4: ให้ LLM สร้างคำตอบโดยใช้ข้อมูลที่ได้จาก Fusion
📌 4) Generation Techniques:
การสร้างคำตอบ (Generation) ใน Retrieval-Augmented Generation (RAG) สามารถพัฒนาให้มีประสิทธิภาพมากขึ้นได้ผ่านสองแนวทางหลัก คือ Enhancement (การเพิ่มประสิทธิภาพ) และ Customization (การปรับแต่งเฉพาะทาง)
- 4.1) Enhancement (ปรับปรุงการสร้างคำตอบให้มีประสิทธิภาพมากขึ้น):
- 1️⃣ DSP (Demonstrate-Search-Predict): ใช้วิธี สร้างคำถามย่อยหลายชุด เพื่อค้นหาข้อมูลจากหลายแหล่ง และ ใช้เทคนิค CombSUM รวมคะแนนความน่าจะเป็นจากผลการค้นหา เพื่อสร้างคำตอบที่ครอบคลุมมากขึ้น
🔹 Demonstrate (สาธิต): ระบุคำถามหลักที่ต้องการค้นหา
🔹 Search (ค้นหา): สร้างคำถามย่อยหลายชุดเพื่อดึงข้อมูล
🔹 Predict (คาดการณ์): นำข้อมูลที่รวบรวมมาใช้สร้างคำตอบ - 2️⃣ Pluggable Reward-Driven Contextual Adapter (PRCA): ปรับปรุงบริบทที่ได้จาก Feedback ของ Generator โดยใช้ Reinforcement Learning
🔹 LLM จะได้รับรางวัลสำหรับบริบทที่ช่วยให้การสร้างคำตอบแม่นยำขึ้น
🔹 ระบบจะค่อยๆ ปรับแต่งบริบทตามผลตอบแทนที่ได้รับ - 3️⃣ Retrieve and Plug (REPLUG): นำเอกสารที่ได้จากการค้นหามาใส่ใน Input ของ LLM
🔹 ดึงเอกสารที่เกี่ยวข้องมา
🔹 ใส่ข้อมูลเข้าไปใน context ของโมเดล
🔹 ใช้กลไก ensemble เพื่อช่วยให้โมเดลเลือกข้อมูลที่ดีที่สุด - 4️⃣RECITE: สร้าง Recitation หลายครั้ง แล้วใช้ Majority Vote ในการเลือกคำตอบ
🔹 โมเดลจะสร้างคำตอบหลายชุดโดยใช้ข้อมูลที่แตกต่างกัน
🔹 ระบบจะวิเคราะห์และเลือกคำตอบที่มีความน่าเชื่อถือสูงสุด - 4.2) Customization (การปรับแต่งเฉพาะทาง):
- 1️⃣ Parametric Knowledge Guiding (PKG): สร้าง Background Knowledge จาก Pre-trained Model โดยไม่ต้องใช้ Retrieval → แนวคิดคือ “ฝังความรู้ลงไปในโมเดลโดยตรง แทนที่จะดึงข้อมูลภายนอก”
🔹 ใช้โมเดล Pre-trained ในการสร้าง “พื้นฐานความรู้”
🔹 นำข้อมูลที่เกี่ยวข้องมาผสมกับการสร้างคำตอบ - 2️⃣ Self-RAG: ใช้ Reflection Tokens ในการปรับพฤติกรรมการ Retrieval และ Generation ระบบสามารถเลือกใช้ ข้อมูลที่มีอยู่ หรือค้นหาข้อมูลเพิ่มตามสถานการณ์
🔹 ถ้าคำถามสามารถตอบได้จากบริบทที่มีอยู่ → ตอบเลย
🔹 ถ้าคำถามต้องการข้อมูลเพิ่มเติม → ดึงข้อมูลจากฐานความรู้ - 3️⃣ SUbgraph Retrieval-augmented GEneration (SURGE): ใช้ Graph-text Contrastive Learning ในการสร้างคำตอบให้สอดคล้องกับ Graph Knowledge
🔹 ค้นหาข้อมูลที่เกี่ยวข้อง
🔹 ใช้โมเดล Graph-Text Contrastive Learning เพื่อให้โมเดลเข้าใจโครงสร้างข้อมูล
🔹 สร้างคำตอบที่อ้างอิงจากโครงสร้างข้อมูลที่ถูกต้อง
2.4) Chat Engine
- แนวคิด: การสร้าง RAG ที่รองรับการสนทนา ต้องคำนึงถึง บริบทของบทสนทนา เพื่อให้สามารถตอบคำถามติดตาม (Follow-up Questions) หรืออ้างอิงบริบทก่อนหน้า (Anaphora) ได้
- เทคนิคหลักที่ใช้:
🔹 ContextChatEngine → ดึงข้อมูลที่เกี่ยวข้องกับคำถามล่าสุด แล้วส่งไปยัง LLM พร้อมกับประวัติการสนทนา
🔹 CondensePlusContextMode → สร้าง query ใหม่โดยย่อบทสนทนาเดิม แล้วใช้ข้อมูลที่ดึงมาในการสร้างคำตอบ
2.5) Agents in RAG
มีการใช้ Agents ในการจัดการการทำงานของ RAG โดย Agents จะมี Tools ต่างๆ ที่สามารถใช้งานได้ เช่น การ Search, การ Summarize, หรืออื่นๆ โดยมีการยกตัวอย่าง Multi-Document Agents ที่ซับซ้อน ซึ่งประกอบด้วย Agents ในแต่ละเอกสาร และ Top Agent ที่ทำหน้าที่ Routing คำถาม → “ข้อเสีย: อาจ ช้า และ แพง เนื่องจากมีหลายขั้นตอนที่ต้องเรียก LLM ซ้ำ 🚨”
2.6) Encoder และ LLM Fine-tuning
- Encoder fine-tuning: ปรับแต่ง embeddings เพื่อเพิ่มความแม่นยำในการค้นหา
- Ranker fine-tuning: ปรับแต่ง Cross-Encoder เพื่อให้โมเดลสามารถคัดกรองข้อมูลที่สำคัญที่สุด
- LLM fine-tuning: ปรับปรุง LLM ให้สามารถใช้ Context ได้ดีขึ้น และมีความ Faithful มากขึ้น โดยอาจใช้เทคนิคอย่าง RA-DIT (Retrieval Augmented Dual Instruction Tuning)
2.7) Evaluation
- แนวคิด:
🔹 ใช้ Framework สำหรับวัดคุณภาพของ RAG ในด้าน Relevance, Faithfulness, Context Precision, Recall
🔹 ตัวอย่าง Frameworks ที่นิยมใช้ ได้แก่ Ragas (วัด Faithfulness + Answer Relevance), LangSmith (มี Custom Evaluators และระบบ Trace Monitoring), OpenAI Cookbook - ตัวชี้วัดที่สำคัญ:
🔹 Hit Rate & Mean Reciprocal Rank (MRR) → วัดคุณภาพของการค้นหา
🔹 Faithfulness → ตรวจสอบว่าคำตอบอิงจากข้อมูลที่ถูกต้อง
🔹 FAnswer Relevance → ประเมินความเกี่ยวข้องของคำตอบ
🔥 เนื้อหาวันนี้อาจจะดูมีความซับซ้อนในหลายจุด แต่ถ้าเราค่อยๆ ศึกษาและทำความเข้าใจไปทีละขั้น จะพบว่าการนำ LLM และ RAG มาใช้งานจริงสามารถช่วยแก้ปัญหาและเพิ่มประสิทธิภาพได้อย่างมหาศาล ไม่ว่าจะเป็นด้านการปรับปรุงกระบวนการค้นหา หรือการสร้างคำตอบที่มีความแม่นยำสูง ฝากติดตาม EPISODE ถัดไปด้วยนะครับ🔥
Data Science Explore the world of data science with Donato_Story
Dashboard Discover the power of data visualization with Donato_Story
Donato_Journey Join me on my journey (Thai version)
Course_Review Discover the training courses with Donato_Story (Thai version)
Let’s Connect!
Your thoughts and feedback are invaluable. Feel free to share them in the comments or connect with me on
- Medium: medium.com/donato-story
- Facebook: web.facebook.com/DonatoStory
- Linkedin: linkedin.com/in/nattapong-thanngam
Originally published on Medium
Related
Corrective RAG
Data Mastery Series — Episode 53: RAG ที่ “คิด” ก่อน “ตอบ” และ “แก้ไข” เมื่อผิดพลาด
Hierarchical Multi-Agent Systems
Data Mastery Series — Episode 59: การสร้างระบบ AI ทีมงานด้วย Supervisor Agent กับทีมย่อย
LangGraph Introduction
Data Mastery Series — Episode 50: Next-Level Chat with Document
LLM Note 4
Data Mastery Series — Episode 49: Understanding RAG Taxonomy