- Jina AI เปิดตัว Jina Reader ในเดือนเมษายน 2024 ซึ่งเป็น API สำหรับแปลง URL ของเว็บเพจให้เป็น Markdown ที่เหมาะกับ LLM
- Jina Reader ดึงซอร์สของเว็บเพจผ่านเบราว์เซอร์ Chrome สกัดเนื้อหาหลักด้วยแพ็กเกจ Readability และแปลง HTML ที่จัดระเบียบแล้วเป็น Markdown ด้วย regex และไลบรารี Turndown
- อย่างไรก็ตาม ยังมีจุดที่ต้องปรับปรุง เช่น ตัวกรอง Readability อาจลบเนื้อหาที่ถูกต้องออกไปผิดพลาด หรือ Turndown อาจมีปัญหาในการแปลง HTML บางประเภทเป็น Markdown
- ด้วยเหตุนี้ Jina AI จึงเริ่มพิจารณาวิธีแปลง HTML เป็น Markdown แบบ end-to-end โดยใช้โมเดลภาษาขนาดเล็ก (SLM)
คุณสมบัติของ Reader-LM
- งานแปลง HTML เป็น Markdown ไม่ได้มีความสร้างสรรค์หรือซับซ้อนเท่างานทั่วไปของ LLM แต่ต้องอาศัยการคัดลอกแบบเลือกเฉพาะส่วน (selective-copy) จากอินพุตไปยังเอาต์พุตเป็นหลัก
- ดังนั้นจึงสามารถใช้งานสถาปัตยกรรมโมเดลที่ตื้นกว่าและต้องการ transformer block น้อยลงได้
- แต่ HTML จริงมีสัญญาณรบกวนมากและมีความยาวโทเคนสูง จึงจำเป็นต้องรองรับ long-context ได้ถึง 256K โทเคน
- เพื่อแก้ปัญหานี้ Jina AI ได้เปิดตัว SLM แบบ "shallow-but-wide" ได้แก่ reader-lm-0.5b และ reader-lm-1.5b โดยมีพารามิเตอร์ 494M และ 1.54B ตามลำดับ
วิธีใช้งาน Reader-LM
- สามารถทดลองใช้ reader-lm ได้บน Google Colab โดยมีโน้ตบุ๊กที่สาธิตกระบวนการแปลงเว็บไซต์ Hacker News เป็น Markdown
- สำหรับสภาพแวดล้อมเชิงพาณิชย์ แนะนำให้ใช้ GPU ประสิทธิภาพสูง โดย RTX 3090/4090 เหมาะสมกว่า T4
- Reader-LM จะพร้อมให้ใช้งานบน Azure Marketplace และ AWS SageMaker ในเร็ว ๆ นี้
- ไลเซนส์เชิงพาณิชย์คือ CC BY-NC 4.0 และหากต้องการใช้งานเชิงพาณิชย์ให้ติดต่อ Jina AI
ผลเบนช์มาร์กของ Reader-LM
- มีการประเมินเปรียบเทียบกับ LLM หลายรุ่น เช่น GPT-4o, Gemini และ LLaMA
- ใช้เมตริกอย่าง ROUGE-L, Token Error Rate (TER) และ Word Error Rate (WER)
- reader-lm-1.5b ทำผลงานดีที่สุดด้วย ROUGE-L 0.72 และ WER 1.87
- เมื่อตรวจสอบผลลัพธ์ Markdown จริงด้วยสายตา reader-lm-1.5b ก็ทำได้ดีเยี่ยมในทุกด้าน ทั้งการดึง header การดึงเนื้อหาหลัก การคงโครงสร้าง และการใช้ไวยากรณ์ Markdown
กระบวนการฝึก Reader-LM
- ใช้คู่ข้อมูล HTML และ Markdown ที่สร้างจาก Jina Reader API เป็นข้อมูลฝึก และเพิ่ม HTML สังเคราะห์บางส่วนเข้าไปด้วย
- มีการทดลองกับโมเดลหลายขนาด ตั้งแต่ 65M ถึง 3B พารามิเตอร์
- ใช้กระบวนการฝึก 2 ขั้นตอน โดยขั้นแรกฝึกกับ HTML ที่สั้นและเรียบง่ายด้วยลำดับโทเคน 32K และขั้นที่สองขยายไปฝึกถึง 128K โทเคน
- เพื่อแก้ปัญหา degeneration ที่โมเดลติดอยู่กับการวนซ้ำและลูป จึงใช้ contrastive search และเกณฑ์หยุดเมื่อเกิดการซ้ำ
- เพื่อแก้ปัญหา OOM ได้มีการทำ chunk-wise model forwarding และปรับปรุงการทำ data packing
- มีการลองแก้ปัญหาด้วยโมเดลแบบ encoder-only เช่นกัน แต่พบว่ายากที่จะมองงานนี้เป็นงานจำแนกโทเคน
บทสรุป
- Reader-LM คือ SLM แบบใหม่ที่ออกแบบมาสำหรับการดึงและทำความสะอาดข้อมูลเว็บ
- งานแปลง HTML เป็น Markdown ไม่ได้ง่ายอย่างที่คิด เพราะต้องอาศัยการรับรู้ตำแหน่ง (position-aware) และการอนุมานจากบริบท จึงต้องใช้ขนาดพารามิเตอร์ที่ค่อนข้างใหญ่
- การฝึก SLM ตั้งแต่ศูนย์เป็นเรื่องที่ยากมาก การเริ่มจากโมเดลที่ผ่านการพรีเทรนแล้วมีประสิทธิภาพกว่ามาก
- ในอนาคตยังมีพื้นที่ให้ปรับปรุงอีกมาก ทั้งการขยายความยาวบริบท การเพิ่มความเร็วในการถอดรหัส และการรองรับคำสั่งจากอินพุต
2 ความคิดเห็น
อยากทำอะไรแบบนี้ครับ
Jina AI Reader - เครื่องมือที่เปลี่ยน URL ให้เป็นอินพุตที่เหมาะกับ LLM
ผมใช้อันนี้ได้ดีอยู่เหมือนกัน แต่ก็คิดว่าถ้าทำให้เล็กลงกว่านี้แล้วฝังมาในเบราว์เซอร์เลยก็น่าจะดีนะ ฮ่า