L'attività MediaPipe Text Embedder ti consente di creare una rappresentazione numerica dei dati di testo per captarne il significato semantico. Questa funzionalità viene spesso utilizzata per confrontare la somiglianza semantica di due testi utilizzando tecniche di confronto matematico come la somiglianza di Cosine. Questa attività opera sui dati di testo con un modello di machine learning (ML) e restituisce una rappresentazione numerica dei dati di testo come un elenco di vettori di funzionalità ad alta dimensione, noti anche come vettori di embedding, in forma a virgola mobile o quantizzata.
Inizia
Per iniziare a utilizzare questa attività, segui una di queste guide all'implementazione per la tua piattaforma di destinazione. Queste guide specifiche per la piattaforma illustrano un'implementazione di base di questa attività, incluso un modello consigliato e un esempio di codice con le opzioni di configurazione consigliate:
- Android - Esempio di codice - Guida
- Python - Esempio di codice - Guida
- Web - Esempio di codice - Guida
Dettagli attività
Questa sezione descrive le funzionalità, gli input, gli output e le opzioni di configurazione di questa attività.
Funzionalità
- Elaborazione del testo di input: supporta la tokenizzazione fuori dal grafo per i modelli senza tokenizzazione all'interno del grafo.
- Calcolo della somiglianza dell'embedding: funzione di utilità incorporata per calcolare la somiglianza del coseno tra due vettori di funzionalità.
- Quantizzazione: supporta la quantizzazione scalare per i vettori di caratteristiche.
Input delle attività | Output delle attività |
---|---|
L'editor di testo incorporato accetta il seguente tipo di dati di input:
|
Text Embedder genera un elenco di incorporamenti composto da:
|
Opzioni di configurazione
Questa attività ha le seguenti opzioni di configurazione:
Nome opzione | Descrizione | Intervallo di valori | Valore predefinito |
---|---|---|---|
l2_normalize |
Indica se normalizzare il vettore di caratteristiche restituito con la norma L2. Utilizza questa opzione solo se il modello non contiene già un'operazione L2_NORMALIZATION TFLite nativa. Nella maggior parte dei casi, è già così e la normalizzazione L2 viene quindi raggiunta tramite l'inferenza TFLite senza bisogno di questa opzione. | Boolean |
False |
quantize |
Indica se l'embedding restituito deve essere quantizzato in byte tramite la quantizzazione scalare. Si presume implicitamente che gli incorporamenti siano di norma unitaria e quindi qualsiasi dimensione abbia un valore garantito compreso tra -1,0 e 1,0. Utilizza l'opzione l2_normalize se non è così. | Boolean |
False |
Modelli
Quando inizi a sviluppare con questa attività, offriamo un modello predefinito consigliato.
Modello Universal Sentence Encoder (consigliato)
Questo modello utilizza un'architettura a doppio codificatore e è stato addestrato su vari set di dati di domande e risposte.
Considera le seguenti coppie di frasi:
- ("è un viaggio affascinante e spesso toccante", "che viaggio fantastico")
- ("Mi piace il mio smartphone", "Odio il mio smartphone")
- ("Questo ristorante ha un'idea eccezionale", "Dobbiamo ricontrollare i dettagli del nostro piano")
Gli embedding di testo nelle prime due coppie avranno una somiglianza di Cosine più elevata rispetto agli embedding nella terza coppia perché le prime due coppie di frasi condividono un argomento comune rispettivamente "sentimento per la corsa" e "opinione sul telefono", mentre la terza coppia di frasi non condivide un argomento comune.
Tieni presente che, sebbene le due frasi nella seconda coppia abbiano sentimenti opposti, hanno un punteggio di somiglianza elevato perché condividono un argomento comune.
Nome modello | Forma di input | Tipo di quantizzazione | Versioni |
---|---|---|---|
Universal Sentence Encoder | stringa, stringa, stringa | Nessuno (float32) | Ultime notizie |
Benchmark delle attività
Ecco i benchmark delle attività per l'intera pipeline in base ai modelli preaddestrati sopra riportati. Il risultato della latenza è la latenza media su Pixel 6 che utilizza la CPU / GPU.
Nome modello | Latenza della CPU | Latenza GPU |
---|---|---|
Universal Sentence Encoder | 18,21 ms | - |