นี่คือบทความบล็อกที่นำ BGE-M3 ซึ่งเป็นโมเดล embedding สำหรับงาน RAG ที่ทำภาษาเกาหลีได้ดีที่สุด มาสร้างใหม่ในรูปแบบที่รองรับการเสิร์ฟขนาดใหญ่ในสภาพแวดล้อมระดับองค์กรด้วย TensorFlow/Keras โดยก้าวข้าม Python implementation ที่ Huggingface มีให้
- รองรับการเสิร์ฟระดับองค์กร
- รองรับการประมวลผลแบบกระจายขนาดใหญ่บนสภาพแวดล้อม Hadoop-Spark ที่ใช้ Java/Scala
- สร้างเซิร์ฟเวอร์ประสิทธิภาพสูงผ่าน Kotlin/Spring Boot
- รองรับสภาพแวดล้อมโปรดักชันขนาดใหญ่ผ่าน TensorFlow Serving
- รองรับสภาพแวดล้อมมือถือ/อุปกรณ์ฝังตัวผ่าน TensorFlow Lite
- ทำโครงสร้างโมเดลให้ง่ายขึ้น
- สร้างโครงสร้างหลักด้วยเพียง Dense Layer และ LayerNorm
- ตัด dependency ที่ซับซ้อนของ Python ออก
- ได้ throughput สูงด้วยโครงสร้างที่มีน้ำหนักเบา
- จุดเด่นของการพัฒนา
- สร้าง Word/Position/Token Type embedding ด้วย Dense Layer พื้นฐาน
- ประกอบ Transformer block จำนวน 24 ชุดด้วยการคำนวณ TensorFlow ล้วน
- ปรับแต่ง Multi-Head Self-Attention ขึ้นเองเพื่อเพิ่มประสิทธิภาพ
- ตัวอย่างการใช้งานจริง
- การประมวลผล embedding แบบกระจายในสภาพแวดล้อม Hadoop ขนาดใหญ่
- Federated learning และบริการ RAG บน Spring Boot
- การอนุมานบนมือถือโดยใช้ Apple Neural Engine
- การดีพลอย TensorFlow Serving ระดับองค์กร
แนวทางการพัฒนาที่อธิบายในบทความมีจุดเด่นคือการตัดการพึ่งพา Python ออก และใช้ความสามารถเนทีฟของ TensorFlow เท่านั้น เพื่อให้ให้บริการได้อย่างเสถียรในสภาพแวดล้อมองค์กรขนาดใหญ่
4 ความคิดเห็น
https://github.com/sionic-ai/BGE-M3-Model-Converter
ได้เปิดเผยโค้ดทั้งหมดแล้ว
ตัวบทความเองไม่ได้ยากขนาดนั้น แต่โค้ดที่แนบมากับคำอธิบายยังค่อนข้างไม่สมบูรณ์อยู่บ้าง เลยคิดว่าน่าจะดีกว่านี้ถ้ามีการแชร์โค้ดทั้งหมดที่นำไปใช้ตามวิธีดังกล่าวไว้ด้วยครับ
https://github.com/sionic-ai/BGE-M3-Model-Converter
ได้เปิดเผยโค้ดทั้งหมดแล้ว
ขอบคุณครับ
คงต้องค่อย ๆ กลับมาดูอีกที ฮ่าๆ