O que são Embeddings Vetoriais e Bancos de Dados Vetoriais?
Por que o Rememberizer é mais do que apenas um banco de dados ou um mecanismo de busca por palavras-chave.
Last updated
Por que o Rememberizer é mais do que apenas um banco de dados ou um mecanismo de busca por palavras-chave.
Last updated
A Rememberizer utiliza embeddings vetoriais em bancos de dados vetoriais para possibilitar buscas por similaridade semântica dentro das fontes de conhecimento do usuário. Esta é uma forma fundamentalmente mais avançada e sutil de recuperação de informações do que simplesmente procurar por palavras-chave em conteúdo através de um mecanismo de busca ou banco de dados.
Em sua forma mais avançada (como utilizado pela Rememberizer), os embeddings vetoriais são criados por modelos de linguagem com arquiteturas semelhantes aos LLMs de IA (Modelos de Linguagem de Grande Escala) que sustentam os modelos gpt da OpenAI e o serviço ChatGPT, assim como modelos/serviços do Google (Gemini), Anthropic (Claude), Facebook (LLama 2) e outros. Por essa razão, é natural usar embeddings vetoriais para descobrir conhecimentos relevantes a serem incluídos no contexto dos prompts dos modelos de IA. As tecnologias são complementares e um tanto equivalentes. Por essa razão, a maioria dos provedores de LLMs como serviço também produzirá embeddings vetoriais como serviço (por exemplo: um blog da Together AI ou outro blog da OpenAI).
Como é um embedding vetorial? Considere uma coordenada (x,y) em duas dimensões. Se ela representa uma linha da origem até este ponto, podemos pensar nela como uma linha com uma direção, em outras palavras, um vetor em duas dimensões. No nosso contexto, um embedding vetorial será uma lista de algo como 768 números representando um vetor em um espaço de 768 dimensões. Em última análise, essa lista de números pode representar pesos entre zero e um em um modelo Transformer que definem o significado em uma frase como "Um raio do nada." Esta é fundamentalmente a mesma representação subjacente de significado usada no GPT-4, por exemplo. Como resultado, podemos esperar que um bom embedding vetorial possibilite a mesma compreensão brilhante aparente que vemos nos modernos modelos de linguagem de IA.
Vale a pena notar que os embeddings vetoriais podem ser usados para representar mais do que apenas texto, mas também outros tipos de dados, como imagens ou som. E com um modelo devidamente treinado, pode-se comparar entre mídias, de modo que um embedding vetorial em um bloco de texto pode ser comparado a uma imagem, ou vice-versa. Hoje, a Rememberizer possibilita buscas apenas dentro do componente de texto dos documentos e conhecimentos do usuário. Mas a busca de texto para imagem e de imagem para texto estão no roteiro. O Google utiliza embeddings vetoriais para impulsionar sua busca de texto (texto-para-texto) e também sua busca de imagens (texto-para-imagem) (referência). O Facebook considerou usar embeddings para sua busca na rede social (referência). O Snapchat utiliza embeddings vetoriais para entender o contexto a fim de servir o anúncio certo ao usuário certo no momento certo (referência).
Para entender profundamente como os embeddings vetoriais e os bancos de dados vetoriais funcionam, comece com a visão geral da Hugging Face. A Pinecone (um banco de dados de embeddings vetoriais como serviço) também tem uma boa visão geral.
Outra ótima fonte para entender a busca e o conhecimento em vetores é o artigo e o código da Meta/Facebook para a biblioteca FAISS. "FAISS: A Library for Efficient Similarity Search and Clustering of Dense Vectors" por Johnson, Douze e Jégou (2017): FAISS fornece uma visão abrangente de uma biblioteca projetada para busca de similaridade eficiente e agrupamento de vetores densos. Discute métodos para otimizar os processos de indexação e busca em bancos de dados vetoriais em larga escala, incluindo aqueles baseados em Quantização de Produto. O melhor lugar para aprender mais sobre isso é a documentação junto com o código no Github.
Certifique-se de considerar o artigo de junho de 2017 que iniciou a revolução da genAI (inteligência artificial generativa), "Attention Is All You Need." (referência) que introduz a arquitetura Transformer por trás dos modelos GPT e todos os LLMs que se seguem da OpenAI, Google, Meta (Facebook), Nvidia, Microsoft, IBM, Anthropic, Mistral, Salesforce, xAI (Elon Musk), Stability AI, Cohere e muitas outras fontes abertas. Considere também, "Approximate Nearest Neighbors: Towards Removing the Curse of Dimensionality" (referência 1998, referência 2010). Esses artigos discutem a teoria por trás da busca de vizinhos mais próximos aproximados (ANN) em espaços de alta dimensão, um conceito central em bancos de dados vetoriais para recuperar itens semelhantes de forma eficiente.
Uma coisa empolgante sobre esses modelos baseados em Transformer é que quanto mais dados eles usavam, maior (mais parâmetros) eles se tornavam, melhor sua compreensão e capacidades. A OpenAI percebeu isso pela primeira vez quando treinou seu modelo GPT-2. Reconhecendo esse potencial, eles imediatamente pararam de ser uma organização sem fins lucrativos orientada para código aberto e se tornaram uma empresa com fins lucrativos de código fechado focada na produção do GPT-3, GPT-4 e seu famoso front end, ChatGPT. Curiosamente, o Google detém a patente dessa tecnologia -- foram seus pesquisadores que criaram os Transformers e "Attention Is All You Need" (referência). O ChatGPT discorda um pouco da minha caracterização, escrevendo que "A narrativa sobre a transição da OpenAI de uma entidade sem fins lucrativos orientada para código aberto para uma entidade com fins lucrativos de código fechado simplifica uma evolução complexa. A mudança da OpenAI incluiu um foco em segurança e desenvolvimento responsável de IA, juntamente com aspectos de comercialização. Também vale a pena notar que, embora a OpenAI tenha priorizado o desenvolvimento de tecnologia proprietária como o GPT-3 e além, continua a se envolver com a comunidade de pesquisa por meio de publicações e colaborações."
Os modelos de linguagem BERT são baseados em Transformers e são frequentemente usados em motores avançados de embeddings vetoriais. Isso foi introduzido no artigo de 2018 "BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding" (referência). BERT (Representações de Codificadores Bidirecionais de Transformers) marcou uma mudança significativa em direção a modelos pré-treinados que podem ser ajustados para uma ampla gama de tarefas de PNL. Seu uso inovador de treinamento bidirecional e arquitetura transformer estabeleceu novos padrões para o desempenho do modelo em vários benchmarks. Métodos inovadores anteriores para criar embeddings vetoriais foram introduzidos pelo GloVe (2014, Stanford), Word2Vec (2013, Google). "GloVe: Global Vectors for Word Representation" (referência): O artigo do GloVe (Vetores Globais) propôs um novo modelo de regressão log-bilinear global para o aprendizado não supervisionado de representações de palavras, combinando os benefícios das duas principais abordagens para embedding: fatoração de matriz global e métodos de janela de contexto local. "Efficient Estimation of Word Representations in Vector Space" (referência): Este artigo introduziu o Word2Vec, uma abordagem inovadora para gerar embeddings de palavras. Os modelos Word2Vec, incluindo os modelos Continuous Bag of Words (CBOW) e Skip-Gram, são fundamentais na evolução dos embeddings de palavras.