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.

O Rememberizer usa vector embeddings em bases de dados de vetores para permitir buscas de similaridade semântica dentro das fontes de conhecimento do usuário. Isso é uma forma de recuperação de informação mais avançada e matizada do que simplesmente procurar palavras-chave no conteúdo através de um motor de busca ou base de dados.

Na sua forma mais avançada (como usada pelo Rememberizer) os vector embeddings são criados por modelos de linguagem com arquiteturas semelhantes aos ALM's (Grandes Modelos de Linguagem) que suportam os modelos gpt da OpenAI e o serviço ChatGPT, assim como modelos/serviços da Google (Gemini), Anthropic (Claude), Facebook (LLama 2) e outros. Por esta razão, é natural usar vector embeddings para descobrir conhecimento relevante para incluir no contexto dos prompts de modelos de AI. As tecnologias são complementares e um tanto equivalentes. Por esta razão, a maioria dos fornecedores de ALMs como serviço também produzirá vector embeddings como um serviço (por exemplo: um blog da Together AI ou outro blog do OpenAI).

Como se parece um vector embedding? 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 vector embedding será uma lista de algo como 768 números representando um vetor num espaço de 768 dimensões. Em última instância, esta lista de números pode representar pesos entre zero e um num modelo Transformer que define o significado numa frase como "Um raio de relâmpago do nada". Esta é fundamentalmente a mesma representação subjacente de significado usada no GPT-4 por exemplo. Como resultado, podemos esperar que um bom vector embedding habilite a mesma brilhante aparente compreensão que vemos em modernos modelos de linguagem de AI.

Vale a pena notar que os vector embeddings 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, um pode comparar através de mídia, de forma que um vector embedding num bloco de texto pode ser comparado a uma imagem, ou vice-versa. Hoje o Rememberizer permite buscas dentro apenas do componente de texto dos documentos e conhecimento do usuário. Mas a busca de texto-para-imagem e imagem-para-texto estão no roadmap. O Google usa vector embeddings para alimentar sua busca de texto (texto-para-texto) e também sua busca de imagem (texto-para-imagem) (referência). O Facebook tem contemplado o uso de embeddings para sua busca em redes sociais (referência). O Snapchat usa vector embeddings para entender o contexto de forma a servir o anúncio certo para o usuário certo no momento certo (referência).

Para entender profundamente como vector embedding e bases de dados de vetores funcionam comece com a visão geral da Hugging Face. Pinecone (uma base de dados de vector embedding como serviço) tem uma boa visão geral também.

Outra grande fonte para entender a busca e o conhecimento em vetores é o artigo e o código do Meta/Facebook para a biblioteca FAISS. "FAISS: Uma Biblioteca para Busca Eficiente de Similaridade e Agrupamento de Vetores Densos" por Johnson, Douze, e Jégou (2017): FAISS fornece uma visão geral abrangente de uma biblioteca projetada para busca eficiente de similaridade e agrupamento de vetores densos. Ele discute métodos para otimizar os processos de indexação e busca em grandes bases de dados de vetores, incluindo aqueles baseados em Quantização de Produto. O melhor lugar para aprender mais sobre isso é a documentação juntamente com o código no Github.

Certifique-se de considerar o artigo de junho de 2017 que iniciou a revolução genAI (inteligência artificial geradora), "Attention Is All You Need." (referência) que introduz a arquitetura Transformer por trás dos modelos GPT e todos os ALMs que 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). Estes artigos discutem a teoria por trás da busca do vizinho mais próximo aproximado (ANN) em espaços de alta dimensão, um conceito central em bases de dados de vetores para a recuperação eficiente de itens parecidos.

Uma coisa emocionante sobre estes modelos baseados em Transformadores é que quanto mais dados eles usaram, maior (mais parâmetros) eles ficaram, melhor sua compreensão e capacidades. A OpenAI primeiro percebeu isto quando treinou seu modelo GPT-2. Percebendo este potencial, eles imediatamente deixaram de ser uma entidade sem fins lucrativos voltada para o código aberto e se tornaram uma empresa com fins lucrativos de código fechado focada em produzir GPT-3, GPT-4 e sua famosa interface, ChatGPT. Curiosamente, a Google é a detentora da patente desta tecnologia - foram os seus pesquisadores por trás dos Transformadores e Atenção É Tudo Que Você Precisa (referência). ChatGPT discorda um pouco da minha caracterização, escrevendo que "A narrativa em torno da transição da OpenAI de uma entidade sem fins lucrativos orientada para o 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 na segurança e no desenvolvimento responsável de AI juntamente com aspectos de comercialização. Também é importante notar que, enquanto a OpenAI priorizou o desenvolvimento de tecnologia proprietária como GPT-3 e além, continua a interagir com a comunidade de pesquisa através de publicações e colaborações."

Os modelos de linguagem BERT são baseados em Transformadores e são frequentemente usados em motores de vector embedding avançados. Isso foi introduzido no artigo de 2018 "BERT: Pré-treinamento de Transformadores Profundos Bidirecionais para Compreensão de Linguagem" (referência). BERT (Representações de Codificador Bidirecional de Transformadores) marcou uma mudança significativa em direção a modelos pré-treinados que podem ser aprimorados para uma ampla gama de tarefas de PNL. Seu uso inovador de treinamento bidirecional e arquitetura de transformador estabeleceu novos padrões para desempenho de modelo em vários benchmarks. Métodos inovadores anteriores para a criação de vector embeddings foram introduzidos pela GloVe (2014, Stanford), Word2Vec (2013, Google). "GloVe: Vetores Globais para Representação de Palavras" (referência): O artigo GloVe (Global Vectors) propôs um novo modelo global de regressão log-bilinear para a aprendizagem não supervisionada de representações de palavras, combinando os benefícios das duas principais abordagens para embedding: fatorização de matriz global e métodos de janela de contexto local. "Estimação Eficiente de Representações de Palavras no Espaço Vetorial" (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.

Last updated