วิธีการทำ Chunking รูปแบบต่างๆ สำหรับ RAG
Large Language Models มีข้อจำกัดเรื่องจำนวน token เพื่อแก้ไขปัญหานี้ คุณจึงต้องใช้การทำ chunking ซึ่งเป็นการแบ่งข้อความยาวๆ ออกเป็นชิ้นเล็กๆ วิธีนี้จะช่วยให้โมเดลของคุณประมวลผลข้อมูลได้โดยไม่เกิดปัญหาหน่วยความจำเต็ม
หากคุณใช้ Retrieval-Augmented Generation (RAG) การทำ chunking ถือเป็นเรื่องสำคัญมาก เพราะ RAG ช่วยให้โมเดลมีแหล่งข้อมูลอ้างอิงที่ถูกต้องเพื่อป้องกันการเกิด hallucination โดยคุณจะเปลี่ยนข้อความให้เป็นตัวเลขที่เรียกว่า embeddings และจัดเก็บไว้ใน vector database
คุณภาพของการค้นหาขึ้นอยู่กับ chunk ของคุณ หาก chunk ใหญ่เกินไปหรือเล็กเกินไป AI ก็จะไม่สามารถหาคำตอบที่ถูกต้องได้
นี่คือ 5 วิธีในการทำ chunking ข้อมูลของคุณ:
Fixed-Size Chunking วิธีนี้จะแบ่งข้อความตามจำนวนตัวอักษรที่กำหนดไว้ มีความรวดเร็วและประหยัด อย่างไรก็ตาม วิธีนี้ไม่คำนึงถึงบริบท และมักจะตัดประโยคขาดออกจากกันกลางคัน
Recursive Character Splitting นี่คือมาตรฐานของอุตสาหกรรม โดยจะใช้ลำดับชั้นของตัวคั่น เช่น การขึ้นบรรทัดใหม่และช่องว่าง เพื่อพยายามรักษาประโยคที่เกี่ยวข้องกันให้อยู่ในบล็อกเดียวกัน ควรใช้วิธีนี้กับบทความทั่วไป
Document-Specific Chunking วิธีนี้จะพิจารณาจากโครงสร้างของไฟล์ โดยใช้แท็กใน HTML หรือหัวข้อ (headers) ใน Markdown เพื่อหาขอบเขตของข้อมูล วิธีนี้จะช่วยรักษาโค้ดหรือส่วนเฉพาะเจาะจงให้คงสภาพเดิมไว้ได้
Semantic Chunking วิธีนี้จะพิจารณาจากความหมายแทนที่จะเป็นจำนวนตัวอักษร โดยจะจัดกลุ่มประโยคที่พูดถึงหัวข้อเดียวกันเข้าด้วยกัน ทำให้ได้ chunk ที่คงเนื้อหาในเรื่องเดียวกันไว้ และจำเป็นต้องใช้ embedding model ในการทำงาน
Agentic Chunking ใช้ AI agent ในการอ่านข้อความเพื่อตัดสินใจว่าจะแบ่งตรงไหน โดย agent จะตรวจสอบว่าความคิดนั้นสมบูรณ์แล้วหรือยังก่อนที่จะข้ามไปยังส่วนถัดไป วิธีนี้มีความแม่นยำที่สุด แต่ก็ช้าที่สุดและมีค่าใช้จ่ายสูงที่สุดเช่นกัน
การเปรียบเทียบแบบรวดเร็ว:
• Fixed-Size: เหมาะที่สุดสำหรับตัวต้นแบบ (prototypes) ง่ายมาก ค่าใช้จ่าย $0 • Recursive: เหมาะที่สุดสำหรับข้อความทั่วไป ง่าย ค่าใช้จ่าย $0 • Document: เหมาะที่สุดสำหรับโค้ดหรือ HTML ความยากระดับปานกลาง ค่าใช้จ่าย $0 • Semantic: เหมาะที่สุดสำหรับการวิจัยเชิงลึก ความยากระดับสูง ค่าใช้จ่ายต่ำ • Agentic: เหมาะที่สุดสำหรับงานที่ต้องการความแม่นยำสูง ความยากระดับสูงมาก ค่าใช้จ่ายสูง
การเลือกกลยุทธ์ที่เหมาะสมจะเปลี่ยนผลลัพธ์ของ AI ของคุณ ผมจะมาแบ่งปันรายละเอียดเพิ่มเติมเกี่ยวกับวิธีการเหล่านี้ในเร็วๆ นี้
Source: https://dev.to/yashbhoskar/different-chunking-methods-for-rag-j4g
Optional learning community: https://t.me/GyaanSetuAi
