Este documento do Well-Architected Framework: perspectiva de IA e ML fornece uma visão geral dos princípios e recomendações para ajudar você a otimizar a performance das suas cargas de trabalho de IA e ML no Google Cloud. As recomendações neste documento estão alinhadas ao pilar de otimização de performance do Google Cloud Well-Architected Framework.
Os sistemas de IA e ML oferecem novas funcionalidades de automação e tomada de decisões para sua organização. O desempenho desses sistemas pode afetar diretamente os indicadores de negócios, como receita, custos e satisfação do cliente. Para aproveitar todo o potencial dos seus sistemas de IA e ML, é necessário otimizar a performance deles com base nas metas de negócios e nos requisitos técnicos. O processo de otimização de desempenho geralmente envolve algumas compensações. Por exemplo, uma escolha de design que oferece o desempenho necessário pode gerar custos mais altos. As recomendações neste documento priorizam a performance em vez de outras considerações, como custos.
Para otimizar a performance de IA e ML, é preciso tomar decisões sobre fatores como arquitetura, parâmetros e estratégia de treinamento do modelo. 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 podem não funcionar bem em ambientes com restrição de capacidade, como dispositivos móveis.
Transformar metas de negócios em objetivos de performance
Para tomar decisões arquitetônicas que otimizem a performance, 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. Suas equipes técnicas precisam entender o mapeamento entre os objetivos de performance e as metas de negócios.
Considere as seguintes recomendações:
- Transforme objetivos de negócios em requisitos técnicos: transforme os objetivos de negócios dos seus sistemas de IA e ML em requisitos específicos de performance técnica e avalie os efeitos de não atender aos requisitos. Por exemplo, para um aplicativo que prevê o cancelamento 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 a requisitos operacionais, como baixa latência.
- Monitore o desempenho 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 indicadores principais de desempenho (KPIs) e observe desvios dos objetivos de negócios.
- Automatize a avaliação para torná-la reproduzível e padronizada: com uma plataforma e uma metodologia padronizadas e comparáveis para avaliação de experimentos, seus engenheiros podem aumentar o ritmo de melhoria de performance.
Executar e acompanhar experimentos frequentes
Para transformar inovação e criatividade em melhorias de performance, você precisa de uma cultura e uma plataforma que apoiem a experimentação. A melhoria de performance é um processo contínuo porque as tecnologias de IA e ML estão em desenvolvimento constante e rápido. Para manter um processo rápido e iterativo, é necessário separar o espaço de experimentos das plataformas de treinamento e veiculação. É importante ter um processo de experimentação padronizado e eficiente.
Considere as seguintes recomendações:
- Crie um ambiente de experimentação: as melhorias de performance exigem um ambiente dedicado, potente 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 recursos, 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 principais dos seus serviços de IA. Você precisa de plataformas e práticas robustas que ofereçam suporte à criação, implantação e veiculação rápidas e confiáveis de modelos de IA. Invista tempo e esforço para criar plataformas básicas para suas principais tarefas de treinamento e veiculação de IA. Essas plataformas fundamentais ajudam a reduzir o tempo e o esforço das equipes e a melhorar a qualidade dos resultados a 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 repositórios de recursos, registros de modelos, repositórios de metadados e serviços de avaliação de desempenho de modelos.
- Use componentes especializados em IA de um serviço de previsão: esses componentes oferecem recursos escalonáveis e de alta performance, dão 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 rollback.
Correlacionar as opções de design aos requisitos de performance
Ao fazer escolhas de design para melhorar a performance, avalie cuidadosamente se elas atendem aos requisitos da sua empresa ou se são desnecessárias e contraproducentes. Para escolher a infraestrutura, os modelos ou as configurações adequadas, identifique os gargalos de desempenho e avalie como eles estão vinculados às suas medidas de performance. Por exemplo, mesmo em aceleradores de GPU muito potentes, as tarefas de treinamento podem ter gargalos de desempenho devido a problemas de E/S de dados da camada de armazenamento ou limitações de desempenho do próprio modelo.
Considere as seguintes recomendações:
- Otimize o consumo de hardware com base nas metas de desempenho: para treinar e veicular 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.
- Foco em 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. Confie em serviços gerenciados para o desempenho da infraestrutura subjacente.
- Escolha estratégias de treinamento adequadas: há vários modelos pré-treinados e fundamentais disponíveis, e mais modelos desse tipo são lançados com frequência. Escolha uma estratégia de treinamento que possa oferecer a performance ideal para sua tarefa. Decida se você precisa criar seu próprio modelo, ajustar um modelo pré-treinado com seus dados ou usar uma API de modelo pré-treinado.
- Reconheça 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 comercial 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 questões de desempenho, estabeleça uma conexã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 modelo e as configurações e entradas que produziram as saídas.
Considere as seguintes recomendações:
- Crie um sistema de linhagem de dados e modelos: todos os recursos implantados e as métricas de performance precisam ser vinculados aos dados, às configurações, ao código e às escolhas que resultaram nos sistemas implantados. Além disso, as saídas do modelo precisam estar vinculadas a versões específicas do modelo e a como elas foram produzidas.
- Use ferramentas de explicabilidade para melhorar a performance do modelo: adote e padronize ferramentas e comparativos para exploração e explicabilidade do modelo. Essas ferramentas ajudam os engenheiros de ML a entender o comportamento do modelo e melhorar o desempenho 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