Tom Aarsen's picture
🏗️ Building on HF

Tom Aarsen

tomaarsen
huggingface

AI & ML interests

NLP: text embeddings, information retrieval, named entity recognition, few-shot text classification

Recent Activity

posted an update about 13 hours ago
🤗 I've released Sentence Transformers v6.3 and wrote a blogpost about its key new feature: token pooling-aware training, teaching multi-vector models to preserve retrieval quality with fewer document vectors. Details: Multi-vector models keep a vector per token, letting different query tokens match different parts of a document. Great for retrieval, but those vectors add up! Token pooling makes the representations smaller by merging similar document vectors into cluster means. Pooling-aware training teaches the encoder to preserve useful matches after those vectors are merged. With MultiVectorTokenPoolingLoss, you can wrap your standard retrieval loss to train on both full and pooled representations, reusing the same token embeddings without another encoder pass. In short: small overhead. I trained two ModernBERT-base models on the same 120k MS MARCO triplets, changing just the loss. At ~49 vectors per document instead of 193, pooling-aware training raises NanoBEIR@13 mean nDCG@10 from 49.03 to 51.23. That's 97.8% of its own unpooled score with ~4x fewer document vectors, compared with 94.6% retention for ordinary training. v6.3 also adds: - Adaptive token budgets, allocating vectors according to each document's content - Matryoshka training for shorter multi-vector token embeddings - Hugging Face kernels support for MaxSim, Ward clustering & supported transformers layers - Native AWS Neuron inference You can combine pooling-aware and Matryoshka training to learn both fewer vectors and fewer dimensions, then stack these with quantization to reduce storage per coordinate. For kernels, install sentence-transformers[kernels] and set use_kernels=True. The blog walks through the method, training code, checkpoints & evaluation, building on Stefan Josef's Learn to Pool and LightOn's pooling regularization work: ht tps://huggingface.co/blog/token-pooling I'd love to see what you train with this!
View all activity

Organizations

Hugging Face's profile picture Sentence Transformers's profile picture Sentence Transformers - Cross-Encoders's profile picture Hugging Face Internal Testing Organization's profile picture SetFit's profile picture Massive Text Embedding Benchmark's profile picture Hugging Face Fellows's profile picture Nomic AI's profile picture Open-Source AI Meetup's profile picture Hugging Face OSS Metrics's profile picture Blog-explorers's profile picture mLLM multilingual's profile picture Sentence Transformers Testing's profile picture Social Post Explorers's profile picture Answer.AI's profile picture Vidore's profile picture gg-tt's profile picture Hugging Face Discord Community's profile picture Distillation Hugs's profile picture Bert ... but new's profile picture EuroBERT's profile picture Sentence Transformers - Cross-Encoders Testing's profile picture hf-inference's profile picture Transformers Community's profile picture gg-hf-gm's profile picture Hugging Face Context Course's profile picture Sentence Transformers - Sparse Encoders's profile picture Sentence Transformers - Sparse Encoders Testing's profile picture Late Interaction's profile picture hfpp's profile picture MongoDB AI Community's profile picture ML intern explorers's profile picture Humanity's Last Hackathon's profile picture Hugging Apps's profile picture Sentence Transformers - Multi Vector Encoders Testing's profile picture Sentence Transformers - Multi Vector Encoders's profile picture gg-hf-em's profile picture Hugging Face MIC's profile picture