Nas etapas anteriores de sua solução de geração de Retrieval-Augmented (RAG), você dividiu seus documentos em partes e enriqueceu as partes. Nesta etapa, você gera incorporações para essas partes e quaisquer campos de metadados nos quais planeja executar pesquisas vetoriais.
Este artigo faz parte de uma série. Leia a introdução.
Uma incorporação é uma representação matemática de um objeto, como texto. Quando uma rede neural está sendo treinada, muitas representações de um objeto são criadas. Cada representação tem conexões com outros objetos na rede. Uma incorporação é importante porque captura o significado semântico do objeto.
A representação de um objeto tem conexões com representações de outros objetos, para que você possa comparar objetos matematicamente. O exemplo a seguir mostra como as incorporações capturam o significado semântico e as relações entre si:
embedding (king) - embedding (man) + embedding (woman) = embedding (queen)
As incorporações são comparadas entre si usando as noções de semelhança e distância. A grade a seguir mostra uma comparação de incorporações.
Em uma solução RAG, você geralmente incorpora a consulta do usuário usando o mesmo modelo de incorporação que seus blocos. Em seguida, você pesquisa seu banco de dados por vetores relevantes para retornar os blocos semanticamente mais relevantes. O texto original das partes relevantes é passado para o modelo de linguagem como dados de fundamentação.
Observação
Os vetores representam o significado semântico do texto de uma forma que permite a comparação matemática. Você deve limpar os blocos para que a proximidade matemática entre os vetores reflita com precisão sua relevância semântica.
A importância do modelo de incorporação
O modelo de incorporação escolhido pode afetar significativamente a relevância dos resultados da pesquisa vetorial. Você deve considerar o vocabulário do modelo de incorporação. Cada modelo de incorporação é treinado com um vocabulário específico. Por exemplo, o tamanho do vocabulário do modelo BERT é de cerca de 30.000 palavras.
O vocabulário de um modelo de incorporação é importante porque lida com palavras que não estão em seu vocabulário de uma maneira única. Se uma palavra não estiver no vocabulário do modelo, ele ainda calcula um vetor para ela. Para fazer isso, muitos modelos dividem as palavras em subpalavras. Eles tratam as subpalavras como tokens distintos, ou agregam os vetores para as subpalavras para criar uma única incorporação.
Por exemplo, a palavra histamina pode não estar no vocabulário de um modelo de incorporação. A palavra histamina tem um significado semântico como uma substância química que seu corpo libera, o que causa sintomas de alergia. O modelo de incorporação não contém histamina. Então, ele pode separar a palavra em subpalavras que estão em seu vocabulário, como sua, ta, e meu.
Os significados semânticos destas subpalavras estão longe do significado de histamina. Os valores vetoriais individuais ou combinados das subpalavras resultam em piores correspondências vetoriais em comparação com se de histamina estivessem no vocabulário do modelo.
Escolha um modelo de incorporação
Determine o modelo de incorporação correto para o seu caso de uso. Considere a sobreposição entre o vocabulário do modelo de incorporação e as palavras dos seus dados ao escolher um modelo de incorporação.
Primeiro, determine se você tem conteúdo específico do domínio. Por exemplo, seus documentos são específicos para um caso de uso, sua organização ou um setor? Uma boa maneira de determinar a especificidade do domínio é verificar se você pode encontrar as entidades e palavras-chave em seu conteúdo na internet. Se puder, um modelo de incorporação geral provavelmente também pode.
Conteúdo geral ou não específico do domínio
Quando escolher um modelo de incorporação geral, comece com a tabela de classificação Abraçando o rosto. Obtenha up-toclassificações de modelos de incorporação de datas. Avalie como os modelos funcionam com seus dados e comece com os modelos de melhor classificação.
Conteúdo específico do domínio
Para conteúdo específico do domínio, determine se você pode usar um modelo específico do domínio. Por exemplo, seus dados podem estar no domínio biomédico, então você pode usar o modelo BioGPT. Este modelo de linguagem é pré-treinado em uma grande coleção de literatura biomédica. Você pode usá-lo para mineração e geração de texto biomédico. Se modelos específicos de domínio estiverem disponíveis, avalie como esses modelos funcionam com seus dados.
Se você não tiver um modelo específico de domínio ou se o modelo específico de domínio não tiver um bom desempenho, poderá ajustar um modelo de incorporação geral com seu vocabulário específico de domínio.
Importante
Para qualquer modelo que você escolher, você precisa verificar se a licença atende às suas necessidades e o modelo fornece o suporte de idioma necessário.
Avaliar modelos de incorporação
Para avaliar um modelo de incorporação, visualize as incorporações e avalie a distância entre os vetores de pergunta e bloco.
Visualizar incorporações
Você pode usar bibliotecas, como t-SNE, para plotar os vetores para seus blocos e sua pergunta em um gráfico X-Y. Você pode então determinar o quão longe os pedaços estão uns dos outros e da pergunta. O gráfico a seguir mostra vetores de bloco plotados. As duas setas próximas uma da outra representam dois vetores de bloco. A outra seta representa um vetor de pergunta. Você pode usar essa visualização para entender o quão longe a pergunta está dos pedaços.
Duas setas apontam para pontos de plotagem próximos um do outro, e outra seta mostra um ponto de plotagem longe dos outros dois.
Calcular distâncias de incorporação
Você pode usar um método programático para avaliar o quão bem seu modelo de incorporação funciona com suas perguntas e partes. Calcule a distância entre os vetores de pergunta e os vetores de bloco. Você pode usar a distância euclidiana ou a distância de Manhattan.
Economia de incorporação
Ao escolher um modelo de incorporação, você deve navegar por um compromisso entre desempenho e custo. Modelos de incorporação grandes geralmente têm melhor desempenho em conjuntos de dados de benchmarking. Mas, o aumento do desempenho adiciona custo. Vetores grandes exigem mais espaço em um banco de dados vetorial. Eles também exigem mais recursos computacionais e tempo para comparar incorporações. Pequenos modelos de incorporação geralmente têm desempenho inferior nos mesmos benchmarks. Eles exigem menos espaço em seu banco de dados vetorial e menos computação e tempo para comparar incorporações.
Ao projetar seu sistema, você deve considerar o custo da incorporação em termos de requisitos de armazenamento, computação e desempenho. Você deve validar o desempenho dos modelos através de experimentação. Os parâmetros de referência disponíveis publicamente são principalmente conjuntos de dados académicos e podem não se aplicar diretamente aos dados e casos de utilização da sua empresa. Dependendo dos requisitos, você pode favorecer o desempenho em detrimento do custo ou aceitar uma troca de desempenho bom o suficiente por um custo mais baixo.