จาก PDF สู่ Token: เบื้องหลังการเตรียมข้อมูลสำหรับ RAG
- chakrit00
- May 7
- 1 min read
Updated: May 10
PDF 1 ไฟล์ขนาด 50M เมื่อแปลงเป็น Tokens แล้วจะได้กี่ Tokens และ จำนวน Tokens แปลงเป็น Bytes จะได้กี่ Bytes บทความนี้มีคำตอบครับ
Token คืออะไร
Token คือหน่วยย่อยของข้อความที่โมเดลภาษาขนาดใหญ่ เช่น GPT-3.5, GPT-4 หรือ GPT-4o ใช้ในการประมวลผลข้อมูล ตัวอย่างเช่น คำว่า "ChatGPT" อาจถูกแปลงเป็น 2 Token ในโมเดลหนึ่ง แต่ในภาษาไทย เช่นคำว่า “สวัสดี” อาจถูกแยกออกเป็นหลาย Token ซึ่งจำนวน Token ที่แปลงออกมานั้นขึ้นอยู่กับลักษณะของโมเดลและการเข้ารหัสข้อความภายใน

เปรียบเทียบ Token แต่ละโมเดล
คำว่า “สวัสดี”:
- GPT-4o-mini แปลงเป็นประมาณ 5 Tokens
- GPT-3.5 และ GPT-4 แปลงเป็นประมาณ 9 Tokens
หมายความว่าแต่ละโมเดลมีการประมวลผลและแยก Token ต่างกัน ซึ่งส่งผลต่อทั้งค่าใช้จ่ายและประสิทธิภาพในการทำงานของโมเดล

ความแตกต่างระหว่าง LLM กับ Embedding Model
แม้ว่า LLM และ Embedding Model จะสามารถแปลงข้อความให้เป็น Token ได้เหมือนกัน แต่จุดประสงค์และลักษณะการใช้งานนั้นแตกต่างกัน:
- **LLM (Language Model)**: ใช้สำหรับสร้างข้อความใหม่หรือทำนายข้อความถัดไป
- **Embedding Model**: ใช้สำหรับแปลงข้อความเป็นเวกเตอร์เพื่อคำนวณความใกล้เคียง (similarity) เช่นในระบบค้นหาด้วย RAG โดยโมเดลที่นิยมใช้ ได้แก่ `text-embedding-ada-002`, `text-embedding-3-large` และ `text-embedding-3-small` ซึ่งคำว่า “สวัสดี” จะได้ 6 tokens เท่ากัน

การทดสอบ: แปลงเอกสาร PDF เป็น Token
เพื่อศึกษาประสิทธิภาพในการแปลงเอกสาร PDF เป็น Token ทีมงานได้ดำเนินการทดสอบโดยใช้รายงานประจำปีจากหน่วยงานราชการของประเทศไทยจำนวน 30 ฉบับ ซึ่งเผยแพร่ต่อสาธารณะ โดยขั้นตอนการทดสอบประกอบด้วย:
1. แปลงไฟล์ PDF เป็นข้อความในรูปแบบข้อความล้วน (Plain Text)
2. แปลงข้อความดังกล่าวให้เป็น Token ด้วยโมเดล text-embedding-ada-002
3. คำนวณขนาดข้อความ plan text ในหน่วย Byte
4. วิเคราะห์ค่าเฉลี่ยในระดับหน้าเอกสาร ทั้งด้านขนาดข้อความ (Bytes), จำนวน Token

ขั้นตอนเหล่านี้ช่วยให้สามารถประเมินได้ว่าเอกสาร PDF ส่งผลต่อจำนวน Token ที่เกิดขึ้น และมีความสัมพันธ์กับโครงสร้างเนื้อหาอย่างไร
ผลการทดสอบ
จากการแปลงเอกสาร PDF จำนวน 30 ฉบับ พบข้อมูลเชิงวิเคราะห์ที่น่าสนใจ ดังนี้:
เอกสาร PDF ขนาดประมาณ 20–50 เมกะไบต์ เมื่อแปลงเป็นข้อความล้วน (Plain Text) จะมีขนาดลดลงเหลือเฉลี่ยประมาณ 450–470 กิโลไบต์
ขนาดเฉลี่ยของข้อความต่อหน้าอยู่ที่ประมาณ 3.3 กิโลไบต์
เมื่อแปลงข้อความเป็น Token โดยใช้โมเดล text-embedding-ada-002 พบว่าในแต่ละหน้ามีจำนวน Token เฉลี่ยอยู่ระหว่าง 730–750 Token
จากการวิเคราะห์ พบว่า Token หนึ่งหน่วยมีขนาดเฉลี่ยอยู่ที่ประมาณ 4-5 ไบต์

สรุป
จากการทดสอบเบื้องต้นสามารถสรุปได้ว่า:
Token หนึ่งหน่วยมีขนาดประมาณ 4-5 Byte
โมเดลฝังความหมาย (Embedding Models) เช่น text-embedding-ada-002 ได้แสดงให้เห็นถึงความเหมาะสมในการประยุกต์ใช้งานกับเอกสารภาษาไทย โดยเฉพาะในบริบทของระบบ RAG
การแปลง PDF เป็น Token ถือเป็นขั้นตอนสำคัญก่อนนำเข้าสู่เวกเตอร์ฐานข้อมูล (Vector Database) เพื่อใช้ในการค้นหาและตอบคำถามจากเนื้อหาเอกสารอย่างแม่นยำ
Comments