Ultralytics YOLO27: Iscriviti alla lista d'attesa.
Licenza YOLO
Torna al glossario di Ultralytics

Semantic Chunking

Il chunking semantico suddivide i documenti nei punti in cui cambia l'argomento, misurando la similarità degli embedding tra frasi adiacenti, così ogni blocco contiene un'unica idea.

Il chunking semantico suddivide i documenti in segmenti per la generazione aumentata dal recupero (RAG) e la ricerca, collocando le separazioni nei punti in cui cambia l'argomento, individuati confrontando gli embedding delle frasi adiacenti, anziché ogni numero fisso di caratteri o token. Ogni segmento tratta così una singola idea e il suo vettore nel database vettoriale la rappresenta efficacemente; inoltre, il segmento recuperato fornisce al modello linguistico di grandi dimensioni (LLM) un pensiero completo invece della fine di una sezione e dell'inizio della successiva.

Come funziona il chunking semantico#

L'algoritmo comune, reso popolare dai tutorial sulla suddivisione del testo di Greg Kamradt e implementato come SemanticChunker in LangChain, prevede quattro passaggi. Il testo viene suddiviso in frasi e si calcola l'embedding di ogni frase, spesso raggruppandola con quelle vicine per attenuare il rumore. La similarità coseno tra ogni coppia di frasi consecutive viene convertita in una distanza. Una soglia individua i punti di separazione in corrispondenza di distanze insolitamente elevate: LangChain usa come valore predefinito il 95° percentile di tutte le distanze del documento e offre anche soglie basate sulla deviazione standard, sull'intervallo interquartile e sul gradiente. Le frasi comprese tra due punti di separazione formano un segmento. Il separatore semantico in LlamaIndex usa lo stesso punto di separazione basato sul percentile.

import numpy as np
from sentence_transformers import SentenceTransformer

model = SentenceTransformer("sentence-transformers/all-MiniLM-L6-v2")
sentences = [
    "The XR-12 coolant pump circulates water through the press line.",
    "Inspect the XR-12 pump seals for leaks every week.",
    "A worn pump bearing grinds loudly before it fails.",
    "The staff cafeteria now opens for breakfast at 7:00.",
    "The cafeteria menu adds vegetarian lunches in May.",
]

# Distanza coseno tra una frase e la successiva
embeddings = model.encode(sentences, normalize_embeddings=True)
distances = 1 - np.sum(embeddings[:-1] * embeddings[1:], axis=1)

# Inizia un nuovo segmento dove la distanza supera il 95° percentile
threshold = np.percentile(distances, 95)
chunks = [[sentences[0]]]
for sentence, distance in zip(sentences[1:], distances):
    if distance > threshold:
        chunks.append([])
    chunks[-1].append(sentence)
print(np.round(distances, 2))
print(*[" ".join(chunk) for chunk in chunks], sep="\n")

Le distanze tra frasi adiacenti sono 0,56, 0,64, 0,98 e 0,62; l'unico punto di separazione è quindi il salto a 0,98 dal cuscinetto della pompa alla mensa, e il risultato è un segmento di tre frasi sulla pompa XR-12 e uno di due frasi sulla mensa.

Confronto tra strategie di suddivisione in segmenti#

  • Suddivisione in segmenti di dimensione fissa: divide il testo ogni N token, di solito con una certa sovrapposizione tra segmenti adiacenti. È rapida e prevedibile, ma ignora i confini tra argomenti.
  • Suddivisione ricorsiva: divide il testo in corrispondenza delle interruzioni di paragrafo, poi di riga e infine di frase, finché ogni parte rientra in un limite di dimensione. LangChain consiglia il proprio separatore ricorsivo di caratteri per il testo generico.
  • Suddivisione consapevole della struttura: segue titoli, sezioni Markdown, elementi HTML o il layout di pagina di un PDF.
  • Chunking semantico: segue i cambiamenti di significato, ma richiede di calcolare l'embedding di ogni frase durante l'indicizzazione e produce segmenti di dimensioni molto variabili; per questo le implementazioni aggiungono limiti minimi e massimi.
  • Chunking tardivo e recupero contestuale: affrontano i casi in cui un segmento è privo del contesto del resto del documento, per esempio quando un pronome rimanda a un elemento presente in un segmento precedente, e si combinano con uno qualsiasi dei metodi di suddivisione descritti sopra.

Il chunking delle azioni in robotica condivide solo il nome: in questo caso, una policy prevede una sequenza di comandi motori futuri come un'unica unità.

Chunking semantico oltre il testo#

Le trascrizioni dei sistemi di conversione da parlato a testo non hanno interruzioni di paragrafo, quindi i punti di separazione basati sugli embedding sono un metodo comune per individuare i cambi di argomento in una riunione o in un podcast. È possibile suddividere in segmenti anche i video in base al contenuto, così che ogni clip mostri un evento per la comprensione dei video o la RAG multimodale, anziché una porzione arbitraria di 10 secondi. Ultralytics YOLO26 fornisce questi confini per le scene con persone e veicoli: la modalità tracking assegna a ogni oggetto rilevato un ID persistente tra i fotogrammi, così una pipeline può aprire una clip quando entra nella scena un nuovo ID e chiuderla quando tutti gli ID tracciati sono usciti.

Il chunking semantico migliora il recupero?#

I confini basati sugli argomenti sono particolarmente importanti quando temi diversi si trovano uno accanto all'altro senza titoli, come nelle trascrizioni, nelle pagine web raccolte e negli appunti concatenati. I segmenti semantici dipendono anche dal modello di embedding e dalla soglia, quindi lo stesso documento viene suddiviso diversamente quando cambia uno dei due; entrambi andrebbero calibrati in base al richiamo su query reali. Lo studio Il chunking semantico vale il costo computazionale? (2024) ha confrontato la suddivisione semantica e quella a dimensione fissa nel recupero di documenti, nel recupero di prove e nella generazione di risposte basata sul recupero, rilevando che il maggior costo computazionale del chunking semantico non ha prodotto miglioramenti costanti rispetto ai segmenti di dimensione fissa.

Explore solutions

La visione artificiale nello sport

La visione artificiale nello sport

Scopri come Ultralytics YOLO alimenta la computer vision nello sport con il tracciamento di giocatori e palloni, l'analisi delle prestazioni, gli approfondimenti per gli allenatori e la riabilitazione degli atleti.
Scopri di più
Computer vision per immagini aeree

Computer vision per immagini aeree

Trasforma immagini da droni e riprese aeree in informazioni utili in tempo reale per l'agricoltura, l'acquacoltura, il monitoraggio ambientale, la conservazione e l'analisi geospaziale con Ultralytics YOLO.
Scopri di più
Computer vision nel settore aerospaziale

Computer vision nel settore aerospaziale

Porta la vision AI nel monitoraggio aereo con i modelli Ultralytics YOLO. Potenzia droni, flussi di lavoro aerospaziali, conservazione ambientale e settori geospaziali con soluzioni di computer vision.
Scopri di più
Visione artificiale nella sicurezza

Visione artificiale nella sicurezza

Proteggi ogni sito con i modelli Ultralytics YOLO. L'IA visiva alimenta il monitoraggio perimetrale, il rilevamento delle minacce, il riconoscimento delle targhe e la sicurezza sul lavoro.
Scopri di più
Visione artificiale nella robotica

Visione artificiale nella robotica

Dai più potenza alle macchine intelligenti con i modelli Ultralytics YOLO. Nell'ambito della robotica, l'IA visiva alimenta la navigazione autonoma, la percezione, il tracciamento degli oggetti e il controllo in tempo reale.
Scopri di più
Visione artificiale nella logistica

Visione artificiale nella logistica

Semplifica la logistica con i modelli Ultralytics YOLO. L'IA per la visione consente l'ispezione dei pacchi, la selezione, il tracciamento dei veicoli e il monitoraggio della sicurezza nei magazzini in tempo reale.
Scopri di più
Visione artificiale nel commercio al dettaglio

Visione artificiale nel commercio al dettaglio

Ripensa il commercio al dettaglio con i modelli Ultralytics YOLO. L'IA per la visione consente di tracciare le scorte, monitorare gli scaffali, gestire le code e ottenere informazioni più approfondite sui clienti.
Scopri di più
Visione artificiale in ambito sanitario

Visione artificiale in ambito sanitario

Crea soluzioni sanitarie con i modelli Ultralytics YOLO. In ambito sanitario, l'IA per la visione consente di elaborare più rapidamente le immagini mediche, migliorare la diagnostica e monitorare i pazienti.
Scopri di più
Computer vision nella produzione

Computer vision nella produzione

Ottimizza la produzione con i modelli Ultralytics YOLO. La visione basata sull'IA migliora il controllo qualità, il rilevamento dei difetti, la conformità ai requisiti sui DPI e l'automazione delle linee di assemblaggio.
Scopri di più
Computer vision nel settore automobilistico

Computer vision nel settore automobilistico

Applica la computer vision al settore automobilistico con i modelli Ultralytics YOLO. La visione basata sull'IA migliora la sicurezza stradale, i sistemi di assistenza alla guida e l'automazione dei veicoli, per strade più intelligenti.
Scopri di più
Visione artificiale in agricoltura

Visione artificiale in agricoltura

Porta l'IA visiva nell'agricoltura intelligente con i modelli Ultralytics YOLO. Gestisci il monitoraggio delle colture, il tracciamento del bestiame e l'agricoltura di precisione per ottenere raccolti più abbondanti e intelligenti.
Scopri di più

Costruiamo insieme il futuro dell'IA!

Inizia il tuo percorso verso il futuro del machine learning