Plataforma de dados para cargas de trabalho de IA no Azure
Uma plataforma de dados é um conjunto integrado de tecnologias projetadas para gerenciar os requisitos de carga de trabalho ingerindo dados de origem e, em seguida, filtrando, agregando e preparando-os para consumo.
Os dados têm características distintas que se baseiam no uso pretendido. É altamente recomendável que você entenda os princípios de um bom design de pipeline de dados antes de explorar os recursos tecnológicos descritos neste artigo. Para obter mais informações, consulte Design de dados de treinamento e Design de dados de aterramento.
A plataforma também atende às necessidades de armazenamento quando os dados ficam em determinados pontos do pipeline. Se a carga de trabalho for complexa e lidar com dados em grande escala, você poderá distribuir tarefas de pipeline entre vários componentes. Para casos de uso mais simples, avalie se você pode usar os dados de origem em um repositório que ofereça esses recursos combinados.
Faça a si mesmo as seguintes perguntas para evitar projetar uma arquitetura excessivamente complexa para sua plataforma de dados. É sempre melhor manter as coisas simples quando puder.
- Seu aplicativo pode ter o poder preditivo esperado ingerindo dados de uma única fonte?
- Sua escolha inicial de armazenamento de dados oferece suporte a recursos de armazenamento de dados?
- Os dados de origem já estão otimizados para pesquisas de IA?
Se você responder sim a essas perguntas, poderá simplificar sua arquitetura permitindo que o aplicativo acesse a fonte de dados diretamente. Essa abordagem elimina a necessidade de componentes de arquitetura de Big Data, como ingestão de dados, integração de repositório analítico e processamento de dados externos. Se o banco de dados de origem puder lidar com as pesquisas necessárias, integrar o recurso de índice de pesquisa diretamente no banco de dados de origem pode ser uma abordagem prática. Certifique-se de que a fonte possa ser dimensionada de maneira econômica para atender às novas demandas.
Por exemplo, o Azure Cosmos DB dá suporte à pesquisa de vetor, portanto, talvez você não precise de outro índice. Outro caso de uso é usar réplicas de leitura como pontos de extremidade para operações de pesquisa. Para bancos de dados SQL que têm réplicas de leitura, as pesquisas diretas para essas réplicas podem otimizar o desempenho. Aproveite os recursos internos do banco de dados para simplificar a arquitetura o máximo possível.
Uma arquitetura de plataforma de dados para cargas de trabalho em grande escala é mais complexa.
A ingestão de dados de várias fontes de dados e a orquestração de pesquisas em várias plataformas podem se tornar complexas e ineficientes. Além disso, você ainda precisa de alguma extração, transformação e carregamento (ETL); extrair, carregar e transformar (ELT); ou processos de extração e carregamento (EL) para remodelar os dados no armazenamento de dados. O cenário se torna mais complexo à medida que os dados exigem mais processamento. Você precisa adicionar muitos componentes à arquitetura para lidar com o pipeline de ponta a ponta, desde a ingestão até o atendimento de consultas. Muitas tecnologias de big data são altamente especializadas e criadas para lidar com essas tarefas de processamento de forma eficaz.
Uma dessas tecnologias é o índice de pesquisa. A principal vantagem de adicionar um índice separado é sua capacidade de gerenciar consultas com eficiência e processar grandes volumes de dados com alta taxa de transferência. Essa função descarrega recursos de IA da fonte de dados original para que o índice possa se concentrar em sua função principal, atendendo a consultas.
Escolha uma plataforma com base em sua funcionalidade e finalidade específicas e considere seus requisitos funcionais e técnicos. Se sua arquitetura estiver evoluindo para lidar com casos de uso complexos, concentre-se nas seções a seguir sobre armazenamentos de dados agregados, pipelines de processamento e índices de pesquisa.
Recomendações
Aqui está o resumo das recomendações fornecidas neste artigo.
Recomendação | Descrição |
---|---|
Crie armazenamentos de dados seguros, de alto desempenho e econômicos. | Uma parte fundamental da sua plataforma de dados é um armazenamento de dados que agrega dados de várias fontes e permite a integração com várias tarefas de integração. Isso ajuda sua carga de trabalho a funcionar em escala. Certifique-se de examinar os vários requisitos funcionais e não funcionais do seu armazenamento de dados para garantir uma implantação econômica. ▪ Considerações para armazenar dados agregados |
Siga as práticas recomendadas para ingestão e processamento de dados. | Dados de alta qualidade ajudam a melhorar a confiabilidade de sua carga de trabalho e a experiência do usuário final. Considere os requisitos de sua carga de trabalho, bem como as principais práticas recomendadas para criar processos eficientes de ingestão e transição de dados que ajudem a manter um padrão de alta qualidade. ▪ Considerações sobre o processamento de dados |
Crie índices de pesquisa confiáveis e relevantes. | Procure um armazenamento de dados de alto desempenho, escreva uma vez e leia muitos que lide com eficiência com consultas improvisadas e difusas, fornecendo resultados relevantes para sua base de usuários, mesmo quando as consultas não são precisas. ▪ Considerações para um índice de pesquisa |
Garanta que os armazenamentos de dados funcionais funcionem em escala. | Dependendo dos requisitos funcionais de sua carga de trabalho, talvez seja necessário criar armazenamentos de dados funcionais, por exemplo, para inferência offline. É importante que você crie armazenamentos de dados com a função designada em mente e aplique as práticas recomendadas para a função. ▪ Considerações para um repositório de recursos ▪ Considerações para um armazenamento de dados de inferência offline |
Considerações para armazenar dados agregados
Nas cargas de trabalho de IA, os dados passam por vários estágios de armazenamento e processamento com a ajuda de pipelines que orquestram o fluxo de trabalho entre esses estágios. Um estágio importante é um armazenamento de dados que contém dados ingeridos e agregados de várias fontes. Você precisa desse armazenamento para realizar o processamento até que os dados atinjam um estado adequado para treinamento ou indexação. O foco principal é garantir que os dados reflitam com precisão sua fonte.
Observação
Uma abordagem alternativa é acessar diretamente as fontes de dados. No entanto, essa abordagem pode levar a problemas de desempenho porque pode sobrecarregar os sistemas de origem com recursos de IA. Também pode haver problemas de acesso a dados. Para evitar esses problemas, recomendamos que você copie os dados para esse armazenamento.
A plataforma de dados para esse armazenamento deve atender aos padrões de segurança aplicados nas fontes de dados, ser econômica e oferecer suporte à integração com tarefas de processamento de ETL, ELT e EL. As opções variam de armazenamento básico a tecnologias de big data com base no volume de dados. Escolha um armazenamento econômico que ajude você a obter confiabilidade e desempenho suficientes.
A seção a seguir fornece orientação sobre os recursos a serem considerados ao selecionar uma tecnologia de armazenamento de dados. Para obter mais informações, consulte Pipelines de processamento de dados.
Requisitos funcionais
A plataforma pode lidar com vários formatos de dados?
O armazenamento de dados deve ser capaz de armazenar vários formatos de dados e transformá-los em outros formatos, se necessário.
Suponha que seu pipeline de ingestão origine dados de um banco de dados relacional e de um arquivo Parquet, portanto, ele dá suporte a dados estruturados e semiestruturados. Você deseja converter dados relacionais para o formato Parquet de acordo com suas definições de esquema. A plataforma de dados deve ter recursos internos para fazer essa transformação sem que você escreva código personalizado.
Você espera armazenar várias versões dos dados?
Os valores e esquemas de dados podem mudar ao longo do tempo, e o gerenciamento de várias versões dos dados se torna importante.
Os sistemas de origem normalmente armazenam apenas dados atuais, não dados históricos. Se for importante reter dados históricos, talvez seja necessário duplicar grandes conjuntos de dados dos sistemas de origem. Nesse caso, o controle de versão pode remover a ambiguidade dos dados atuais dos dados históricos.
Em alguns casos, pode ser necessário manter cópias de dados para diferentes casos de uso. Para dar suporte a esse cenário, talvez seja necessário bifurcar dados. Cada garfo pode sofrer mutação independentemente para melhorar sua qualidade e usabilidade. Sua plataforma de dados deve ser capaz de manter o controle de versão adequado dessas bifurcações.
Sua plataforma de dados deve ser capaz de armazenar versões de dados ao longo do tempo para fornecer contexto histórico. Esse conteúdo é benéfico para processar e treinar modelos de IA porque oferece várias observações em vez de apenas um único ponto no tempo.
A plataforma possui recursos integrados de gerenciamento do ciclo de vida dos dados?
O gerenciamento do ciclo de vida dos dados (DLM) é um processo de gerenciamento de dados desde sua criação até sua exclusão, com etapas como coleta, armazenamento, uso, arquivamento e descarte de dados.
Sem o DLM, os dados podem crescer incontrolavelmente, geralmente resultando em várias cópias à medida que se movem pelos níveis de qualidade. A plataforma de dados deve ter recursos DLM para evitar o crescimento ilimitado de dados.
Considere este cenário. A etapa de pré-processamento precisa ser repetida para refinar os dados até atingir uma qualidade aceitável para fins de treinamento. Sua plataforma de dados deve ser capaz de excluir cópias intermediárias dos dados.
Em alguns casos, pode ser necessário reter dados para auditorias regulatórias. A plataforma de dados deve ter recursos de armazenamento frio para dados acessados com pouca frequência, para que você possa arquivá-los a um custo menor.
A plataforma oferece suporte a recursos de governança de dados?
A auditabilidade é um aspecto importante para cargas de trabalho de IA. O armazenamento de dados deve manter trilhas de auditoria que possam rastrear o acesso aos dados, garantir a privacidade e entender as origens dos dados.
Use um recurso de dicionário de dados para gerenciar metadados, tipos de dados, finalidades e linhagem. Esse recurso é especialmente importante quando os dados são ingeridos de várias fontes.
Você planeja realizar treinamento com dados de produção?
Há duas abordagens para implantações, implantação de modelo e implantação de código. Na implantação do modelo, os dados de produção são usados no desenvolvimento, o que requer medidas de segurança rigorosas. Na implantação de código, o modelo não vê dados de produção até que esteja em produção. Embora a implantação de código simplifique as preocupações de segurança no ambiente de desenvolvimento, ela pode aumentar os custos de computação. Seja qual for a abordagem escolhida, sua plataforma de dados deve oferecer suporte a ambientes separados para desenvolvimento e produção.
Você está priorizando os recursos de conveniência sobre os principais recursos funcionais?
Ao escolher uma plataforma de dados para IA ou aprendizado de máquina, não confie apenas em seus recursos de notebook. Embora os cadernos sejam úteis para análise exploratória de dados, eles não devem ser o fator decisivo. Os recursos de computação para notebooks normalmente estão fora do escopo do armazenamento de dados de agregação. Eles geralmente são integrados a outros recursos, como o Azure Machine Learning.
Requisitos não funcionais
Quantos dados você espera armazenar?
As cargas de trabalho de IA geram muitos dados. O volume pode aumentar significativamente devido a várias versões e metadados extras.
A escalabilidade para armazenamento e taxa de transferência é importante. A plataforma de dados deve consumir dados do pipeline de ingestão com eficiência enquanto lida com o volume de dados, gerencia gravações simultâneas e garante o desempenho de gravação individual sem degradação. Esses critérios também se aplicam ao pipeline de processamento que lê, processa e até grava de volta no repositório.
Ao tomar uma decisão, considere todo o processo, pois a ingestão e o processamento geralmente ocorrem simultaneamente. O design deve ser capaz de gerenciar a movimentação e o processamento frequentes de dados. A plataforma de dados deve oferecer altos níveis de paralelismo para processar dados de forma eficaz.
A tecnologia da plataforma deve emitir telemetria que forneça informações significativas sobre a taxa de transferência e o desempenho das operações de leitura e gravação.
Esse armazenamento de dados é um componente crítico que contribui para a meta de confiabilidade da carga de trabalho?
Escolha um armazenamento de dados que aprimore a confiabilidade e a escalabilidade usando várias instâncias. Os armazenamentos de Big Data geralmente têm um controlador interno que orquestra o processamento de dados entre instâncias. Se uma cópia falhar, outra poderá ser usada.
Lembre-se de que os dados não servem ao seu propósito se não estiverem corretos ou acessíveis. A plataforma de dados deve garantir durabilidade e garantir que os dados permaneçam intactos. Verifique se as APIs que consultam os dados estão acessíveis. Além disso, considere armazenamentos de dados que tenham recursos de backup.
Em geral, você não precisa fazer backup desses dados. No entanto, se o custo de agregar dados a cada vez do zero for significativamente alto, você pode considerar reidratar os dados de um backup.
Você tem alguma restrição de custo?
Se a confiabilidade e o desempenho dos dados forem suficientes, considere o impacto no custo.
O sistema deve ser otimizado para gravar uma vez, ler muitos para evitar gastos excessivos com armazenamento de dados. Os dados de treinamento ou aterramento são importantes, mas não críticos como um banco de dados de produção, que requer capacidade de resposta instantânea. O foco está em equilibrar custos com eficiência suficiente para maximizar o retorno do investimento.
Os requisitos anteriores podem naturalmente levar você a considerar o uso de um data lake porque ele oferece DLM, camadas de qualidade, observabilidade e suporte para diversos formatos de arquivo. Se sua carga de trabalho já usa um data lake, aproveite esse recurso para atender às suas necessidades de IA. Como alternativa, você pode escolher outras opções de armazenamento, como o Armazenamento de Blobs do Azure, que fornece algum nível de DLM, recursos de monitoramento e altas taxas de transação.
Considerações sobre o processamento de dados
Você deve processar dados no armazenamento de dados agregado para aumentar sua utilidade downstream. Os pipelines de ETL executam essa tarefa, que é mais importante nos seguintes pontos:
Camada de ingestão
O pipeline é responsável por coletar dados de várias fontes e movê-los para o armazenamento de dados agregados. Durante esse processo, o pipeline normalmente executa o pré-processamento básico e pode até estruturar os dados em um formato consultável.
Para minimizar a necessidade de código personalizado, recomendamos transferir grande parte dessa responsabilidade para uma plataforma de dados. Ao selecionar uma tecnologia, considere as características de ETL necessárias para dar suporte ao treinamento e aumento do modelo.
Camada de processamento
Os dados do armazenamento de dados agregados passam por um processamento extensivo antes de serem usados para indexação ou casos de uso de treinamento de modelos. O pipeline de processamento requer níveis de confiabilidade e dimensionamento semelhantes ao pipeline de ingestão. A principal diferença é o tipo de processamento feito nos dados.
O processo envolve um escopo e uma reestruturação significativos dos dados. Esse processo inclui tarefas como reconhecimento de entidades, integração de dados adicionais ao conjunto de dados e realização de pesquisas. Esse processo também pode incluir a exclusão de dados desnecessários e a aplicação da lógica de dados por meio de uma plataforma de orquestração de dados.
O estágio de processamento de dados pode produzir várias saídas, que chegam a diferentes destinos para diferentes intenções. Seu principal objetivo é preparar e transferir dados do armazenamento de dados agregado para consumo pelo destino final. O consumidor pode extrair dados quando necessário ou a camada de processamento pode enviar dados quando estiver pronto.
Observação
No contexto de aprendizado de máquina e IA generativa, é importante distinguir entre processos ETL, ELT e EL. O ETL tradicional é crucial para armazenamento de dados e mapeamentos relacionais de objetos, em que, devido a restrições de esquema, os dados devem ser transformados antes de serem carregados no sistema de destino. O ELT envolve extrair dados, carregá-los em um data lake e transformá-los usando ferramentas como Python ou PySpark. Na IA generativa, particularmente para geração aumentada por recuperação (RAG), o processo geralmente envolve extrair e carregar documentos no armazenamento primeiro, seguido por transformações como agrupamento ou extração de imagem.
A seção a seguir fornece diretrizes a serem consideradas ao selecionar uma tecnologia de processamento de dados que tenha recursos de ETL.
Requisitos funcionais
Qual é o suporte para conexão com fontes de dados?
Os dados que precisam ser processados podem ser armazenados em bancos de dados relacionais, fontes de big data ou várias soluções de armazenamento.
A maioria das tecnologias de processamento de dados oferece suporte a integrações predefinidas que permitem que você se conecte a várias fontes de dados sem escrever código. Os conectores têm recursos como a capacidade de copiar dados da origem para o coletor, executar pesquisas e aplicar alguma forma de governança de dados. Existem ferramentas que oferecem recursos de arrastar e soltar para evitar codificação desnecessária.
Escolha uma plataforma de dados que facilite a integração com as fontes de dados esperadas.
A plataforma pode processar vários formatos de dados?
Os dados podem vir em vários formatos, como dados estruturados, como bancos de dados e JSON, dados não estruturados, como imagens e documentos, ou dados de streaming, como dados de dispositivos da Internet das Coisas. Os pipelines devem ser capazes de lidar com os tipos de arquivo esperados.
A plataforma oferece recursos para preparação e redefinição de escopo de dados?
Você deve processar os dados que pretende usar para treinamento ou aumento até que sejam adequados para treinamento, ajuste fino ou indexação. Suas estratégias de design de dados devem descrever explicitamente os requisitos.
Os artigos a seguir descrevem considerações específicas:
- Criar dados de treinamento para cargas de trabalho de IA no Azure
- Criar dados de base para cargas de trabalho de IA no Azure
Como parte da limpeza básica, a plataforma remove duplicatas, preenche valores ausentes e elimina ruídos estranhos durante a ingestão. Para determinados casos de uso, como a implementação de um padrão RAG, recomendamos que você use partes minúsculas.
Embora essas etapas de pré-processamento sejam necessárias, a plataforma também deve oferecer suporte à manipulação de dados avançada específica para suas necessidades. Esse processo envolve o carregamento, o redefinição do escopo e a transformação de dados. Para determinados modelos, a plataforma deve ser capaz de consultar fontes externas para análise de documentos, como inteligência de documentos ou outras ferramentas de IA. Esse trabalho é necessário para preparar os dados e para o enriquecimento dos dados.
Se o armazenamento de dados der suporte a esse nível de processamento, você poderá localizar esse estágio no armazenamento sem movê-lo para outro lugar. Caso contrário, você precisará de uma tecnologia externa, como o Azure Databricks ou o Azure Data Factory. Essas tecnologias são adequadas para mover dados e realizar manipulações, como filtragem, preenchimento de valores ausentes e padronização de maiúsculas e minúsculas de string. Para tarefas mais complexas, normalmente é necessária uma plataforma de hospedagem de empregos. Você pode usar pools do Spark para orquestração de Big Data.
Em determinados casos de uso, talvez você queira externalizar essa responsabilidade para o consumidor dos dados. Por exemplo, os modelos de IA que usam aprendizado de máquina oferecem recursos de processamento de trabalho para ler, manipular e gravar dados usando código Python personalizado.
Outro exemplo é a implementação do RAG. Uma etapa de processamento comum é a divisão em partes, em que um documento é dividido em várias partes e cada parte se torna uma linha no índice. Ele também armazena incorporações, que um serviço OpenAI geralmente gera, para esses pedaços. Nas pesquisas de IA, esse processo é orquestrado no fluxo de trabalho de indexação, seja usando o OpenAI ou o Azure AI Search.
Existe um orquestrador integrado para gerenciar fluxos de trabalho?
As tarefas de processamento são modulares e executadas como trabalhos. A plataforma deve ter recursos de orquestração que dividam o fluxo de trabalho em etapas ou trabalhos. Cada trabalho deve ser definido, executado e monitorado de forma independente.
Em fluxos de trabalho complexos, certas etapas dependem da conclusão bem-sucedida das anteriores. O orquestrador deve lidar com as dependências de trabalho e certificar-se de que as tarefas sejam concluídas na ordem correta.
O design de dados é um processo iterativo, portanto, a ferramenta orquestradora deve ser flexível o suficiente para modificar os fluxos de trabalho facilmente. Você deve ser capaz de injetar novas etapas ou ajustar as existentes sem reescrever grandes partes do código.
O Data Factory é uma escolha popular porque fornece um conjunto avançado de recursos para gerenciar fluxos de trabalho de dados. O Azure Databricks também pode gerenciar fluxos de trabalho complexos e agendar e monitorar trabalhos. Você também deve considerar as implicações de custo. Por exemplo, os recursos do Azure Databricks podem ser extensos, mas também são caros. Uma opção alternativa de código aberto, como o Apache NiFi, pode ser mais econômica.
Em última análise, a ferramenta escolhida depende do que sua organização permite e das habilidades com as quais a equipe de carga de trabalho se sente confortável.
Requisitos não funcionais
Quando você escolhe um pipeline de processamento, é crucial equilibrar a taxa de transferência e a observabilidade. O pipeline deve processar e aterrissar de forma confiável os dados necessários para modelos ou índices dentro de um prazo suficiente. Deve ser leve o suficiente para atender às suas necessidades atuais e ser escalável para crescimento futuro. As equipes devem decidir o quanto precisam para preparar a plataforma para o futuro para evitar dívidas técnicas posteriormente. As principais considerações incluem a frequência e o volume de ingestão de dados, a confiabilidade do processo e a necessidade de observabilidade para monitorar e resolver problemas prontamente.
Quantos dados você espera ingerir?
Para os estágios de ingestão e processamento, considere a escalabilidade e a velocidade da plataforma para lidar com tarefas. Por exemplo, você espera carregar 10 terabytes de dados diariamente em um índice ou para treinamento de modelo. Sua plataforma de ingestão de dados deve ser capaz de processar tanto volume e com a taxa de transferência esperada. Nesse caso, o uso dos Aplicativos Lógicos do Azure pode não ser viável porque ele pode falhar sob essa carga. Em vez disso, o Data Factory é mais adequado para essa escala de processamento de dados.
Uma maneira de lidar com alto volume é por meio do paralelismo, pois permite um manuseio e processamento de dados mais eficientes. Plataformas como o Azure Databricks podem orquestrar tarefas criando várias instâncias para o mesmo trabalho e distribuindo a carga com eficiência.
Além disso, considere a latência tolerável e a complexidade dos trabalhos. Por exemplo, a limpeza de dados envolve validar e potencialmente substituir campos inválidos ou mascarar informações confidenciais. Essas tarefas, embora básicas, exigem recursos significativos porque cada linha é processada individualmente, o que aumenta o tempo total.
Quais recursos de monitoramento você precisa?
Os pipelines de processamento de dados devem ter recursos de monitoramento e fornecer insights sobre o desempenho e o status dos trabalhos do pipeline.
Você deve ser capaz de acompanhar o andamento dos trabalhos. Suponha que o pipeline execute um trabalho de limpeza de dados que não seja concluído ou seja concluído parcialmente. Pode haver um impacto a jusante na qualidade dos dados com os quais o modelo é treinado, o que pode afetar o poder preditivo.
Semelhante a outros componentes na carga de trabalho, você deve habilitar logs, métricas e alertas no pipeline de dados para entender seu comportamento. Colete e analise métricas de desempenho para entender os aspectos de eficiência e confiabilidade.
Identifique quaisquer lacunas na telemetria interna e determine qual monitoramento adicional você precisa implementar. Esse monitoramento pode envolver a adição de log ou métricas personalizadas para capturar detalhes específicos sobre as etapas do trabalho.
Quanta confiabilidade você espera da plataforma de processamento de dados?
A confiabilidade de um pipeline de processamento de dados varia de acordo com a escolha da plataforma. Embora os Aplicativos Lógicos tenham recursos de orquestração, talvez não sejam tão confiáveis quanto o Data Factory. O Data Factory, hospedado em um cluster do AKS (Serviço de Kubernetes do Azure), pode ter características de confiabilidade diferentes.
As configurações de instância única são consideradas pontos de falha. Escolha uma plataforma que ofereça suporte a recursos de confiabilidade, como várias instâncias, para atender aos seus requisitos.
A plataforma também deve dar suporte a recursos de resiliência. Por exemplo, o orquestrador deve repetir automaticamente uma tarefa com falha, o que reduz a necessidade de reinicializações manuais.
O processamento em lotes pode ser menos confiável do que a inferência, dependendo da atualização dos dados e dos requisitos de latência. Se o treinamento ocorrer semanalmente e o processamento levar um dia, falhas ocasionais serão aceitáveis porque há tempo suficiente para tentar novamente.
Existem restrições de custo?
Ao considerar a relação custo-benefício de um pipeline de processamento de dados, é importante escolher uma solução que atenda às suas necessidades sem despesas desnecessárias. Se seus requisitos não justificarem os recursos avançados do Azure Databricks, uma opção mais econômica, como o Data Factory, poderá ser suficiente. Além disso, ferramentas de código aberto como Apache Airflow ou Apache NiFi podem fornecer recursos robustos a um custo menor. A chave é evitar gastos excessivos em recursos desnecessários e selecionar uma plataforma que equilibre funcionalidade e eficiência de custos.
Quais são os requisitos de segurança nos fluxos de trabalho e nos dados que você processa?
Seja claro sobre os requisitos de segurança, privacidade e residência de dados. Por exemplo, considere quaisquer requisitos regulatórios geográficos. Cumpra os requisitos de residência de dados, garantindo que os dados sejam armazenados e processados em regiões específicas. Talvez seja necessário executar pipelines separados para diferentes regiões, como um para a Europa e outro para a América, para atender aos regulamentos de conformidade locais.
A plataforma de pipeline de dados deve oferecer suporte ao gerenciamento de identidade e acesso para garantir que apenas identidades autorizadas tenham acesso a trabalhos ou etapas específicas nos fluxos de trabalho. Por exemplo, se o seu processo de ETL consiste em vários fluxos de trabalho e um deles lida com dados altamente confidenciais, a plataforma deve permitir que você restrinja o acesso a esse fluxo de trabalho, mantendo os outros acessíveis. Esse recurso ajuda você a atender aos requisitos de segurança sem precisar de plataformas separadas para diferentes níveis de confidencialidade de dados. Idealmente, a plataforma deve fornecer suporte integrado para esse isolamento que permita um gerenciamento de dados eficiente e seguro.
Os pipelines de processamento de dados podem gerar os dados para um índice de pesquisa ou um pipeline de treinamento de modelo. Dependendo do caso de uso, consulte as seções sobre índices de pesquisa ou lojas de recursos.
Considerações para um índice de pesquisa
O índice de pesquisa foi projetado para armazenar dados contextuais ou de aterramento para enviar ao ponto de extremidade de inferência do modelo, juntamente com o prompt. Ambas as chamadas, a consulta de índice e a invocação do ponto de extremidade de inferência, ocorrem no contexto de atender às mesmas solicitações HTTP do cliente. Ao contrário dos processos ETL que lidam com trabalhos offline e em lote, esse índice oferece suporte à inferência em tempo real, o que requer alto desempenho e confiabilidade. É especializado em consultas de IA e oferece recursos como indexação e filtragem de palavras-chave, que não são típicos de grandes armazenamentos de dados. O objetivo é ter um armazenamento de dados de alto desempenho, de gravação única e leitura múltipla que ofereça suporte a consultas improvisadas e difusas. Esse armazenamento de dados pode fornecer resultados relevantes sem consultas precisas.
Requisitos funcionais
Quais tipos de pesquisa são compatíveis com o índice de pesquisa?
As consultas que o sistema recebe são essencialmente pesquisas, e o índice precisa dar suporte a recursos avançados de pesquisa. Para o RAG, a pesquisa vetorial não é negociável porque os dados são armazenados como vetores calculados, ou incorporações, que são usados para pesquisa.
A pesquisa vetorial é poderosa e combiná-la com filtragem e pesquisa de texto completo aumenta a eficácia do índice de pesquisa. Seu design de dados deve levar em conta a combinação desses tipos de pesquisas, como vetor, pesquisa de texto completo, filtragem e tipos de dados especiais, como geolocalização.
Seu design de dados deve declarar explicitamente esses requisitos. Para obter mais informações, consulte Consulta eficiente no design de dados.
O índice suporta dados multimodais?
Escolha tecnologias de índice que ofereçam suporte a dados multimodais. Por exemplo, as pesquisas de IA podem analisar um e-mail, converter uma imagem dentro dele em vetores e armazenar a descrição no índice. Use esta função para pesquisar em várias modalidades de conteúdo, incluindo imagens, vídeos e arquivos de áudio.
O índice dá suporte a recursos de atualização automática quando os dados nas fontes de dados são alterados?
Escolha um índice que tenha recursos de atualização automática. Se não houver um disponível, você precisará detectar manualmente e enviar as alterações por push para o índice. Com esses recursos, o indexador pode detectar alterações nas fontes de dados e efetuar pull de atualizações automaticamente. Ao transferir essa responsabilidade para a plataforma, você pode reduzir a sobrecarga operacional e simplificar o processo de manutenção.
Requisitos não funcionais
O índice pode funcionar com grandes volumes de dados?
O índice deve ser capaz de lidar com grandes quantidades de dados, ser escalonável e ter um bom desempenho para cargas de trabalho de pesquisa pesadas. O índice armazena os dados brutos e todos os metadados, enriquecimentos e entidades associados a eles. No contexto do padrão RAG, um único documento dividido em várias partes pode resultar em um aumento significativo no volume de dados.
O índice tem recursos de confiabilidade integrados?
Considere o alinhamento entre a confiabilidade do ponto de extremidade de inferência, ou o modelo, e o armazenamento de dados porque eles dependem um do outro.
O processo de pesquisa envolve duas etapas: consultar o armazenamento de dados e, em seguida, consultar o ponto de extremidade de inferência. Ambas as etapas precisam ter características de confiabilidade semelhantes. Equilibre seus objetivos de confiabilidade entre os dois componentes para garantir a eficácia da pesquisa.
Para garantir a resiliência, a carga de trabalho deve dar suporte ao número esperado de usuários simultâneos e ter largura de banda suficiente para lidar com picos de tráfego. Idealmente, a plataforma deve sobreviver a interrupções zonais.
A plataforma de dados deve ser projetada para impedir o uso de um índice corrompido para inferência. Nesses casos, você deve ser capaz de reconstruir o índice facilmente. O índice também deve dar suporte à troca confiável entre índices usando recursos como aliasing para minimizar o tempo de inatividade durante as trocas de índice. Sem essa funcionalidade, talvez seja necessário contar com um backup do índice. O gerenciamento de um backup é mais complexo.
De uma perspectiva de carga de trabalho, entenda os possíveis modos de falha ou indicadores de estresse, como limitação. Por exemplo, embora o sistema normalmente ofereça suporte a 50 usuários simultâneos, ele pode oferecer suporte a apenas 30 usuários durante um processo de reindexação executado como um trabalho em segundo plano. Nesse caso, o tempo do trabalho em segundo plano torna-se importante. Ao avaliar a taxa de transferência de um índice, inclua consultas de front-end e trabalhos de back-end.
Quais são os principais direcionadores de custo dessa tecnologia?
Ao modelar custos, estime as despesas associadas ao volume de dados, ao número de consultas e à taxa de transferência esperada do índice. Lembre-se de que os índices são principalmente PaaS (plataforma como serviço), em que os preços são abstraídos. Pesquise camadas e seus recursos para evitar pagar a mais por capacidade ou recursos não utilizados.
Por exemplo, o AI Search cobra como unidades, que podem incluir capacidade, taxa de transferência e armazenamento. Recursos extras podem levar a mais cobranças. Por exemplo, o uso extensivo de recursos de extração de imagens pode resultar em uma conta alta. Dependências, como o recurso de conjunto de habilidades, que estão fora do escopo do índice, mas fazem parte do processamento de dados, podem incorrer em custos extras.
Pagar por uma camada sem usar a capacidade total pode levar a um pagamento excessivo. Da mesma forma, o número de tabelas em seu índice e a capacidade de lidar com tráfego simultâneo afetam os custos.
Para entender os custos associados ao AI Search, consulte Planejar e gerenciar os custos de um serviço do AI Search.
Os recursos de segurança do índice atendem ao design dos dados de segurança?
Seu design de dados deve especificar claramente os requisitos de segurança e privacidade. Em ambientes de desenvolvimento e teste em que dados reais de produção são usados, o índice deve oferecer suporte a recursos que estejam em conformidade com todos os controles de acesso e medidas de rastreabilidade. Revise os recursos de segurança, como mascaramento de dados e remoção de informações pessoais no índice.
Escolha um índice que tenha a capacidade de identificar clientes exclusivamente por meio da ID do Microsoft Entra. O índice de pesquisa também deve dar suporte a controles de acesso no nível do documento para permitir a consulta de relevância por identidades. Se o índice não oferecer esses recursos, ajuste seu design para obter recursos semelhantes com filtros de consulta. Para obter mais informações, consulte Filtros de segurança para cortar resultados no AI Search.
Idealmente, o índice de pesquisa deve estar alinhado com os requisitos de segurança de rede. Por exemplo, se você precisar filtrar o tráfego de saída para sites que não são da Microsoft e manter a observabilidade, o índice deverá oferecer controles de saída. Ele também deve suportar a segmentação de rede. Se a computação de back-end estiver em uma rede virtual, a conectividade privada para os principais componentes, incluindo o índice, será essencial para evitar a exposição à Internet pública. O índice deve se integrar facilmente a redes privadas e dar suporte a identidades gerenciadas para autenticação por meio da ID do Microsoft Entra.
Considerações para um repositório de recursos
Para modelos discriminativos, seu design de dados pode incluir um armazenamento de dados intermediário que armazena dados em cache para refinamento extra. Esse armazenamento, conhecido como armazenamento de recursos, permite que os cientistas de dados armazenem recursos como uma etapa final, fora do armazenamento de dados agregados.
O repositório de recursos ajuda a catalogar dados para vários usos, adicionando metadados como tempo de geração e origem. Este ponto de pouso intermediário é ideal para dados de treinamento dourados.
O repositório de recursos gerenciados no Machine Learning é uma opção de armazenamento de dados que se integra ao MLflow e a outras ferramentas. Ele busca e treina dados do armazenamento de dados agregados, adicionando uma camada reutilizável para melhor linhagem de dados e identificação formal no Machine Learning.
Ao usar um repositório de recursos, trate-o como um armazenamento de dados com considerações de segurança e acesso.
Considerações para um armazenamento de dados de inferência offline
Em alguns cenários, o uso de um repositório separado é apropriado para pesquisas futuras mais rápidas, pois a inferência é feita em dados pré-coletados e pré-calculados, com antecedência. Nesse processo, a solicitação do usuário nunca chega ao modelo de IA. Existem vários benefícios:
- Maior eficiência e experiência do usuário, reduzindo a latência. Os resultados são veiculados mais rapidamente para consultas frequentes, como gerar perguntas frequentes como resultado.
- As chamadas de inferência podem ser dimensionadas mais facilmente como um processo em lotes sem as restrições do processamento em tempo real.
- Permite a pré-validação para garantir a precisão antes da produção.
- Como a solicitação não é direcionada para o ponto de extremidade de interferência, ela reduz a carga, contribuindo para a confiabilidade da carga de trabalho.
- Pode ser mais econômico, pois reduz a necessidade de hardware de alto desempenho necessário para processamento em tempo real.
No entanto, essa abordagem só é eficaz se você puder prever as possíveis solicitações e uma parte significativa das previsões for solicitada pelos usuários. Para cenários com menos solicitações repetidas, um repositório de inferência offline pode ser menos eficaz.
O armazenamento de dados para esse cenário deve ser otimizado para operações de leitura, deve ser capaz de lidar com grandes volumes de dados e fornecer recuperação eficiente. Ele também deve ser capaz de se integrar ao armazenamento de dados agregados. Qualquer repositório com esses recursos pode ser considerado, como o Azure Cosmos DB ou até mesmo um armazenamento de tabelas.
Recursos
Esses artigos fornecem mais detalhes sobre os produtos do Azure que recomendamos como opções de tecnologia para as considerações discutidas neste artigo.
- Machine Learning
- Armazenamento de Blobs
- Azure Databricks
- Data Factory
- Pesquisa de IA
- Azure Cosmos DB
- Cache do Azure para Redis