42 คะแนน โดย GN⁺ 2025-07-28 | 1 ความคิดเห็น | แชร์ทาง WhatsApp

ทำงานอยู่ที่ Weaviate ซึ่งเป็น Vector DB และได้สรุปบทเรียน 37 ข้อจากประสบการณ์การใช้งานจริง
↳ ตั้งแต่ ประโยชน์ของ BM25 และการค้นหาด้วยคีย์เวิร์ด ไปจนถึง vector search, embedding และ hybrid search

1. BM25 เป็น baseline ที่ทรงพลังสำหรับการค้นหา

  • ในทางปฏิบัติ ควรเริ่มจาก การค้นหาด้วยคีย์เวิร์ดแบบง่าย เช่น BM25 เพื่อตรวจสอบประสิทธิภาพก่อน แล้วค่อยขยายไปสู่ vector search แบบค่อยเป็นค่อยไป แทนที่จะเริ่มจากระบบที่ซับซ้อนกว่า

2. Vector search เป็นแบบประมาณค่า (Approximate) ไม่ใช่แบบแม่นยำตรงตัว (Exact)

  • สำหรับข้อมูลขนาดใหญ่ มักใช้ อัลกอริทึม nearest neighbor แบบประมาณค่า (ANN) เช่น HNSW, IVF, ScaNN เพื่อเพิ่มความเร็ว แต่ก็ต้องแลกกับความแม่นยำบางส่วน
  • การทำ vector indexing คือหัวใจสำคัญที่ทำให้ vector DB รองรับความเร็วในสเกลใหญ่ได้

3. Vector DB ไม่ได้เก็บแค่ embedding

  • ยังเก็บ ข้อมูลต้นฉบับ (เช่น ข้อความ) และ metadata ร่วมด้วย จึงรองรับการกรองด้วย metadata, การค้นหาด้วยคีย์เวิร์ด และ hybrid search ได้

4. กรณีใช้งานหลักของ vector DB ไม่ใช่ Generative AI แต่คือ ‘การค้นหา’

  • การใส่ context ให้ LLM ก็มีแก่นแท้เป็น ‘การค้นหา’ เช่นกัน และ vector DB กับ LLM เป็นคู่ที่เข้ากันได้ดีมาก

5. ต้องระบุจำนวนผลลัพธ์การค้นหาด้วยตนเอง

  • หากไม่กำหนดพารามิเตอร์ limit หรือ top_k ระบบจะเรียงและส่งคืนผลลัพธ์ทั้งหมดที่ใกล้กับ query มากที่สุด

6. Embedding มีหลายประเภท

  • นอกจาก dense vector แล้ว ยังมีฟอร์แมตของ embedding vector แบบ sparse, binary, multi-vector และอื่น ๆ อีก

7. Benchmark สำหรับเลือก embedding model

  • MTEB ครอบคลุมงาน embedding หลากหลายประเภท เช่น classification, clustering, retrieval
  • หากเน้น information retrieval โดยเฉพาะ ให้ดู BEIR

8. โมเดลส่วนใหญ่ใน MTEB รองรับภาษาอังกฤษเป็นหลัก

  • หากใช้งานหลายภาษาหรือภาษาที่ไม่ใช่อังกฤษ แนะนำให้ใช้ benchmark อย่าง MMTEB

9. ประวัติของ embedding: Static vs Contextual

  • Static embedding อย่าง Word2Vec, GloVe เป็นตัวแทนแบบคงที่ของแต่ละคำ
  • Contextual embedding อย่าง BERT จะสร้างเวกเตอร์แบบไดนามิกตามบริบท
  • Static embedding ยังมีข้อดีในสภาพแวดล้อมที่มีข้อจำกัดด้านทรัพยากร เพราะอ้างอิงได้รวดเร็ว

10. ความต่างระหว่าง sparse vector กับ sparse embedding

  • sparse vector: อาจสร้างจากวิธีเชิงสถิติอย่าง TF-IDF/BM25 หรือจาก neural method (sparse embedding, SPLADE เป็นต้น)
  • sparse embedding ทุกแบบเป็น sparse vector แต่ sparse vector ไม่ได้เป็น sparse embedding เสมอไป

11. สามารถทำ embedding ให้ข้อมูลได้หลากหลายนอกเหนือจากข้อความ

  • ข้อมูลอย่าง รูปภาพ, PDF (หลังแปลงเป็นภาพ), กราฟ ฯลฯ ก็สามารถทำ embedding เพื่อรองรับ multimodal vector search ได้

12. จำนวนมิติของ embedding กับต้นทุนการจัดเก็บ

  • เมื่อจำนวนมิติเพิ่มขึ้น ต้นทุนด้าน storage ก็เพิ่มขึ้นตาม
  • สำหรับงานง่าย ๆ เช่น “chatbot” อาจไม่จำเป็นต้องใช้โมเดลมิติสูง
  • และยังสามารถลดมิติได้ด้วย Matryoshka Representation Learning

13. บทสอน “Chat with your docs” คือ hello world ของ Generative AI

14. Embedding model ต้องถูกเรียกใช้งานซ้ำอย่างต่อเนื่อง

  • ไม่ใช่แค่ตอน ingestion ของเอกสาร แต่ยังรวมถึงตอน query, ตอนเพิ่ม/แก้ไขเอกสาร และตอนเปลี่ยน embedding model ซึ่งทุกครั้งล้วนต้อง ทำ embedding และ indexing

15. Vector similarity อาจไม่เท่ากับ relevance ที่แท้จริง

  • ประโยคที่คล้ายกัน (เช่น “วิธีซ่อมก๊อกน้ำ” กับ “ซื้อก๊อกน้ำที่ไหน”) อาจมีความเกี่ยวข้องจริงต่ำก็ได้

16. Cosine similarity กับ cosine distance ไม่เหมือนกัน

  • similarity กับ distance มีความสัมพันธ์แบบแปรผกผันกันในเชิงคณิตศาสตร์
  • ถ้าเป็นเวกเตอร์เดียวกัน similarity จะเป็น 1 และ distance จะเป็น 0

17. เมื่อทำ normalization ให้เวกเตอร์แล้ว cosine similarity จะเท่ากับ dot product

  • ถ้าเป็น normalized vector การคำนวณด้วย dot product จะมีประสิทธิภาพมากกว่า

18. R ใน RAG ไม่ได้ย่อมาจาก ‘vector search’ แต่คือ ‘retrieval’

  • วิธี retrieval ใน RAG มีได้หลากหลาย ทั้งคีย์เวิร์ด เวกเตอร์ ฟิลเตอร์ ฯลฯ

19. Vector search เป็นเพียงหนึ่งในเครื่องมือค้นหา

  • สิ่งสำคัญคือการผสานหลายวิธีเข้าด้วยกัน เช่น keyword search, filtering, reranking และแนวทางแบบ hybrid

20. การเลือกใช้ keyword/vector search ให้เหมาะสม

  • การจับคู่เชิงความหมายหรือคำพ้องเหมาะกับ vector search, คีย์เวิร์ดที่ต้องตรงเป๊ะเหมาะกับ keyword search และหากต้องการทั้งสองอย่างก็ควรใช้ hybrid search พร้อมปรับน้ำหนัก alpha

21. ความหมายของ hybrid search

  • โดยทั่วไปหมายถึงการผสาน keyword + vector แต่การผสานกับวิธีค้นหาอื่น เช่น metadata ก็เรียกว่า ‘hybrid’ ได้เช่นกัน

22. การทำ filtering ไม่ได้ช่วยเพิ่มความเร็วเสมอไป

  • เช่น อาจทำให้ connectivity ของกราฟ HNSW เสียไป หรือหากเป็น post-filtering ก็อาจไม่เหลือผลลัพธ์เลย
  • vector DB แต่ละตัวจึงมีเทคนิค optimization สำหรับเรื่องนี้ต่างกันไป

23. ประโยชน์ของ search pipeline แบบสองขั้นตอน

  • ไม่ใช่แค่ระบบแนะนำเท่านั้น แต่ในงานอย่าง RAG ก็สามารถดึง candidate ชุดแรกมาก่อน แล้วใช้ reranking ประสิทธิภาพสูงในรอบที่สองเพื่อยกระดับคุณภาพได้

24. ความต่างระหว่าง vector search กับ reranking

  • vector search คือการคืนผลลัพธ์บางส่วนจากทั้งฐานข้อมูล ส่วน reranking คือการจัดลำดับใหม่ให้กับชุดผลลัพธ์ที่ได้รับมาแล้ว

25. การเลือกขนาด chunk สำหรับทำ embedding เป็นเรื่องยาก

  • ถ้าเล็กเกินไปจะสูญเสียบริบท ถ้าใหญ่เกินไปความหมายก็จะเจือจาง
  • แม้จะสามารถเวกเตอร์ไรซ์ทั้งเอกสารด้วยวิธีอย่าง mean pooling ได้ แต่ข้อมูลอาจถูกเจือจางเช่นกัน (เปรียบเหมือนการเอาทุกเฟรมของหนังมารวมกันเป็นโปสเตอร์ใบเดียว)

26. ความต่างระหว่าง vector indexing library กับ vector DB

  • ทั้งคู่ทำงานได้รวดเร็ว แต่ vector DB ยังมีความสามารถด้านการจัดการข้อมูล เช่น durability, CRUD, filter/hybrid เป็นต้น

27. แม้ LLM จะมี context ยาวขึ้น แต่ RAG ก็ยังพัฒนาต่อไป

  • ทุกครั้งที่มี long-context LLM ออกมา มักจะมีคำพูดว่า ‘RAG ตายแล้ว’ แต่ในความเป็นจริงมันยังจำเป็นอยู่เสมอ

28. แม้ลดข้อมูลลง 97% ด้วย vector quantization ก็ยังรักษาความสามารถในการค้นหาได้

  • การใช้เทคนิคอย่าง binary quantization สามารถลด storage ได้ถึง 32 เท่า (เช่น จาก 32-bit float เหลือ 1-bit)

29. Vector search ไม่ robust ต่อการพิมพ์ผิด

  • แม้จะมี text corpus ขนาดใหญ่ ก็ไม่ได้หมายความว่าจะครอบคลุมคำสะกดผิดทุกแบบ แต่จะรองรับได้เพียงบางส่วนเท่านั้น

30. มีตัวชี้วัดสำหรับประเมินคุณภาพการค้นหาหลากหลายแบบ

  • มีทั้งตัวชี้วัดตามลำดับอันดับอย่าง NDCG@k และตัวชี้วัดพื้นฐานอย่าง Precision/Recall ซึ่งก็มีประโยชน์ตามสถานการณ์

31. ตัวอย่าง trade-off ระหว่าง Precision กับ Recall ในงานจริง

  • เช่น การคืนผลลัพธ์เพียงรายการเดียว (Precision ↑ / Recall ↓) หรือคืนผลลัพธ์ทั้งหมด (Recall ↑ / Precision ↓) เพื่ออธิบายกรณีสุดขั้ว

32. ตัวชี้วัดที่สะท้อนลำดับของผลการค้นหา

  • Precision/Recall ไม่สะท้อนลำดับ ดังนั้นจึงต้องใช้ตัวชี้วัดอย่าง MRR@k, MAP@k, NDCG@k ที่คำนึงถึงอันดับด้วย

33. อิทธิพลของ tokenizer

  • ไม่ใช่แค่ BPE เท่านั้น แต่ tokenizer ยังส่งผลต่อคุณภาพของ keyword/hybrid search ด้วย

34. Out-of-domain กับ out-of-vocabulary ไม่เหมือนกัน

  • OOV อาจแก้ได้ด้วย tokenizer ที่ฉลาด แต่ out-of-domain หมายถึง embedding นั้นแทบไม่มีความหมายในโดเมนนั้นเลย

35. ความจำเป็นของการปรับแต่ง query

  • เช่นเดียวกับ keyword search, vector search ก็ต้องอาศัยนิสัยการปรับแต่งข้อความค้นหาให้เหมาะสม

36. กระบวนทัศน์ถัดจาก vector search

  • วิวัฒนาการกำลังเดินจาก keyword search → vector search → retrieval ที่อิงกับการให้เหตุผลของ LLM

37. Information retrieval คือหนึ่งในสาขาที่ ‘ร้อนแรง’ ที่สุดในตอนนี้

  • เมื่อทำงานร่วมกับ LLM ภารกิจที่สำคัญที่สุดอย่างหนึ่งคือการค้นหา ‘ข้อมูลที่เหมาะสมที่สุด’ เพื่อส่งให้ LLM

1 ความคิดเห็น

 
mhj5730 2025-07-29

ดีจังที่ได้อ่านประเด็นชวนคิดหลายอย่างจากการทำงานกับการค้นหาแบบเวกเตอร์