Plataforma de aplicativo para cargas de trabalho de IA no Azure
Você deve considerar cuidadosamente a plataforma de hospedagem de aplicativos na qual sua carga de trabalho de IA é implantada para garantir que possa maximizar a eficiência, a segurança das operações e a confiabilidade.
Esta área de design abrange vários tipos de aplicativos que podem ser relevantes para sua carga de trabalho de IA:
- Análise exploratória de dados (EDA)
- Treinamento de modelos e ajuste fino
- Inferência
Este artigo fornece orientação para selecionar a melhor plataforma para cada uma dessas funções para atender às suas necessidades de negócios. Há também recomendações gerais que você pode aplicar a todas essas funções.
Recomendações
Aqui está o resumo das recomendações fornecidas neste artigo.
Recomendação | Description |
---|---|
Ferramentas de reutilização. | Comece avaliando as ferramentas que você já usa para entender se elas podem ser reutilizadas para sua carga de trabalho de IA. Se eles suportarem a funcionalidade necessária e puderem atender aos seus requisitos de confiabilidade, segurança, custo e desempenho, trazer uma nova ferramenta pode não valer a pena o custo e o esforço. |
Considere os requisitos de conformidade para seus dados e as regiões nas quais você planeja implantar. | Talvez seja necessário limitar as regiões implantadas ou isolar partes da carga de trabalho umas das outras para atender aos requisitos de conformidade. Entrar na fase de projeto com essas informações pode ajudar a protegê-lo da necessidade de redesenhar mais tarde. |
Minimizar a construção. | Considere soluções de plataforma como serviço (PaaS) ou software como serviço (SaaS) para minimizar a carga operacional que a criação de sua própria solução introduz, como patches e outras manutenções. Minimizar a carga do Dia 2 necessária para a nova tecnologia simplifica sua adoção. Muitas funções de IA são complexas, por isso não recomendamos a criação da sua própria plataforma. |
Entenda suas cotas e limites. | Ao projetar para o uso de soluções PaaS ou SaaS, entenda todas as cotas ou limites aplicáveis. Sua capacidade de expansão para atender a altas demandas de tráfego pode ser afetada por cotas ou limites, portanto, talvez seja necessário ajustar seu design para minimizar esse risco. |
Implante na mesma região. | Tente implantar todos os recursos relacionados na mesma região para reduzir a latência e simplificar o design. |
Pratique a implantação segura. | Em geral, você deve tratar as APIs para sua carga de trabalho de IA da mesma forma que qualquer outra API em seu ambiente. Todas as APIs devem ser colocadas atrás de um gateway e todo o código deve ser tratado com as mesmas práticas de implantação seguras que todos os outros ativos de código. |
Estabelecer parâmetros de desempenho através da experimentação. | Cada carga de trabalho de IA é diferente, e a quantidade de computação que você precisa depende do seu caso de uso. Determine a quantidade e os tipos de computação ideais para sua carga de trabalho conduzindo testes de referência completos. Este guia ajuda você a escolher uma plataforma, mas você só saberá quais SKUs são apropriados para sua carga de trabalho após o teste de benchmark. |
Considerações para a plataforma AED
EDA é uma função preliminar comum que os cientistas de dados executam antes da modelagem ou análise estatística. Por conseguinte, pode ser considerada uma fase de desenvolvimento, o que significa que os objetivos em matéria de fiabilidade e desempenho podem ser significativamente inferiores aos objetivos em matéria de recursos de produção, sendo a manutenção da produtividade o fator mais importante.
Esta seção fornece orientação sobre os recursos a serem considerados ao selecionar uma solução de plataforma EDA.
Requisitos funcionais
Ao avaliar uma plataforma EDA, considere as seguintes perguntas:
A plataforma suporta uso transitório?
A plataforma deve suportar espaços de trabalho transitórios e computação, o que significa que você deve ser capaz de parar os recursos necessários quando eles não estão sendo usados. Esta capacidade ajuda a controlar os custos. Os trabalhos EDA geralmente são interativos, portanto, os usuários precisam ser capazes de iniciar VMs e pará-las enquanto executam trabalhos.
A plataforma suporta opcionalidade de computação?
A plataforma deve permitir o acesso sob demanda às GPUs, conforme necessário, e fornecer várias opções de computação para ajudar a dimensionar corretamente a plataforma.
A plataforma suporta MLflow?
Sua plataforma EDA deve possibilitar a escolha de uma tecnologia que permita a integração com o MLflow para rastrear seus experimentos. Recomendamos o MLflow como um protocolo de desenvolvimento, implantação e gerenciamento de modelos porque ele oferece os seguintes benefícios:
- Acompanhamento de experiências. O MLflow permite que você acompanhe experimentos gravando parâmetros, métricas e artefatos. Esse recurso é essencial durante o EDA para que você possa acompanhar as diferentes etapas de pré-processamento de dados e técnicas de engenharia de recursos e seus impactos no desempenho do modelo.
- Reprodutibilidade. Como ele registra todos os detalhes de seus experimentos, o MLflow ajuda a garantir que você possa reproduzir seus resultados, o que é fundamental para validar descobertas.
- Controle de versão de dados e modelos. O MLflow ajuda com o controle de versão de conjuntos de dados e modelos, o que facilita o gerenciamento de diferentes versões de transformações de dados e modelos testados.
- Trabalho colaborativo. O MLflow fornece uma plataforma centralizada onde os cientistas de dados podem compartilhar seus experimentos e resultados, o que facilita a colaboração e o compartilhamento de conhecimento.
Requisitos não funcionais
Considere também estas questões:
Como a plataforma pode ajudar a controlar os custos?
A plataforma deve permitir que os cientistas de dados executem seu trabalho de acordo com seus requisitos de cronograma, mas deve ser dimensionada corretamente para garantir que as expectativas de custo sejam atendidas.
Que requisitos de segurança devem ser seguidos para a plataforma?
Os dados usados durante a fase EDA provavelmente serão dados de produção, o que exige que você siga as práticas de produção para proteger esses dados e monitorar a plataforma. Para esse fim, sua plataforma deve suportar todos os controles de segurança necessários, incluindo:
- Acesso e autorização.
- Encriptação em repouso e em trânsito.
- Requisitos regionais de proteção de dados.
- Funcionalidade robusta de monitoramento e alerta, incluindo registro em log e auditabilidade.
- Acesso de rede privada a repositórios centralizados para imagens de contêiner, dados e ativos de código.
Ferramentas
Use uma instância de computação do Azure Machine Learning com compartilhamentos de arquivos em nível de equipe como sua plataforma EDA. Uma exceção a isso é se sua equipe ou organização já estiver usando uma plataforma de hospedagem adequada, como clusters de computação habilitados para GPU no Databricks, por exemplo. Nesse caso, pode ser mais apropriado permanecer nessa plataforma.
Nota
Não crie uma plataforma EDA completa, a menos que seja necessário. A computação otimizada para GPU é cara e não é apropriada se o seu caso de uso não exigir.
Considerações para a plataforma de treinamento e ajuste fino do modelo
Ao passar para o treinamento e ajuste fino de modelos, você provavelmente precisará de computação otimizada para GPU de alto desempenho para o trabalho intensivo de computação exigido por essas atividades. A confiabilidade normalmente não é tão importante quanto o desempenho, porque a maior parte desse trabalho ocorre nos bastidores. Se a alta confiabilidade for um requisito, avalie se é necessário distribuir a carga de trabalho entre zonas ou regiões de disponibilidade. A alta confiabilidade se torna mais importante quando o frescor do modelo é atualizado com frequência, o que exige que o treinamento seja concluído em um cronograma mais apertado. Seu RTO deve determinar o design de confiabilidade que você escolher.
As orientações nesta secção aplicam-se tanto à formação de modelos como à afinação. A menos que você seja forçado a usar plataformas separadas para essas funções, você deve usar uma única plataforma.
Requisitos funcionais
Ao avaliar plataformas para treinamento e ajuste fino de modelos, considere as seguintes perguntas:
A plataforma suporta uso transitório?
Assim como as atividades da EDA, o treinamento de modelos e o ajuste fino normalmente não são executados em tempo integral, portanto, você deve usar uma plataforma que possa ser interrompida quando não estiver em uso para ajudar a controlar os custos. Ao contrário do EDA, no entanto, o treinamento do modelo é normalmente um processo em lote, portanto, a computação só é necessária quando o lote é executado e pode ser desligado até a próxima execução.
A plataforma oferece orquestração?
Devido à complexidade necessária no gerenciamento da computação para treinamento e ajuste fino do modelo, recomendamos um orquestrador.
As tecnologias existentes em seu ambiente podem fazer parte da solução?
Se sua plataforma de dados existente tiver recursos de aprendizado de máquina, como o Azure Databricks , você poderá usá-la para determinadas etapas, como transformação de dados e engenharia de recursos, treinamento, ajuste fino e outras etapas do Machine Learning. A combinação de tecnologias pode ajudá-lo a minimizar o custo e a complexidade envolvidos no uso de uma plataforma de dados para funções para as quais ela pode não ser ideal.
Requisitos não funcionais
Considere também esta questão:
Qual é o compromisso tolerável entre custo e desempenho?
Dado os requisitos de computação otimizados para GPU de alto desempenho, certifique-se de testar e comparar seu treinamento e ajuste fino extensivamente para determinar a SKU ideal que equilibra o desempenho com os custos.
Ferramentas
Recomendamos o Azure Machine Learning para a plataforma de treinamento e ajuste fino do modelo porque ele fornece funcionalidade de orquestração com suporte para computação em lote. Há duas opções de computação para avaliar:
- A computação sem servidor é ideal para execuções curtas e pouco frequentes que podem tolerar efeitos vizinhos barulhentos. Você pode escolher preços padrão ou preços à vista. O preço spot só é recomendado para treinamentos altamente interruptíveis. Não use computação sem servidor para operações em tempo integral. Os custos podem aumentar rapidamente.
- Os clusters de computação oferecem controle significativo sobre o hardware disponível e são ajustados para treinamento paralelo ou distribuído.
Nota
Para modelos de base, sua escolha de plataforma de hospedagem de modelo pode limitar suas opções de ajuste fino. Por exemplo, usar o Serviço OpenAI do Azure para hospedagem de modelo limita suas opções de ajuste fino à funcionalidade de ajuste fino integrada do Azure OpenAI.
Considerações para o modelo de hospedagem e plataforma de inferência
As funções de hospedagem e inferência de modelos compõem a camada de serviço da carga de trabalho de IA. Essas funções são executadas com pontos de extremidade específicos para o software que você usa. Soluções de software de serviço de modelos, como NVIDIA Triton, TorchServe e TensorFlow Serving, são essencialmente SDKs Python que frontam um modelo com uma API e adicionam funcionalidade específica à solução. Você pode escolher sua plataforma de hospedagem com base em sua escolha de software ou escolher seu software com base em sua escolha de plataforma de hospedagem.
Quando você usa soluções SaaS ou PaaS com modelos pré-empacotados, como os modelos de linguagem grandes que estão disponíveis no Azure OpenAI, você tem poucas ou nenhuma oportunidade de selecionar um software de serviço. Em vez disso, o serviço que você está consumindo fornece uma API. Isso reduz a flexibilidade no processo de criação de uma implantação de modelo, o que pode fornecer vantagens e desvantagens. Por exemplo, ele pode agilizar o processo de desenvolvimento de sua carga de trabalho. Por outro lado, reduz a flexibilidade na forma como a sua aplicação pode chamar e interagir com o modelo.
Fundamentalmente, as APIs para a camada de serviço são microsserviços, portanto, você deve seguir as mesmas práticas para essas APIs que você segue para outros microsserviços em seu ambiente. Eles devem ser conteinerizados, encabeçados a partir de outros serviços e ter seus próprios ciclos de vida que são independentes de outros serviços e APIs. Tenha em mente, no entanto, que as APIs de camada de serviço geralmente exigem significativamente mais poder de computação baseado em GPU e imagens de contêiner maiores do que as APIs tradicionais.
Esta seção fornece orientação sobre os recursos a serem considerados ao selecionar um modelo de hospedagem e plataforma de inferência.
Requisitos funcionais
Ao avaliar plataformas para hospedagem e inferência de modelos, considere estas perguntas:
Sua carga de trabalho requer inferência em lote ou online?
Os pontos de extremidade de inferência são usados para processos de inferência em lote ou on-line, e o método de inferência ajuda a determinar a plataforma de hospedagem correta. A inferência em lote é melhor hospedada em uma plataforma que suporta uso transitório e permite que a computação seja desligada quando não estiver sendo usada. A inferência on-line é melhor hospedada em uma plataforma que suporta a utilização de computação elástica, que é dimensionada automaticamente com base na carga a qualquer momento.
A plataforma suporta rastreabilidade?
A rastreabilidade é fundamental para manter a integridade dos modelos usados em sua carga de trabalho. É importante saber informações sobre o modelo, como a versão atual, quem o implantou, quando foi implantado e a linhagem de dados do modelo.
Aplique tags significativas às imagens em seu registro de contêiner para garantir que seu serviço de hospedagem de modelo obtenha uma versão específica que a equipe possa identificar facilmente. Essa abordagem ajuda na governança de dados, reduzindo o risco de modelos desatualizados ou incorretos serem usados na produção.
Sua plataforma de hospedagem será um recurso centralizado?
Muitas organizações usam uma plataforma de hospedagem de modelo centralizado que é usada por diferentes equipes para suas próprias cargas de trabalho. Se a sua plataforma de hospedagem é centralizada, você deve considerar se precisa de suporte para estorno. Essa funcionalidade permite acompanhar a utilização da plataforma por equipe e carga de trabalho.
Requisitos não funcionais
Considere também estas questões:
Quais são os requisitos de fiabilidade para a plataforma?
As APIs da camada de serviço são recursos de produção, portanto, você deve aplicar a elas os mesmos requisitos de confiabilidade que aplica a outros fluxos de carga de trabalho que correspondam à sua classificação de criticidade . Se sua criticidade exigir alta disponibilidade, sua plataforma de hospedagem deve suportar zonas de disponibilidade ou um design de várias regiões.
Quais controles de rede são necessários para a plataforma?
Determine se você precisa de uma rede privada ou de um firewall de saída para fornecer proteção à plataforma.
Quais são os requisitos de identidade e segurança de acesso para a plataforma?
Determine os controles de identidade e acesso necessários para seus pontos de extremidade. Considere se você precisa de RBAC (controle de acesso baseado em função) nativo ou suporte interno para sua plataforma de identidade e acesso, por exemplo, Microsoft Entra ID.
Quais recursos de monitoramento a plataforma suporta?
Determine os recursos de monitoramento necessários para seus endpoints. Dependendo da plataforma, você pode ter acesso limitado a logs e métricas, o que pode limitar sua capacidade de auditar atividades ou detetar avarias.
Quais são os requisitos de desempenho para a plataforma?
A latência de inferência é uma preocupação comum e diferentes plataformas têm perfis de desempenho diferentes. Os serviços sem servidor e PaaS que usam um modelo de utilidade podem ser afetados pelo problema do vizinho barulhento e, muitas vezes, não têm garantias de taxa de transferência. Por outro lado, as mesmas plataformas podem oferecer uma opção auto-hospedada que fornece taxa de transferência garantida com um modelo de pré-compra. Você também pode considerar a auto-hospedagem no Kubernetes para um comportamento de latência mais previsível.
Esteja ciente dos limites de serviço e cotas que podem afetar seu desempenho, como os do Azure OpenAI. Muitas vezes, essas cotas e limites são definidos agressivamente para atender às demandas de capacidade, portanto, se sua escolha de plataforma não fornecer o desempenho necessário, talvez seja necessário adotar estratégias para distribuir a demanda de computação entre instâncias.
As arquiteturas avançadas podem combinar várias implantações para obter uma taxa de transferência fixa para a maior parte da carga de trabalho e recursos de bursting para uma computação mais flexível.
Ferramentas
Inferência de lote
Se você estiver realizando inferências em dados que residem em uma plataforma que ofereça suporte à hospedagem de modelos, como o Databricks, considere usar essa plataforma para inferência. Certifique-se de isolar a computação de inferência de outras funções executadas pela plataforma de dados.
Recomendamos o Azure OpenAI Batch API para modelos de base.
Para modelos sem fundação, considere estas recomendações:
Considere usar pontos de extremidade em lote do Azure Machine Learning para os seguintes cenários:
Você precisa executar a inferência em um grande conjunto de dados distribuído em vários arquivos e não precisa de baixa latência.
Você precisa executar operações em lote de longa duração em grandes conjuntos de dados e pode tirar proveito da paralelização.
Você precisa implantar componentes de pipeline para processamento em lote.
Se você precisar executar trabalhos do Spark para processamento de dados distribuídos, considere usar o Azure Synapse Analytics, o Databricks ou a computação sem servidor do Spark do Machine Learning.
Se nenhum desses cenários se aplicar, recomendamos pontos de extremidade em lote de Aprendizado de Máquina.
Inferência online
Avalie o PaaS da plataforma e as soluções sem servidor como um primeiro passo. Esses serviços geralmente são os mais fáceis de adotar e gerenciar porque simplificam seu projeto e minimizam a carga operacional. Por exemplo, o Azure OpenAI é uma boa opção para modelos de base.
- Considere usar a API sem servidor do Azure Machine Learning para agregar o acesso ao ponto de extremidade, mesmo se você usar o Azure OpenAI ou outra solução de hospedagem de modelo básico.
Considere o Machine Learning com clusters de computação gerenciados quando PaaS ou soluções sem servidor não forem a melhor opção. A computação gerenciada pelo Machine Learning oferece suporte à divisão e ao espelhamento de tráfego para testes A/B, depuração e auditoria robusta. Como a computação é gerenciada pelo serviço, as operações do Dia 2 são mais fáceis quando você hospeda seu modelo automaticamente. A computação gerenciada também oferece uma ampla seleção de configurações de computação e recursos de dimensionamento.
Se você optar por hospedar automaticamente seu modelo em um cluster do Serviço Kubernetes do Azure (AKS) conectado ao Aprendizado de Máquina ou a outra plataforma baseada em contêiner, certifique-se de que o pool de nós esteja isolado de outras APIs ou de quaisquer outras cargas de trabalho no cluster para obter um desempenho previsível e otimizar a segurança. Evite usar computação baseada em GPU ou otimizada para qualquer coisa que não seja suas funções de carga de trabalho de IA para reduzir custos. Em vez disso, estabeleça sua linha de base de desempenho por meio de testes e dimensione corretamente sua computação para atender aos seus requisitos de desempenho sem provisionamento excessivo.
Você também pode hospedar automaticamente seu modelo usando soluções de infraestrutura como serviço (IaaS), como a Máquina Virtual de Ciência de Dados do Azure.
Considerações para a plataforma de orquestração
Orquestração, no contexto de plataformas de aplicativos de carga de trabalho de IA, refere-se a ferramentas como fluxo de prompt no Machine Learning e no Azure AI Studio. Essas ferramentas são projetadas para agilizar todo o ciclo de desenvolvimento de aplicativos de IA, automatizando muitas funções comuns do fluxo de trabalho.
Requisitos não funcionais
Como acontece com todas as outras cargas de trabalho de produção em sua propriedade na nuvem, ao avaliar as ferramentas de orquestração, você precisa considerar:
Fiabilidade, segurança e monitorização. As ferramentas de orquestração devem aderir aos padrões de confiabilidade, segurança e monitoramento para cargas de trabalho de produção.
Desempenho. As ferramentas de orquestração não exigem computação otimizada para GPU ou baseada em GPU, considere SKUs de uso geral.
Otimização de custos. As ferramentas de orquestração estão sempre ativas, considere opções de computação elástica para minimizar os custos de utilização.
Ferramentas
Prefira uma solução pronta para uso, como fluxo imediato. Determine se seus recursos correspondem às suas necessidades de orquestração antes de examinar a hospedagem personalizada com ferramentas como LangChain ou Semantic Kernel.
Host endpoints para soluções como fluxo imediato em Machine Learning com instâncias de computação ou em AKS com auto-hospedagem.