Compartilhar via


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 você possa maximizar a eficiência, a segurança das operações e a confiabilidade.

Essa á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 e ajuste fino do modelo
  • 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 Descrição
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 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 design com essas informações pode ajudar a protegê-lo da necessidade de redesenhar mais tarde.
Minimize a construção. Considere as soluções de PaaS (plataforma como serviço) ou SaaS (software como serviço) para minimizar a carga operacional que a criação de sua própria solução introduz, como aplicação de patches e outras manutenções. Minimizar a carga de 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 criar sua própria plataforma.
Entenda suas cotas e limites. Ao projetar para o uso de soluções de PaaS ou SaaS, entenda todas as cotas ou limites aplicáveis. Sua capacidade de escalar horizontalmente 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 segura que qualquer outro ativo de código.
Estabeleça benchmarks de desempenho por meio da experimentação. Cada carga de trabalho de IA é diferente, e a quantidade de computação necessária depende do seu caso de uso. Determine a quantidade e os tipos de computação ideais para sua carga de trabalho realizando testes de benchmark 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 sobre a plataforma EDA

EDA é uma função preliminar comum que os cientistas de dados executam antes da modelagem ou análise estatística. Portanto, pode ser considerada uma fase de desenvolvimento, o que significa que as metas de confiabilidade e desempenho podem ser significativamente menores do que as dos recursos de produção e a manutenção da produtividade é o fator mais importante.

Esta seção fornece diretrizes 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 dar suporte a espaços de trabalho transitórios e computação, o que significa que você deve ser capaz de interromper os recursos necessários quando eles não estiverem sendo usados. Esse recurso ajuda a controlar os custos. Os trabalhos de EDA normalmente são interativos, portanto, os usuários precisam ser capazes de iniciar VMs e interrompê-las enquanto executam trabalhos.

  • A plataforma oferece suporte à 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 é compatível com 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 experimentos. O MLflow permite que você acompanhe experimentos registrando 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 as 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 perguntas:

  • Como a plataforma pode ajudar a controlar os custos?

    A plataforma deve permitir que os cientistas de dados realizem seu trabalho de acordo com seus requisitos de cronograma, mas deve ser dimensionada corretamente para garantir que as expectativas de custo sejam atendidas.

  • Quais requisitos de segurança devem ser seguidos para a plataforma?

    Os dados usados durante a fase de 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 isso, sua plataforma deve oferecer suporte a todos os controles de segurança necessários, incluindo:

    • Acesso e autorização.
    • Criptografia em repouso e em trânsito.
    • Requisitos regionais de proteção de dados.
    • Funcionalidade robusta de monitoramento e alerta, incluindo registro 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 no nível da 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.

Observação

Não construa 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 isso.

Considerações sobre a plataforma de treinamento e ajuste fino do modelo

Ao mudar para o treinamento e o ajuste fino do modelo, 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 a distribuição da carga de trabalho entre zonas de disponibilidade ou regiões é necessária. A alta confiabilidade torna-se mais importante quando a atualização do modelo é atualizada 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 diretrizes nesta seção se aplicam ao treinamento e ao ajuste fino do modelo. 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 de EDA, o treinamento e o ajuste fino do modelo 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 de modelo normalmente é um processo em lote, portanto, a computação só é necessária quando o lote é executado e pode ser desligada até a próxima execução.

  • A plataforma fornece 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 no 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 pergunta:

  • Qual é a compensação tolerável entre custo e desempenho?

    Considerando os requisitos de computação de alto desempenho e otimizados para GPU, certifique-se de testar e comparar seu treinamento e ajuste fino extensivamente para determinar o SKU ideal que equilibra desempenho e 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 de vizinhos barulhentos. Você pode escolher o preço padrão ou o preço spot. O preço spot é recomendado apenas para treinamentos altamente interruptivos. 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.

Observação

Para modelos básicos, 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 modelos limita suas opções de ajuste fino à funcionalidade de ajuste fino do OpenAI do Azure.

Considerações sobre a plataforma de hospedagem e inferência de modelos

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 do software que você usa. As soluções de software de serviço de modelo, como NVIDIA Triton, TorchServe e TensorFlow Serving, são essencialmente SDKs Python que apresentam um modelo com uma API e adicionam funcionalidades específicas à 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.

Ao usar soluções SaaS ou PaaS com modelos pré-empacotados, como os modelos de linguagem grandes 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 simplificar o processo de desenvolvimento de sua carga de trabalho. Por outro lado, reduz a flexibilidade em como seu aplicativo 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 segue para outros microsserviços em seu ambiente. Eles devem ser conteinerizados, bulkheaded de outros serviços e ter seus próprios ciclos de vida independentes de outros serviços e APIs. No entanto, lembre-se de 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 diretrizes sobre os recursos a serem considerados ao selecionar uma plataforma de hospedagem e inferência de modelo.

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 online, 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 dá suporte ao uso transitório e permite que a computação seja desligada quando não estiver sendo usada. A inferência online é melhor hospedada em uma plataforma que oferece suporte à 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 marcas significativas a imagens em seu registro de contêiner para garantir que seu serviço de hospedagem de modelo extraia 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 centralizada que é usada por diferentes equipes para suas próprias cargas de trabalho. Se sua plataforma de hospedagem for centralizada, você deve considerar se precisa de suporte para estorno. Essa funcionalidade permite que você acompanhe a utilização da plataforma por equipe e carga de trabalho.

Requisitos não funcionais

Considere também estas perguntas:

  • Quais são os requisitos de confiabilidade 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 correspondem à classificação de criticidade . Se sua criticidade exigir alta disponibilidade, sua plataforma de hospedagem deverá dar suporte a zonas de disponibilidade ou a um design multirregional.

  • Quais controles de rede são necessários para a plataforma?

    Determine se você precisa de rede privada ou de um firewall de saída para fornecer proteção para a plataforma.

  • Quais são os requisitos de segurança de identidade e acesso para a plataforma?

    Determine a identidade e os controles de acesso necessários para seus endpoints. 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 são compatíveis com a plataforma?

    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 detectar mau funcionamento.

  • 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 diferentes perfis de desempenho. Os serviços sem servidor e PaaS que usam um modelo de utilitário podem ser afetados pelo problema do vizinho barulhento e geralmente 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 e cotas de serviço 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 taxa de transferência fixa para a maior parte da carga de trabalho e recursos de intermitência para uma computação mais flexível.

Ferramentas

Inferência em lote

  • Se você estiver executando inferências em dados que residem em uma plataforma que dá 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 a API do Lote do OpenAI do Azure para modelos de base.

  • Para modelos não básicos, 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 requer baixa latência.

      • Você precisa executar operações em lote de longa duração em grandes conjuntos de dados e pode aproveitar a 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 do Spark sem servidor do Machine Learning.

    • Se nenhum desses cenários se aplicar, recomendamos pontos de extremidade em lote do Machine Learning.

Inferência online

  • Avalie a plataforma PaaS 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 de base.
  • Considere o Machine Learning com clusters de computação gerenciados quando as soluções de PaaS ou sem servidor não forem as mais adequadas. A computação gerenciada pelo Machine Learning dá suporte à divisão de tráfego e espelhamento para testes A/B, depuração e auditoria robusta. Como a computação é gerenciada pelo serviço, as operações de Dia 2 são mais fáceis quando você hospeda seu modelo por conta própria. 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 seu modelo em um cluster do AKS (Serviço de Kubernetes do Azure) anexado ao Machine Learning ou a outra plataforma baseada em contêiner, certifique-se de que o pool de nós esteja isolado de outras APIs ou de qualquer outra carga 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 GPU 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 seu modelo usando soluções de IaaS (infraestrutura como serviço), como a Máquina Virtual de Ciência de Dados do Azure.

Considerações sobre a plataforma de orquestração

A orquestração, no contexto das 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 simplificar todo o ciclo de desenvolvimento de aplicativos de IA, automatizando muitas funções comuns de fluxo de trabalho.

Requisitos não funcionais

Assim como acontece com todas as outras cargas de trabalho de produção em sua propriedade de nuvem, ao avaliar as ferramentas de orquestração, você precisa considerar:

  • Confiabilidade, segurança e monitoramento. 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.

  • Custo da otimização. As ferramentas de orquestração estão sempre ativas, considere as 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 procurar hospedagem personalizada com ferramentas como LangChain ou Semantic Kernel.

  • Hospede pontos de extremidade para soluções como fluxo de prompt no Machine Learning com instâncias de computação ou no AKS com auto-hospedagem.

Próximas etapas