Design de dados de base para cargas de trabalho de IA no Azure
Para aplicativos de IA, a abordagem do Well-Architected Framework para o design de dados deve atender a requisitos não funcionais, como operabilidade, custo e segurança, e aderir aos princípios básicos dos pilares do Azure Well-Architected Framework. Ele 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 de arquitetura para modelos de fundação que precisam de aumento para aumentar a relevância do resultado. Esses modelos são tipicamente generativos.
Os modelos generativos de IA 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 geralmente não atendem a 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 técnico de TI e o resumo de informações complexas. Para usar modelos de base 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 ao modelo que inclui os dados de prompt e contexto. Para refinar o design de dados, os dados de prompt e contexto devem ser iterados. O processo iterativo deve incluir pré-processamento, seleção de incorporações e fragmentação. Essas 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 por recuperação (RAG).
Ao experimentar e iterar, lembre-se dos 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 discriminativos 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 | Descrição |
---|---|
Antecipe as consultas do usuário. | Entenda os tipos esperados de perguntas relacionadas aos seus dados de origem e suas expectativas de atualização. Esse entendimento ajuda você a projetar seus pipelines e índices de dados 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 para suas necessidades. Considere tecnologias avançadas de índice de pesquisa, como Elasticsearch ou AI Search. ▪ Indexação |
Desenvolva 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 ruidosos ou irrelevantes abordando inconsistências e duplicatas e padronizando para um esquema comum. Converta formatos e tipos de origem em tipos de dados que facilitem a consulta e a análise. ▪ Preparação de dados ▪ Redefinição do escopo do volume de dados |
Projete seu índice para máxima relevância. | Habilite recursos como filtragem, classificação e manipulação de metadados em campos específicos para melhorar a eficiência da consulta. Por exemplo, rotule os campos como pesquisáveis somente se você pretende pesquisá-los. 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 ▪ Recursos de índice ▪ Consulta eficiente |
Atualize seu índice para evitar a inferência em dados obsoletos. | Ao atualizar um índice, considere adotar uma estratégia de implantação lado a lado para manutenção. A recriaçã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 testes completos dos dados antes de ativar o índice. Ao fazer alterações em índices, coordene as modificações de esquema com atualizações de código. Essa prática garante transições perfeitas. ▪ Atualização de í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 mais contexto ao modelo. 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. Também pode ser não estruturado, 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 enviado ao 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 um ou poucos disparos e dados contextuais, como interações anteriores.
Esses dados devem ser facilmente pesquisáveis e recuperáveis. Devido a esse requisito, você deve armazenar os dados em um índice otimizado para pesquisa. Este índice é acessado em tempo real enquanto o usuário 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.
Os 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 o modelo deve fornecer 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. Esses modelos carecem de memória inerente e tratam cada interação como atômica.
Quando você gerencia interações com 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 determinados dados, como a pergunta original ou a resposta do modelo, além da duração da sessão. Quando 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 atingir o mais alto nível de relevância.
Uma estratégia simples de IA pode envolver a consulta dos 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 redirecionar os dados de origem como uma cópia em um índice otimizado para pesquisa e recuperação. O objetivo dessa abordagem é melhorar a compreensão do modelo e sua capacidade de gerar respostas relevantes.
Considere uma carga de trabalho bancária que armazena detalhes relacionados a 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 fornecer 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 indexação 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 que os dados de origem não estejam 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 autoindexação. Os índices podem acessar fontes de dados e incorporar seus dados. Para essa opção, as considerações de rede são fundamentais. Se o índice precisar se conectar a bancos de dados, haverá possíveis problemas, 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 aspecto crucial do design do índice. Para obter mais informações, consulte Manutenção de índice.
Índice padrão ou personalizado
Determinadas tecnologias dão suporte à criação automática de um índice padrão para seus dados. Esse í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 determinam como você projeta o esquema, habilita 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 seguintes pontos:
Topologia de índice. Avalie se todos os dados devem ser colocados em um único índice ou distribuídos em 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 mais simples de design de dados é possivelmente traduzir todos os idiomas em um idioma e armazená-lo em um único índice. Ou os dados podem ser armazenados em todos os idiomas em um único índice. Essa 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 independentemente cada índice para obter o máximo de relevância de suas consultas de pesquisa. Por exemplo, um manual do funcionário de RH e um manual de manutenção de produtos servem a 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.
Observação
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 desafiador e afetar a relevância da pesquisa. Na pior das hipóteses, pode haver peneiramento manual dos resultados, decidindo quais se encaixam nos critérios. Esse processo introduz latência e adiciona 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, as 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 densamente repleto de informações relevantes.
Projeto de campo. Configure seus campos de índice para dar 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.
Recursos de índice
Configure os campos de índice de pesquisa para retornar o conjunto de documentos mais relevante. A decisão depende dos recursos compatíveis com a tecnologia de índice de pesquisa e os requisitos de carga de trabalho.
Opções de filtro, pesquisa e classificação. Considere essas opções porque elas estão diretamente relacionadas a casos de uso para aumento. Por exemplo, filterable determina true ou false em relação a um valor fornecido na consulta e retorna documentos relevantes. Para 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, que listam os resultados por relevância.
Troca. 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 nos ajudam a entender e gerenciar dados, fornecendo detalhes relevantes sobre eles. Ao criar í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.
Existem 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 irrelevantes.
Consulta eficiente
Os dados de aterramento são usados em aplicativos de IA generativa para aumentar a precisão e a relevância das respostas às consultas dos usuários. Considere as consultas do usuário antecipadamente. Entenda quais perguntas podem ser feitas, quem as faz e com que frequência são feitas. Essas informações ajudam o contexto do formulário de inscrição e a entender qual resultado pode ser relevante.
Os tipos típicos de pesquisas são:
As consultas vetoriais pesquisam 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 em 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, os ciclos de computação são necessários para a indexação. Se a indexação e a resposta às consultas forem feitas nos mesmos recursos de computação, poderá haver contenção. Idealmente, um índice deve se concentrar no objetivo principal de responder a consultas com eficiência e encontrar documentos relevantes, em vez de indexação excessiva.
Custo e 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 por meio de índices, o que incorre em custos.
Troca. O design do índice deve considerar o custo e o desempenho. Encontre um equilíbrio otimizando o armazenamento e priorizando a resposta eficiente a consultas e a recuperação de documentos relevantes em vez 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 avançados, incluindo pesquisas vetorizadas e baseadas em relevância. Como alternativa, considere opções de banco de dados que dão suporte ao tipo de dados que você tem e aos tipos de consultas necessárias, pois elas são otimizadas 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 consulta semântica. Algumas consultas para localizar documentos relevantes no índice podem ser correspondências literais. 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 viés, pesquisar com eficiência e maximizar a relevância das pesquisas de índice. As ferramentas de escolha ou lógica para pré-processamento dependem da equipe de carga de trabalho, mas há algumas considerações amplas.
Redefinição do escopo do volume de dados
O redefinição do escopo do volume de dados envolve o ajuste do escopo dos dados, expandindo-o ou restringindo-o para criar um índice restrito para que a relevância seja aumentada. A eficiência da consulta é 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. Guarde apenas o essencial para a funcionalidade do produto, descartando detalhes desnecessários. A seguir, temos alguns exemplos comuns.
Eliminação qualitativa. Uma maneira de fazer a transição de um escopo amplo para um mais restrito e relativo é eliminar dados de baixa qualidade, optando seletivamente por indexar apenas 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 intenções, 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 momento da população do índice se o conteúdo precisar ser adicionado ao índice.
Dados confidenciais. 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 esse conjunto de dados. Ao lidar com dados que contêm informações pessoais, não armazene dados pessoais, a menos que você 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 de confidencialidade geral.
Normalização e padronização de texto. Abordar 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 a maiúsculas e minúsculas. O contexto é importante e pode haver nuances, como as diferenças semânticas entre o adjetivo "cívico" e o nome 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 snippet. Quando você armazena essas perguntas junto com os dados de base, as consultas do usuário podem ser comparadas às consultas geradas para avaliar a relevância do documento. A colocação desses novos dados com dados de aterramento é uma maneira poderosa de enriquecer os dados em partes.
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 seu setor ou outras informações relevantes em um banco de dados externo e adicioná-las ao nosso índice.
Considere manter a linhagem de dados. É importante que as cargas de trabalho de IA rastreiem a fonte de dados, pois essas informações podem ser perdidas 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 as origens 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 responsabilidade.
Troca. Por um lado, adicionar novos dados aumenta as chances de encontrar relevância dentro do conjunto de dados. No entanto, esse benefício tem um custo. Especificamente, os recursos computacionais necessários para processar e gerenciar esse campo. O tempo gasto na coleta e armazenamento de dados pode ser substancial. Lembre-se de que a sobrecarga com campos desnecessários pode sobrecarregar os recursos.
Processamento de dados de texto. Considere técnicas como sinônimos, lematização e proximidade semântica para aumentar a relevância. Delegue essas técnicas às ferramentas, se possível. Algumas tecnologias, como o Elasticsearch ou a pesquisa de IA, oferecem esses recursos para pré-processamento de dados durante a criação do índice.
Transformação de tipo de dados
Os campos de índice em um repositório de dados são tipados para atender a uma finalidade específica. Os campos numéricos facilitam a consulta eficiente, 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 de chave-valor, identificar cabeçalhos de seção para agrupamento semântico, 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 e comparações semânticas eficientes. Se a relevância estiver vinculada 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 na análise.
Agrupamento 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 importante estratégia de design de dados porque envolve a divisão de um documento em partes menores que podem ser processadas e indexadas individualmente. Essa estratégia permite 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 manipular. Seus pedaços não devem exceder esse limite.
Existem muitas técnicas para implementar o agrupamento. Para obter mais informações, consulte Abordagens de agrupamento.
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 gerada por modelos de IA com base 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, confira Gerar inserções.
Manutenção de índices
A manutenção ao longo do tempo é um aspecto crucial do design do índice. Para dados estáticos, em que os documentos permanecem inalterados, a manutenção do índice é simples. Mas, a maioria dos índices é dinâmica. 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. Essa 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.
Exclusão de dados. A exclusão de dados é desafiadora 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 impeçam os mecanismos de pesquisa de indexar páginas ou conteúdos específicos. Além disso, ao escolher opções de armazenamento, selecione uma tecnologia que ofereça suporte a exclusões com eficiência. Por exemplo, o armazenamento de blobs dá suporte a exclusões reversíveis. Se você usar a pesquisa de IA e carregar documentos do armazenamento, o armazenamento de blobs poderá detectar documentos removidos e excluir entradas correspondentes. Essa abordagem não é ideal, mas é necessária quando a reindexação é cara devido a um grande tamanho de índice.
O conceito de direito ao esquecimento refere-se ao direito de um indivíduo de ter seus dados pessoais removidos de plataformas ou bancos de dados online. Certifique-se de ter políticas em vigor para remover dados pessoais se eles tiverem sido usados para treinamento. 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.
Mantendo 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 para um banco de dados tradicional, adote uma mentalidade de compatibilidade direta para índices e mantenha um nível de rigor. Ao fazer alterações no índice, como adicionar ou remover campos, coordene as alterações de esquema com atualizações de código.
Troca. As ações de adição, atualização e exclusão em um índice são caras. 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. Nessa abordagem, um novo índice que possui 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 a disponibilidade contínua.
As atualizações lado a lado funcionam bem quando o custo de recriaçã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, pois índices maiores consomem mais recursos. Monitore e mantenha regularmente os índices para evitar crescimento desnecessário.
Dica
Ao executar tarefas de pré-processamento de dados com uso intensivo de recursos, como reconhecimento de entidades, pesquisas e cálculos, considere salvar uma cópia dos resultados. Essa abordagem garante que, quando você precisar recompilar o índice, evite refazer todos os cálculos. Alguns cálculos podem não se aplicar mais devido a exclusões ou atualizações, mas muitos permanecerão relevantes.
Implantações de atualização in-loco. Essa abordagem modifica diretamente o índice existente. Economizar o custo da duplicação pode ser benéfico, mas também apresenta riscos devido ao possível tempo de inatividade e operações com uso intensivo de recursos. Se o índice for grande e recriá-lo do zero exceder a frequência de atualização desejada, considere o uso de atualizações in-loco. No entanto, essa abordagem é desafiadora e acarreta o risco de violar seu SLO (objetivo de nível de serviço).
Troca. Avalie o custo de fazer implantações lado a lado de índices em relação a 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 é recriado, o processo lida efetivamente com exclusões e atualizações porque cria um conjunto de dados completamente novo. Essa 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 em testes e avaliação de desempenho geralmente justificam esse requisito de armazenamento. Antes de ativar um índice, examine os dados para garantir que eles estejam alinhados com suas expectativas.
Atualizações programadas. Em vez de manter 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 programadas, o que elimina a necessidade de interação constante.
Atualizações de emergência. Situações inesperadas podem ocorrer, como vazamento inadvertido de dados indesejados no índice de pesquisa. Se esse problema ocorrer, talvez seja necessário tomar medidas imediatas, como remover documentos específicos ou ajustar dados no í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 atualização automática. Se sua tecnologia de indexação der 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. Lembre-se de que cada alteração aciona uma operação no índice, que consome recursos. O índice pode permanecer responsivo às consultas, mas sua capacidade de tratá-las 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 acompanhe-a em relação aos SLOs. Esse indicador orienta as decisões de dados sobre a atualização do design do pipeline de dados para garantir que os dados estejam disponíveis no índice quando você precisar deles. Um índice deve ser tão atualizado quanto necessário.
Para manter a atualização, você pode recriar o índice inteiramente 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 mais barato do que implementar um padrão RAG, engenharia imediata e métodos de aumento de dados.