Partilhar via


Fundamentando o design de dados para cargas de trabalho de IA no Azure

Para aplicativos de IA, a abordagem Well-Architected Framework para design de dados deve abordar requisitos não funcionais, como operabilidade, custo e segurança, e aderir aos princípios fundamentais dos pilares do Azure Well-Architected Framework. Também deve considerar requisitos funcionais, como ingestão, preparação e validação de dados.

O modelo de IA escolhido afeta as decisões subsequentes de design de dados. Este artigo discute as principais considerações arquitetônicas para modelos de fundação que precisam de aumento para aumentar a relevância dos resultados. Estes modelos são tipicamente generativos.

Os modelos de IA generativa são pré-construídos ou pré-treinados, o que permite usá-los imediatamente sem fazer modificações. No entanto, os modelos prontos para uso muitas vezes não atendem aos requisitos específicos de carga de trabalho. Para resolver esse problema, os modelos são aumentados com dados específicos do contexto para melhorar seu desempenho. Por exemplo, você pode usar o modelo GPT em vários casos de uso. Esses aplicativos incluem a recuperação de informações de documentos, o fornecimento de suporte ao helpdesk de TI e o resumo de informações complexas. Para usar modelos de fundação para atender às suas necessidades específicas, é importante entender essas considerações.

Importante

O design de dados é um processo iterativo baseado em experimentação estatística. Os aplicativos de IA generativa enviam consultas para o modelo que inclui os dados de prompt e contexto. Para refinar o design de dados, os dados de prompt e de contexto devem ser iterados. O processo iterativo deve incluir pré-processamento, seleção de incorporações e fragmentação. Estas etapas ajudam a criar dados adequados para um índice. Para obter mais informações, consulte Projetando e desenvolvendo uma solução de geração aumentada de recuperação (RAG).

Ao experimentar e iterar, tenha em mente os casos de uso de consumo. Ajuste o design de dados com base em padrões de consulta reais. Determine o que é aceitável por meio de refinamento e testes.

Em uma solução, você pode usar uma combinação de IA generativa e modelos de IA discriminativa para atender aos requisitos de carga de trabalho. Para obter mais informações sobre dados de treinamento, consulte Design de dados de treinamento.

Recomendações

Aqui está o resumo das recomendações fornecidas neste artigo.

Recomendação Description
Antecipe as consultas dos usuários. Compreenda os tipos esperados de perguntas relacionadas aos seus dados de origem e suas expectativas de atualização. Essa compreensão ajuda você a projetar seus pipelines de dados e índices para fornecer dados de aterramento relevantes.
Externalize dados para um índice de pesquisa. Em vez de consultar diretamente do sistema de origem, use um índice de pesquisa. Avalie diferentes tecnologias de índice com base nos requisitos de carga de trabalho. Crie uma matriz de capacidade para avaliar o melhor ajuste às suas necessidades. Considere tecnologias poderosas de índice de pesquisa, como o Elasticsearch ou o AI Search.

Indexação
Desenvolver uma estratégia de ingestão. Desenvolva uma estratégia abrangente de gerenciamento de índices que abranja a ingestão e o pré-processamento de dados. Remova dados barulhentos ou irrelevantes abordando inconsistências e duplicações e padronizando para um esquema comum. Converta formatos e tipos de origem em tipos de dados que facilitam a consulta e a análise.

Preparação dos dados
Redefinição do escopo do volume de dados
Projete seu índice para máxima relevância. Habilite recursos como filtragem, classificação e tratamento de metadados em campos específicos para melhorar a eficiência da consulta. Por exemplo, rotule os campos como pesquisáveis apenas se você pretende pesquisar neles. Para evitar custos de armazenamento desnecessários, não torne todos os campos recuperáveis sem um caso de uso específico.

Design de esquema
Capacidades de índice
Consulta eficiente
Atualize seu índice para evitar inferências em dados obsoletos. Ao atualizar um índice, considere adotar uma estratégia de implantação lado a lado para manutenção. A reconstrução do índice garante que as exclusões e atualizações sejam tratadas porque o índice se torna um novo conjunto de dados. Essa abordagem permite um teste completo dos dados antes de tornar o índice ativo. Ao fazer alterações nos índices, coordene as modificações de esquema com atualizações de código. Esta prática garante transições perfeitas.

Manutenção do índice

Tipos de dados

Você pode aumentar os modelos de IA generativa usando dados de contexto durante a inferência ou otimizá-los ainda mais por meio de um processo de ajuste fino. Ambas as abordagens precisam de dados suplementares que forneçam ao modelo mais contexto. O modelo usa esse contexto para responder à consulta do usuário e forma a resposta de acordo com as expectativas. Normalmente, você usa os seguintes tipos de dados:

  • Os dados de origem são dados existentes em produção. Esses dados podem ser estruturados, como dados em bancos de dados, ou semiestruturados, como arquivos JSON. Ele também pode ser desestruturado, como documentos, imagens e arquivos de áudio.

  • Os dados de aterramento vêm de dados de origem que contêm informações sobre tópicos não abordados nos dados de treinamento inicial do modelo. Os dados de aterramento são combinados com a consulta do usuário para formar o prompt que é enviado para o modelo de linguagem grande no contexto de uma chamada de inferência específica. Outros dados que você pode incluir na chamada de inferência são o prompt do sistema, exemplos de uma ou poucas capturas e dados contextuais, como interações anteriores.

    Estes dados devem ser facilmente pesquisáveis e rapidamente recuperáveis. Devido a esse requisito, você deve armazenar os dados em um índice otimizado para pesquisa. Este índice é acedido em tempo real enquanto o utilizador aguarda a resposta. Sem esses dados, o modelo pode produzir resultados incorretos ou não ser aplicável ao que o usuário está procurando especificamente.

  • Dados de ajuste fino são informações usadas para influenciar o modelo para que ele possa se adaptar a tarefas, domínios ou estilos de resposta específicos para futuras solicitações de inferência. Por exemplo, se se espera que o modelo forneça respostas em um estilo gramatical específico, esse guia de estilo servirá como dados de ajuste fino.

  • Os dados do usuário incluem informações fornecidas pelos usuários durante as interações com o aplicativo. Quando você interage com modelos generativos, ocorrem interações com estado. Estes modelos carecem de memória inerente e tratam cada interação como atómica.

    Quando você gerencia interações com monitoração de estado, também conhecidas como dados TURN em aplicativos de bate-papo, é importante armazenar dados pelo menor tempo necessário. Idealmente, esses dados devem ser destruídos após o término da sessão. No entanto, pode haver motivos operacionais ou de conformidade que exijam que você retenha certos dados, como a pergunta original ou a resposta do modelo, além da duração da sessão. Sempre que possível, evite armazenar esses dados após a sessão.

Indexação

O núcleo do design de dados inclui o armazenamento e o gerenciamento eficientes de dados fundamentais. Essa abordagem garante que os dados possam ser aumentados para alcançar o mais alto nível de relevância.

Uma estratégia simples de IA pode envolver consultar os dados de origem para cada interação do usuário. No entanto, essa abordagem não é prática devido aos altos custos e complexidades das interações diretas da fonte de dados. Em vez disso, você deve redefinir o propósito dos dados de origem como uma cópia em um índice otimizado para pesquisa e recuperação. O objetivo desta abordagem é melhorar a compreensão do modelo e a sua capacidade de gerar respostas relevantes.

Considere uma carga de trabalho bancária que armazene detalhes relacionados às contas bancárias e preferências do usuário e transações financeiras em um armazenamento de dados. Em um cenário de IA generativa que usa um padrão RAG, os dados de aterramento são criados e indexados com contexto para que o modelo possa dar respostas relevantes. Por exemplo, ao fornecer dados relevantes sobre as transações do usuário para contexto durante a inferência, o modelo pode responder a perguntas relacionadas aos padrões de gastos do usuário no último trimestre.

Tecnologia de índice especializada

Considere externalizar os dados de aterramento para um índice de pesquisa. Use essa abordagem em vez de consultar diretamente do sistema de origem.

Há benefícios em usar o índice de pesquisa. Você pode modelar e transformar a cópia dos dados de acordo com as consultas esperadas. As consultas diretas à fonte primária são problemáticas porque existe a possibilidade de os dados de origem não estarem acessíveis. Um índice garante que os dados permaneçam disponíveis enquanto você os considerar relevantes para o aplicativo. Você também evita estressar o sistema de dados de origem. Essa estratégia garante que as consultas relacionadas à IA não afetem seu caso de uso principal.

Algumas opções de tecnologia têm recursos de auto-indexação. Os índices podem chegar às fontes de dados e incorporar os seus dados. Para esta opção, as considerações de rede são fundamentais. Se o índice precisar se conectar a bancos de dados, há problemas potenciais, como latência e confiabilidade da rede.

Há um custo inicial para importar dados. Depois que os dados estiverem no índice, você não precisará movê-los novamente, a menos que haja alterações ou atualizações. O gerenciamento de dados ao longo do tempo é um aspeto crucial do design do índice. Para obter mais informações, consulte Manutenção do índice.

Índice padrão ou personalizado

Determinadas tecnologias suportam a criação automática de um índice padrão para seus dados. Este índice é gerado na ingestão de dados com entrada mínima. O índice tem recursos prontos para uso. Um índice padrão pode ser aceitável para prova de conceitos e alguns cenários de produção.

Alguns cenários podem exigir que você tenha um esquema de índice personalizado para melhorar a relevância com base em requisitos específicos de carga de trabalho. Esses requisitos ditam como você projeta o esquema, habilita os recursos de índice e inclui metadados relevantes.

Design de esquema

Você pode pensar em índices como estruturas que organizam e otimizam dados para recuperação. Mais especificamente, eles organizam dados em documentos e campos de uma tabela. Considere os pontos seguintes:

  • Topologia de índice. Avalie se deseja colocalizar todos os dados em um único índice ou distribuir entre vários índices. Essa decisão afeta significativamente o desempenho da consulta, a manutenção do índice, a simplicidade da consulta e a configuração de campo diferente (ou esquema) entre documentos.

    Por exemplo, considere consultas de usuário que solicitam conteúdo em um idioma específico. A opção de design de dados mais simples é, possivelmente, traduzir todos os idiomas em um único idioma e armazená-lo em um único índice. Ou, os dados podem ser armazenados em todos os idiomas em um único índice. Esta escolha resulta em vários documentos para cada idioma. A capacidade de filtragem do índice pode ser usada para restringir os resultados ao idioma desejado. Como alternativa, cada índice pode conter as versões traduzidas para um determinado idioma, conforme esperado na consulta.

    Em algumas situações, você pode precisar de vários índices de pesquisa. Essa abordagem permite que você otimize de forma independente cada índice para obter a máxima relevância de suas consultas de pesquisa. Por exemplo, um manual do funcionário de RH e um manual de manutenção do produto servem diferentes propósitos e públicos. Ao indexá-los separadamente, você pode personalizar o esquema e as consultas de pesquisa para cada um, o que melhora a experiência do usuário. Essa abordagem pode ser complexa de implementar e requer um orquestrador para facilitar as chamadas para cada índice. O componente de orquestração é descrito em Design de aplicativo para cargas de trabalho de IA no Azure.

Nota

A escolha entre as duas topologias e a estratégia de segmentação de dados depende dos requisitos de carga de trabalho, casos de uso e expectativas do usuário.

Fazer consultas de índice cruzado pode ser um desafio e afetar a relevância da pesquisa. Na pior das hipóteses, pode haver uma análise manual dos resultados, decidindo quais se encaixam nos critérios. Este processo introduz latência e acrescenta complexidade. Em contraste, uma abordagem de índice único é mais simples e direta. A relevância pode ser melhorada usando recursos de índice, como filtragem.

Em alguns casos, considerações de conformidade levam à necessidade de índices separados. Por exemplo, se os requisitos de negócios exigirem que os dados sejam isolados entre a Europa e a América, vários índices podem ser inevitáveis.

  • Design de documentos. Alinhe seu design de dados com as consultas de usuário esperadas para otimizar a relevância. Considere como cada documento deve atender às consultas. Para índices de pesquisa, priorize documentos relevantes e refine os resultados para um conjunto conciso e repleto de informações relevantes.

  • Design de campo. Configure seus campos de índice para oferecer suporte ao desempenho e à relevância da pesquisa. Seus campos de índice devem ser mapeados para os atributos do documento que você deseja tornar pesquisáveis, recuperáveis, filtráveis e classificáveis. Eles incluem incorporações, IDs ou quaisquer outros dados que possam impulsionar a pesquisa.

Capacidades de índice

Configure os campos de índice de pesquisa para retornar o conjunto de documentos mais relevante. A decisão depende dos recursos suportados pela tecnologia de índice de pesquisa e pelos requisitos de carga de trabalho.

  • Opções de filtragem, pesquisa e classificação. Considere essas opções porque elas estão diretamente relacionadas a casos de uso para aumento. Por exemplo, filtrável determina true ou false em relação a um valor fornecido na consulta e retorna documentos relevantes. Para a capacidade de pesquisa, o atributo indica se a consulta de pesquisa pode fazer referência ao campo. Por exemplo, você pode verificar se um campo de texto contém texto específico ou se está matematicamente relacionado a outro vetor. Opcionalmente, você pode atribuir um peso relativo a esse campo como parte da consulta de pesquisa. Você também pode tornar os conjuntos de resultados classificáveis, o que lista os resultados por relevância.

    Compensação. Habilitar recursos para indexar campos aumenta os requisitos de espaço, afetando os custos. Adicione apenas os recursos que você pretende usar.

  • Metadados. Os índices normalmente têm metadados associados a campos de índice. Os metadados ajudam-nos a compreender e gerir os dados, fornecendo detalhes relevantes sobre os mesmos. Ao projetar índices, considere se os metadados são recuperáveis ou usados apenas para determinação de relevância. A decisão afeta os custos de computação porque o processo de indexação subjacente é diferente. Metadados excessivos podem aumentar desnecessariamente o tamanho do índice.

Há muitas opções de tecnologia para indexação. Muitos compartilham características semelhantes, como as listadas anteriormente. Alguns índices podem ter recursos extras, como processamento de texto e análise de idioma durante a indexação. Para tornar o texto mais adequado para indexação e pesquisa, divida o texto em tokens, converta-o em minúsculas ou remova palavras de parada.

Consulta eficiente

Os dados de aterramento são usados em aplicações generativas de IA para aumentar a precisão e a relevância das respostas às consultas dos usuários. Considere as consultas do usuário antecipadamente. Compreenda que perguntas podem ser feitas, quem as faz e com que frequência são feitas. Estas informações ajudam o contexto do formulário de candidatura e a compreender que resultado pode ser relevante.

Os tipos típicos de pesquisas são:

  • As consultas vetoriais procuram itens semelhantes com base em suas representações vetoriais ou pontos de dados em um espaço de alta dimensão.

  • A pesquisa por palavra-chave pesquisa em todo o conteúdo de documentos textuais. Ele indexa e consulta grandes volumes de dados de texto e é comumente usado em mecanismos de pesquisa, bancos de dados e sistemas de gerenciamento de documentos.

  • A classificação semântica melhora a relevância dos resultados da pesquisa, reordenando-os com base na sua relevância semântica para a consulta, promovendo as correspondências semanticamente mais relevantes para o topo da lista.

  • A pesquisa híbrida combina diferentes tipos de pesquisa, como pesquisa vetorial, pesquisa de texto completo e classificação semântica, para melhorar ainda mais a relevância dos resultados da pesquisa.

Para melhorar ainda mais o desempenho do modelo, combine os tipos de pesquisa.

A maneira como os dados são armazenados e processados afeta a eficiência da consulta. Cada vez que os dados são adicionados a um índice, ciclos de computação são necessários para a indexação. Se a indexação e a resposta a consultas forem feitas nos mesmos recursos de computação, pode haver contenção. Idealmente, um índice deve concentrar-se no objetivo principal de responder a consultas de forma eficiente e encontrar documentos relevantes, em vez de indexação excessiva.

O custo e o desempenho são os principais impulsionadores do design do índice. Técnicas como a criação de cópias de sombra podem acelerar a consulta. No entanto, a duplicação de dados ocorre através de índices, o que implica custos.

Compensação. O design do índice deve considerar o custo e o desempenho. Estabeleça um equilíbrio otimizando o armazenamento e priorizando a resposta eficiente a consultas e a recuperação de documentos relevantes em detrimento da indexação excessiva.

Para opções de tecnologia para o armazenamento de dados, os índices de pesquisa, como o Elasticsearch ou o AI Search, fornecem recursos de pesquisa poderosos, incluindo pesquisas vetorizadas e baseadas em relevância. Como alternativa, considere as opções de banco de dados que suportam o tipo de dados que você tem e os tipos de consultas de que você precisa, pois eles são otimizados para consulta. Em última análise, trata-se das capacidades oferecidas pelas opções e do investimento na construção de novos conjuntos de habilidades na equipe.

Preparação de dados

Os dados de aterramento são baseados em dados existentes, que precisam ser adequados para consultas semânticas. Algumas consultas para encontrar documentos relevantes no índice podem corresponder literalmente. Outras consultas exigem correspondência difusa.

Antes que os dados contextuais estejam prontos para dar suporte a solicitações de inferência para o modelo, há uma etapa de pré-processamento inicial que visa limpar, transformar e estruturar dados. O objetivo é reduzir o ruído e o enviesamento, pesquisar de forma eficiente e maximizar a relevância das pesquisas de índice. A escolha das ferramentas ou da lógica para o pré-processamento depende da equipe de carga de trabalho, mas há algumas considerações amplas.

Redefinição do escopo do volume de dados

O reescopo do volume de dados envolve ajustar o escopo dos dados expandindo-o ou restringindo-o para criar um índice apertado para que a relevância seja aumentada. A eficiência das consultas é outra preocupação significativa. O armazenamento de dados desnecessários afeta negativamente esses dois objetivos. Por exemplo, considere os dados de localização de um usuário. Se apenas a parte da cidade for relevante, otimize armazenando apenas o texto da cidade em vez do texto completo que representa o endereço.

Aqui estão algumas considerações gerais.

  • Eliminação de dados. Retenha apenas o que é essencial para a funcionalidade do produto, descartando detalhes desnecessários. Aqui estão alguns exemplos comuns.

    • Eliminação qualitativa. Uma maneira de fazer a transição de um escopo amplo para um escopo mais restrito e relativo é eliminar dados de baixa qualidade, optando seletivamente apenas por indexar dados de origem relevantes. O desafio está em identificar programaticamente o conteúdo que não é relevante para cenários de IA. Embora o conteúdo possa ser útil para outras finalidades, como auditoria ou integridade, incluí-lo na carga de trabalho de IA corre o risco de reduzir a relevância. Uma maneira de sinalizar esse conteúdo é usando metadados que podem ser usados no tempo da população do índice se o conteúdo precisar ser adicionado ao índice.

    • Dados sensíveis. Copiar dados de dados de origem para um índice também pode trazer informações confidenciais. Respeite os rótulos de classificação de dados aplicados na origem e mantenha o mesmo nível de sensibilidade a este conjunto de dados. Quando você lida com dados que têm informações pessoais, não armazene dados pessoais, a menos que precise deles para responder à consulta. Por exemplo, aplique a classificação de dados ao indexar e-mails. Se um e-mail for sinalizado como confidencial, evite armazená-lo em um armazenamento de dados confidenciais geral.

    • Normalização e padronização de texto. Corrigir erros de digitação e padronizar o texto é crucial para índices baseados em palavras-chave. Um caso de uso potencial são as traduções, especialmente quando se trata de conteúdo multilíngue.

      Esse tipo de pré-processamento também é necessário para incorporações, o que permite comparar palavras com base em seu contexto e significado. No entanto, um desafio ocorre a partir da sensibilidade das palavras. O contexto é importante, e pode haver nuances, como as diferenças semânticas entre o adjetivo "cívico" e o substantivo próprio "(Honda) Civic".

  • Adição de dados. O contexto de aumento geralmente depende de metadados, que normalmente não estão presentes nos dados de origem. Por exemplo, considere um trecho de texto. Um humano no loop ou IA cria perguntas relevantes que podem ser respondidas usando o contexto do trecho. Quando você armazena essas perguntas junto com os dados de base, as consultas do usuário podem ser comparadas com as consultas geradas para avaliar a relevância do documento. A colocalização desses novos dados com dados de aterramento é uma maneira poderosa de enriquecer dados fragmentados.

    Outro caso de uso são as entidades de adição encontradas durante a análise de dados não estruturados. Essas entidades podem ser adicionadas ao índice e usadas para pesquisar e filtrar sistemas externos ou usadas para executar cálculos complexos. Por exemplo, se identificarmos o nome de uma empresa, podemos procurar o seu setor ou outras informações relevantes a partir de uma base de dados externa e adicioná-las ao nosso índice.

    Considere a manutenção da linhagem de dados. É importante que as cargas de trabalho de IA rastreiem a fonte de dados, porque essas informações podem se perder quando um sistema agrega vários componentes em um índice. Essas informações podem nunca ser expostas aos usuários, mas as informações sobre a origem dos dados são cruciais para as equipes internas de governança de dados. Esses metadados não são necessariamente para o modelo. Ajuda a manter a transparência e a responsabilização.

    Compensação. Por um lado, a adição de novos dados aumenta as chances de encontrar relevância dentro do conjunto de dados. No entanto, este benefício tem um custo. Especificamente, os recursos computacionais necessários para processar e gerenciar esse campo. O tempo gasto na recolha e armazenamento de dados pode ser substancial. Esteja ciente de que a sobrecarga com campos desnecessários pode sobrecarregar os recursos.

  • Processamento de dados de texto. Considere técnicas como sinônimos, derivação e proximidade semântica para aumentar a relevância. Delegue essas técnicas para ferramentas, se possível. Algumas tecnologias, como o Elasticsearch ou a pesquisa por IA, oferecem esses recursos para pré-processamento de dados durante a criação do índice.

Transformação do tipo de dados

Os campos de índice em um armazenamento de dados são tipados para atender a uma finalidade específica. Os campos numéricos facilitam consultas eficientes, os campos de texto permitem pesquisas baseadas em texto e os campos booleanos lidam com informações binárias.

Os dados de origem normalmente existem em vários tipos de dados, como texto, imagens e tabelas, e o processamento desses dados pode ser complexo. Talvez seja necessário extrair pares chave-valor, identificar cabeçalhos de seção para fragmentação semântica, reconhecer identificadores específicos e assim por diante.

Por exemplo, se os dados de origem contiverem imagens, elas não serão inerentemente pesquisáveis. Eles precisam ser convertidos em representações vetoriais para permitir pesquisas semânticas e comparações eficientes. Se a relevância estiver ligada aos dados por trás desses formatos, invista na extração dos dados. Transforme tipos de dados de origem em tipos de dados funcionais que ajudam na consulta e análise.

Fragmentação e incorporação

Os dados de aterramento geralmente contêm um grande volume de informações, mas o modelo é capaz de tokenizar apenas uma certa quantidade. A fragmentação é uma estratégia de design de dados importante porque envolve a divisão de um documento em partes menores que podem ser processadas e indexadas individualmente. Essa estratégia permite uma pesquisa e recuperação eficientes, apesar das limitações do token. Verifique o número máximo de tokens que sua escolha de modelo de linguagem grande pode lidar. Seus pedaços não devem exceder esse limite.

Existem muitas técnicas para implementar o chunking. Para obter mais informações, consulte Abordagens de fragmentação.

A incorporação também é outra estratégia de design que permite recursos de pesquisa vetorial. Embeddings é uma representação matemática de um objeto que é gerado por modelos de IA baseados em dados de aterramento. Eles são armazenados no índice e adicionam mais contexto que ajuda consultas complexas a produzir resultados com melhor relevância. Para obter mais informações, consulte Gerar incorporações.

Manutenção de índices

A manutenção ao longo do tempo é um aspeto crucial do projeto do índice. Para dados estáticos, onde os documentos permanecem inalterados, a manutenção do índice é simples. Mas, a maioria dos índices são dinâmicos. Com o tempo, pode haver novos dados adicionados e o esquema de índice pode precisar de novos campos. Por outro lado, alguns dados e campos podem precisar ser excluídos se não forem mais relevantes. As opções de tecnologia comumente usadas para indexadores têm recursos para lidar com atualizações automaticamente. Para obter informações sobre as características de índice recomendadas, consulte Considerações para um índice de pesquisa.

Critérios de manutenção

  • Atualizações de funcionalidade. O índice pode precisar ser atualizado se houver uma alteração na funcionalidade do aplicativo. Esta situação acontece quando novas perguntas são feitas. Para acomodar essas alterações, talvez seja necessário adicionar novos campos ao índice ou modificar as opções de filtragem, pesquisa ou processamento de texto em campos existentes.

  • Eliminação de dados. A exclusão de dados é um desafio porque você precisa analisar os dados disponíveis e ausentes para determinar o que é irrelevante. Para excluir conteúdo desatualizado de um índice, considere o uso de metadados que impedem os mecanismos de pesquisa de indexar páginas ou conteúdo específicos. Além disso, ao escolher as opções de armazenamento, selecione uma tecnologia que ofereça suporte a exclusões de forma eficiente. Por exemplo, o armazenamento de blob suporta exclusões suaves. Se você usar a pesquisa de IA e carregar documentos do armazenamento, o armazenamento de blob pode detetar documentos removidos e excluir entradas correspondentes. Essa abordagem não é ideal, mas é necessária quando a reindexação é cara devido ao grande tamanho do índice.

    O conceito de direito a ser esquecido refere-se ao direito de uma pessoa singular a que os seus dados pessoais sejam removidos das plataformas ou bases de dados em linha. Certifique-se de que tem políticas em vigor para remover dados pessoais se estes tiverem sido utilizados para formação. Você pode atender a esse requisito reindexando seu conjunto de dados. Se os dados forem excluídos do banco de dados transacional, as atualizações de índice subsequentes refletirão essas alterações.

  • Manter a compatibilidade. Os aplicativos geralmente exigem estruturas de dados específicas, e qualquer desvio pode interromper sua funcionalidade. Por exemplo, se um campo for removido e o aplicativo solicitar esse campo, poderá ocorrer uma condição de falha. Como faria com um banco de dados tradicional, adote uma mentalidade de compatibilidade avançada para índices e mantenha um nível de rigor. Quando você faz alterações no índice, como adicionar ou remover campos, coordene as alterações de esquema com atualizações de código.

    Compensação. Adicionar, atualizar e excluir ações em relação a um índice são caros. Considere a frequência das atualizações e o custo para o desempenho com base no tamanho e na eficiência do armazenamento de dados. Manter documentos obsoletos no índice incorre em custos de armazenamento, manutenção e consulta.

Estratégia de implantação

Estratégia de implantação. Existem duas estratégias principais para atualizar o índice.

  • Implantações lado a lado. Nesta abordagem, um novo índice que tem atualizações convive com o existente. Depois que o novo índice é testado e totalmente operacional, as consultas são alternadas para usar o índice atualizado. O aplicativo permanece inconsciente dessa opção porque ele só interage com o novo índice. Se você descobrir outros problemas depois que o novo índice for implantado para uso em produção, poderá reverter para o índice antigo. Essa abordagem minimiza o tempo de inatividade e garante disponibilidade contínua.

    As atualizações lado a lado funcionam bem quando o custo de reconstrução do índice é razoável e pode ser concluído em um período de tempo razoável. Em geral, esforce-se para manter os índices o mais eficientes possível, porque índices maiores consomem mais recursos. Monitorize e mantenha regularmente os índices para evitar crescimentos desnecessários.

Gorjeta

Ao executar tarefas de pré-processamento de dados que consomem muitos recursos, como reconhecimento de entidade, pesquisas e cálculos, considere salvar uma cópia dos resultados. Essa abordagem garante que, quando precisar reconstruir o índice, você possa evitar refazer todos os cálculos. Alguns cálculos podem já não se aplicar devido a supressões ou atualizações, mas muitos continuarão a ser relevantes.

  • Implantações de atualização in-loco. Esta abordagem modifica diretamente o índice existente. Economizar o custo da duplicação pode ser benéfico, mas também introduz riscos devido ao potencial tempo de inatividade e operações que consomem muitos recursos. Se o índice for grande e reconstruí-lo do zero exceder a frequência de atualização desejada, você pode considerar o uso de atualizações in-loco. No entanto, essa abordagem é desafiadora e acarreta o risco de violar seu objetivo de nível de serviço (SLO).

    Compensação. Avalie o custo de fazer implantações lado a lado de índices em comparação com atualizações in-loco que implantam adições, atualizações e exclusões. Na maioria dos casos, você deve usar atualizações lado a lado em vez de atualizações in-loco. Quando um índice é reconstruído, o processo lida efetivamente com exclusões e atualizações porque cria um conjunto de dados completamente novo. Esta estratégia oferece a oportunidade de testar dados. Embora as implantações lado a lado dupliquem temporariamente os dados e incorram em custos adicionais, os benefícios nos testes e na avaliação de desempenho geralmente justificam esse requisito de armazenamento. Antes de fazer um índice ao vivo, examine os dados para garantir que eles estejam alinhados com suas expectativas.

  • Atualizações agendadas. Em vez de manter uma comunicação contínua em tempo real com fontes de dados, você pode atualizar os dados de aterramento periodicamente. Essa abordagem garante que os dados permaneçam relevantes por meio de atualizações agendadas, o que elimina a necessidade de interação constante.

  • Atualizações de emergência. Situações inesperadas podem ocorrer, como dados indesejados vazando inadvertidamente para o índice de pesquisa. Se esse problema ocorrer, talvez seja necessário tomar medidas imediatas, como remover documentos específicos ou ajustar dados dentro do índice. Independentemente da estratégia de implantação escolhida, como atualizações lado a lado ou atualizações in-loco, sempre planeje a possibilidade de operações de emergência.

  • Índice de auto-atualização. Se sua tecnologia de indexação oferecer suporte à atualização automática do índice para mantê-lo sincronizado com uma fonte de dados externa, ela poderá processar automaticamente as alterações nos dados. As alterações de dados incluem adições ou exclusões, sem intervenção manual. Tenha em mente que cada alteração aciona uma operação no índice, que consome recursos. O índice pode permanecer responsivo às consultas, mas sua capacidade de lidar com elas pode ser reduzida durante o processo de atualização.

Operações de frescura

Meça a janela de tempo entre a criação ou modificação dos dados de origem e sua adição ao índice como um indicador e rastreie-a em relação aos SLOs. Esse indicador orienta as decisões de dados em torno da atualização do design do pipeline de dados para garantir que os dados estejam disponíveis em seu índice quando você precisar. Um índice só deve ser tão fresco quanto necessário.

Para manter a atualização, você pode reconstruir o índice totalmente ou atualizá-lo incrementalmente para permanecer sincronizado com as fontes de dados originais. Ambos os métodos garantem que o índice permaneça atual e preciso.

O investimento inicial no ajuste fino do modelo pode ser menos dispendioso do que a implementação de um padrão RAG, engenharia rápida e métodos de aumento de dados.

Próximos passos