Falta pouco!

0 dias

0 horas

0 min

0 seg

0
respostas

[Dúvida] Impacto da dimensionalidade dos embeddings (n) na qualidade dos retrievers e como comparar modelos com dimensões muito diferentes

Olá, pessoal — tudo bem?

Estou estudando o material da Aula 2 e 3. Gostaria de discutir alguns pontos ponto que me deixaram em dúvida: a influência do número de dimensões (n) dos embeddings na organização do espaço vetorial e na qualidade dos retrievers, e como comparar modelos que geram embeddings com dimensões muito distintas (ex.: 384 vs 1024 vs 3072).


Contexto rápido (do que vimos na aula)

  • Trabalhamos com RAG, índices vetoriais (flat e HNSW) e bases (ChromaDB, FAISS, Pinecone).
  • Falamos sobre normalização L2 e sua importância para similaridade por cosseno.
  • Vimos trade-offs entre modelos proprietários vs. open-source, fine-tuning, versionamento de embeddings e parâmetros do índice HNSW (p.ex. M vizinhos).

O problema / dúvidas centrais

  1. Qual é a influência prática do n (dimensionalidade) na organização do espaço?

    • Modelos com maior n carregam mais “capacidade” semântica, mas também podem aumentar ruído, custo de armazenamento e latência. Gostaria de entender melhor: a dimensão maior costuma melhorar recall/precisão de retrieval de forma consistente, ou há um ponto de retorno decrescente / overfitting semântico?
  2. Como comparar modelos com dimensões diferentes?

    • Quando reduzo cada embedding via PCA (ou UMAP) separadamente e ploto tudo junto, a comparação perde fidelidade porque a transformação é local ao modelo.
    • Pergunta: qual a forma correta de produzir uma visualização ou comparação justa entre espaços com n distintos? Usar PCA por modelo e mesclar os 3D resultantes é válido? Devo alinhar vetores (Procrustes/CCA) antes da projeção? Ou devo comparar apenas via métricas (recall@k, MRR) sobre o mesmo conjunto de queries/documentos?
  3. Fidelidade do UMAP/PCA para comparação entre modelos

    • UMAP preserva estrutura local; PCA preserva variância global. Ambos são transformações não-lineares / lineares que podem distorcer relações relativas entre espaços diferentes.
    • Como interpretar corretamente plots 2D/3D (UMAP/PCA) quando os modelos têm n diferentes? Quais cuidados evitar (ex.: concatenar embeddings brutos com dimensões diferentes causa erro; reduzir por modelo e concatenar gera escalas distintas)?
  4. Procurando um “ponto de equilíbrio”

    • Como achar o trade-off prático entre custo/latência e qualidade (ex.: MiniLM 384 vs BGE 1024 vs Gemini 3072)? Que métricas e procedimentos vocês usam (recall@k, MRR, latência/GB por milhão de vetores, custo por query)?

Se alguém já enfrentou essas dúvidas na prática, agradeço muito se puder compartilhar percepções, referências ou heurísticas que usem para comparar espaços e escolher a dimensionalidade/ modelo adequados ao projeto.

Obrigado desde já!