Article
Multi-Vector Embedding Modelle trainieren mit Sentence Transformers v6.0
Sentence Transformers v6.0 fuehrt mit MultiVectorEncoder einen vierten Modelltyp ein - fuer ColBERT-style Late-Interaction-Retrieval. Tom Aarsen hat dazu einen umfassenden Blogpost veroeffentlicht, der zeigt, wie man solche Modelle finetuned oder von Grund auf trainiert.
Was sind Multi-Vector Modelle?
Waehrend Dense Embeddings einen ganzen Text in einen einzigen Vektor komprimieren, behalten Multi-Vector Modelle einen kleinen Vektor pro Token. Die Aehnlichkeit wird ueber 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 groesseren Index.
Warum Finetuning sich lohnt
Die meisten fertigen Retrieval-Modelle sind auf kurze Passagen trainiert (180-512 Token). Laengere 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 Dokumentlaenge, die die eigenen Daten brauchen. Domain-spezifisches Finetuning funktioniert bei Multi-Vector Modellen besonders gut, da sie Token-fuer-Token matchen und domaenenspezifische Signale besser aufnehmen.
Praxisbeispiel
Als Beweis trainierte Aarsen multi-vector-encoder/mLateOn-medical in 14,5 Stunden auf einer einzigen RTX 3090. Das Modell schlaegt 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 ueber pip install -U "sentence-transformers[train]".
Originalquelle: HuggingFace Blog