Perspectiva do Azure Well-Architected Framework no Azure Machine Learning
O Azure Machine Learning é um serviço de nuvem gerenciado que você pode usar para treinar, implantar e gerenciar modelos de machine learning. Há uma ampla variedade de opções e configurações para treinamento e implantação de modelos, incluindo SKUs de computação e configurações. Você pode implantar modelos de machine learning na computação do Machine Learning ou em outros serviços do Azure, como Serviço de Kubernetes do Azure (AKS).
Este artigo fornece recomendações de arquitetura para tomar decisões informadas ao usar o Machine Learning para treinar, implantar e gerenciar modelos de machine learning. As diretrizes se baseiam nos pilares do Azure Well-Architected Framework.
Importante
Como usar este guia
Cada seção tem uma lista de verificação de design que apresenta áreas arquitetônicas preocupantes, juntamente com estratégias de design localizadas para o escopo da tecnologia.
Também estão incluídas recomendações sobre as funcionalidades de tecnologia que podem ajudar a materializar essas estratégias. As recomendações não representam uma lista completa de todas as configurações disponíveis para Machine Learning e suas dependências. Em vez disso, eles listam as principais recomendações mapeadas para as perspectivas de design. Use as recomendações para criar sua prova de conceito ou otimizar seus ambientes existentes.
A arquitetura básica da arquitetura de referência de chat de ponta a ponta do OpenAI demonstra muitas das principais recomendações.
Escopo de tecnologia
Esta revisão se concentra nas decisões inter-relacionadas para esses recursos do Azure:
- Machine Learning
- Clusters de computação do Machine Learning
- Instâncias de computação do Machine Learning
A revisão não aborda recursos conectados, como armazenamentos de dados ou Key Vault do Azure.
Confiabilidade
A finalidade do pilar confiabilidade é fornecer funcionalidade contínua criando resiliência suficiente e a capacidade de se recuperar rapidamente de falhas.
Os princípios de design de confiabilidade fornecem uma estratégia de design de alto nível aplicada a componentes individuais, fluxos do sistema e o sistema como um todo.
Lista de verificação de projeto
Inicie sua estratégia de design com base na lista de verificação de revisão de design para Confiabilidade e determine sua relevância para seus requisitos de negócios. Estenda a estratégia para incluir mais abordagens conforme necessário.
Resiliência: implante modelos em ambientes que dão suporte a zonas de disponibilidade, como o AKS. Ao garantir que as implantações sejam distribuídas entre zonas de disponibilidade, você está garantindo que uma implantação esteja disponível mesmo em caso de falha no datacenter. Para maior confiabilidade e disponibilidade, considere uma topologia de implantação de várias regiões.
Resiliência: verifique se você tem computação suficiente para treinamento e inferência. Por meio do planejamento de recursos, verifique se o SKU de computação e as configurações de escala atendem aos requisitos da carga de trabalho.
Resiliência: segregar workspaces do Machine Learning usados para trabalho exploratório daqueles usados para produção.
Resiliência: ao usar pontos de extremidade online gerenciados para inferência, use uma estratégia de lançamento como implantações azul-verde para minimizar o tempo de inatividade e reduzir o risco associado à implantação de novas versões.
Requisitos de negócios: selecione o uso de clusters de computação, instâncias de computação e hosts de inferência externalizados com base nas necessidades de confiabilidade, considerando os SLAs (contratos de nível de serviço) como um fator.
Recuperação: verifique se você tem recursos de autorrecuperação, como recursos de ponto de verificação compatíveis com o Machine Learning, ao treinar modelos grandes.
Recuperação: verifique se você tem uma estratégia de recuperação definida. O Machine Learning não tem failover automático. Portanto, você deve criar uma estratégia que engloba o workspace e todas as suas dependências, como Key Vault, Armazenamento do Azure e Registro de Contêiner do Azure.
Recomendações
Recomendação | Benefício |
---|---|
Implantação de modelo de várias regiões: para maior confiabilidade e disponibilidade, considere um ambiente de implantação de várias regiões quando possível. | Uma implantação de várias regiões garante que suas cargas de trabalho do Machine Learning continuem sendo executadas mesmo que uma região tenha uma interrupção. A implantação de várias regiões melhora a distribuição de carga entre regiões, potencialmente melhorando o desempenho dos usuários localizados em diferentes áreas geográficas. Para obter mais informações, consulte Failover para continuidade dos negócios e recuperação de desastres. |
Resiliência de treinamento de modelo: use recursos de ponto de verificação compatíveis com o Machine Learning, incluindo o Contêiner do Azure para PyTorch, a classe Avaliador do TensorFlow ou o objeto Run e a classe FileDataset que dão suporte ao ponto de verificação de modelo. | O ponto de verificação do modelo salva periodicamente o estado do modelo de machine learning durante o treinamento, para que ele possa ser restaurado em caso de interrupção, falha ou encerramento. Para obter mais informações, consulte Aumentar a velocidade do ponto de verificação e reduzir o custo com Nebula. |
Use a camada de máquina virtual dedicada para clusters de computação: use a camada de máquina virtual dedicada para clusters de computação para inferência em lote para garantir que o trabalho em lotes não seja preemptivo. | As máquinas virtuais de baixa prioridade têm um preço reduzido, mas são preempcionáveis. Os clusters que usam a camada de máquina virtual dedicada não são preemptos. |
Segurança
A finalidade do pilar segurança é fornecer garantias de confidencialidade, integridade e disponibilidade para a carga de trabalho.
Os princípios de design de segurança fornecem uma estratégia de design de alto nível para atingir essas metas aplicando abordagens ao design técnico em torno do Machine Learning.
Lista de verificação de projeto
Inicie sua estratégia de design com base na lista de verificação de revisão de design para Segurança e identifique vulnerabilidades e controles para melhorar a postura de segurança. Estenda a estratégia para incluir mais abordagens conforme necessário.
Disponibilidade: reduza a superfície de ataque do workspace do Machine Learning restringindo o acesso ao workspace aos recursos dentro da rede virtual.
Confidencialidade: proteja-se contra a exfiltração de dados do workspace do Machine Learning implementando o isolamento de rede. Verifique se o acesso a todos os recursos externos é explicitamente aprovado e se o acesso a todos os outros recursos externos não é permitido.
Integridade: implemente controles de acesso que autenticam e autorizam o workspace do Machine Learning para recursos externos com base no princípio de privilégios mínimos.
Integridade: implemente a segregação de casos de uso para workspaces do Machine Learning configurando workspaces com base em casos de uso ou projetos específicos. Essa abordagem segue o princípio de privilégios mínimos, garantindo que os workspaces sejam acessíveis somente a indivíduos que exigem acesso a dados e ativos de experimentação para o caso de uso ou projeto.
Integridade: regular o acesso a modelos fundamentais. Verifique se apenas os registros aprovados têm acesso a modelos no registro de modelo.
Integridade: regular o acesso a registros de contêiner aprovados. Verifique se a computação do Machine Learning só pode acessar registros aprovados.
Integridade: regular os pacotes do Python que podem ser executados na computação do Machine Learning. A regulamentação dos pacotes do Python garante que apenas pacotes confiáveis sejam executados.
Integridade: exija que o código usado para treinamento em ambientes de computação do Machine Learning seja assinado. Exigir assinatura de código garante que o código em execução seja de uma fonte confiável e não tenha sido adulterado.
Confidencialidade: siga o princípio de privilégios mínimos para RBAC (controle de acesso baseado em função) para o workspace do Machine Learning e recursos relacionados, como a conta de armazenamento do workspace, para garantir que os indivíduos tenham apenas as permissões necessárias para sua função, minimizando assim possíveis riscos de segurança.
Integridade: estabeleça confiança e acesso verificado implementando criptografia para dados inativos e dados em trânsito.
Recomendações
Recomendação | Benefício |
---|---|
Linha de base de segurança: para aprimorar a segurança e a conformidade do Serviço de Machine Learning, aplique a linha de base de segurança do Azure para Machine Learning. | A linha de base de segurança fornece diretrizes personalizadas sobre aspectos cruciais de segurança, como segurança de rede, gerenciamento de identidades, proteção de dados e acesso privilegiado. Para obter a segurança ideal, use Microsoft Defender para Nuvem para monitorar esses aspectos. |
Isolamento de rede virtual gerenciada: configure o isolamento de rede virtual gerenciada para Machine Learning. Quando você habilita o isolamento de rede virtual gerenciada, uma rede virtual gerenciada é criada para o workspace. Os recursos de computação gerenciados criados para o workspace usam automaticamente essa rede virtual gerenciada. Se você não puder implementar o isolamento de rede virtual gerenciada, deverá seguir as recomendações de topologia de rede para separar a computação em uma sub-rede dedicada longe do restante dos recursos na solução, incluindo os pontos de extremidade privados para recursos de workspace. | O isolamento de rede virtual gerenciada aumenta a segurança isolando seu workspace de outras redes, reduzindo o risco de acesso não autorizado. Em um cenário em que ocorre uma violação em outra rede em sua organização, a rede isolada do workspace do Machine Learning permanece não afetada, protegendo suas cargas de trabalho de machine learning. |
Isolamento de rede do Machine Learning: configure um ponto de extremidade privado para seu workspace do Machine Learning e conecte-se ao workspace por esse ponto de extremidade privado. | O isolamento de rede do Machine Learning aprimora a segurança, garantindo que o acesso ao seu workspace seja seguro e controlado. Com um ponto de extremidade privado configurado para seu workspace, você pode limitar o acesso ao workspace para ocorrer apenas nos endereços IP privados. |
Permitir apenas acesso de saída aprovado: configure o modo de saída no acesso de saída gerenciado do workspace do Machine Learning para Allow only approved outbound minimizar o risco de exfiltração de dados. Configure pontos de extremidade privados, marcas de serviço ou FQDNs (nomes de domínio totalmente qualificados) para recursos que você precisa acessar. |
Essa configuração minimiza o risco de exfiltração de dados, melhorando a segurança dos dados. Com essa configuração habilitada, um ator mal-intencionado que obtém acesso ao seu sistema não pode enviar seus dados para um destino externo não aprovado. |
Isolamento de rede virtual para serviços dependentes: configure serviços dependentes, como Armazenamento, Key Vault e Registro de Contêiner com pontos de extremidade privados e desabilite o acesso público. | O isolamento de rede reforça a segurança restringindo o acesso às soluções de PaaS (plataforma como serviço) do Azure somente para endereços IP privados. |
Identidade gerenciada: use identidades gerenciadas para autenticação entre o Machine Learning e outros serviços. | As identidades gerenciadas melhoram a segurança eliminando a necessidade de armazenar credenciais e gerenciar e girar manualmente as entidades de serviço. |
Desabilitar a autenticação local: desabilite a autenticação local para instâncias e clusters de computação do Machine Learning. | Desabilitar a autenticação local aumenta a segurança da computação do Machine Learning e fornece controle centralizado e gerenciamento de identidades e credenciais de recurso. |
Desabilitar a porta SSH pública: verifique se a porta SSH (Secure Shell) pública está fechada no cluster de computação do Machine Learning definindo remoteLoginPortPublicAccess Disabled como . Aplique uma configuração semelhante se você usar uma computação diferente. |
Desabilitar o acesso SSH ajuda a impedir que indivíduos não autorizados obtenham acesso e potencialmente causem danos ao seu sistema e o protege contra ataques de força bruta. |
Não provisione endereços IP públicos para computação do Machine Learning: defina enableNodePublicIp como false ao provisionar clusters de computação ou instâncias de computação do Machine Learning. Aplique uma configuração semelhante se você usar uma computação diferente. |
Evite provisionar endereços IP públicos para aprimorar a segurança limitando o potencial de acesso não autorizado à sua instância de computação ou clusters. |
Obtenha a imagem mais recente do sistema operacional: recrie instâncias de computação para obter a imagem mais recente do sistema operacional. | O uso das imagens mais recentes garante que você mantenha um ambiente consistente, estável e seguro, incluindo garantir que você tenha os patches de segurança mais recentes. |
Controles de acesso estritos do workspace do Machine Learning: use Microsoft Entra ID grupos para gerenciar o acesso ao workspace e aderir ao princípio de privilégios mínimos para RBAC. | Controles estritos de acesso ao workspace aprimoram a segurança, garantindo que os indivíduos tenham apenas as permissões necessárias para sua função. Um cientista de dados, por exemplo, pode ter acesso para executar experimentos, mas não para modificar as configurações de segurança, minimizando possíveis riscos de segurança. |
Restringir implantações de catálogo de modelos: restrinja implantações de modelo a registros específicos. | Restringir as implantações do catálogo de modelos a registros específicos garante que você implante apenas modelos em registros aprovados. Essa abordagem ajuda a regular o acesso aos modelos fundamentais de software livre. |
Criptografar dados inativos: considere o uso de chaves gerenciadas pelo cliente com o Machine Learning. | Criptografar dados inativos aprimora a segurança dos dados, garantindo que dados confidenciais sejam criptografados usando chaves gerenciadas diretamente por você. Se você tiver um requisito regulatório para gerenciar suas próprias chaves de criptografia, use esse recurso para atender a esse requisito. |
Minimizar o risco de exfiltração de dados: implemente a prevenção contra exfiltração de dados. Por exemplo, crie uma política de ponto de extremidade de serviço para filtrar o tráfego de rede virtual de saída e permitir a exfiltração de dados apenas para contas específicas do Armazenamento do Azure. | Minimize o risco de exfiltração de dados limitando os requisitos de entrada e saída. |
Supervisor
Veja a seguir alguns exemplos das recomendações de práticas recomendadas de segurança do Assistente para Machine Learning:
- Os workspaces devem ser criptografados com uma CMK (chave gerenciada pelo cliente).
- Os workspaces devem usar Link Privado do Azure.
- Os workspaces devem desabilitar o acesso à rede pública.
- A computação deve estar em uma rede virtual.
- As instâncias de computação devem ser recriadas para obter as atualizações de software mais recentes.
Azure Policy
Veja a seguir exemplos de definições de Azure Policy internas para segurança do Machine Learning:
- Configure registros permitidos para cálculos de Machine Learning especificados.
- Configure pacotes do Python permitidos para cálculos do Machine Learning especificados.
- Os workspaces do Machine Learning devem desabilitar o acesso à rede pública.
- As instâncias de computação do Machine Learning devem ser recriadas para obter as atualizações de software mais recentes.
- Os cálculos do Machine Learning devem estar em uma rede virtual.
- Os cálculos do Machine Learning devem ter métodos de autenticação local desabilitados.
- Os workspaces do Machine Learning devem ser criptografados com uma CMK.
- Os workspaces do Machine Learning devem usar Link Privado.
- Os workspaces do Machine Learning devem usar uma identidade gerenciada atribuída pelo usuário.
- Exigir um ponto de extremidade de aprovação chamado antes dos trabalhos em execução para cálculos de Machine Learning especificados.
- Exigir assinatura de código para código de treinamento para cálculos.
- Restringir a implantação de modelo a registros específicos.
Otimização de custos
A Otimização de Custos concentra-se na detecção de padrões de gastos, na priorização de investimentos em áreas críticas e na otimização em outras pessoas para atender ao orçamento da organização e atender aos requisitos de negócios.
Leia os princípios de design da Otimização de Custos para entender as abordagens para atingir essas metas e as compensações necessárias em opções de design técnico relacionadas ao treinamento e implantação de modelos em seus ambientes.
Lista de verificação de projeto
Inicie sua estratégia de design com base na lista de verificação de revisão de design para Otimização de Custos para investimentos e ajuste o design para que a carga de trabalho seja alinhada com o orçamento alocado para a carga de trabalho. Seu design deve usar as funcionalidades certas do Azure, monitorar investimentos e encontrar oportunidades para otimizar ao longo do tempo.
Otimização de uso: escolha os recursos apropriados para garantir que eles se alinhem com seus requisitos de carga de trabalho. Por exemplo, escolha entre CPUs ou GPUs, várias SKUs ou VMs de baixa versus prioridade regular.
Otimização de uso: verifique se os recursos de computação que não estão sendo usados são reduzidos ou desligados quando ociosos para reduzir o desperdício.
Otimização de uso: aplique políticas e configure cotas para cumprir os limites superiores e inferiores do design.
Otimização de uso: teste a paralelização de cargas de trabalho de treinamento para determinar se os requisitos de treinamento podem ser atendidos em SKUs de menor custo.
Otimização de taxa: compre Instâncias de Máquina Virtual Reservadas do Azure se você tiver uma boa estimativa de uso nos próximos um a três anos.
Monitorar e otimizar: monitore o uso de recursos, como uso de CPU e GPU ao treinar modelos. Se os recursos não estão sendo totalmente usados, modifique o código para usar melhor os recursos ou reduza verticalmente para tamanhos de VM menores ou mais baratos.
Recomendações
Recomendação | Benefício |
---|---|
Otimizar recursos de computação: otimize seus recursos de computação com base nos requisitos da carga de trabalho. Escolha o SKU mais adequado à sua carga de trabalho:
|
Selecionar a computação certa é essencial, pois afeta diretamente o custo da execução da carga de trabalho. Escolher uma GPU ou um SKU de alto desempenho sem o uso adequado pode levar a gastos desperdiçados, enquanto escolher a computação subdimensionada pode levar a tempos de treinamento e problemas de desempenho proibitivamente longos. |
Otimizar o dimensionamento de computação: configure seus clusters de computação para dimensionamento automático para garantir que você use apenas o que precisa. Para clusters de treinamento, defina o número mínimo de nós como 0 e configure a quantidade de tempo que o nó está ocioso para um horário apropriado. Para experimentação menos iterativa, reduza o tempo para economizar custos. Para experimentos mais iterativos, use um tempo maior para evitar pagar pelo aumento ou redução após cada alteração. |
Configure o dimensionamento automático para clusters de computação para reduzir verticalmente quando seu uso for baixo. Defina o número mínimo de nós como 0 para que os clusters de treinamento sejam reduzidos verticalmente para 0 quando não estiverem em uso. |
Definir políticas de encerramento de treinamento: defina políticas de encerramento antecipado para limitar a duração das execuções de treinamento ou encerrá-las antecipadamente. | Definir políticas de encerramento pode ajudá-lo a economizar custos interrompendo execuções sem execução antecipadamente. |
Usar máquinas virtuais de baixa prioridade para cargas de trabalho em lote: considere o uso de máquinas virtuais de baixa prioridade para cargas de trabalho em lote que não diferenciam tempo e em que interrupções são recuperáveis. | Máquinas virtuais de baixa prioridade permitem que uma grande quantidade de potência de computação seja usada para um baixo custo. Eles aproveitam a capacidade excedente no Azure. |
Habilitar o desligamento ocioso para instâncias de computação: habilite o desligamento ocioso para instâncias de computação ou agende uma hora de início e parada se o tempo de uso for conhecido. | Por padrão, as instâncias de computação estão disponíveis para você, acumulando custos. Configurar instâncias de computação para desligar quando estiver ociosa ou configurar um agendamento para elas economiza custos quando elas não estão em uso. |
Paralelizar cargas de trabalho de treinamento: considere paralelizar cargas de trabalho de treinamento. Teste a execução deles com a ajuda dos componentes paralelos no Machine Learning. | Cargas de trabalho paralelas podem ser executadas em várias instâncias menores, potencialmente gerando economia de custos. |
Instâncias de VM Reservadas do Azure: compre instâncias de VM reservadas do Azure se você tiver uma boa estimativa de uso nos próximos um a três anos. Aproveite as opções de capacidade reservada para serviços quando você tiver boas estimativas de uso. | Compre Instâncias de VM Reservadas do Azure para pagar antecipadamente pelo uso da máquina virtual e fornecer descontos com preços pagos conforme o uso. O desconto é aplicado automaticamente ao uso da máquina virtual que corresponde à reserva. |
Excelência operacional
A Excelência Operacional concentra-se principalmente em procedimentos para práticas de desenvolvimento, observabilidade e gerenciamento de versão.
Os princípios de design de Excelência Operacional fornecem uma estratégia de design de alto nível para atingir essas metas para os requisitos operacionais da carga de trabalho.
Lista de verificação de projeto
Inicie sua estratégia de design com base na lista de verificação de revisão de design para Excelência Operacional para definir processos de observabilidade, teste e implantação relacionados ao Machine Learning.
Padrões de desenvolvimento: aproveite os catálogos e registros de modelos do Machine Learning para armazenar, versão e compartilhar ativos de machine learning.
Automatizar para obter eficiência: siga boas práticas de MLOps (operações de machine learning ). Quando possível, crie pipelines automatizados de ponta a ponta para processos de preparação, treinamento e pontuação de dados. No desenvolvimento, use scripts em vez de notebooks para modelos de treinamento, pois os scripts são mais fáceis de integrar em pipelines automatizados.
Implantar com confiança: implemente IaC (infraestrutura como código) para workspaces do Machine Learning, clusters de computação, instâncias de computação e outros ambientes de implantação.
Observabilidade: monitore o desempenho de seus modelos implantados, incluindo descompasso de dados.
Observabilidade: se seus modelos forem implantados em pontos de extremidade online, habilite o Application Insights para monitorar pontos de extremidade e implantações online. Monitore a infraestrutura de treinamento para garantir que você esteja atendendo aos seus requisitos de linha de base.
Simplicidade: use ambientes coletados otimizados para Machine Learning, quando disponíveis.
Recomendações
Recomendação | Benefício |
---|---|
Minimizar instâncias de workspace do Machine Learning: minimize o número de workspaces, quando possível, para reduzir a manutenção. | Limitar o número de workspaces reduz o esforço de manutenção e o custo da operação. Para requisitos, como segurança, talvez seja necessário vários workspaces separados. Minimize o número de workspaces quando possível. |
Aproveite os catálogos de modelos e registros: aproveite os catálogos de modelos e registros do Machine Learning para armazenar, versão e compartilhar ativos de machine learning. Use catálogos de modelos do Machine Learning para ajudá-lo a implementar testes A/B e implantação de modelos. |
Use registros de modelo do Machine Learning para armazenar e ver os modelos de machine learning para controlar as alterações e manter a linhagem com o trabalho e os conjuntos de dados usados para treinamento. Com catálogos de modelos do Machine Learning, suas equipes de ciência de dados podem descobrir, avaliar e ajustar modelos de machine learning pré-treinados. O armazenamento de modelos com versão em registros de modelo do Machine Learning dá suporte a estratégias de implantação, como versões A/B, versões canário e reversões. |
Monitorar o desempenho do modelo: monitore o desempenho dos modelos implantados e detecte o descompasso de dados nos conjuntos de dados. | O monitoramento de modelos implantados garante que seus modelos atendam aos requisitos de desempenho. O monitoramento de descompasso de dados ajuda a detectar alterações nos dados de entrada que podem levar a um declínio no desempenho do modelo. O gerenciamento de descompasso de dados ajuda a garantir que seu modelo forneça resultados precisos ao longo do tempo. |
Monitorar a infraestrutura: se os modelos forem implantados em pontos de extremidade online, habilite o Application Insights para monitorar pontos de extremidade e implantações online. Monitore a infraestrutura de treinamento para garantir que você esteja atendendo aos seus requisitos de linha de base. Verifique se você está coletando logs de recursos para o Machine Learning. |
O monitoramento de pontos de extremidade fornece visibilidade das métricas, como latência de solicitação e solicitações por minuto. Você pode comparar seu desempenho com sua linha de base e usar essas informações para fazer alterações nos recursos de computação adequadamente. As métricas de monitoramento, como bytes de rede, podem alertá-lo se você estiver se aproximando dos limites de cota e impedir a limitação. Da mesma forma, monitorar seu ambiente de treinamento fornece as informações para fazer alterações em seu ambiente de treinamento. Use essas informações para decidir escalar ou reduzir horizontalmente, escalar ou reduzir verticalmente com SKUs de desempenho diferentes ou escolher entre CPUs ou GPUs. |
Ambientes de treinamento de modelo de curadoria: use ambientes coletados otimizados para Machine Learning, quando disponíveis. |
Ambientes coletados são ambientes pré-criados fornecidos pelo Machine Learning que aceleram o tempo de implantação e reduzem a latência de implantação e treinamento. O uso de ambientes coletados melhora as taxas de sucesso de treinamento e implantação e evita builds de imagem desnecessários. Ambientes coletados, como o Contêiner do Azure para PyTorch, também podem ser otimizados para treinar modelos grandes no Machine Learning. |
Eficiência de desempenho
A Eficiência de Desempenho se trata de manter a experiência do usuário mesmo quando há um aumento na carga gerenciando a capacidade. A estratégia inclui dimensionar recursos, identificar e otimizar possíveis gargalos e otimizar o desempenho de pico.
Os princípios de design de Eficiência de Desempenho fornecem uma estratégia de design de alto nível para atingir essas metas de capacidade em relação ao uso esperado.
Lista de verificação de projeto
Inicie sua estratégia de design com base na lista de verificação de revisão de design para Eficiência de Desempenho para definir uma linha de base com base nos principais indicadores de desempenho para cargas de trabalho do Machine Learning.
Metas de desempenho: determine o tempo de treinamento aceitável e a frequência de retreinamento para seu modelo. Definir um destino claro para o tempo de treinamento, juntamente com o teste, ajuda a determinar os recursos de computação, CPU versus GPU e SKUs de CPU necessários para cumprir a meta de tempo de treinamento.
Metas de desempenho: defina as metas de desempenho aceitáveis para seus modelos implantados, incluindo tempo de resposta, solicitações por segundo, taxa de erro e tempo de atividade. As metas de desempenho atuam como um parâmetro de comparação para a eficiência do modelo implantado. Os destinos podem ajudá-lo a fazer determinações de CPU versus GPU, opções de SKU de CPU e requisitos de dimensionamento.
Atender aos requisitos de capacidade: escolha os recursos de computação certos para treinamento de modelo.
Atender aos requisitos de capacidade: escolha os recursos de computação corretos para implantações de modelo.
Atender aos requisitos de capacidade: escolha ambientes de implantação com recursos de dimensionamento automático para adicionar e remover a capacidade à medida que a demanda flutua.
Obter e sustentar o desempenho: monitore continuamente o desempenho de seus modelos implantados, examine os resultados e execute as ações apropriadas.
Obter e sustentar o desempenho: monitore continuamente o desempenho de sua infraestrutura de modelos implantados, examine os resultados e execute as ações apropriadas. Monitore a infraestrutura de treinamento para garantir que você esteja atendendo aos seus requisitos de tempo de treinamento.
Recomendações
Recomendação | Benefício |
---|---|
Selecione os serviços de computação apropriados para treinamento de modelo: considere clusters de computação do Machine Learning em instâncias de computação para treinamento de modelo se você precisar de dimensionamento automático. Otimize seus recursos de computação com base nos requisitos de treinamento. Primeiro, escolha entre CPUs e GPUs. Padrão para CPUs, mas considere GPUs para cargas de trabalho como aprendizado profundo, processamento de imagem ou vídeo ou grandes quantidades de dados. Em seguida, escolha o SKU de imagem que melhor se adapte à sua carga de trabalho. Use o teste para escolher a opção de computação que otimiza o custo em relação ao tempo de treinamento ao determinar sua linha de base. |
Selecionar a computação certa é essencial, pois afeta diretamente o tempo de treinamento. Escolher a SKU e a CPU e a GPU certas garante que o treinamento do modelo possa atender aos seus requisitos e metas de desempenho. Escolher um SKU de baixo desempenho que seja usado em excesso pode levar a tempos de treinamento proibitivamente longos e problemas de desempenho. Os clusters de computação fornecem a capacidade de melhorar o desempenho, dimensionando cargas de trabalho que dão suporte ao dimensionamento horizontal. Esse método fornece flexibilidade para lidar com cargas de trabalho com demandas diferentes e permite adicionar ou remover computadores conforme necessário. |
Dimensionamento do ambiente de implantação de modelo: use os recursos de dimensionamento automático do ambiente de implantação. Para ambientes de implantação do AKS, use o dimensionador automático de cluster para dimensionar para atender à demanda. Para pontos de extremidade online, dimensione automaticamente por meio da integração com o recurso de dimensionamento automático do Azure Monitor. | O dimensionamento automático ajusta o número de instâncias do modelo implantado para corresponder à demanda. |
Monitorar o desempenho do modelo: monitore o desempenho dos modelos implantados. | Acompanhar o desempenho de modelos em produção alerta você para possíveis problemas como descompasso de dados, descompasso de previsão, qualidade de dados e descompasso de atribuição de recursos. O monitoramento de descompasso de dados ajuda a detectar alterações nos dados de entrada que podem levar a um declínio no desempenho do modelo. O gerenciamento de descompasso de dados ajuda a garantir que seu modelo forneça resultados precisos ao longo do tempo. |
Monitorar a infraestrutura: monitore os pontos de extremidade online e integre-se ao Monitor para acompanhar e monitorar as métricas e os logs apropriados. Habilite o Application Insights ao criar implantações online. Monitore a infraestrutura de treinamento e examine o uso de recursos, como memória e uso de CPU ou GPU ao treinar modelos para garantir que você esteja atendendo aos seus requisitos de linha de base. |
O monitoramento de pontos de extremidade fornece visibilidade das métricas, como latência de solicitação e solicitações por minuto. Você pode comparar seu desempenho com sua linha de base e usar essas informações para fazer alterações nos recursos de computação adequadamente. As métricas de monitoramento, como bytes de rede, podem alertá-lo se você estiver se aproximando dos limites de cota e impedir a limitação. Da mesma forma, monitorar seu ambiente de treinamento fornece as informações para fazer alterações em seu ambiente de treinamento. Use essas informações para decidir escalar ou reduzir horizontalmente, escalar ou reduzir verticalmente com SKUs de desempenho diferentes ou escolher entre CPUs ou GPUs. |
Políticas do Azure
O Azure fornece um amplo conjunto de políticas internas relacionadas ao Machine Learning e suas dependências. Algumas das recomendações anteriores podem ser auditadas por meio de políticas do Azure. Considere as seguintes políticas relacionadas à segurança:
- Registros permitidos para cálculos do Machine Learning especificados.
- Configure pacotes do Python permitidos para cálculos do Machine Learning especificados.
- Os cálculos do Machine Learning devem estar em uma rede virtual.
- Os cálculos do Machine Learning devem ter métodos de autenticação local desabilitados.
- Os workspaces do Machine Learning devem desabilitar o acesso à rede pública.
- As instâncias de computação do Machine Learning devem ser recriadas para obter as atualizações de software mais recentes.
- Os workspaces do Machine Learning devem ser criptografados com uma chave gerenciada pelo cliente.
- Os workspaces do Machine Learning devem usar o link privado.
- Os workspaces do Machine Learning devem usar a identidade gerenciada atribuída pelo usuário.
- Exigir um ponto de extremidade de aprovação chamado antes dos trabalhos em execução para cálculos do Machine Learning especificados.
- Exigir assinatura de código para código de treinamento para computação.
- Restringir a implantação de modelo a registros específicos.
Considere a seguinte política relacionada à otimização de custos:
Considere as seguintes políticas relacionadas à excelência operacional:
- Exigir que expressões de filtro de log e armazenamento de dados sejam usados para logs completos para cálculos do Machine Learning especificados.
- Os logs de recursos nos workspaces do Machine Learning devem ser habilitados.
Para governança abrangente, examine as definições internas Azure Policy para Machine Learning.
Recomendações do Assistente
O Assistente é um consultor de nuvem personalizado que ajuda você a seguir as melhores práticas para otimizar suas implantações do Azure. As recomendações do Assistente podem ajudá-lo a melhorar a confiabilidade, a segurança, a eficácia do custo, o desempenho e a excelência operacional do Machine Learning.
Considere as seguintes recomendações do Assistente para segurança:
- Os workspaces devem ser criptografados com uma CMK (chave gerenciada pelo cliente).
- Os workspaces devem usar o link privado.
- Os workspaces devem desabilitar o acesso à rede pública.
- A computação deve estar em uma rede virtual.
- As instâncias de computação devem ser recriadas para obter as atualizações de software mais recentes.
Considere a seguinte recomendação do Assistente para excelência operacional:
- Os logs de recursos nos workspaces do Machine Learning devem ser habilitados.
Próximas etapas
Considere esses artigos como recursos que demonstram as recomendações realçadas neste artigo.
- Use a arquitetura de referência de chat de ponta a ponta do OpenAI de linha de base como um exemplo de como essas recomendações podem ser aplicadas a uma carga de trabalho.
- Use a documentação do produto machine learning para criar experiência de implementação.