top of page
Search

จาก Chunking สู่ Agentic: วิธีใหม่ในการแบ่งเอกสารด้วย AI

  • chakrit00
  • Apr 8
  • 4 min read

Updated: Apr 8

ในกระบวนการจัดแบ่งเอกสารแบบดั้งเดิม (Traditional Chunking) มักใช้การตัดแบ่งตามจำนวน Token หรืออักขระพิเศษ เช่น "\n\n" โดยถือว่าสัญลักษณ์เหล่านี้เป็นตัวแบ่งบริบทใหม่ (new context) ซึ่งมักจะให้ผลลัพธ์เป็น Chunk ละหนึ่งบริบท

อย่างไรก็ตาม วิธีการนี้อาจตัดบริบทออกกลางคัน ส่งผลให้ได้ข้อมูลที่ไม่สมบูรณ์ในแต่ละ Chunk และลดความแม่นยำในการดึงข้อมูลเพื่อตอบคำถาม (RAG) ดังนั้นจึงมีการพัฒนาแนวทาง Chunk Overlap เพื่อช่วยให้แต่ละ Chunk มีบริบททับซ้อนกันบางส่วน ลดความเสี่ยงของการตัดใจความสำคัญ

แม้ว่าในทางทฤษฎี การ Chunk โดยมนุษย์ยังคงเป็นวิธีที่ให้ผลลัพธ์ดีที่สุด ทั้งในด้านความสมบูรณ์ของเนื้อหาและความสามารถในการควบคุมจำนวน Chunk แต่ในทางปฏิบัติกลับไม่สามารถปรับใช้ในระดับขนาดใหญ่ได้

คำถามสำคัญจึงเกิดขึ้นว่า: หากให้โมเดลภาษาอย่าง LLM ทำหน้าที่ Chunk เอกสารแทนมนุษย์ ด้วยกระบวนการที่มีโครงสร้างและความเข้าใจเนื้อหา จะสามารถสร้าง Chunk ที่มีคุณภาพใกล้เคียงหรือดีกว่าเดิมได้หรือไม่?


Agentic คืออะไร?


คำว่า “Agentic” มาจากแนวคิดของระบบที่ขับเคลื่อนด้วยตัวแทน (Agent) ซึ่งสามารถตัดสินใจและดำเนินการได้อย่างเป็นอิสระโดยอิงจากเป้าหมายและสภาพแวดล้อมที่กำหนด โดยทั่วไป Agentic System จะประกอบด้วยความสามารถในการรับรู้ (perception), การวางแผน (planning), การตัดสินใจ (decision making) และการลงมือทำ (action execution)

ในบริบทของเอกสารนี้ “Agentic” หมายถึงการออกแบบระบบที่ให้ LLM (Large Language Model) ทำหน้าที่เสมือน Agent ในการจัดการเอกสาร เช่น การแบ่งเอกสารเป็นตอน ๆ (Chunking), การสร้างสารบัญ, การตรวจสอบคุณภาพ ฯลฯ โดยไม่ต้องอาศัยการกำหนดล่วงหน้าแบบแข็งตัว (rule-based)

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


Agentic Chunk คืออะไร?


Agentic Chunk คือการประยุกต์ใช้ระบบ Agentic ให้ทำหน้าที่ Chunk เอกสารแทนมนุษย์ โดยกำหนดขั้นตอนที่มีโครงสร้างชัดเจนและสามารถวนซ้ำปรับปรุงได้จนได้ Chunk ที่สมบูรณ์แบบ เราได้ออกแบบใน Version แรก ประกอบด้วยขั้นตอนดังนี้:



Flow Diagram Agentic Chunk
Flow Diagram Agentic Chunk

ขั้นตอนการทำงานของ Agentic Chunk (Flow Summary)

ขั้นตอน

ชื่อขั้นตอน

คำอธิบาย

1

__start__

เริ่มต้นกระบวนการ

2

process_document

เตรียมเอกสาร ทำการอ่านเนื้อหาทั้งหมดของเอกสาร

3

create_table_of_contents

สร้างสารบัญเพื่อเข้าใจโครงสร้างเนื้อหา

4

analyze_chunk_number

วิเคราะห์จำนวน chunk ที่เหมาะสมตามบริบท

5

count_chunks

ตรวจสอบจำนวน chunk ที่คาดว่าจะได้

6

process_chunks

แบ่งเนื้อหาเป็น chunk ตามโครงสร้างที่วิเคราะห์ไว้

7

validate_chunk_completeness

ตรวจสอบความสมบูรณ์ของแต่ละ chunk

8

process_next_chunks

จัดการ chunk ถัดไป หากยังไม่สมบูรณ์ หรือยังไม่ครบ

9

__end__

จบกระบวนการเมื่อได้ชุด chunk ที่สมบูรณ์ครบถ้วน



ตัวอย่างข้อมูลและผลการ Chunk


เราได้นำข้อมูล พรบ. คอมพิวเตอร์ ซึ่งเป็น pdf ได้แปลงเป็นข้อมูลขนาดประมาณ 20,000 Tokens จากเว็บ ราชกิจจานุเบกษา https://www.ratchakitcha.soc.go.th/DATA/PDF/2560/A/010/24.PDF

ทำการแปลงเป็น text และนำเข้ากระบวนการ Agentic Chunk และนี้คือตัวอย่างการ table of contents ที่ AI ได้ทำการ Generate ขึ้น

# สารบัญ
## 1. ข้อมูลทั่วไปของเอกสาร
- **ชื่อเอกสาร**: พระราชบัญญัติว่าด้วยการกระทําความผิดเกี่ยวกับคอมพิวเตอร์ (ฉบับที่ 2) พ.ศ. 2560
- **วันที่และข้อมูลการจัดทำ**: 24 มกราคม 2560
- **ผู้จัดทำหรือผู้รับผิดชอบ**: พลเอก ประยุทธ์ จันทร์โอชา (นายกรัฐมนตรี)
## 2. เนื้อหาของเอกสาร
### 2.1 มาตรา 1 - 2
- **มาตรา 1**: ชื่อพระราชบัญญัติ
- **มาตรา 2**: วันบังคับใช้
### 2.2 มาตรา 3 - 4
- **มาตรา 3**: ยกเลิกมาตรา 4 แห่งพระราชบัญญัติ พ.ศ. 2550
- **มาตรา 4**: เพิ่มความในมาตรา 11
### 2.3 มาตรา 5 - 6
- **มาตรา 5**: ยกเลิกมาตรา 12 แห่งพระราชบัญญัติ พ.ศ. 2550
- **มาตรา 6**: เพิ่มมาตรา 12/1
### 2.4 มาตรา 7 - 8
- **มาตรา 7**: เพิ่มความในมาตรา 13
- **มาตรา 8**: ยกเลิกมาตรา 14 แห่งพระราชบัญญัติ พ.ศ. 2550
### 2.5 มาตรา 9 - 10
- **มาตรา 9**: ยกเลิกมาตรา 15 แห่งพระราชบัญญัติ พ.ศ. 2550
- **มาตรา 10**: ยกเลิกมาตรา 16 แห่งพระราชบัญญัติ พ.ศ. 2550
### 2.6 มาตรา 11 - 12
- **มาตรา 11**: เพิ่มมาตรา 16/1 และ 16/2
- **มาตรา 12**: เพิ่มมาตรา 17/1
### 2.7 มาตรา 13 - 14
- **มาตรา 13**: ยกเลิกมาตรา 18 และ 19
- **มาตรา 14**: ยกเลิกมาตรา 20 แห่งพระราชบัญญัติ พ.ศ. 2550
### 2.8 มาตรา 15 - 16
- **มาตรา 15**: ยกเลิกวรรคสองของมาตรา 21
- **มาตรา 16**: ยกเลิกมาตรา 22 - 25 แห่งพระราชบัญญัติ พ.ศ. 2550
### 2.9 มาตรา 17 - 18
- **มาตรา 17**: ยกเลิกวรรคหนึ่งของมาตรา 26
- **มาตรา 18**: เพิ่มความในมาตรา 28
### 2.10 มาตรา 19 - 20
- **มาตรา 19**: เพิ่มมาตรา 31
- **มาตรา 20**: ระเบียบหรือประกาศที่ใช้บังคับ
### 2.11 มาตรา 21
- **มาตรา 21**: ผู้รักษาการตามพระราชบัญญัติ
### 2.12 หมายเหตุ
- **หมายเหตุ**: เหตุผลในการประกาศใช้พระราชบัญญัติฉบับนี้

จากตัวอย่างการทดลองจะเห็นว่า Agentic Chunking สามารถสร้าง "สารบัญ" ของเอกสารได้อย่างเป็นระบบและเข้าใจง่าย แสดงให้เห็นถึงความสามารถของ LLM ในการเข้าใจโครงสร้างเอกสาร หลังจากนั้น AI จะนำ ข้อมูลนี้เพื่อประเมินจำนวน Chunk ต่อไป


### วิเคราะห์เนื้อหา
เอกสารที่ให้มามีทั้งหมด 34 หน้า โดยประมาณการว่าแต่ละหน้ามีประมาณ 300-400 tokens (ขึ้นอยู่กับความหนาแน่นของเนื้อหา) ดังนั้น:
- **จำนวนหน้า**: 34 หน้า
- **ประมาณการ tokens ต่อหน้า**: 350 tokens (เฉลี่ย)
- **ประมาณการรวมทั้งหมด**: 34 หน้า × 350 tokens = 11,900 tokens

### ประเมินจำนวน Chunks
ตามข้อกำหนดว่าแต่ละ chunk ควรมีขนาดระหว่าง 512-1024 tokens:
- **จำนวน chunks ที่คาดการณ์**: 
- 11,900 tokens ÷ 1024 tokens ≈ 11.6 chunks
- ดังนั้นจะต้องมีประมาณ 12 chunks

### แบ่งส่วนย่อยๆ ให้สอดคล้องกับ TOC
จากสารบัญ (Table of Contents) ที่ให้มา มีหัวข้อหลักและหัวข้อย่อยที่ต้องพิจารณา:
1. **ข้อมูลทั่วไปของเอกสาร** (ประมาณ 1 chunk)
2. **เนื้อหาของเอกสาร** (มีหลายมาตรา)
   - มาตรา 1 - ชื่อพระราชบัญญัติ (ประมาณ 1 chunk)
   - มาตรา 2 - การบังคับใช้ (ประมาณ 1 chunk)
   - มาตรา 3 - การยกเลิกมาตรา 4 (ประมาณ 1 chunk)
   - มาตรา 4 - การเพิ่มความในมาตรา 11 (ประมาณ 1 chunk)
   - มาตรา 5 - การยกเลิกมาตรา 12 (ประมาณ 1 chunk)
   - มาตรา 6 - การเพิ่มมาตรา 12/1 (ประมาณ 1 chunk)
   - มาตรา 7 - การเพิ่มความในมาตรา 13 (ประมาณ 1 chunk)
   - มาตรา 8 - การยกเลิกมาตรา 14 (ประมาณ 1 chunk)
   - มาตรา 9 - การยกเลิกมาตรา 15 (ประมาณ 1 chunk)
   - มาตรา 10 - การยกเลิกมาตรา 16 (ประมาณ 1 chunk)
   - มาตรา 11 - การเพิ่มมาตรา 16/1 และ 16/2 (ประมาณ 1 chunk)
   - มาตรา 12 - การเพิ่มมาตรา 17/1 (ประมาณ 1 chunk)
   - มาตรา 13 - การยกเลิกมาตรา 18 และ 19 (ประมาณ 1 chunk)
   - มาตรา 14 - การยกเลิกมาตรา 20 (ประมาณ 1 chunk)
   - มาตรา 15 - การยกเลิกมาตรา 21 (ประมาณ 1 chunk)
   - มาตรา 16 - การยกเลิกมาตรา 22-25 (ประมาณ 1 chunk)
   - มาตรา 17 - การยกเลิกมาตรา 26 (ประมาณ 1 chunk)
   - มาตรา 18 - การเพิ่มความในมาตรา 28 (ประมาณ 1 chunk)
   - มาตรา 19 - การเพิ่มมาตรา 31 (ประมาณ 1 chunk)
   - มาตรา 20 - การบังคับใช้ระเบียบหรือประกาศ (ประมาณ 1 chunk)
   - มาตรา 21 - การรักษาการของรัฐมนตรี (ประมาณ 1 chunk)
   - หมายเหตุ (ประมาณ 1 chunk)

### ประเมินและสรุปผลการวิเคราะห์
- **จำนวน chunks ที่แนะนำ**: 12-20 chunks
- **การจัดกลุ่ม**: ควรจัดกลุ่มตามหัวข้อในสารบัญ โดยแต่ละ chunk ควรมีความสมบูรณ์และไม่ข้ามหัวข้อใดหัวข้อหนึ่ง
- **ความซ้ำซ้อน**: ควรมีความซ้ำซ้อนของข้อมูลระหว่าง chunks เล็กน้อยเพื่อให้สามารถใช้ใน RAG ได้อย่างมีประสิทธิภาพ

### สรุป
การแบ่ง chunks ควรทำตามหัวข้อในสารบัญ โดยแต่ละ chunk ควรมีขนาดระหว่าง 512-1024 tokens และรักษาความสมบูรณ์ของเนื้อหาในแต่ละ chunk เพื่อให้สามารถใช้งานได้อย่างมีประสิทธิภาพใน RAG.



จากเนื้อหาด้านบนคือผลการวิเคราะห์จำนวน Chunk ของ AI และ Chunk แต่ละ Chunk ที่ AI สร้างดังรูปต่อไปนี้



ผลการ Split Chunk โดยใช้ Technique Agentic Chunk
ผลการ Split Chunk โดยใช้ Technique Agentic Chunk

จากภาพด้านบน จะเห็นได้ว่าผลลัพธ์จาก Agentic Chunking สามารถแบ่งเนื้อหาได้ตรงตามมาตราในพระราชบัญญัติอย่างชัดเจน โดยแต่ละ Chunk ครอบคลุมหัวข้อที่สมบูรณ์ เช่น มาตรา 3, มาตรา 4, มาตรา 5, และมาตรา 6 เป็นต้น


ที่สำคัญคือเนื้อหาในแต่ละ Chunk ไม่ถูกตัดขาดกลางบริบท ซึ่งเป็นข้อเสียที่มักเกิดขึ้นกับการ Chunk แบบเดิมโดยใช้ token-based หรือการแบ่งตามความยาวคงที่


ด้วยความสามารถในการจับหัวข้อและขอบเขตของมาตราต่าง ๆ อย่างถูกต้อง แสดงให้เห็นว่า Agentic Chunk ไม่เพียงแต่เข้าใจข้อความในเชิงไวยากรณ์เท่านั้น แต่ยังสามารถเข้าใจ "โครงสร้างทางกฎหมาย" ซึ่งมีความสำคัญอย่างยิ่งต่อการนำไปใช้งานในระบบ RAG หรือ Legal QA


ข้อมูลเมตาอัตโนมัติจาก Agentic Chunk


นอกจากการแบ่งเนื้อหาอย่างมีประสิทธิภาพแล้ว Agentic Chunk ยังสามารถสร้างข้อมูลเมตา (Metadata) ประกอบแต่ละ Chunk ได้โดยอัตโนมัติ ซึ่งช่วยให้สามารถจัดการและใช้งานเอกสารในบริบทของระบบ RAG หรือการจัดเก็บเชิงโครงสร้างได้อย่างมีประสิทธิภาพมากขึ้น เช่น:

---
document: พระราชบัญญัติว่าด้วยการกระทําความผิดเกี่ยวกับคอมพิวเตอร์ (ฉบับที่ 2) พ.ศ. 2560
version: 1.0
chunk: 19/22
section: 2.18
related_chunks: [18, 20]
---

ข้อมูลเมตาเหล่านี้สามารถนำไปใช้เพื่อระบุตำแหน่งเนื้อหา, เชื่อมโยงบริบทที่เกี่ยวข้อง (Graph RAG), และติดตามเวอร์ชันเอกสารได้อย่างเป็นระบบ


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


Evaluation Results


หลังจากได้ทำการ Chunk และ Embedding ด้วย text-embedding-ada-002 เราได้ทำการประเมินผลด้วย MLFlow โดยใช้ชุดคำถามจำนวน 15 คำถาม พร้อมให้คะแนนคำตอบในช่วง 0–5 คะแนน และเปรียบเทียบผลลัพธ์จากการ Chunk ด้วยวิธีเดิมและ Agentic Chunk โดยใช้ Gpt-4o-mini เป็นคนตอบคำถาม แนวทางการประเมินสามารถอ่านได้จากบทความนี้ กระประเมินประสิทธิภาพของโมเดลในการตอบคำถามด้วนระบบ RAG


ผลการประเมินเปรียบเทียบระหว่าง Chunk แบบปรกติ และ Agentic Chunk โดยใช้ gpt-4o-mini ตอบคำถาม
ผลการประเมินเปรียบเทียบระหว่าง Chunk แบบปรกติ และ Agentic Chunk โดยใช้ gpt-4o-mini ตอบคำถาม


ผลลัพธ์ที่ได้แสดงให้เห็นว่าแม้ว่าวิธี RAG แบบดั้งเดิมจะสามารถทำคะแนนได้ดีถึงระดับ 80% แต่เมื่อเปรียบเทียบกับ Agentic Chunk V2 แล้ว พบว่าการ Chunk ด้วย AI ให้ผลลัพธ์ที่แม่นยำยิ่งขึ้น โดยมีคะแนนรวมสูงกว่าในเกือบทุกคำถาม สะท้อนถึงคุณภาพของบริบทที่ถูกจัดการโดย Agentic ได้ดีกว่า



GPT-4o-mini

  • Standard Chunking Accuracy: 80.00%

  • Agentic Chunk V2 Accuracy: 86.67%


เมื่อเราทดสอบคำตอบที่ได้จาก gpt-4o-mini แล้ว พบว่า Agentic Chunk สามารถให้ผลลัพธ์ที่แม่นยำและสม่ำเสมอกว่าวิธีการ Chunk แบบดั้งเดิมอย่างชัดเจน เพื่อยืนยันความน่าเชื่อถือของผลลัพธ์นี้ เราจึงดำเนินการทดสอบซ้ำกับโมเดลอื่น คือ Sailor2 8B ซึ่งเป็นโมเดลที่มีศักยภาพใกล้เคียงระดับ SOTA


ผลการประเมินเปรียบเทียบระหว่าง Chunk แบบปรกติ และ Agentic Chunk โดยใช้ sailor2-8b ตอบคำถาม
ผลการประเมินเปรียบเทียบระหว่าง Chunk แบบปรกติ และ Agentic Chunk โดยใช้ sailor2-8b ตอบคำถาม

ผลการประเมินจาก Sailor2 8B ยังคงสอดคล้องกับ GPT-4o-mini โดยแสดงให้เห็นว่าการใช้ Agentic Chunk ช่วยให้ได้คำตอบที่มีคุณภาพสูงขึ้น แม้ว่าการใช้ RAG แบบปรกติจะให้ความแม่นยำในระดับที่น่าพอใจแล้วก็ตาม (เกิน 78%) แต่ Agentic Chunk ก็สามารถยกระดับคุณภาพของคำตอบได้เพิ่มเติมอย่างต่อเนื่องในหลายคำถาม 


Sailor2 8B

  • Standard Chunking Accuracy: 78.67%

  • Agentic Chunk V2 Accuracy: 85.33%


กราฟแสดงการเปรียบเทียบความแม่นยำ (Accuracy) ระหว่าง Traditional Chunking และ Agentic Chunk V2 บนโมเดล GPT-4o-mini และ Sailor2 8B ซึ่งแสดงให้เห็นว่า Agentic Chunk V2 มีประสิทธิภาพสูงกว่าวิธีดั้งเดิมในทุกกรณี
กราฟแสดงการเปรียบเทียบความแม่นยำ (Accuracy) ระหว่าง Traditional Chunking และ Agentic Chunk V2 บนโมเดล GPT-4o-mini และ Sailor2 8B ซึ่งแสดงให้เห็นว่า Agentic Chunk V2 มีประสิทธิภาพสูงกว่าวิธีดั้งเดิมในทุกกรณี

จากผลการประเมินจะเห็นว่า Agentic Chunk ให้ผลลัพธ์ที่ดีกว่าในทั้งสองโมเดล โดยเฉพาะในด้านความสม่ำเสมอของคะแนน และลดความเสี่ยงในการตอบคำถามผิดพลาด

Model

Standard Chunking

Agentic Chunk

GPT-4o-mini

80.00%

86.67%

Sailor2 8B

78.67%

85.33%


ข้อเสียของ Agentic Chunk


แม้ว่า Agentic Chunking จะมีข้อดีหลายประการในแง่ของความแม่นยำและความเข้าใจบริบทของเอกสาร แต่ก็ยังมีข้อจำกัดและความท้าทายที่ควรพิจารณา ได้แก่:


ประเด็น

รายละเอียด

แนวทางแก้ไข

ใช้ทรัพยากรสูง

ต้องใช้พลังประมวลผลมากกว่าวิธีเดิม

ทำงานแบบ Batch แทน Realtime หรือใช้ Local LLM

ความแปรปรวนของผลลัพธ์

ผลลัพธ์อาจไม่คงที่ในแต่ละครั้ง

ปรับ temperature/seed และมี fallback mechanism

ไม่เหมาะกับบางเอกสาร

เช่น บันทึกหรือบทสนทนาไม่มีโครงสร้าง

เลือกกระบวนการ Chunk ให้เหมาะสมกับเอกสาร เช่น Softnix GenAI รองรับการ Chunk หลายรูปแบบ

ต้องตรวจสอบภายหลัง

ต้องตรวจสอบว่า Chunk สมบูรณ์หรือไม่

ใช้ระบบที่รองรับ manual edit เช่น Softnix GenAI


Conclusion


การ Chunk เอกสารด้วยวิธีแบบ Agentic ช่วยให้ LLM เข้าใจและตีความเนื้อหาได้อย่างมีประสิทธิภาพมากขึ้น โดยเฉพาะเมื่อเอกสารมีความซับซ้อนหรือมีโครงสร้างที่ไม่สม่ำเสมอ การใช้ LLM ช่วยแบ่ง Chunk แทนมนุษย์เป็นแนวทางที่สามารถเพิ่มความแม่นยำในการตอบคำถามได้ถึง 6–7% เมื่อเทียบกับ baseline


การผสาน Agentic Chunking เข้ากับกระบวนการ Retrieval-Augmented Generation (RAG) จึงเป็นแนวทางที่เหมาะสมและสามารถขยายขนาดได้ดี โดยเฉพาะในระบบที่ต้องอาศัยการเข้าใจเนื้อหาลึก เช่น Document QA, Legal AI, หรือระบบสนับสนุนการตัดสินใจจากเอกสารเชิงเทคนิค




 
 
 

Comments

Rated 0 out of 5 stars.
No ratings yet

Add a rating
bottom of page