Este documento no Well-Architected Framework: perspetiva de IA e ML oferece uma vista geral dos princípios e das recomendações para ajudar a otimizar o desempenho das suas cargas de trabalho de IA e ML no Google Cloud. As recomendações neste documento estão alinhadas com o pilar de otimização do desempenho da Google Cloud estrutura bem arquitetada.
Os sistemas de IA e ML permitem novas capacidades de automatização e tomada de decisões para a sua organização. O desempenho destes sistemas pode afetar diretamente os fatores da sua empresa, como a receita, os custos e a satisfação do cliente. Para concretizar todo o potencial dos seus sistemas de IA e ML, tem de otimizar o respetivo desempenho com base nos objetivos da sua empresa e nos requisitos técnicos. O processo de otimização do desempenho envolve frequentemente determinadas soluções de compromisso. Por exemplo, uma escolha de design que ofereça o desempenho necessário pode gerar custos mais elevados. As recomendações neste documento dão prioridade ao desempenho em detrimento de outras considerações, como os custos.
Para otimizar o desempenho da IA e da aprendizagem automática, tem de tomar decisões relativamente a fatores como a arquitetura do modelo, os parâmetros e a estratégia de preparação. Quando tomar estas decisões, considere todo o ciclo de vida dos sistemas de IA e AA e o respetivo ambiente de implementação. Por exemplo, os MDIs/CEs muito grandes podem ter um desempenho elevado numa infraestrutura de preparação massiva, mas os modelos muito grandes podem não ter um bom desempenho em ambientes com restrições de capacidade, como dispositivos móveis.
Converta os objetivos da empresa em objetivos de desempenho
Para tomar decisões de arquitetura que otimizem o desempenho, comece com um conjunto claro de objetivos empresariais. Crie sistemas de IA e ML que ofereçam o desempenho técnico necessário para apoiar os objetivos e as prioridades da sua empresa. As suas equipas técnicas têm de compreender o mapeamento entre os objetivos de desempenho e os objetivos empresariais.
Considere as seguintes recomendações:
- Traduza os objetivos de negócio em requisitos técnicos: Traduza os objetivos de negócio dos seus sistemas de IA e ML em requisitos de desempenho técnico específicos e avalie os efeitos de não cumprir os requisitos. Por exemplo, para uma aplicação que prevê a rotatividade de clientes, o modelo de ML deve ter um bom desempenho nas métricas padrão, como a precisão e a capacidade de identificação, e a aplicação deve cumprir os requisitos operacionais, como a baixa latência.
- Monitorize o desempenho em todas as fases do ciclo de vida do modelo: durante a experimentação e a preparação após a implementação do modelo, monitorize os indicadores essenciais de desempenho (IEDs) e observe quaisquer desvios dos objetivos empresariais.
- Automatize a avaliação para a tornar reproduzível e padronizada: com uma plataforma e uma metodologia padronizadas e comparáveis para a avaliação de experiências, os seus engenheiros podem aumentar o ritmo de melhoria do desempenho.
Execute e acompanhe experiências frequentes
Para transformar a inovação e a criatividade em melhorias de desempenho, precisa de uma cultura e uma plataforma que suportem a experimentação. A melhoria do desempenho é um processo contínuo porque as tecnologias de IA e ML estão em desenvolvimento contínuo e rápido. Para manter um processo iterativo e rápido, tem de separar o espaço de experimentação das plataformas de preparação e publicação. É importante ter um processo de experimentação padronizado e robusto.
Considere as seguintes recomendações:
- Crie um ambiente de experiências: as melhorias de desempenho requerem um ambiente dedicado, avançado e interativo que suporte a experimentação e o desenvolvimento colaborativo de pipelines de ML.
- Incorporar a experimentação como cultura: execute experiências antes de qualquer implementação de produção. Lance novas versões de forma iterativa e recolha sempre dados de desempenho. Experimente diferentes tipos de dados, transformações de caraterísticas, algoritmos e hiperparâmetros.
Crie e automatize serviços de preparação e publicação
A preparação e a publicação de modelos de IA são componentes essenciais dos seus serviços de IA. Precisa de plataformas e práticas robustas que suportem a criação, a implementação e a publicação rápidas e fiáveis de modelos de IA. Invista tempo e esforço para criar plataformas fundamentais para as suas principais tarefas de preparação e publicação de IA. Estas plataformas fundamentais ajudam a reduzir o tempo e o esforço das suas equipas, bem como a melhorar a qualidade dos resultados a médio e longo prazo.
Considere as seguintes recomendações:
- Use componentes especializados em IA de um serviço de preparação: estes componentes incluem computação de alto desempenho e componentes de MLOps, como armazenamentos de funcionalidades, registos de modelos, armazenamentos de metadados e serviços de avaliação do desempenho do modelo.
- Use componentes especializados em IA de um serviço de previsão: estes componentes oferecem recursos escaláveis e de alto desempenho, suportam a monitorização de funcionalidades e permitem a monitorização do desempenho do modelo. Para evitar e gerir a degradação do desempenho, implemente estratégias de implementação e reversão fiáveis.
Faça corresponder as opções de design aos requisitos de desempenho
Quando faz escolhas de design para melhorar o desempenho, avalie cuidadosamente se as escolhas suportam os requisitos da sua empresa ou são desperdiçadoras e contraproducentes. Para escolher a infraestrutura, os modelos ou as configurações adequados, identifique os gargalos de desempenho e avalie a forma como estão associados às suas medidas de desempenho. Por exemplo, mesmo em aceleradores de GPU muito potentes, as suas tarefas de preparação podem sofrer estrangulamentos de desempenho devido a problemas de E/S de dados da camada de armazenamento ou devido a limitações de desempenho do próprio modelo.
Considere as seguintes recomendações:
- Otimize o consumo de hardware com base nos objetivos de desempenho: para preparar e publicar modelos de AA que cumpram os seus requisitos de desempenho, tem de otimizar a infraestrutura nas camadas de computação, armazenamento e rede. Tem de medir e compreender as variáveis que afetam os seus objetivos de desempenho. Estas variáveis são diferentes para a preparação e a inferência.
- Foque-se nos requisitos específicos da carga de trabalho: foque os seus esforços de otimização do desempenho nos requisitos únicos das suas cargas de trabalho de IA e ML. Confiar em serviços geridos para o desempenho da infraestrutura subjacente.
- Escolha estratégias de preparação adequadas: estão disponíveis vários modelos pré-preparados e fundamentais, e são lançados mais modelos deste tipo com frequência. Escolha uma estratégia de preparação que possa oferecer um desempenho ideal para a sua tarefa. Decida se deve criar o seu próprio modelo, otimizar um modelo pré-preparado com os seus dados ou usar uma API de modelo pré-preparado.
- Reconheça que as estratégias de otimização do desempenho podem ter retornos decrescentes: quando uma determinada estratégia de otimização do desempenho não oferece um valor empresarial incremental mensurável, deixe de usar essa estratégia.
Associe as métricas de desempenho às escolhas de design e configuração
Para inovar, resolver problemas e investigar problemas de desempenho, estabeleça uma ligação clara entre as opções de design e os resultados de desempenho. Além da experimentação, tem de registar de forma fiável a linhagem dos seus recursos, implementações, resultados do modelo e as configurações e entradas que produziram os resultados.
Considere as seguintes recomendações:
- Crie um sistema de linhagem de dados e modelos: todos os seus recursos implementados e as respetivas métricas de desempenho têm de estar associados aos dados, às configurações, ao código e às escolhas que resultaram nos sistemas implementados. Além disso, as saídas do modelo têm de estar associadas a versões específicas do modelo e à forma como as saídas foram produzidas.
- Use ferramentas de explicabilidade para melhorar o desempenho do modelo: adote e padronize ferramentas e referências para a exploração e a explicabilidade do modelo. Estas ferramentas ajudam os seus engenheiros de AA a compreender o comportamento dos modelos e a melhorar o desempenho ou remover parcialidades.
Colaboradores
Autores:
- Benjamin Sadik | Customer Engineer especialista em IA e ML
- Filipe Gracio, PhD | Engenheiro de clientes, especialista em IA/AA
Outros colaboradores:
- Kumar Dhanagopal | Cross-Product Solution Developer
- Marwan Al Shawi | Partner Customer Engineer
- Zach Seils | Especialista em redes