Article
Multi-Vector Embedding Modelle trainieren mit Sentence Transformers v6.0
Sentence Transformers v6.0 führt mit MultiVectorEncoder einen vierten Modelltyp ein - für ColBERT-style Late-Interaction-Retrieval. Tom Aarsen hat dazu einen umfassenden Blogpost veröffentlicht, der zeigt, wie man solche Modelle finetuned oder von Grund auf trainiert.
Was sind Multi-Vector Modelle?
Während Dense Embeddings einen ganzen Text in einen einzigen Vektor komprimieren, behalten Multi-Vector Modelle einen kleinen Vektor pro Token. Die Ähnlichkeit wird über den MaxSim-Operator berechnet: Jedes Query-Token findet sein bestes passendes Dokument-Token, und alle Scores werden summiert. Diese Token-Level-Matching erfasst feingranulare Signale, die ein einzelner Vektor wegmittelt - auf Kosten eines größeren Index.
Warum Finetuning sich lohnt
Die meisten fertigen Retrieval-Modelle sind auf kurze Passagen trainiert (180-512 Token). Längere Dokumente werden stillschweigend abgeschnitten. Aarsen misst auf seinem medizinischen Eval-Datensatz mit durchschnittlich 941 Token pro Passage, dass diese Trunkierung bis zu 0.24 NDCG@10 kostet - mehr als architektonische Unterschiede zwischen Modellen.
Beim eigenen Training konfiguriert man die Dokumentlänge, die die eigenen Daten brauchen. Domain-spezifisches Finetuning funktioniert bei Multi-Vector Modellen besonders gut, da sie Token-für-Token matchen und domänenspezifische Signale besser aufnehmen.
Praxisbeispiel
Als Beweis trainierte Aarsen multi-vector-encoder/mLateOn-medical in 14,5 Stunden auf einer einzigen RTX 3090. Das Modell schlägt alle general-purpose Retrieval-Modelle auf seinem medizinischen Eval - dense, sparse, lexical und multi-vector.
Die Training-Komponenten umfassen Model, Dataset, Loss Function, Training Arguments, Evaluator und Trainer - alle in der Blogpost mit Code-Beispielen dokumentiert. Installation geht einfach über pip install -U "sentence-transformers[train]".
Originalquelle: HuggingFace Blog