Perspetiva do Azure Well-Architected Framework sobre o Azure Machine Learning
O Azure Machine Learning é um serviço cloud gerido que pode utilizar para preparar, implementar e gerir modelos de machine learning. Existe uma vasta gama de opções e configurações para modelos de preparação e implementação, incluindo SKUs de computação e configurações. Pode implementar modelos de Machine learning na computação do Machine Learning ou noutros serviços do Azure, como Azure Kubernetes Service (AKS).
Este artigo fornece recomendações de arquitetura para tomar decisões informadas quando utiliza o Machine Learning para preparar, implementar e gerir modelos de machine learning. A documentação de orientação baseia-se nos pilares do Azure Well-Architected Framework.
Importante
Como utilizar este guia
Cada secção tem uma lista de verificação de design que apresenta áreas de interesse arquitetónicas, juntamente com estratégias de design localizadas no âmbito da tecnologia.
Também estão incluídas recomendações sobre as capacidades tecnológicas que podem ajudar a materializar essas estratégias. As recomendações não representam uma lista exaustiva de todas as configurações disponíveis para o Machine Learning e as respetivas dependências. Em vez disso, listam as principais recomendações mapeadas para as perspetivas de estrutura. Utilize as recomendações para criar a prova de conceito ou para otimizar os seus ambientes existentes.
A arquitetura de base de arquitetura básica Arquitetura openAI arquitetura de referência de chat ponto a ponto demonstra muitas das principais recomendações.
Âmbito da tecnologia
Esta análise centra-se nas decisões interrelacionadas para estes 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 ligados, como arquivos de dados ou Key Vault do Azure.
Fiabilidade
O objetivo do pilar Fiabilidade é fornecer funcionalidades contínuas ao criar resiliência suficiente e a capacidade de recuperar rapidamente de falhas.
Os princípios de conceção de fiabilidade fornecem uma estratégia de design de alto nível aplicada a componentes individuais, fluxos de sistema e ao sistema como um todo.
Lista de verificação de estruturação
Inicie a sua estratégia de conceção com base na lista de verificação de revisão de design para Fiabilidade e determine a sua relevância para os seus requisitos empresariais. Expanda a estratégia para incluir mais abordagens conforme necessário.
Resiliência: implemente modelos em ambientes que suportem zonas de disponibilidade, como o AKS. Ao garantir que as implementações são distribuídas entre zonas de disponibilidade, está a garantir que uma implementação está disponível mesmo em caso de falha do datacenter. Para maior fiabilidade e disponibilidade, considere uma topologia de implementação de várias regiões.
Resiliência: certifique-se de que tem computação suficiente para preparação e inferência. Através do planeamento de recursos, certifique-se de que o SKU de computação e as definições de dimensionamento cumprem os requisitos da sua carga de trabalho.
Resiliência: segregar áreas de trabalho do Machine Learning utilizadas para trabalhos exploratórios das utilizadas para produção.
Resiliência: ao utilizar pontos finais online geridos para inferência, utilize uma estratégia de versão, como implementações azul-verde para minimizar o tempo de inatividade e reduzir o risco associado à implementação de novas versões.
Requisitos comerciais: selecione a utilização de clusters de computação, instâncias de computação e anfitriões de inferência externa com base nas necessidades de fiabilidade, considerando os contratos de nível de serviço (SLAs) como um fator.
Recuperação: certifique-se de que tem capacidades de recuperação automática, como funcionalidades de ponto de verificação suportadas pelo Machine Learning, ao preparar modelos grandes.
Recuperação: certifique-se de que tem uma estratégia de recuperação definida. O Machine Learning não tem ativação pós-falha automática. Por conseguinte, tem de conceber uma estratégia que abranja a área de trabalho e todas as respetivas dependências, como Key Vault, Armazenamento do Azure e Azure Container Registry.
Recomendações
Recomendação | Vantagem |
---|---|
Implementação de modelos de várias regiões: para maior fiabilidade e disponibilidade, considere um ambiente de implementação de várias regiões sempre que possível. | Uma implementação de várias regiões garante que as cargas de trabalho do Machine Learning continuam a ser executadas mesmo que uma região tenha uma falha. A implementação de várias regiões melhora a distribuição de carga entre regiões, melhorando potencialmente o desempenho dos utilizadores localizados em diferentes áreas geográficas. Para obter mais informações, veja Ativação pós-falha para continuidade empresarial e recuperação após desastre. |
Resiliência de preparação de modelos: utilize funcionalidades de ponto de verificação suportadas pelo Machine Learning, incluindo o Contentor do Azure para PyTorch, a classe Avaliador do TensorFlow ou o objeto Executar e a classe FileDataset que suportam o ponto de verificação de modelos. | O ponto de verificação de modelos guarda periodicamente o estado do modelo de machine learning durante a preparação, para que possa ser restaurado em caso de interrupção, falha ou terminação. Para obter mais informações, veja Aumentar a velocidade do ponto de verificação e reduzir os custos com a Nebulosa. |
Utilize o escalão de máquina virtual dedicado para clusters de computação: utilize o escalão de máquina virtual dedicado para clusters de computação para inferência de lotes para garantir que a tarefa de lote não está preempida. | As máquinas virtuais de baixa prioridade têm um preço reduzido, mas são preemptíveis. Os clusters que utilizam a camada de máquina virtual dedicada não estão preemptados. |
Segurança
O objetivo do pilar segurança é fornecer garantias de confidencialidade, integridade e disponibilidade à carga de trabalho.
Os princípios de design de segurança fornecem uma estratégia de design de alto nível para atingir esses objetivos ao aplicar abordagens ao design técnico em torno do Machine Learning.
Lista de verificação de estruturação
Inicie a sua estratégia de conceção com base na lista de verificação de revisão de design para Segurança e identifique vulnerabilidades e controlos para melhorar a postura de segurança. Expanda a estratégia para incluir mais abordagens conforme necessário.
Disponibilidade: reduza a superfície de ataque da área de trabalho do Machine Learning ao restringir o acesso à área de trabalho aos recursos na rede virtual.
Confidencialidade: guarde-se contra a exfiltração de dados da área de trabalho do Machine Learning ao implementar o isolamento de rede. Certifique-se de que o acesso a todos os recursos externos é explicitamente aprovado e que o acesso a todos os outros recursos externos não é permitido.
Integridade: implemente controlos de acesso que autenticam e autorizam a área de trabalho do Machine Learning para recursos externos com base no princípio de menor privilégio.
Integridade: implemente a segregação de casos de utilização para áreas de trabalho do Machine Learning ao configurar áreas de trabalho com base em casos de utilização ou projetos específicos. Esta abordagem cumpre o princípio do menor privilégio ao garantir que as áreas de trabalho só estão acessíveis a indivíduos que necessitem de acesso a recursos de dados e experimentação para o caso ou projeto de utilização.
Integridade: regular o acesso a modelos fundamentais. Certifique-se de que apenas os registos aprovados têm acesso a modelos no registo de modelos.
Integridade: regular o acesso aos registos de contentores aprovados. Certifique-se de que a computação do Machine Learning só pode aceder a registos aprovados.
Integridade: regular os pacotes Python que podem ser executados na computação do Machine Learning. A regulação dos pacotes Python garante que apenas os pacotes fidedignos são executados.
Integridade: exigir a assinatura do código utilizado para preparação em ambientes de computação do Machine Learning. A necessidade de assinatura de código garante que o código em execução é de uma origem fidedigna e não foi adulterado.
Confidencialidade: adira ao princípio do menor privilégio para o controlo de acesso baseado em funções (RBAC) à área de trabalho do Machine Learning e recursos relacionados, como a conta de armazenamento da área de trabalho, para garantir que os indivíduos têm apenas as permissões necessárias para a sua função, minimizando assim potenciais riscos de segurança.
Integridade: estabeleça confiança e acesso verificado ao implementar a encriptação para dados inativos e dados em trânsito.
Recomendações
Recomendação | Vantagem |
---|---|
Linha de base de segurança: para melhorar a segurança e conformidade do seu 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 orientações personalizadas sobre aspetos de segurança cruciais, tais como segurança de rede, gestão de identidades, proteção de dados e acesso privilegiado. Para uma segurança ideal, utilize Microsoft Defender para a Cloud para monitorizar estes aspetos. |
Isolamento de rede virtual gerida: configure o isolamento de rede virtual gerida para o Machine Learning. Quando ativa o isolamento de rede virtual gerida, é criada uma rede virtual gerida para a área de trabalho. Os recursos de computação geridos que criar para a área de trabalho utilizam automaticamente esta rede virtual gerida. Se não conseguir implementar o isolamento de rede virtual gerida, tem de seguir as recomendações de topologia de rede para separar a computação numa sub-rede dedicada longe dos restantes recursos na solução, incluindo os pontos finais privados dos recursos da área de trabalho. | O isolamento da rede virtual gerida melhora a segurança ao isolar a área de trabalho de outras redes, reduzindo o risco de acesso não autorizado. Num cenário em que ocorre uma falha de segurança noutra rede dentro da sua organização, a rede isolada da sua área de trabalho do Machine Learning permanece inalterada, protegendo as cargas de trabalho de machine learning. |
Isolamento de rede do Machine Learning: configure um ponto final privado para a área de trabalho do Machine Learning e ligue-se à área de trabalho através desse ponto final privado. | O isolamento de rede do Machine Learning melhora a segurança ao garantir que o acesso à área de trabalho é seguro e controlado. Com um ponto final privado configurado para a área de trabalho, pode limitar o acesso à área de trabalho para que ocorra apenas através dos endereços IP privados. |
Permitir apenas o acesso de saída aprovado: configure o modo de saída no acesso de saída gerido da área de trabalho do Machine Learning para Allow only approved outbound minimizar o risco de exfiltração de dados. Configure pontos finais privados, etiquetas de serviço ou nomes de domínio completamente qualificados (FQDNs) para recursos aos quais precisa de aceder. |
Esta configuração minimiza o risco de exfiltração de dados, melhorando a segurança dos dados. Com esta configuração ativada, um ator malicioso que obtenha acesso ao seu sistema não pode enviar os 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 Container Registry com pontos finais privados e desative o acesso público. | O isolamento de rede reforça a segurança ao restringir o acesso a soluções de plataforma como serviço (PaaS) do Azure apenas para endereços IP privados. |
Identidade gerida: utilize identidades geridas para autenticação entre o Machine Learning e outros serviços. | As identidades geridas melhoram a segurança ao eliminar a necessidade de armazenar credenciais e gerir e rodar manualmente principais de serviço. |
Desativar a autenticação local: desative a autenticação local para clusters e instâncias de computação do Machine Learning. | Desativar a autenticação local aumenta a segurança da computação do Machine Learning e fornece controlo centralizado e gestão de identidades e credenciais de recursos. |
Desativar a porta SSH pública: certifique-se de que a porta SSH (Secure Shell) pública está fechada no cluster de cálculo do Machine Learning ao definir remoteLoginPortPublicAccess como Disabled . Aplique uma configuração semelhante se utilizar uma computação diferente. |
Desativar o acesso SSH ajuda a impedir que indivíduos não autorizados obtenham acesso e possam causar danos ao seu sistema e protege-o contra ataques de força bruta. |
Não aprovisione endereços IP públicos para computação do Machine Learning: defina enableNodePublicIp como ao false aprovisionar clusters de computação ou instâncias de computação do Machine Learning. Aplique uma configuração semelhante se utilizar uma computação diferente. |
Abstenha-se de aprovisionar endereços IP públicos para melhorar a segurança ao limitar o potencial de acesso não autorizado à sua instância de computação ou clusters. |
Obter a imagem mais recente do sistema operativo: recrie as instâncias de computação para obter a imagem mais recente do sistema operativo. | A utilização das imagens mais recentes garante que mantém um ambiente consistente, estável e seguro, incluindo garantir que tem os patches de segurança mais recentes. |
Controlos rigorosos de acesso à área de trabalho do Machine Learning: utilize Microsoft Entra ID grupos para gerir o acesso à área de trabalho e cumprir o princípio do menor privilégio para o RBAC. | Os rigorosos controlos de acesso à área de trabalho melhoram a segurança ao garantir que as pessoas têm apenas as permissões necessárias para a sua função. Um cientista de dados, por exemplo, pode ter acesso para executar experimentações, mas não para modificar as definições de segurança, minimizando potenciais riscos de segurança. |
Restringir implementações de catálogos de modelos: restringir implementações de modelos a registos específicos. | Restringir as implementações do catálogo de modelos a registos específicos garante que só implementa modelos em registos aprovados. Esta abordagem ajuda a regular o acesso aos modelos fundamentais open source. |
Encriptar dados inativos: considere utilizar chaves geridas pelo cliente com o Machine Learning. | Encriptar dados inativos melhora a segurança dos dados ao garantir que os dados confidenciais são encriptados através da utilização de chaves geridas diretamente por si. Se tiver um requisito regulamentar para gerir as suas próprias chaves de encriptação, utilize esta funcionalidade para cumprir esse requisito. |
Minimizar o risco de transferência de dados não autorizada: implementar a prevenção de transferência de dados não autorizada. Por exemplo, crie uma política de ponto final de serviço para filtrar o tráfego de rede virtual de saída e permitir a transferência de dados exfiltração apenas para contas de Armazenamento do Azure específicas. | Minimize o risco de exfiltração de dados ao limitar os requisitos de entrada e saída. |
Assistente
Seguem-se alguns exemplos das recomendações de melhores práticas de segurança do Assistente para Machine Learning:
- As áreas de trabalho devem ser encriptadas com uma chave gerida pelo cliente (CMK).
- As áreas de trabalho devem utilizar Azure Private Link.
- As áreas de trabalho devem desativar o acesso à rede pública.
- A computação deve estar numa rede virtual.
- As instâncias de computação devem ser recriadas para obter as atualizações de software mais recentes.
Azure Policy
Seguem-se exemplos de definições de Azure Policy incorporadas para a segurança do Machine Learning:
- Configurar registos permitidos para cálculos do Machine Learning especificados.
- Configurar pacotes Python permitidos para cálculos do Machine Learning especificados.
- As Áreas de Trabalho do Machine Learning devem desativar 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 numa rede virtual.
- Os cálculos do Machine Learning devem ter métodos de autenticação locais desativados.
- As áreas de trabalho do Machine Learning devem ser encriptadas com uma CMK.
- As áreas de trabalho do Machine Learning devem utilizar Private Link.
- As áreas de trabalho do Machine Learning devem utilizar uma identidade gerida atribuída pelo utilizador.
- Exigir um ponto final de aprovação chamado antes de tarefas em execução para cálculos do Machine Learning especificados.
- Exigir assinatura de código para o código de preparação para cálculos.
- Restringir a implementação de modelos a registos específicos.
Otimização de Custos
A Otimização de Custos centra-se na deteção de padrões de gastos, na atribuição de prioridades a investimentos em áreas críticas e na otimização noutras para cumprir o orçamento da organização, cumprindo os requisitos empresariais.
Leia os princípios de conceção da Otimização de Custos para compreender as abordagens para atingir esses objetivos e as desvantagens necessárias nas escolhas de design técnico relacionadas com a preparação e implementação de modelos nos respetivos ambientes.
Lista de verificação de estruturação
Inicie a sua estratégia de conceção com base na lista de verificação de revisão de design para Otimização de Custos para investimentos e ajuste a estrutura para que a carga de trabalho esteja alinhada com o orçamento alocado para a carga de trabalho. A sua estrutura deve utilizar as capacidades certas do Azure, monitorizar os investimentos e encontrar oportunidades para otimizar ao longo do tempo.
Otimização da utilização: escolha os recursos adequados para garantir que estão alinhados com os requisitos da carga de trabalho. Por exemplo, escolha entre CPUs ou GPUs, vários SKUs ou VMs de prioridade baixa versus regular.
Otimização da utilização: certifique-se de que os recursos de computação que não estão a ser utilizados são reduzidos verticalmente ou encerrados quando estão inativos para reduzir o desperdício.
Otimização da utilização: aplique políticas e configure quotas para cumprir os limites superiores e inferiores da estrutura.
Otimização da utilização: teste a paralelização das cargas de trabalho de preparação para determinar se os requisitos de preparação podem ser cumpridos em SKUs de custo mais baixo.
Otimização da taxa: compre Instâncias de Máquinas Virtuais Reservadas do Azure se tiver uma boa estimativa da utilização nos próximos um a três anos.
Monitorizar e otimizar: monitorize a utilização de recursos, como a utilização da CPU e da GPU ao preparar modelos. Se os recursos não estiverem a ser totalmente utilizados, modifique o código para utilizar melhor os recursos ou reduza verticalmente para tamanhos de VM mais pequenos ou mais baratos.
Recomendações
Recomendação | Vantagem |
---|---|
Otimizar recursos de computação: otimize os 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 correta é fundamental, uma vez que afeta diretamente o custo de execução da carga de trabalho. Escolher uma GPU ou um SKU de alto desempenho sem uma utilização adequada pode levar a gastos desperdiçados, ao passo que escolher computação subdimensionada pode levar a tempos de preparação proibitivamente longos e problemas de desempenho. |
Otimizar o dimensionamento de computação: configure os clusters de computação para dimensionamento automático para garantir que utiliza apenas o que precisa. Para os clusters de preparação, defina o número mínimo de nós como 0 e configure a quantidade de tempo em que o nó está inativo para uma hora apropriada. Para uma experimentação menos iterativa, reduza o tempo para poupar custos. Para uma experimentação mais iterativa, utilize um tempo mais elevado para evitar pagar o aumento ou redução vertical após cada alteração. |
Configure o dimensionamento automático para clusters de computação para reduzir verticalmente quando a utilização for baixa. Defina o número mínimo de nós como 0 para os clusters de preparação reduzirem verticalmente para 0 quando não estiverem a ser utilizados. |
Definir políticas de terminação de preparação: defina políticas de terminação antecipada para limitar a duração das execuções de preparação ou terminá-las mais cedo. | Definir políticas de terminação pode ajudá-lo a poupar custos ao parar as execuções sem execução antecipadamente. |
Utilizar máquinas virtuais de baixa prioridade para cargas de trabalho em lote: considere utilizar máquinas virtuais de baixa prioridade para cargas de trabalho de lote que não sejam sensíveis ao tempo e nas quais as interrupções são recuperáveis. | As máquinas virtuais de baixa prioridade permitem utilizar uma grande quantidade de poder de computação a um custo baixo. Tiram partido da capacidade excedentária no Azure. |
Ativar o encerramento inativo para instâncias de computação: ative o encerramento inativo para instâncias de computação ou agende uma hora de início e paragem se o tempo de utilização for conhecido. | Por predefinição, as instâncias de computação estão disponíveis para si, acumulando custos. Configurar instâncias de computação para encerrar quando estão inativas ou configurar uma agenda para as mesmas poupa custos quando não estão a ser utilizadas. |
Paralelizar cargas de trabalho de preparação: considere paralelizar as cargas de trabalho de preparação. Teste a execução dos mesmos com a ajuda dos componentes paralelos no Machine Learning. | As cargas de trabalho paralelas podem ser executadas em várias instâncias mais pequenas, o que pode resultar numa poupança de custos. |
Instâncias de VM Reservadas do Azure: compre Instâncias de VM Reservadas do Azure se tiver uma boa estimativa de utilização nos próximos um a três anos. Tire partido das opções de capacidade reservada para serviços quando tiver boas estimativas de utilização. | Compre Instâncias de VM Reservadas do Azure para efetuar o pré-pagamento da utilização da máquina virtual e fornecer descontos com preços pay as you go. O desconto é aplicado automaticamente à utilização da máquina virtual que corresponde à reserva. |
Excelência Operacional
A Excelência Operacional centra-se principalmente nos procedimentos para práticas de desenvolvimento, observabilidade e gestão de lançamentos.
Os princípios de conceção de Excelência Operacional fornecem uma estratégia de conceção de alto nível para alcançar esses objetivos para os requisitos operacionais da carga de trabalho.
Lista de verificação de estruturação
Inicie a sua estratégia de conceção com base na lista de verificação de revisão de design para Excelência Operacional para definir processos de observabilidade, teste e implementação relacionados com o Machine Learning.
Padrões de desenvolvimento: tire partido dos catálogos e registos de modelos do Machine Learning para armazenar, versão e partilhar recursos de machine learning.
Automatizar a eficiência: siga boas práticas de operações de machine learning (MLOps ). Sempre que possível, crie pipelines automatizados ponto a ponto para processos de preparação, preparação e classificação de dados. No desenvolvimento, utilize scripts em vez de blocos de notas para modelos de preparação, uma vez que os scripts são mais fáceis de integrar em pipelines automatizados.
Implementar com confiança: implemente a infraestrutura como código (IaC) para áreas de trabalho do Machine Learning, clusters de computação, instâncias de computação e outros ambientes de implementação.
Observabilidade: monitorize o desempenho dos modelos implementados, incluindo o desfasamento de dados.
Observabilidade: se os seus modelos forem implementados em pontos finais online, ative o Application Insights para monitorizar pontos finais e implementações online. Monitorize a infraestrutura de preparação para garantir que está a cumprir os seus requisitos de linha de base.
Simplicidade: utilize ambientes organizados otimizados para o Machine Learning, quando disponíveis.
Recomendações
Recomendação | Vantagem |
---|---|
Minimizar as instâncias da área de trabalho do Machine Learning: minimize o número de áreas de trabalho, sempre que possível, para reduzir a manutenção. | Limitar o número de áreas de trabalho reduz o esforço de manutenção e o custo da operação. Para requisitos, como a segurança, poderá precisar de várias áreas de trabalho separadas. Minimizar o número de áreas de trabalho sempre que possível. |
Tire partido dos catálogos e registos de modelos: tire partido dos catálogos e registos de modelos do Machine Learning para armazenar, versão e partilhar recursos de machine learning. Utilize catálogos de modelos do Machine Learning para o ajudar a implementar os testes A/B e a implementação de modelos. |
Utilize os registos de modelos do Machine Learning para armazenar e versões dos seus modelos de machine learning para controlar as alterações e manter a linhagem com a tarefa e os conjuntos de dados utilizados para preparação. Com os catálogos de modelos do Machine Learning, as suas equipas de ciência de dados podem detetar, avaliar e otimizar modelos de machine learning básicos pré-preparados. Armazenar modelos com versões em registos de modelos do Machine Learning suporta estratégias de implementação, como versões A/B, versões canary e reversões. |
Monitorizar o desempenho do modelo: monitorize o desempenho dos modelos implementados e detete o desfasamento de dados nos conjuntos de dados. | A monitorização de modelos implementados garante que os modelos cumprem os requisitos de desempenho. A monitorização do desfasamento de dados ajuda-o a detetar alterações nos dados de entrada que podem levar a uma diminuição do desempenho do modelo. Gerir o desvio de dados ajuda-o a garantir que o modelo fornece resultados precisos ao longo do tempo. |
Monitorizar a infraestrutura: se os seus modelos forem implementados em pontos finais online, ative o Application Insights para monitorizar pontos finais e implementações online. Monitorize a infraestrutura de preparação para garantir que está a cumprir os seus requisitos de linha de base. Certifique-se de que está a recolher registos de recursos para o Machine Learning. |
A monitorização de pontos finais dá-lhe visibilidade sobre métricas como latência de pedidos e pedidos por minuto. Pode comparar o desempenho em comparação com a linha de base e utilizar estas informações para efetuar alterações aos recursos de computação em conformidade. A monitorização de métricas, como bytes de rede, pode alertá-lo se estiver a aproximar-se dos limites de quota e impedir a limitação. Da mesma forma, a monitorização do seu ambiente de preparação fornece-lhe as informações para efetuar alterações ao seu ambiente de preparação. Utilize essas informações para decidir aumentar ou reduzir verticalmente, aumentar ou reduzir verticalmente com diferentes SKUs de desempenho ou escolher entre CPUs ou GPUs. |
Organizar ambientes de formação de modelos: utilize ambientes organizados otimizados para o Machine Learning, quando disponíveis. |
Os ambientes organizados são ambientes pré-criados fornecidos pelo Machine Learning que aceleram o tempo de implementação e reduzem a latência de implementação e preparação. A utilização de ambientes organizados melhora as taxas de sucesso de preparação e implementação e evita compilações de imagens desnecessárias. Os ambientes organizados, como o Contentor do Azure para PyTorch, também podem ser otimizados para a preparação de modelos grandes no Machine Learning. |
Eficiência de Desempenho
A Eficiência de Desempenho tem a ver com a manutenção da experiência do utilizador, mesmo quando existe um aumento de carga através da gestão da capacidade. A estratégia inclui dimensionar recursos, identificar e otimizar potenciais estrangulamentos e otimizar o desempenho máximo.
Os princípios de design de Eficiência de Desempenho fornecem uma estratégia de design de alto nível para alcançar esses objetivos de capacidade face à utilização esperada.
Lista de verificação de estruturação
Inicie a sua estratégia de conceção 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 em indicadores chave de desempenho para cargas de trabalho do Machine Learning.
Destinos de desempenho: determine o tempo de preparação aceitável e a frequência de preparação do modelo. Definir um destino claro para o tempo de preparação, juntamente com os testes, ajuda-o a determinar os recursos de computação, CPU versus GPU e SKUs de CPU necessários para cumprir o objetivo de tempo de preparação.
Destinos de desempenho: defina os destinos de desempenho aceitáveis para os modelos implementados, incluindo o tempo de resposta, pedidos por segundo, taxa de erro e tempo de atividade. Os destinos de desempenho funcionam como uma referência para a eficiência do modelo implementado. Os destinos podem ajudá-lo a fazer determinações de CPU versus GPU, opções de SKU da CPU e requisitos de dimensionamento.
Cumprir os requisitos de capacidade: escolha os recursos de computação corretos para a preparação de modelos.
Cumprir os requisitos de capacidade: escolha os recursos de computação corretos para implementações de modelos.
Cumprir os requisitos de capacidade: selecione ambientes de implementação com capacidades de dimensionamento automático para adicionar e remover a capacidade à medida que a procura flutua.
Alcançar e manter o desempenho: monitorize continuamente o desempenho dos modelos implementados, reveja os resultados e realize as ações adequadas.
Alcançar e manter o desempenho: monitorize continuamente o desempenho da sua infraestrutura de modelos implementados, reveja os resultados e efetue as ações adequadas. Monitorize a infraestrutura de preparação para garantir que está a cumprir os seus requisitos para o tempo de preparação.
Recomendações
Recomendação | Vantagem |
---|---|
Selecione os serviços de computação adequados para a preparação de modelos: considere clusters de computação do Machine Learning em instâncias de computação para preparação de modelos se necessitar de dimensionamento automático. Otimize os recursos de computação com base nos requisitos de preparação. Escolha primeiro entre CPUs e GPUs. Predefinição para CPUs, mas considere GPUs para cargas de trabalho como aprendizagem profunda, processamento de imagens ou vídeo ou grandes quantidades de dados. Em seguida, selecione o SKU de imagem que melhor se adequa à sua carga de trabalho. Utilize os testes para escolher a opção de computação que otimiza os custos em relação ao tempo de preparação ao determinar a linha de base. |
Selecionar a computação certa é fundamental, uma vez que afeta diretamente o tempo de preparação. Escolher o SKU e a CPU certos versus GPU garante que a preparação do modelo pode cumprir os seus requisitos e objetivos de desempenho. Escolher um SKU de baixo desempenho que seja sobreutilado pode levar a tempos de preparação e problemas de desempenho proibitivamente longos. Os clusters de computação proporcionam a capacidade de melhorar o desempenho ao aumentar horizontalmente as cargas de trabalho que suportam o dimensionamento horizontal. Este método fornece flexibilidade para processar cargas de trabalho com exigências diferentes e permite-lhe adicionar ou remover máquinas conforme necessário. |
Dimensionamento do ambiente de implementação de modelos: utilize as capacidades de dimensionamento automático do ambiente de implementação. Para ambientes de implementação do AKS, utilize o dimensionador automático do cluster para dimensionar para satisfazer a procura. Para pontos finais online, dimensione automaticamente através da integração com a funcionalidade de dimensionamento automático do Azure Monitor. | O dimensionamento automático ajusta o número de instâncias do modelo implementado para corresponder à procura. |
Monitorizar o desempenho do modelo: monitorize o desempenho dos modelos implementados. | Controlar o desempenho dos modelos na produção alerta-o para potenciais problemas, como desfasamento de dados, desfasamento de predição, qualidade de dados e desvio de atribuição de funcionalidades. A monitorização do desfasamento de dados ajuda-o a detetar alterações nos dados de entrada que podem levar a uma diminuição do desempenho do modelo. Gerir o desvio de dados ajuda-o a garantir que o modelo fornece resultados precisos ao longo do tempo. |
Monitorizar a infraestrutura: monitorize os pontos finais online e integre-os com o Monitor para monitorizar e monitorizar as métricas e registos adequados. Ative o Application Insights ao criar implementações online. Monitorize a infraestrutura de preparação e reveja a utilização de recursos, como a memória e a utilização da CPU ou da GPU ao preparar modelos para garantir que está a cumprir os seus requisitos de linha de base. |
A monitorização de pontos finais dá-lhe visibilidade sobre métricas como latência de pedidos e pedidos por minuto. Pode comparar o desempenho em comparação com a linha de base e utilizar estas informações para efetuar alterações aos recursos de computação em conformidade. A monitorização de métricas, como bytes de rede, pode alertá-lo se estiver a aproximar-se dos limites de quota e impedir a limitação. Da mesma forma, a monitorização do seu ambiente de preparação fornece-lhe as informações para efetuar alterações ao seu ambiente de preparação. Utilize essas informações para decidir aumentar ou reduzir verticalmente, aumentar ou reduzir verticalmente com diferentes SKUs de desempenho ou escolher entre CPUs ou GPUs. |
Políticas do Azure
O Azure fornece um vasto conjunto de políticas incorporadas relacionadas com o Machine Learning e as respetivas dependências. Algumas das recomendações anteriores podem ser auditadas através das políticas do Azure. Considere as seguintes políticas relacionadas com a segurança:
- Registos permitidos para cálculos do Machine Learning especificados.
- Configure pacotes Python permitidos para cálculos do Machine Learning especificados.
- Os cálculos do Machine Learning devem estar numa rede virtual.
- Os cálculos do Machine Learning devem ter métodos de autenticação locais desativados.
- As áreas de trabalho do Machine Learning devem desativar 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.
- As áreas de trabalho do Machine Learning devem ser encriptadas com uma chave gerida pelo cliente.
- As áreas de trabalho do Machine Learning devem utilizar uma ligação privada.
- As áreas de trabalho do Machine Learning devem utilizar a identidade gerida atribuída pelo utilizador.
- Exigir um ponto final de aprovação chamado antes de tarefas em execução para cálculos do Machine Learning especificados.
- Exigir a assinatura de código para o código de preparação para cálculos.
- Restringir a implementação de modelos a registos específicos.
Considere a seguinte política relacionada com a otimização de custos:
Considere as seguintes políticas relacionadas com a excelência operacional:
- Exigir que as expressões de filtro de registo e o arquivo de dados sejam utilizados para registos completos para cálculos do Machine Learning especificados.
- Os registos de recursos nas áreas de trabalho do Machine Learning devem estar ativados.
Para uma governação abrangente, reveja o Azure Policy definições incorporadas do Machine Learning.
Recomendações do assistente
O Assistente é um consultor de cloud personalizado que o ajuda a seguir as melhores práticas para otimizar as implementações do Azure. As recomendações do Assistente podem ajudá-lo a melhorar a fiabilidade, a segurança, a relação custo-eficácia, o desempenho e a excelência operacional do Machine Learning.
Considere as seguintes recomendações do Assistente para a segurança:
- As áreas de trabalho devem ser encriptadas com uma chave gerida pelo cliente (CMK).
- As áreas de trabalho devem utilizar uma ligação privada.
- As áreas de trabalho devem desativar o acesso à rede pública.
- A computação deve estar numa 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 a excelência operacional:
- Os registos de recursos nas áreas de trabalho do Machine Learning devem estar ativados.
Passos seguintes
Considere estes artigos como recursos que demonstram as recomendações realçadas neste artigo.
- Utilize a arquitetura de referência de chat ponto a ponto do OpenAI como um exemplo de como estas recomendações podem ser aplicadas a uma carga de trabalho.
- Utilize a documentação do produto Machine Learning para criar conhecimentos de implementação.