Linkup เปิดตัว SPARSEUP โมเดล Sparse Embedding ประสิทธิภาพสูง

· By: AttapolK

Linkup เปิดตัว SPARSEUP โมเดล Sparse Embedding ประสิทธิภาพสูง

ทีมวิจัย Linkup เปิดตัว SPARSEUP โมเดล learned sparse embedding แบบ open-source ที่พัฒนาบนโครงสร้างหลัก ModernBERT ขนาด 149 ล้านพารามิเตอร์ พร้อมเผยแพร่ภายใต้สัญญาอนุญาต Apache 2.0 โดย Linkup รายงานค่าเฉลี่ย nDCG@10 ที่ 56.4 บน BEIR-13 ซึ่งถือเป็น public vocabulary-based sparse encoder ที่แข็งแกร่งที่สุดในกลุ่มโมเดลที่มีพารามิเตอร์ต่ำกว่า 150 ล้านพารามิเตอร์

สำหรับผู้ที่สนใจใช้งานจริง น้ำหนักโมเดล (weights) พร้อมให้ดาวน์โหลดบน Hugging Face แล้ววันนี้ โดยสามารถโหลดผ่านไลบรารี Transformers หรือ Sentence Transformers ได้ทันทีเพียงตั้งค่า trust_remote_code=True ในการใช้งาน

ทำไมต้องเป็น Sparse Model และทำไมต้องตอนนี้

โมเดลการดึงข้อมูล (retrieval) ส่วนใหญ่ในปัจจุบันมักเป็นแบบ dense ซึ่งใช้ 1 เอนทิตีเวกเตอร์ต่อ 1 ข้อความ แต่โมเดลแบบ sparse จะส่งออกค่าน้ำหนักตามชุดคำศัพท์ (vocabulary) แทน ทำให้แต่ละมิติจับคู่กับโทเคนที่มีอยู่จริง ส่งผลให้เวกเตอร์เข้ากับ inverted indexes ได้ดี มนุษย์สามารถอ่านเข้าใจง่าย และมักจะจับคู่กับคำที่พบได้ยาก (rare words) ได้มีประสิทธิภาพกว่า

การพัฒนา SPARSEUP เกิดขึ้นเพื่อเติมเต็มส่วนที่ขาดหายไปหลังจากที่ LightOn เปิดตัว DenseOn และ LateOn โดย Linkup ใช้โครงสร้างหลักและข้อมูล fine-tuning ชุดเดียวกัน เพื่อให้นักพัฒนาสามารถเปรียบเทียบสไตล์การดึงข้อมูลทั้ง 3 รูปแบบ (Dense, Late-interaction และ Sparse) เคียงข้างกันได้อย่างชัดเจน

SPARSEUP ถูกสร้างขึ้นอย่างไร

การฝึกฝนเริ่มต้นจาก LateOn-unsupervised โดยทีมงานได้ต่อส่วนหัว MLM เดิมของ ModernBERT กลับเข้าไปและทำ fine-tuning ด้วย ชุดข้อมูลของ LightOn ผ่านการเรียนรู้แบบ contrastive ซึ่งใช้เพียง GPU H100 เครื่องเดียวในการฝึกฝน โดยมีการสุ่มตัวอย่าง hard negatives 7 ตัวจาก 50 ตัว และใช้ in-batch negatives โดยไม่ต้องพึ่งพา cross-encoder distillation เพื่อให้ได้ผลลัพธ์ที่ดีกว่าการใช้ SPLADE แบบปกติที่มักเจอปัญหาชุดคำศัพท์เต็มไปด้วย stopword ทีมงาน Linkup จึงได้ปรับปรุง 3 จุดสำคัญ ดังนี้:

  • Logit shifting: ปรับการคำนวณตัวเข้ารหัสด้วย log(1 + ReLU(x - 15)) เพื่อแก้ปัญหาค่า MLM logits ของ ModernBERT ที่สูงเกินไปจนทำให้เวกเตอร์หนาแน่นเกินในช่วงเริ่มต้น
  • Per-position top-k: จำกัดให้แต่ละโทเคนคงเหลือเฉพาะมิติคำศัพท์ที่แข็งแกร่งที่สุด 12 อันดับแรกก่อนทำ max pooling เพื่อคุมการขยายตัวของโทเคน
  • Case folding: ยุบรวมไอดีของคำที่มีความหมายเดียวกันแต่ต่างกันที่ตัวพิมพ์เล็ก-ใหญ่ เช่น heat และ Heat ให้เหลือเพียงไอดีเดียวและเลือกค่าน้ำหนักที่มากที่สุด ช่วยลดมิติของผลลัพธ์จาก 50k เหลือประมาณ 34k

ผลการทดสอบ Benchmark

เมื่อเปรียบเทียบกับ sparse encoders อื่นๆ บน BEIR-13 (ค่าเฉลี่ย nDCG@10) ตามข้อมูลใน model card พบว่า SPARSEUP ทำคะแนนได้โดดเด่นดังนี้:

โมเดลBEIR-13 เฉลี่ย
SPARSEUP56.4
granite-embedding-30m-sparse48.7
bge-free-v2-splade52.6
splade-v353.6

แม้ผลลัพธ์จะตามหลัง DenseOn และ LateOn ที่ใช้ข้อมูลชุดเดียวกันอยู่เล็กน้อย แต่ SPARSEUP ชนะในชุดทดสอบ ArguAna และ Touché รวมถึงเอาชนะ DenseOn ได้ใน HotpotQA อย่างไรก็ตาม ยังมีจุดอ่อนในชุดข้อมูลที่เน้นความหมายเชิงลึก (semantic) เช่น FiQA และ DBPedia ซึ่งเป็นประเด็นที่ต้องพัฒนาต่อไป

ความเร็วและความเบาบาง (Sparsity)

ในด้านประสิทธิภาพ SPARSEUP บน MS MARCO มีค่าเฉลี่ยคำที่ไม่เป็นศูนย์ 47 คำต่อคำค้นหา และ 190 คำต่อเอกสาร ซึ่งเมื่อใช้งานร่วมกับ Seismic inverted index สามารถบรรลุค่า recall ได้มากกว่า 97% โดยใช้เวลาเพียง 380 ไมโครวินาทีต่อการค้นหาหนึ่งครั้ง ทีมวิจัยระบุว่าแม้การเพิ่มขนาดเวกเตอร์อาจช่วยให้คะแนนสูงขึ้นได้อีกเล็กน้อย แต่พวกเขาเลือกที่จะคงความเบาบาง (sparse) เอาไว้เพื่อรักษาความเร็วในการประมวลผล

สรุปประเด็นสำคัญ

  • SPARSEUP เป็นโมเดลเปิดตัวแรกของ Linkup Research ขนาด 149 ล้านพารามิเตอร์ ภายใต้ Apache 2.0
  • ทำคะแนน nDCG@10 ได้ 56.4 บน BEIR-13 สูงที่สุดในกลุ่ม public sparse encoders ขนาดเล็ก
  • ใช้เทคนิคเฉพาะตัว 3 อย่าง: logit shift, top-12 expansion ต่อโทเคน และ case folding เพื่อเพิ่มประสิทธิภาพ
  • สามารถค้นหาข้อมูลได้แม่นยำด้วย recall สูงกว่า 97% ในเวลาเพียง 380µs เมื่อใช้ร่วมกับ Seismic index
Source: MarkTechPost
ดูแลงานแปลและเรียบเรียงโดย AttapolK

ความคิดเห็น (0)

เข้าสู่ระบบเพื่อร่วมแสดงความเห็น

สมัครสมาชิก

มาเป็นคนแรกที่แสดงความเห็นกันเลยโบร