Este documento no Framework de arquitetura: perspectiva de IA e ML fornece uma visão geral dos princípios e recomendações para ajudar você a otimizar a performance das cargas de trabalho de IA e ML no Google Cloud. As recomendações neste documento estão alinhadas com o pilar de otimização de desempenho do framework de arquitetura.
Os sistemas de IA e ML permitem novos recursos de automação e tomada de decisão para sua organização. O desempenho desses sistemas pode afetar diretamente os fatores de negócios, como receita, custos e satisfação do cliente. Para aproveitar todo o potencial dos seus sistemas de IA e ML, você precisa otimizar a performance deles com base nas suas metas de negócios e requisitos técnicos. O processo de otimização de desempenho geralmente envolve algumas compensações. Por exemplo, uma escolha de design que ofereça o desempenho necessário pode levar a custos mais altos. As recomendações neste documento priorizam a performance em vez de outras considerações, como custos.
Para otimizar a performance da IA e do ML, é necessário tomar decisões sobre fatores como a arquitetura do modelo, os parâmetros e a estratégia de treinamento. Ao tomar essas decisões, considere todo o ciclo de vida dos sistemas de IA e ML e o ambiente de implantação deles. Por exemplo, LLMs muito grandes podem ter alta performance em infraestruturas de treinamento massivas, mas modelos muito grandes podem não ter bom desempenho em ambientes com capacidade limitada, como dispositivos móveis.
Transformar metas de negócios em objetivos de performance
Para tomar decisões arquitetônicas que otimizem o desempenho, comece com um conjunto claro de metas de negócios. Projete sistemas de IA e ML que ofereçam o desempenho técnico necessário para apoiar suas metas e prioridades de negócios. As equipes técnicas precisam entender o mapeamento entre os objetivos de performance e de negócios.
Considere as seguintes recomendações:
- Converter objetivos de negócios em requisitos técnicos: transforme os objetivos de negócios dos seus sistemas de IA e ML em requisitos técnicos de desempenho específicos e avalie os efeitos de não atender aos requisitos. Por exemplo, para um aplicativo que prevê a retenção de clientes, o modelo de ML precisa ter um bom desempenho em métricas padrão, como acurácia e recall, e o aplicativo precisa atender aos requisitos operacionais, como baixa latência.
- Monitore a performance em todas as etapas do ciclo de vida do modelo: durante a experimentação e o treinamento após a implantação do modelo, monitore seus principais indicadores de desempenho (KPIs) e observe quaisquer desvios dos objetivos de negócios.
- Automatizar a avaliação para torná-la reproduzível e padronizada: com uma plataforma e metodologia padronizadas e comparáveis para a avaliação do experimento, os engenheiros podem aumentar o ritmo da melhoria de desempenho.
Fazer e acompanhar experimentos frequentes
Para transformar a inovação e a criatividade em melhorias de desempenho, você precisa de uma cultura e uma plataforma que ofereçam suporte à experimentação. A melhoria de desempenho é um processo contínuo porque as tecnologias de IA e ML estão se desenvolvendo de maneira contínua e rápida. Para manter um processo iterativo e rápido, você precisa separar o espaço de experimentação das plataformas de treinamento e serviço. É importante ter um processo de experimentação padronizado e robusto.
Considere as seguintes recomendações:
- Criar um ambiente de experimentação: as melhorias de performance exigem um ambiente dedicado, poderoso e interativo que ofereça suporte à experimentação e ao desenvolvimento colaborativo de pipelines de ML.
- Incorpore a experimentação como uma cultura: faça experimentos antes de qualquer implantação de produção. Lance novas versões de forma iterativa e sempre colete dados de desempenho. Teste diferentes tipos de dados, transformações de atributos, algoritmos e hiperparâmetros.
Criar e automatizar serviços de treinamento e disponibilização
O treinamento e a disponibilização de modelos de IA são componentes essenciais dos seus serviços de IA. Você precisa de plataformas e práticas robustas que ofereçam suporte à criação, implantação e exibição rápidas e confiáveis de modelos de IA. Invista tempo e esforço para criar plataformas fundamentais para suas tarefas principais de treinamento e exibição de IA. Essas plataformas básicas ajudam a reduzir o tempo e o esforço das equipes e melhorar a qualidade das saídas em médio e longo prazo.
Considere as seguintes recomendações:
- Usar componentes especializados em IA de um serviço de treinamento: esses componentes incluem computação de alto desempenho e componentes de MLOps, como armazenamentos de recursos, registros de modelos, armazenamentos de metadados e serviços de avaliação de desempenho do modelo.
- Usar componentes especializados em IA de um serviço de previsão: esses componentes oferecem recursos escalonáveis e de alto desempenho, oferecem suporte ao monitoramento de recursos e permitem o monitoramento de desempenho do modelo. Para evitar e gerenciar a degradação de desempenho, implemente estratégias confiáveis de implantação e reversão.
Combinar escolhas de design com os requisitos de desempenho
Ao fazer escolhas de design para melhorar a performance, avalie cuidadosamente se elas atendem aos requisitos de negócios ou se são um desperdício e contraproducentes. Para escolher a infraestrutura, os modelos ou as configurações adequadas, identifique os gargalos de performance e avalie como eles estão vinculados às suas medidas de performance. Por exemplo, mesmo em aceleradores de GPU muito poderosos, as tarefas de treinamento podem ter gargalos 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:
- Otimizar o consumo de hardware com base nas metas de desempenho: para treinar e oferecer modelos de ML que atendam aos seus requisitos de desempenho, é necessário otimizar a infraestrutura nas camadas de computação, armazenamento e rede. Você precisa medir e entender as variáveis que afetam suas metas de performance. Essas variáveis são diferentes para treinamento e inferência.
- Concentre-se nos requisitos específicos da carga de trabalho: concentre seus esforços de otimização de desempenho nos requisitos exclusivos das cargas de trabalho de IA e ML. Use serviços gerenciados para o desempenho da infraestrutura subjacente.
- Escolher estratégias de treinamento adequadas: vários modelos fundamentais e pré-treinados estão disponíveis, e mais modelos desse tipo são lançados com frequência. Escolha uma estratégia de treinamento que ofereça a melhor performance para sua tarefa. Decida se você precisa criar seu próprio modelo, ajustar um modelo pré-treinado nos seus dados ou usar uma API de modelo pré-treinado.
- Reconhecer que as estratégias de otimização de performance podem ter retornos decrescentes: quando uma estratégia específica de otimização de performance não oferece um valor de negócios incremental mensurável, pare de usar essa estratégia.
Vincular métricas de desempenho a escolhas de design e configuração
Para inovar, resolver problemas e investigar problemas de desempenho, estabeleça uma ligação clara entre as escolhas de design e os resultados de desempenho. Além da experimentação, é necessário registrar de forma confiável a linhagem dos seus recursos, implantações, saídas de modelos e as configurações e entradas que produziram as saídas.
Considere as seguintes recomendações:
- Criar um sistema de linhagem de dados e modelos: todos os seus recursos implantados e as métricas de performance deles precisam ser vinculadas aos dados, configurações, código e escolhas que resultaram nos sistemas implantados. Além disso, as saídas do modelo precisam ser vinculadas a versões específicas do modelo e à forma como as saídas foram produzidas.
- Usar ferramentas de explicabilidade para melhorar a performance do modelo: adote e padronize ferramentas e comparativos de mercado para a exploração e a explicabilidade do modelo. Essas ferramentas ajudam os engenheiros de ML a entender o comportamento do modelo e melhorar a performance ou remover vieses.
Colaboradores
Autores:
- Benjamin Sadik | Engenheiro de clientes especialista em IA e ML
- Filipe Gracio, PhD | Engenheiro de clientes
Outros colaboradores:
- Kumar Dhanagopal | Desenvolvedor de soluções para vários produtos
- Marwan Al Shawi | Engenheiro de clientes do parceiro
- Zach Seils | Especialista em rede