Embedding Visualizer 2D/3D
Upload JSON/CSV con embedding pre-calcolati o inserisci testi da embeddare via Ollama on-prem. Visualizza con UMAP, t-SNE o PCA in scatter plot interattivo 2D e 3D. 100% client-side per upload - nessun dato trasmesso.
Sorgente dati
Configurazione Proiezione
Algoritmi e limitazioni
Principal Component Analysis: proiezione lineare deterministica che massimizza la varianza. Veloce, esatta, ma non cattura strutture non-lineari.
t-Distributed Stochastic Neighbor Embedding: ottimizzazione iterativa che preserva la struttura locale. Approssimazione ≤500 iter per performance browser. Non deterministico.
Implementazione semplificata per il browser: non identica alla libreria originale. Adatta per esplorazione visiva, non per produzione scientifica.
Uniform Manifold Approximation and Projection: k-NN graph + force layout approssimato. Preserva struttura locale e globale. Algoritmo approx documentato - non identico a UMAP originale.
Implementazione semplificata per il browser: non identica alla libreria originale. Adatta per esplorazione visiva, non per produzione scientifica.
Perche' usare questo tool?
- vs TF Embedding Projector (Google): nessun account Google, nessun upload a server Google, UI italiana, UMAP + t-SNE + PCA in un'unica pagina.
- vs Atlas Nomic: gratuito, nessun limite di punti per conto, privacy on-prem con embed Ollama.
- Privacy: upload elaborato interamente nel browser. Nessun dato inviato al server (modalita' upload).
Come utilizzare Embedding Visualizer 2D/3D
Carica i tuoi embedding o genera da testo
Hai due opzioni: carica un file JSON (array di oggetti con "text" e "embedding") o CSV con colonne numeriche, oppure inserisci frasi di testo nella textarea e genera embedding tramite Ollama on-prem (all-MiniLM-L6-v2). I testi vengono convertiti in vettori ad alta dimensionalita' dal modello.
Scegli l'algoritmo di riduzione dimensionale
Seleziona PCA (lineare, deterministico, veloce), UMAP (non lineare, conserva la struttura globale e locale) o t-SNE (non lineare, ottimale per clustering visivo). Scegli anche 2D o 3D per il plot interattivo.
Analizza lo scatter plot e le cluster
Nei punti vicini nello spazio di proiezione ci sono testi semanticamente simili. Hover su ogni punto per vedere il testo originale. In 3D puoi ruotare e zoomare la scena. Cluster ben definiti indicano buona separabilita' semantica.
Suggerimenti
- Per una buona visualizzazione RAG, carica i chunk del tuo knowledge base insieme alle query che prevedi riceverai: cluster separati indicano che le query non trovano risposte simili nei chunk, suggerendo la necessita' di migliorare la chunking strategy.
- Se usi t-SNE e i cluster sembrano casuali, prova a aumentare la perplexity (parametro che bilancia struttura locale e globale) e a lasciare girare l'algoritmo per piu' iterazioni. Per meno di 100 punti, t-SNE tende a produrre risultati instabili.
- Usa la modalita' 3D con UMAP per esplorare dataset con piu' di 1000 punti: la terza dimensione spesso rivela strutture e sotto-cluster che non sono visibili in 2D.
Domande frequenti
Cosa e' un embedding e perche' visualizzarlo?
Un embedding e' una rappresentazione numerica di testo (o immagini, audio) in uno spazio vettoriale ad alta dimensionalita'. Testi semanticamente simili hanno vettori vicini. Visualizzarli in 2D/3D aiuta a capire come un modello "vede" i tuoi dati: utile per debuggare pipeline RAG, valutare la qualita' degli embedding e identificare outlier o cluster inattesi.
Qual e' la differenza tra PCA, UMAP e t-SNE?
PCA e' lineare e deterministico: mantiene la varianza massima ma perde strutture non lineari. UMAP conserva meglio la struttura locale e globale, scalabile su grandi dataset. t-SNE e' ottimale per visualizzare cluster ma non preserva le distanze assolute e e' piu' lento. Per la maggior parte degli use case RAG, UMAP e' il migliore compromesso.
Quale formato deve avere il file JSON per l'upload?
Il JSON deve essere un array di oggetti con almeno due chiavi: "text" (stringa con il testo originale) e "embedding" (array di numeri float che rappresenta il vettore). Esempio: [{"text": "esempio", "embedding": [0.1, -0.3, ...]}]. La dimensione degli embedding deve essere consistente per tutti gli oggetti.
I miei dati vengono inviati a server esterni?
La riduzione dimensionale (PCA, UMAP, t-SNE) avviene interamente nel browser (client-side) senza trasmettere i vettori a nessun server. Solo la generazione degli embedding da testo usa il backend locale (Ollama on-prem) per il modello all-MiniLM-L6-v2, senza provider cloud.