Editar

Partilhar via


Enriquecimento em pedaços

Azure AI services
Azure AI Search
Azure OpenAI Service
Azure Machine Learning

Depois de dividir seus documentos em uma coleção de partes, a próxima etapa é enriquecer cada parte limpando e aumentando as partes com metadados. A limpeza dos blocos permite obter melhores correspondências para consultas semânticas em uma pesquisa vetorial. A adição de informações permite que você ofereça suporte a pesquisas além das pesquisas semânticas das partes. Tanto a limpeza quanto o aumento envolvem a extensão do esquema para o pedaço.

Este artigo discute várias maneiras de aumentar seus blocos, incluindo algumas operações de limpeza comuns que você pode executar em blocos para melhorar as comparações de vetores, e descreve alguns campos de metadados comuns que você pode adicionar aos blocos para aumentar seu índice de pesquisa.

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

Diagrama mostrando registros json com um único campo sendo enriquecido.

Figura 1. Enriquecendo partes com metadados

limpeza

Fragmentar seus dados suporta sua carga de trabalho em seus esforços para encontrar os blocos mais relevantes, geralmente por meio da vetorização desses blocos e armazená-los em um banco de dados vetorial. Uma pesquisa vetorial otimizada retorna apenas as linhas desse banco de dados que têm as correspondências semânticas mais próximas da consulta. O objetivo de limpar os dados para suportar correspondências de proximidade, eliminando potenciais diferenças que não são relevantes para a semântica do texto. A seguir estão alguns procedimentos de limpeza comuns.

Nota

Você desejará retornar o bloco original não limpo como resultado da consulta, portanto, adicionará um campo adicional para armazenar os dados limpos e vetorizados.

  • Caixa baixa - A caixa baixa permite que palavras em maiúsculas, como palavras no início de uma frase, correspondam a essas mesmas palavras dentro de uma frase. As incorporações são tipicamente sensíveis a maiúsculas e minúsculas, significando "chita" e "chita" resultariam em um vetor diferente para a mesma palavra lógica. Por exemplo, para a consulta incorporada: "o que é mais rápido, uma chita ou um puma?" A seguinte incorporação: "chitas são mais rápidas que pumas" é uma combinação mais próxima do que incorporar "Chitas são mais rápidas que pumas". Algumas estratégias de minúsculas todas as palavras, incluindo nomes próprios, enquanto outras estratégias incluem apenas letras minúsculas das primeiras palavras de uma frase.
  • Remover palavras de parada - Palavras de parada são palavras como "a", "an" e "o" que ocorrem comumente em frases. Você pode remover palavras de parada para reduzir a dimensionalidade do vetor resultante. A remoção das palavras de paragem permitiria que tanto "uma chita é mais rápida do que um puma" como "a chita é mais rápida do que o puma" fossem ambos vetorialmente iguais a "chita mais rápida puma". No entanto, é importante entender que algumas palavras de parada possuem significado semântico. Por exemplo, "não" pode ser considerado uma palavra parada, mas teria um significado semântico significativo. É importante testar para ver o efeito da remoção de palavras de paragem.
  • Corrigir erros ortográficos - Uma palavra com erros ortográficos não corresponde à palavra escrita corretamente no modelo de incorporação. Por exemplo, "cheatah" (sic) não é o mesmo que "cheetah" na incorporação. Você deve corrigir erros ortográficos para enfrentar esse desafio.
  • Remover caracteres unicode - Remover caracteres Unicode pode reduzir o ruído em seus blocos e reduzir a dimensionalidade. Como palavras de parada, alguns caracteres Unicode podem conter informações relevantes. É importante testar para entender o impacto da remoção de caracteres Unicode.
  • Normalização - Normalizar o texto para padrões como expandir abreviaturas, converter números em palavras e expandir contrações como "Eu sou" para "Eu sou" pode ajudar a aumentar o desempenho de pesquisas vetoriais.

Aumentando os blocos

As pesquisas semânticas em relação aos blocos vetorizados funcionam bem para alguns tipos de consultas, mas não tão bem para outros. Dependendo dos tipos de consultas que você precisa suportar, talvez seja necessário aumentar suas partes com informações adicionais. Os campos de metadados adicionais são todos armazenados na mesma linha que as suas incorporações e podem ser utilizados na solução de pesquisa como filtros ou como parte da pesquisa.

Diagrama mostrando json de conteúdo totalmente enriquecido e como ele pode ser usado em uma plataforma de pesquisa.

Figura 2. Utilização de metadados aumentados na solução de pesquisa

As colunas de metadados que você precisa adicionar dependem de decisões específicas do domínio do problema. Isso inclui o tipo de dados que você tem e os tipos de consultas que deseja suportar. Você precisa analisar a experiência do usuário, os dados disponíveis e a qualidade dos resultados que está tentando alcançar. A partir daí, você pode determinar quais metadados podem ajudá-lo a atender aos requisitos da sua carga de trabalho.

A seguir estão alguns campos de metadados comuns, juntamente com o texto do bloco original, algumas orientações sobre seus usos potenciais e ferramentas ou técnicas que são comumente usadas para gerar o conteúdo de metadados.

  • ID - ID é um campo de metadados chave que é usado para identificar exclusivamente um bloco. Um ID exclusivo é útil no processamento para determinar se um pedaço já existe na loja ou não. Um ID pode ser um hash de algum campo chave. Ferramentas: Biblioteca de hash
  • Título - Um título é um valor de retorno útil para um bloco. Ele fornece um resumo rápido do conteúdo no bloco. O resumo também pode ser útil para consultar com uma pesquisa indexada, pois pode conter palavras-chave para correspondência. Ferramentas: modelo de linguagem grande
  • Resumo - O resumo é semelhante ao título na medida em que é um valor de retorno comum e pode ser usado em pesquisas indexadas. Os resumos são geralmente mais longos do que o título. Ferramentas: modelo de linguagem grande
  • Refraseamento de bloco - A reformulação de um pedaço pode ser útil como um campo de pesquisa vetorial porque a reformulação captura variações na linguagem, como sinônimos e parafraseamento. Ferramentas: modelo de linguagem grande
  • Palavras-chave - As pesquisas por palavras-chave são boas para dados não contextuais, para procurar uma correspondência exata e quando um termo ou valor específico é importante. Por exemplo, um fabricante de automóveis pode ter análises ou dados de desempenho para cada um dos seus modelos durante vários anos. Revisão do produto X para o ano de 2009" é semanticamente como "Revisão do produto X para 2010" e "Revisão do produto Y para 2009". Neste caso, seria melhor combinar palavras-chave para o produto e o ano. Ferramentas: modelo de linguagem grande, RAKE, KeyBERT, MultiRake
  • Entidades - As entidades são informações específicas, como pessoas, organizações e locais. Como as palavras-chave, as entidades são boas para pesquisas de correspondência exata ou quando entidades específicas são importantes. Ferramentas: SpaCy, Stanford Named Entity Recognizer (SNER, scikit-learn, Natural Language Toolkit (NLTK).
  • Texto de bloco limpo - O texto de bloco limpo. Ferramentas: modelo de linguagem grande
  • Perguntas que o bloco pode responder - Às vezes, a consulta incorporada e o bloco incorporado não são uma ótima correspondência. Por exemplo, a consulta pode ser pequena em relação ao tamanho do bloco. Pode ser melhor formular as consultas que o bloco pode responder e fazer uma pesquisa vetorial entre a consulta real do usuário e as consultas pré-formuladas. Ferramentas: modelo de linguagem grande
  • Fonte - A origem do pedaço pode ser valiosa como um retorno para consultas. Permite ao querier citar a fonte original.
  • Idioma - O idioma do bloco pode ser bom como um filtro em consultas.

Aumentar a economia

O uso de grandes modelos de linguagem para aumentar pedaços pode ser caro. Você precisa calcular o custo de cada enriquecimento que está considerando e multiplicá-lo pelo número estimado de partes ao longo do tempo. Você deve usar essas informações, juntamente com seus testes desses campos enriquecidos como parte da pesquisa para tomar uma boa decisão de negócios.

Próximos passos