Descriere & Utilizare
Dacă vrei să transformi propoziții sau paragrafe în vectori densi (embeddings) pentru a măsura cât de apropiate sunt ca înțeles sau pentru a alimenta o bază vectorială în LangChain / LlamaIndex, SentenceTransformers (SBERT) este standardul de aur.
Cu doar două linii de cod (SentenceTransformer('nume_model') și model.encode(lista_texte)), obții matricile normalizate de vectori.
Biblioteca include și clasa CrossEncoder pentru etapa de Reranking: îi dai perechi (întrebare, paragraf) cu metoda .rank(), iar modelul îți returnează ordinea exactă a celor mai bune răspunsuri.
Cum să o reții ușor
💡 Ca un GPS semantic: transformă fiecare propoziție într-o coordonată geografică (latitudine și longitudine în 1024 de dimensiuni), astfel încât două fraze care spun același lucru în cuvinte diferite primesc coordonate vecine pe hartă.
Opțiuni și parametri tehnici
- Trece textul prin rețeaua Transformer și aplică operația de Mean Pooling (sau extrage tokenul CLS) peste toți tokenii propoziției.
- Normalizează vectorii la lungime unitară (L2 norm) pentru ca produsul scalar să fie egal cu similitudinea cosinus.
Exemple practice și cazuri de utilizare
- Model multilingv excelent pentru limba română:
model = SentenceTransformer('intfloat/multilingual-e5-large')sau'BAAI/bge-m3' - Reranking cu CrossEncoder:
from sentence_transformers import CrossEncoder
reranker = CrossEncoder('BAAI/bge-reranker-v2-m3')
ranks = reranker.rank('Cum resetez parola?', ['Pasul 1: apasă pe Am uitat parola...', 'Programul de lucru este 9-17.'])
Sfaturi de configurare & capcane
Pentru limba română, evită modelele vechi antrenate doar pe engleză (precum all-MiniLM-L6-v2). Folosește modele multilingve moderne precum BAAI/bge-m3 sau paraphrase-multilingual-mpnet-base-v2!
Comenzi și ghiduri înrudite
pipeline-api: Resursă asociată din acest modul.datasets-library: Resursă asociată din acest modul.evaluate-library: Resursă asociată din acest modul.