Editar

Compartilhar via


Gerar inserções

Serviços de IA do Azure
Azure AI Search
Serviço OpenAI do Azure
Azure Machine Learning

Agora que você dividiu seus documentos em fragmentos e enriqueceu os fragmentos, a próxima etapa é gerar incorporações para esses fragmentos e todos os campos de metadados sobre os quais você planeja executar buscas em vetores. 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 e cada representação tem conexões com outros objetos na rede. Uma incorporação é uma das representações do objeto selecionada porque captura o significado semântico do objeto.

Como uma incorporação é uma representação matemática desse objeto e essa representação tem conexões com representações de outros objetos, você pode comparar objetos matematicamente. Um exemplo famoso para mostrar como as incorporações capturam o significado semântico e as relações entre si é:

incorporação("rei") - incorporação("homem") + incorporação("mulher") ≈ incorporação("rainha")

As incorporações são comparadas entre si usando as noções de semelhança e de distância. O diagrama a seguir ilustra como as incorporações podem ser comparadas.

Diagrama mostrando como os vetores são comparados.

Figura 1. Comparando incorporações

Em uma solução de Geração Aumentada de Recuperação (RAG), você geralmente incorpora a consulta do usuário usando o mesmo modelo de incorporação que seus fragmentos e procura vetores relevantes do banco de dados para retornar os fragmentos semanticamente mais relevantes. O texto original dos fragmentos relevantes é então passado para o modelo de linguagem grande como dados de fundamentação.

Observação

Essa característica dos vetores enfatiza a importância de limpar os fragmentos para que a proximidade matemática possa ser rastreada mais de perto com relevância semântica.

Este artigo faz parte de uma série. Leia a introdução.

A importância do modelo de incorporação

O modelo de incorporação escolhido pode ter um efeito significativo na relevância dos resultados da busca em vetores. Um dos principais fatores que você deve considerar ao escolher um modelo de incorporação é o vocabulário do modelo. Cada modelo de incorporação é treinado com um vocabulário específico. Por exemplo, o tamanho do vocabulário do BERT é de cerca de 30.000 palavras.

O vocabulário de um modelo de incorporação é importante por causa de como os modelos de incorporação tratam palavras que não estão em seu vocabulário. Mesmo que a palavra não esteja em seu vocabulário, o modelo ainda precisa calcular um vetor para ela. Para fazer isso, muitos modelos dividem as palavras em subpalavras, que eles tratam como tokens distintos ou agregam os vetores para as subpalavras para criar uma única incorporação.

Diagrama mostrando a palavra histograma sendo dividida nas seguintes subpalavras: his (seu/dele), ta e gram (grama).

Figura 2. Dividindo uma palavra desconhecida em subpalavras

Vamos pegar um exemplo fictício em que a palavra "histamina" não está no vocabulário do modelo de incorporação. "Histamina" tem um significado semântico como uma substância química que seu corpo libera, o que causa muitos sintomas de alergias. Como o modelo de incorporação não contém "histamine" (em inglês), ele pode dividi-lo em subpalavras que estão em seu vocabulário, como "his" (seu/dele), "ta" e "mine" (meu). Os significados semânticos dessas subpalavras não estão nem perto do significado de "histamina". Os valores vetoriais individuais ou agregados das subpalavras produzem piores correspondências vetoriais do que se "histamina" estivesse no vocabulário do modelo.

Escolha de um modelo de incorporação

Determinar o modelo de incorporação correto para seu caso de uso é uma atividade humana. A sobreposição com o vocabulário do modelo de incorporação com as palavras dos dados deve ser um fator fundamental que você considera ao escolher seu modelo de incorporação.

Diagrame o fluxo de escolha de um modelo de incorporação.

Figura 3. Escolha de um fluxo de modelo de incorporação

A primeira coisa que você deve determinar é se seu 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 é ver se as entidades e palavras-chave em seu conteúdo estão geralmente disponíveis ou podem ser encontradas na Internet. Se forem, é provável que um modelo de incorporação geral funcione.

Conteúdo geral ou não específico do domínio

Quando você está escolhendo um modelo de incorporação geral, um bom lugar para começar é a tabela de classificação Hugging Face. Este site fornece uma classificação atualizada dos modelos de incorporação. Avalie como os modelos funcionam com seus dados, começando com os modelos de classificação superior.

Conteúdo específico a um domínio

Para conteúdo específico do domínio, a primeira etapa é determinar se há um modelo específico de domínio disponível que você pode usar. Imagine, por exemplo, que seus dados estejam no domínio biomédico. Você deve considerar o uso do modelo BioGPT, que é um modelo de linguagem que foi pré-treinado em um grande corpus de literatura biomédica. Este modelo deve ser usado à mineração e à geração de textos biomédicos. Se os modelos de domínio estiverem disponíveis, comece avaliando como esses modelos funcionam com seus dados.

Se não houver modelos específicos de domínio disponíveis ou se os modelos específicos de domínio não tiverem um bom desempenho, a próxima opção é ajustar um modelo de incorporação geral com seu vocabulário específico de domínio.

Importante

Para qualquer modelo escolhido, você precisa verificar se a licença é adequada às suas necessidades e se o modelo fornece o suporte ao idioma necessário.

Avaliar modelos de incorporação

Duas maneiras eficazes de avaliar um modelo de incorporação são visualizar as incorporações e avaliar a distância entre os vetores de pergunta e de fragmento.

Visualização de incorporações

Você pode usar bibliotecas como t-SNE para plotar os vetores para seus fragmentos e sua pergunta em um gráfico X-Y. Você pode então determinar a distância que os pedaços estão um do outro e a pergunta. A figura mostra vetores de fragmentos plotados. As duas setas próximas uma da outra representam dois vetores de fragmentos, enquanto a outra seta representa um vetor de pergunta. Você pode usar essa visualização para entender a distância que a pergunta está dos blocos.

Visualização de uma incorporação. A imagem mostra vários pontos azuis plotados em uma escala X-Y.

Figura 4. Plotagem de incorporações

Cálculo das distâncias de incorporação

Um meio programático de avaliar se seu modelo de incorporação está funcionando com suas perguntas e fragmentos é calcular a distância entre os vetores de pergunta e os vetores de fragmento. Você pode usar a distância euclidiana ou a distância de Manhattan.

Incorporação de economia

Ao escolher um modelo de incorporação, há uma compensação entre desempenho e custo. Modelos de incorporação maiores geralmente têm melhor desempenho em conjuntos de dados de benchmarking. No entanto, o aumento do desempenho tem um custo. Vetores maiores exigem mais espaço para serem armazenados em um banco de dados vetorial e exigem mais recursos computacionais e tempo ao comparar incorporações. Modelos de incorporação menores geralmente têm desempenho inferior nos mesmos benchmarks. Eles exigem menos espaço no banco de dados vetorial e exigem menos computação e tempo ao comparar incorporações.

Ao projetar seu sistema, você deve levar em conta o custo de incorporação em termos de armazenamento, computação e requisitos de desempenho. Validar o desempenho dos modelos por meio da experimentação é crucial. Os benchmarks disponíveis publicamente são principalmente conjuntos de dados acadêmicos. A maioria dos resultados não pode ser transposta diretamente para dados corporativos e casos de uso. Dependendo dos requisitos, você pode favorecer o desempenho em detrimento do custo ou aceitar uma compensação de desempenho bom o suficiente em troca de um custo mais baixo.

Próximas etapas