Databricks ha pubblicato un articolo di engineering che affronta un problema molto concreto per chi lavora con i dati: mappare testo libero su tassonomie con oltre 100.000 label. È il cuore della cosiddetta entity normalization, e gli esempi citati sono tre: il biomedical entity linking verso i concept dell’Unified Medical Language System, la vendor normalization di stringhe di transazione come “SBUX #4471 SEATTLE WA” contro 100.000+ merchant, e la deduplica di anagrafiche aziendali contro cataloghi di 100.000+ società.
Il punto interessante è il confronto tra approcci. I metodi storici — regex, keyword matching e classifier supervisionati — falliscono su formattazione imprevedibile, ground truth sparsa e long-tailed, e taxonomy drift continuo. Gli LLM chiamati direttamente eliminano il training, ma con migliaia di label in un singolo prompt faticano a stare nel context window e iniziano a restituire label inesistenti (hallucination).
I tre metodi a confronto
Databricks testa la vector search da sola, la vector search combinata con AI Classify, e la chiamata diretta a un frontier model. La vector search usa il modello di embedding Qwen3-Embedding-8B e uno score ibrido che pesa similarità semantica (cosine) e lessicale (BM25), fondendo le due liste con Reciprocal Rank Fusion. Per 100.000 label l’indice in memoria occupa circa 1,6 GB e si costruisce in 1–3 minuti, evitando un vector search index gestito.
Il secondo metodo usa la vector search per ottenere una shortlist di k label per documento, poi passa solo quella alla funzione AI Classify. I frontier model testati — GPT-5.6 Luna, GPT-5.4 mini, Gemini 3.5 Flash e Claude Sonnet 5 — restano nel budget tipico di produzione; su MedMentions solo GPT-5.6 Luna, con context da 1M token, riusciva a contenere l’intera tassonomia.
I numeri
Su tre benchmark (Transactions e Companies con 100k label, MedMentions con 35k, 200 documenti di valutazione ciascuno), il workflow vector search + AI Classify ottiene 0,81 di accuracy media contro lo 0,76 del miglior frontier model economico, Gemini 3.5 Flash, a circa un centesimo del costo per documento. Il risultato migliore si ha con una shortlist delle prime 20 label. La vector search da sola costa ancora meno (circa cento volte meno del workflow) ma resta oltre 20 punti sotto in accuracy.
Per i data engineer il messaggio pratico è chiaro: su tassonomie enormi, un retrieval che pre-filtra i candidati e lascia all’LLM solo la scelta finale batte sia il pattern matching sia la chiamata diretta al modello. E quando la tassonomia cambia, basta rimuovere le label ritirate e ri-embeddare quelle nuove all’inizio del workflow, senza retraining né redeploy.
In sintesi
- Il workflow vector search + AI Classify raggiunge 0,81 di accuracy media, 5 punti sopra Gemini 3.5 Flash, a circa 1/100 del costo per documento.
- La shortlist ottimale è di 20 label; la vector search da sola è più economica ma oltre 20 punti meno accurata.
- Nessun retraining al variare della tassonomia: si ri-embeddano solo le label nuove.
Fonte: Scaling document classification to 100k+ labels — https://www.databricks.com/blog/scaling-document-classification-100k-labels
Hai qualcosa da aggiungere? Unisciti alla discussione.