Abordagens arquitetônicas para IA e ML em soluções multilocatárias
Um número cada vez maior de soluções multilocatárias é construído em torno de inteligência artificial (IA) e aprendizado de máquina (ML). Uma solução multilocatária de IA/ML é aquela que fornece recursos baseados em ML semelhantes a qualquer número de locatários. Os locatários geralmente não conseguem ver ou compartilhar os dados de nenhum outro locatário, mas, em algumas situações, os locatários podem usar os mesmos modelos que outros locatários.
As arquiteturas multilocatárias de IA/ML precisam considerar os requisitos para dados e modelos, bem como os recursos de computação necessários para treinar modelos e realizar inferência a partir de modelos. É importante considerar como os modelos multilocatários de IA/ML são implantados, distribuídos e orquestrados, e garantir que sua solução seja precisa, confiável e escalável.
À medida que as tecnologias de IA generativa, alimentadas por modelos de linguagem grandes e pequenos, ganham popularidade, é crucial estabelecer práticas e estratégias operacionais eficazes para gerenciar esses modelos em ambientes de produção por meio da adoção de Operações de Machine Learning (MLOps) e GenAIOps (às vezes conhecidas como LLMOps).
Principais considerações e requisitos
Quando você trabalha com IA e ML, é importante considerar separadamente seus requisitos de treinamento e inferência. O objetivo do treinamento é construir um modelo preditivo baseado em um conjunto de dados. Você executa inferência quando usa o modelo para prever algo em seu aplicativo. Cada um destes processos tem requisitos diferentes. Em uma solução multilocatário, você deve considerar como seu modelo de locação afeta cada processo. Ao considerar cada um desses requisitos, você pode garantir que sua solução forneça resultados precisos, tenha um bom desempenho sob carga, seja econômica e possa ser dimensionada para seu crescimento futuro.
Isolamento de inquilinos
Certifique-se de que os locatários não obtenham acesso não autorizado ou indesejado aos dados ou modelos de outros locatários. Trate modelos com uma sensibilidade semelhante aos dados brutos que os treinaram. Certifique-se de que seus locatários entendam como seus dados são usados para treinar modelos e como modelos treinados em dados de outros locatários podem ser usados para fins de inferência em suas cargas de trabalho.
Há três abordagens comuns para trabalhar com modelos de ML em soluções multilocatário: modelos específicos do locatário, modelos compartilhados e modelos compartilhados ajustados.
Modelos específicos do locatário
Os modelos específicos de locatário são treinados apenas nos dados de um único locatário e, em seguida, são aplicados a esse único locatário. Os modelos específicos do locatário são apropriados quando os dados dos locatários são confidenciais ou quando há pouco espaço para aprender com os dados fornecidos por um locatário e você aplica o modelo a outro locatário. O diagrama a seguir ilustra como você pode criar uma solução com modelos específicos de locatário para dois locatários:
Modelos partilhados
Em soluções que usam modelos compartilhados, todos os locatários executam inferência com base no mesmo modelo compartilhado. Os modelos compartilhados podem ser modelos pré-treinados que você adquire ou obtém de uma fonte da comunidade. O diagrama a seguir ilustra como um único modelo pré-treinado pode ser usado para inferência por todos os locatários:
Você também pode criar seus próprios modelos compartilhados, treinando-os a partir dos dados fornecidos por todos os seus locatários. O diagrama a seguir ilustra um único modelo compartilhado, que é treinado em dados de todos os locatários:
Importante
Se você treinar um modelo compartilhado a partir dos dados de seus locatários, certifique-se de que seus locatários entendam e concordem com o uso de seus dados. Certifique-se de que as informações de identificação são removidas dos dados dos seus inquilinos.
Considere o que fazer, se um locatário se opuser a que seus dados sejam usados para treinar um modelo que será aplicado a outro locatário. Por exemplo, você seria capaz de excluir dados de locatários específicos do conjunto de dados de treinamento?
Modelos partilhados ajustados
Você também pode optar por adquirir um modelo base pré-treinado e, em seguida, executar ajustes adicionais do modelo para torná-lo aplicável a cada um dos seus locatários, com base em seus próprios dados. O diagrama a seguir ilustra essa abordagem:
Escalabilidade
Considere como o crescimento da sua solução afeta o uso de componentes de IA e ML. O crescimento pode se referir a um aumento no número de locatários, na quantidade de dados armazenados para cada locatário, no número de usuários e no volume de solicitações para sua solução.
Formação: Existem vários fatores que influenciam os recursos necessários para treinar os seus modelos. Esses fatores incluem o número de modelos que você precisa treinar, a quantidade de dados com os quais você treina os modelos e a frequência com que treina ou retreina modelos. Se você criar modelos específicos de locatário, à medida que o número de locatários crescer, a quantidade de recursos de computação e armazenamento necessários também provavelmente aumentará. Se você criar modelos compartilhados e treiná-los com base em dados de todos os seus locatários, é menos provável que os recursos para treinamento sejam dimensionados na mesma taxa que o crescimento do número de locatários. No entanto, um aumento na quantidade geral de dados de treinamento afetará os recursos consumidos, para treinar os modelos compartilhados e específicos do locatário.
Inferência: Os recursos necessários para inferência são geralmente proporcionais ao número de solicitações que acessam os modelos de inferência. À medida que o número de inquilinos aumenta, é provável que o número de pedidos também aumente.
É uma boa prática geral usar serviços do Azure que se dimensionam bem. Como as cargas de trabalho de IA/ML tendem a usar contêineres, o Serviço Kubernetes do Azure (AKS) e as Instâncias de Contêiner do Azure (ACI) tendem a ser opções comuns para cargas de trabalho de IA/ML. O AKS geralmente é uma boa opção para permitir alta escala e dimensionar dinamicamente seus recursos de computação com base na demanda. Para cargas de trabalho pequenas, o ACI pode ser uma plataforma de computação simples de configurar, embora não seja dimensionado tão facilmente quanto o AKS.
Desempenho
Considere os requisitos de desempenho para os componentes de IA/ML de sua solução, tanto para treinamento quanto para inferência. É importante esclarecer seus requisitos de latência e desempenho para cada processo, para que você possa medir e melhorar conforme necessário.
Treinamento: o treinamento geralmente é realizado como um processo em lote, o que significa que ele pode não ser tão sensível ao desempenho quanto outras partes da sua carga de trabalho. No entanto, você precisa garantir que provisiona recursos suficientes para executar seu treinamento de modelo de forma eficiente, inclusive à medida que você dimensiona.
Inferência: A inferência é um processo sensível à latência, muitas vezes exigindo uma resposta rápida ou mesmo em tempo real. Mesmo que você não precise realizar inferência em tempo real, certifique-se de monitorar o desempenho de sua solução e usar os serviços apropriados para otimizar sua carga de trabalho.
Considere usar os recursos de computação de alto desempenho do Azure para suas cargas de trabalho de IA e ML. O Azure fornece muitos tipos diferentes de máquinas virtuais e outras instâncias de hardware. Considere se sua solução se beneficiaria do uso de CPUs, GPUs, FPGAs ou outros ambientes acelerados por hardware. O Azure também fornece inferência em tempo real com GPUs NVIDIA, incluindo Servidores de Inferência NVIDIA Triton. Para requisitos de computação de baixa prioridade, considere o uso de pools de nós spot AKS. Para saber mais sobre como otimizar serviços de computação em uma solução multilocatário, consulte Abordagens arquitetônicas para computação em soluções multilocatário.
O treinamento de modelos normalmente requer muitas interações com seus armazenamentos de dados, por isso também é importante considerar sua estratégia de dados e o desempenho que sua camada de dados oferece. Para obter mais informações sobre multilocação e serviços de dados, consulte Abordagens arquitetônicas para armazenamento e dados em soluções multilocatário.
Considere definir o perfil de desempenho da sua solução. Por exemplo, o Azure Machine Learning fornece recursos de criação de perfil que você pode usar ao desenvolver e instrumentar sua solução.
Complexidade da implementação
Ao criar uma solução para usar IA e ML, você pode optar por usar componentes pré-construídos ou criar componentes personalizados. Há duas decisões fundamentais que você precisa tomar. O primeiro é a plataforma ou serviço que você usa para IA e ML. O segundo é se você usa modelos pré-treinados ou cria seus próprios modelos personalizados.
Plataformas: há muitos serviços do Azure que você pode usar para suas cargas de trabalho de IA e ML. Por exemplo, os Serviços de IA do Azure e o Serviço OpenAI do Azure fornecem APIs para executar inferência em modelos pré-criados e a Microsoft gerencia os recursos subjacentes. Os Serviços de IA do Azure permitem que você implante rapidamente uma nova solução, mas oferece menos controle sobre como o treinamento e a inferência são executados e pode não se adequar a todos os tipos de carga de trabalho. Por outro lado, o Azure Machine Learning é uma plataforma que permite criar, treinar e usar seus próprios modelos de ML. O Azure Machine Learning fornece controlo e flexibilidade, mas aumenta a complexidade do seu design e implementação. Analise os produtos e tecnologias de aprendizado de máquina da Microsoft para tomar uma decisão informada ao selecionar uma abordagem.
Modelos: mesmo quando você não usa um modelo completo fornecido por um serviço como os Serviços de IA do Azure, ainda pode acelerar seu desenvolvimento usando um modelo pré-treinado. Se um modelo pré-treinado não atender exatamente às suas necessidades, considere estender um modelo pré-treinado aplicando uma técnica chamada aprendizagem de transferência ou ajuste fino. A aprendizagem de transferência permite estender um modelo existente e aplicá-lo a um domínio diferente. Por exemplo, se você estiver criando um serviço de recomendação de música multilocatário, considere criar um modelo pré-treinado de recomendações de música e usar o aprendizado de transferência para treinar o modelo para as preferências de música de um usuário específico.
Usando plataformas de ML pré-criadas, como os Serviços de IA do Azure ou o Serviço OpenAI do Azure, ou um modelo pré-treinado, você pode reduzir significativamente seus custos iniciais de pesquisa e desenvolvimento. O uso de plataformas pré-construídas pode economizar muitos meses de pesquisa e evitar a necessidade de recrutar cientistas de dados altamente qualificados para treinar, projetar e otimizar modelos.
Otimização de custos
Geralmente, as cargas de trabalho de IA e ML incorrem na maior proporção de seus custos dos recursos de computação necessários para treinamento e inferência de modelos. Analise as abordagens arquitetônicas para computação em soluções multilocatárias para entender como otimizar o custo de sua carga de trabalho de computação para suas necessidades.
Considere os seguintes requisitos ao planejar seus custos de IA e ML:
- Determine SKUs de computação para treinamento. Por exemplo, consulte as orientações sobre como fazer isso com o Azure Machine Learning.
- Determine SKUs de computação para inferência. Para obter um exemplo de estimativa de custo para inferência, consulte as orientações para o Azure Machine Learning.
- Monitorize a sua utilização. Ao observar a utilização de seus recursos de computação, você pode determinar se deve diminuir ou aumentar sua capacidade implantando diferentes SKUs ou dimensionar os recursos de computação à medida que seus requisitos mudam. Consulte Azure Machine Learning Monitor.
- Otimize seu ambiente de clustering de computação. Ao usar clusters de computação, monitore a utilização do cluster ou configure o dimensionamento automático para reduzir os nós de computação.
- Partilhe os seus recursos de computação. Considere se você pode otimizar o custo de seus recursos de computação compartilhando-os entre vários locatários.
- Considere o seu orçamento. Entenda se você tem um orçamento fixo e monitore seu consumo de acordo. Você pode configurar orçamentos para evitar gastos excessivos e alocar cotas com base na prioridade do locatário.
Abordagens e padrões a considerar
O Azure fornece um conjunto de serviços para habilitar cargas de trabalho de IA e ML. Há várias abordagens arquitetônicas comuns usadas em soluções multilocatário: usar soluções de IA/ML pré-criadas, criar uma arquitetura de IA/ML personalizada usando o Azure Machine Learning e usar uma das plataformas de análise do Azure.
Usar serviços de IA/ML pré-criados
É uma boa prática tentar usar serviços de IA/ML pré-construídos, onde puder. Por exemplo, sua organização pode estar começando a olhar para IA/ML e querer se integrar rapidamente a um serviço útil. Ou, você pode ter requisitos básicos que não exigem treinamento e desenvolvimento de modelo de ML personalizado. Os serviços de ML pré-construídos permitem que você use a inferência sem criar e treinar seus próprios modelos.
O Azure fornece vários serviços que fornecem tecnologia de IA e ML em uma variedade de domínios, incluindo compreensão de idiomas, reconhecimento de fala, conhecimento, reconhecimento de documentos e formulários e visão computacional. Os serviços de IA/ML pré-criados do Azure incluem os Serviços de IA do Azure, o Serviço OpenAI do Azure, o Azure AI Search e o Azure AI Document Intelligence. Cada serviço fornece uma interface simples para integração e uma coleção de modelos pré-treinados e testados. Como serviços gerenciados, eles fornecem contratos de nível de serviço e exigem pouca configuração ou gerenciamento contínuo. Você não precisa desenvolver ou testar seus próprios modelos para usar esses serviços.
Muitos serviços de ML gerenciados não exigem treinamento ou dados de modelo, portanto, geralmente não há preocupações com o isolamento de dados do locatário. No entanto, quando você trabalha com a Pesquisa de IA em uma solução multilocatário, revise Padrões de design para aplicativos SaaS multilocatários e a Pesquisa de IA do Azure.
Considere os requisitos de escala para os componentes em sua solução. Por exemplo, muitas das APIs nos Serviços de IA do Azure dão suporte a um número máximo de solicitações por segundo. Se você implantar um único recurso de Serviços de IA para compartilhar entre seus locatários, à medida que o número de locatários aumentar, talvez seja necessário dimensionar para vários recursos.
Nota
Alguns serviços gerenciados permitem que você treine com seus próprios dados, incluindo o serviço Visão Personalizada, a API Face, modelos personalizados de Document Intelligence e alguns modelos OpenAI que suportam personalização e ajuste fino. Ao trabalhar com esses serviços, é importante considerar os requisitos de isolamento para os dados dos locatários.
Arquitetura de IA/ML personalizada
Se sua solução requer modelos personalizados ou se você trabalha em um domínio que não é coberto por um serviço de ML gerenciado, considere criar sua própria arquitetura de IA/ML. O Azure Machine Learning fornece um conjunto de recursos para orquestrar o treinamento e a implantação de modelos de ML. O Azure Machine Learning suporta muitas bibliotecas de aprendizagem automática de código aberto, incluindo PyTorch, Tensorflow, Scikit e Keras. Você pode monitorar continuamente as métricas de desempenho dos modelos, detetar desvios de dados e acionar o retreinamento para melhorar o desempenho do modelo. Durante todo o ciclo de vida dos seus modelos de ML, o Azure Machine Learning permite a auditabilidade e a governação com rastreio e linhagem incorporados para todos os seus artefactos de ML.
Ao trabalhar em uma solução multilocatário, é importante considerar os requisitos de isolamento de seus locatários durante os estágios de treinamento e inferência. Você também precisa determinar seu processo de treinamento e implantação do modelo. O Azure Machine Learning fornece um pipeline para treinar modelos e implantá-los em um ambiente a ser usado para inferência. Em um contexto multilocatário, considere se os modelos devem ser implantados em recursos de computação compartilhados ou se cada locatário tem recursos dedicados. Projete seus pipelines de implantação de modelo, com base em seu modelo de isolamento e seu processo de implantação de locatário.
Quando você usa modelos de código aberto, talvez seja necessário treinar novamente esses modelos usando o aprendizado de transferência ou o ajuste. Considere como você gerenciará os diferentes modelos e dados de treinamento para cada locatário, bem como as versões do modelo.
O diagrama a seguir ilustra uma arquitetura de exemplo que usa o Azure Machine Learning. O exemplo usa a abordagem de isolamento de modelos específicos do locatário.
Soluções integradas de IA/ML
O Azure fornece várias plataformas de análise poderosas que podem ser usadas para uma variedade de finalidades. Essas plataformas incluem Azure Synapse Analytics, Databricks e Apache Spark.
Você pode considerar o uso dessas plataformas para IA/ML, quando precisar dimensionar seus recursos de ML para um número muito grande de locatários e quando precisar de computação e orquestração em grande escala. Você também pode considerar o uso dessas plataformas para IA/ML, quando precisar de uma ampla plataforma de análise para outras partes da sua solução, como para análise de dados e integração com relatórios por meio do Microsoft Power BI. Você pode implantar uma única plataforma que cubra todas as suas necessidades de análise e IA/ML. Ao implementar plataformas de dados em uma solução multilocatário, revise as abordagens de arquitetura para armazenamento e dados em soluções multilocatário.
Modelo operacional de ML
Ao adotar IA e aprendizado de máquina, incluindo práticas generativas de IA, é uma boa prática melhorar e avaliar continuamente suas capacidades organizacionais para gerenciá-las. A introdução de MLOps e GenAIOps fornece objetivamente uma estrutura para expandir continuamente os recursos de suas práticas de IA e ML em sua organização. Analise os documentos do Modelo de Maturidade MLOps e do Modelo de Maturidade LLMOps para obter mais orientações.
Antipadrões a evitar
- Não consideração dos requisitos de isolamento. É importante considerar cuidadosamente como você isola os dados e modelos dos locatários, tanto para treinamento quanto para inferência. Não o fazer pode violar requisitos legais ou contratuais. Também pode reduzir a precisão de seus modelos para treinar os dados de vários locatários, se os dados forem substancialmente diferentes.
- Vizinhos barulhentos. Considere se seus processos de treinamento ou inferência podem estar sujeitos ao problema do vizinho barulhento. Por exemplo, se você tiver vários locatários grandes e um único locatário pequeno, certifique-se de que o treinamento de modelo para os locatários grandes não consuma inadvertidamente todos os recursos de computação e prive os locatários menores. Use a governança e o monitoramento de recursos para reduzir o risco da carga de trabalho de computação de um locatário afetada pela atividade dos outros locatários.
Contribuidores
Este artigo é mantido pela Microsoft. Foi originalmente escrito pelos seguintes contribuidores.
Autor principal:
- Kevin Ashley - Brasil | Engenheiro de Clientes Sênior, FastTrack for Azure
Outros contribuidores:
- Paul Burpo - Brasil | Engenheiro de Clientes Principal, FastTrack for Azure
- John Downs - Brasil | Engenheiro de Software Principal
- Daniel Scott-Raynsford - Brasil | Estrategista de Tecnologia de Parceiros
- Arsen Vladimirskiy - Brasil | Engenheiro de Clientes Principal, FastTrack for Azure
- Vic Perdana - Brasil | Arquiteto de Soluções para Parceiros ISV
Próximos passos
- Revisão de abordagens arquitetônicas para computação em abordagens de soluções multilocatário.
- Para saber mais sobre como projetar pipelines do Azure Machine Learning para dar suporte a vários locatários, consulte A Solution for ML Pipeline in Multi-tenancy Manner.