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 o consumo.
Os dados têm características distintas que se baseiam na sua utilização prevista. É 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 estão 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 suporta 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 armazenamento 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 forma econômica para atender a novas demandas.
Por exemplo, o Azure Cosmos DB dá suporte à pesquisa vetorial, 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 com réplicas de leitura, pesquisas diretas para essas réplicas podem otimizar o desempenho. Aproveite os recursos internos do banco de dados para simplificar ao máximo a arquitetura.
Uma arquitetura de plataforma de dados para cargas de trabalho de grande escala é mais complexa.
Ingerir dados de várias fontes de dados e orquestrar pesquisas em várias plataformas pode se tornar complexo e ineficiente. Além disso, você ainda precisa de alguma extração, transformação e carga (ETL); extrair, carregar e transformar (ELT); ou extrair e carregar processos (EL) para remodelar os dados dentro do armazenamento de dados. O cenário torna-se mais complexo à medida que os dados requerem 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 construídas 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 de forma eficiente e processar grandes volumes de dados com alta taxa de transferência. Essa função descarrega os recursos de IA da fonte de dados original para que o índice possa se concentrar em sua função principal, servindo consultas.
Escolha uma plataforma com base na sua funcionalidade e finalidade específicas e considere os 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 | Description |
---|---|
Crie armazenamentos de dados seguros, eficientes 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 a sua carga de trabalho a funcionar em escala. Certifique-se de revisar 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 melhores práticas 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 uma barra 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, de gravação única e leitura múltipla, que lide com eficiência com consultas improvisadas e difusas, oferecendo 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 tenham um desempenho em escala. | Dependendo dos requisitos funcionais da 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
Em 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 fundamental é 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.
Nota
Uma abordagem alternativa consiste em aceder diretamente às 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 aos dados. Para evitar esses problemas, recomendamos que você copie os dados para este armazenamento.
A plataforma de dados para este armazenamento deve atender aos padrões de segurança aplicados em fontes de dados, ser econômica e suportar a integração com tarefas de processamento ETL, ELT e EL. As opções variam de armazenamento básico a tecnologias de big data baseadas no volume de dados. Escolha um armazenamento económico que o ajude a obter fiabilidade 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, se necessário, transformá-los para outros formatos.
Suponha que seu pipeline de ingestão forneça dados de um banco de dados relacional e de um arquivo Parquet, portanto, ele suporta 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 torna-se 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 de sistemas de origem. Nesse caso, o controle de versão pode desambiguar os dados atuais dos dados históricos.
Em alguns casos, talvez seja necessário manter cópias dos dados para diferentes casos de uso. Para dar suporte a esse cenário, talvez seja necessário bifurcar dados. Cada garfo pode sofrer mutações independentes 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. Este contetxt é benéfico para o processamento e treinamento de modelos de IA porque oferece várias observações em vez de apenas um único ponto no tempo.
A plataforma tem recursos integrados de gerenciamento do ciclo de vida dos dados?
O gerenciamento do ciclo de vida dos dados (DLM) é um processo para gerenciar dados desde sua criação até sua exclusão, com etapas como coleta, armazenamento, uso, arquivamento e eliminação de dados.
Sem DLM, os dados podem crescer descontroladamente, muitas vezes resultando em várias cópias à medida que se movem pelas camadas 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. A sua plataforma de dados deve ser capaz de eliminar cópias intermédias dos dados.
Em alguns casos, talvez seja necessário reter dados para auditorias regulatórias. A plataforma de dados deve ter recursos de armazenamento a frio para dados acessados com pouca frequência, para que você possa arquivá-los a um custo mais baixo.
A plataforma suporta recursos de governança de dados?
A auditabilidade é um aspeto 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 treinamentos 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ê os 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 em detrimento dos 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 a análise exploratória de dados, eles não devem ser o fator decisivo. Os recursos de computação para blocos de anotações 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 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 de forma eficiente 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 na loja.
Ao tomar uma decisão, considere todo o processo, porque a ingestão e o processamento geralmente ocorrem simultaneamente. O projeto 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 o objetivo de confiabilidade da carga de trabalho?
Escolha um armazenamento de dados que melhore a confiabilidade e a escalabilidade usando várias instâncias. Os armazenamentos de Big Data geralmente têm um controlador integrado que orquestra o processamento de dados entre instâncias. Se uma cópia falhar, outra pode 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 a durabilidade e garantir que os dados permanecem intactos. Certifique-se de que 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 cada vez do zero for significativamente alto, você pode considerar a reidratação dos dados de um backup.
Você tem alguma restrição de custo?
Se a fiabilidade e o desempenho dos dados forem suficientes, considere o impacto nos custos.
O sistema deve ser otimizado para escrever uma vez, ler muitos para evitar gastos excessivos em 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 o custo com eficiência suficiente para maximizar o retorno do investimento.
Os requisitos anteriores podem, naturalmente, levá-lo 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 agregados para aumentar seu utilitário downstream. Os pipelines 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 poderem ser 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 tratamento feito nos dados.
O processo envolve uma redefinição significativa do escopo e reestruturação dos dados. Esse processo inclui tarefas como reconhecimento de entidades, integração de dados adicionais no 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.
A etapa de processamento de dados pode produzir várias saídas, que aterrissam em destinos diferentes para diferentes propósitos. Seu principal objetivo é preparar e transferir dados do armazenamento de dados agregados para consumo pelo destino final. O consumidor pode extrair dados quando necessário ou a camada de processamento pode enviar dados por push quando estiverem prontos.
Nota
No contexto do aprendizado de máquina e da IA generativa, é importante distinguir entre processos ETL, ELT e EL. O ETL tradicional é crucial para armazenamento de dados e mapeamentos objeto-relacionais, onde, 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, em seguida, transformá-los usando ferramentas como Python ou PySpark. Na IA generativa, particularmente para geração aumentada de recuperação (RAG), o processo geralmente envolve extrair e carregar documentos para armazenamento primeiro, seguido por transformações como fragmentação ou extração de imagem.
A seção a seguir fornece orientação a ser considerada 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 suporta integrações pré-criadas 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 fonte para o coletor, realizar 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 streaming de dados, 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 seguintes artigos descrevem considerações específicas:
- Projetar dados de treinamento para cargas de trabalho de IA no Azure
- Projetar dados de aterramento 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 certos casos de uso, como a implementação de um padrão RAG, recomendamos que você faça 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 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 documental ou outras ferramentas de IA. Este trabalho é necessário para a preparação dos dados e para o seu enriquecimento.
Se o armazenamento de dados suportar esse nível de processamento, você poderá localizar esse estágio no repositório 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 executar manipulações, como filtragem, preenchimento de valores ausentes e padronização de invólucros de cadeia de caracteres. Para tarefas mais complexas, normalmente é necessária uma plataforma de hospedagem de trabalhos. Você pode usar pools do Spark para orquestração de big data.
Em certos casos de uso, você pode querer 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 da RAG. Uma etapa de processamento comum é a fragmentação, 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. Em pesquisas de IA, esse processo é orquestrado dentro do fluxo de trabalho de indexação, seja usando OpenAI ou 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 dividem 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 dependências de trabalho e certificar-se de que as tarefas são concluídas na ordem correta.
O design de dados é um processo iterativo, portanto, a ferramenta orquestradora deve ser flexível o suficiente para modificar fluxos de trabalho facilmente. Você deve ser capaz de injetar novas etapas ou ajustar as existentes sem reescrever grandes porções de código.
O Data Factory é uma escolha popular porque fornece um rico conjunto 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, qual ferramenta você escolhe depende do que sua organização permite e das habilidades com as quais a equipe de carga de trabalho está 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 obter de forma confiável os dados necessários para modelos ou índices dentro de um prazo suficiente. Deve ser leve o suficiente para suportar suas necessidades atuais e ser escalável para crescimento futuro. As equipes devem decidir quanto precisam preparar a plataforma para o futuro para evitar dívidas técnicas mais tarde. As principais considerações incluem a frequência e o volume da ingestão de dados, a fiabilidade do processo e a necessidade de observabilidade para monitorizar e resolver os problemas prontamente.
Quantos dados espera ingerir?
Para as etapas 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 pode falhar sob tal carga. Em vez disso, o Data Factory é mais adequado para essa escala de processamento de dados.
Uma maneira de lidar com o alto volume é através do paralelismo, pois permite um tratamento e processamento de dados mais eficiente. Plataformas como o Azure Databricks podem orquestrar tarefas criando várias instâncias para o mesmo trabalho e distribuindo a carga de forma eficiente.
Além disso, considere a latência tolerável e a complexidade dos trabalhos. Por exemplo, a limpeza de dados envolve a validação e, potencialmente, a substituição de campos inválidos ou o mascaramento de 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 informações sobre o desempenho do pipeline e o status dos trabalhos.
Você deve ser capaz de acompanhar o progresso dos trabalhos. Suponha que o pipeline execute um trabalho de limpeza de dados que não seja concluído ou concluído parcialmente. Pode haver 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 aspetos de eficiência e confiabilidade.
Identifique quaisquer lacunas na telemetria integrada e determine qual monitoramento adicional você precisa implementar. Esse monitoramento pode envolver a adição de logs ou métricas personalizadas para capturar detalhes específicos sobre as etapas do trabalho.
Quanta fiabilidade 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 o Logic Apps tenha recursos de orquestração, ele pode não ser tão confiável quanto o Data Factory. O Data Factory, hospedado em um cluster do Serviço Kubernetes do Azure (AKS), 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 às suas necessidades.
A plataforma também deve suportar 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 lote pode ser menos confiável do que a inferência, dependendo dos requisitos de atualização e latência dos dados. Se o treinamento ocorre semanalmente e o processamento leva um dia, falhas ocasionais são aceitáveis porque há tempo suficiente para tentar novamente.
Existem restrições de custos?
Quando você considera a relação custo-benefício de um pipeline de processamento de dados, é importante escolher uma solução que atenda às suas necessidades sem gastos desnecessários. Se seus requisitos não justificarem os recursos avançados do Azure Databricks, uma opção mais econômica como o Data Factory pode ser suficiente. Além disso, ferramentas de código aberto como Apache Airflow ou Apache NiFi podem fornecer recursos robustos a um custo mais baixo. A chave é evitar gastos excessivos em recursos que você não precisa 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 regulamentares 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 às regulamentações locais de conformidade.
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 dentro de 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 repositórios 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 chamada de 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 suporta inferência em tempo real, o que requer alto desempenho e confiabilidade. Ele é especializado para consultas de IA e oferece recursos como indexação e filtragem de palavras-chave, que não são típicos de armazenamentos de big data. O objetivo é ter um armazenamento de dados de alto desempenho, de gravação única e leitura múltipla , que suporte consultas improvisadas e difusas. Este armazenamento de dados pode fornecer resultados relevantes sem consultas precisas.
Requisitos funcionais
Que tipos de pesquisa são suportados pelo índice de pesquisa?
As consultas que o sistema recebe são essencialmente pesquisas, e o índice precisa suportar recursos de pesquisa avançados. Para o RAG, a pesquisa vetorial é inegociá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 suportem 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 essa função para pesquisar em várias modalidades de conteúdo, incluindo imagens, vídeos e arquivos de áudio.
O índice suporta 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 um não estiver disponível, você precisará detetar manualmente e enviar por push alterações no índice. Com esses recursos, o indexador pode detetar alterações nas fontes de dados e receber 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 escalá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 ele. 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 uns dos outros.
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 suportar o 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 evitar 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 suportar trocas confiáveis entre índices usando recursos como aliasing para minimizar o tempo de inatividade durante swaps de índice. Sem essa funcionalidade, talvez seja necessário confiar em um backup do índice. O gerenciamento de um backup traz mais complexidade.
Do ponto de vista da carga de trabalho, entenda os possíveis modos de falha ou indicadores de estresse, como a limitação. Por exemplo, embora o sistema normalmente possa suportar 50 usuários simultâneos, ele pode suportar apenas 30 usuários durante um processo de reindexação que é executado como um trabalho em segundo plano. Nesse caso, o momento do trabalho em segundo plano torna-se importante. Ao avaliar a taxa de transferência de um índice, inclua consultas front-end e trabalhos back-end.
Quais são os principais fatores de custo desta 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. Tenha em mente que os índices são, em sua maioria, plataforma como serviço (PaaS), onde a precificação é abstrata. Níveis de pesquisa e suas capacidades para evitar pagar excessivamente por capacidade ou recursos não utilizados.
Por exemplo, o AI Search fatura como unidades, o que pode 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 imagem 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 um nível sem usar a capacidade total pode levar a pagar a mais. 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 à Pesquisa de IA, consulte Planejar e gerenciar custos de um serviço de Pesquisa de IA.
Os recursos de segurança do índice atendem ao seu design de dados de segurança?
A sua conceção de dados deve especificar claramente os requisitos de segurança e privacidade. Em ambientes de desenvolvimento e teste em que são utilizados dados de produção reais, o índice deve suportar capacidades que cumpram todos os controlos de acesso e medidas de rastreabilidade. Analise os recursos de segurança, como o mascaramento de dados e a remoção de informações pessoais no índice.
Escolha um índice que tenha a capacidade de identificar clientes exclusivamente por meio do Microsoft Entra ID. O índice de pesquisa também deve suportar controles de acesso no nível do documento para permitir a relevância da consulta 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 na Pesquisa de IA.
Idealmente, o índice de pesquisa deve estar alinhado com os requisitos de segurança da rede. Por exemplo, se você precisar filtrar o tráfego de saída para sites que não sejam da Microsoft e manter a observabilidade, o índice deverá oferecer controles de saída. Deve também apoiar a segmentação da rede. Se a computação de back-end estiver em uma rede virtual, a conectividade privada para componentes-chave, incluindo o índice, é essencial para evitar a exposição à Internet pública. O índice deve integrar-se facilmente com redes privadas e suportar identidades geridas para autenticação através do Microsoft Entra ID.
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 repositório de recursos, permite que 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 armazenamento de recursos gerenciados no Machine Learning é uma opção de armazenamento de dados que se integra ao MLflow e 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 dentro do 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 armazenamento separado é apropriado para pesquisas futuras mais rápidas, porque a inferência é feita em dados pré-coletados e pré-calculados, antecipadamente. 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 fornecidos mais rapidamente para consultas frequentes, como a geração de perguntas frequentes como resultado.
- As chamadas de inferência podem ser dimensionadas mais facilmente como um processo em lote 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 ao 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 deverá ser 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 este 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. Deve também ser capaz de se integrar no armazenamento de dados agregados. Qualquer armazenamento com esses recursos pode ser considerado, como o Azure Cosmos DB, ou até mesmo um armazenamento de tabelas.
Recursos
Estes 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 AI
- BD do Cosmos para o Azure
- Cache do Azure para Redis