Mantenha tudo organizado com as coleções
Salve e categorize o conteúdo com base nas suas preferências.
Last reviewed 2024-10-11 UTC
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 otimizam a performance, comece com um conjunto claro de metas de negócios. Projete sistemas de IA e ML que ofereçam a performance técnica necessária 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, 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 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 fundamentais 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, monitoramento de recursos
e monitoramento de performance do modelo. Para evitar e gerenciar a degradação de performance, implemente estratégias confiáveis de implantação e rollback.
Correlacionar opções de design com requisitos de performance
Ao fazer escolhas de design para melhorar a performance, avalie cuidadosamente se elas atendem aos requisitos da sua empresa ou são inúteis 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: vários modelos pré-treinados e de base estão 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 performance a escolhas de design e configuração
Para inovar, resolver problemas e investigar questões de desempenho, estabeleça uma relaçã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 ser 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 de mercado 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
[[["Fácil de entender","easyToUnderstand","thumb-up"],["Meu problema foi resolvido","solvedMyProblem","thumb-up"],["Outro","otherUp","thumb-up"]],[["Difícil de entender","hardToUnderstand","thumb-down"],["Informações incorretas ou exemplo de código","incorrectInformationOrSampleCode","thumb-down"],["Não contém as informações/amostras de que eu preciso","missingTheInformationSamplesINeed","thumb-down"],["Problema na tradução","translationIssue","thumb-down"],["Outro","otherDown","thumb-down"]],["Última atualização 2024-10-11 UTC."],[[["\u003cp\u003eThis document outlines principles and recommendations for optimizing the performance of AI and ML workloads on Google Cloud, aligning with the performance optimization pillar of the Well-Architected Framework.\u003c/p\u003e\n"],["\u003cp\u003eOptimizing AI and ML system performance is crucial for business drivers like revenue and customer satisfaction, requiring decisions on model architecture, parameters, and training strategies throughout the entire lifecycle.\u003c/p\u003e\n"],["\u003cp\u003eTranslating business objectives into specific technical requirements, monitoring performance at all stages, and automating evaluations are essential for effective AI/ML performance optimization.\u003c/p\u003e\n"],["\u003cp\u003eBuilding a dedicated experimentation environment, embedding experimentation into the company's culture, and leveraging AI-specialized components for training and prediction are key to successful AI/ML development.\u003c/p\u003e\n"],["\u003cp\u003eLinking performance metrics to design choices and configurations through a data and model lineage system, alongside using explainability tools, is vital for innovating and improving model performance.\u003c/p\u003e\n"]]],[],null,["# AI and ML perspective: Performance optimization\n\nThis document in the\n[Well-Architected Framework: AI and ML perspective](/architecture/framework/perspectives/ai-ml)\nprovides an overview of principles and recommendations to help you to optimize\nthe performance of your AI and ML workloads on Google Cloud. The\nrecommendations in this document align with the\n[performance optimization pillar](/architecture/framework/performance-optimization)\nof the Google Cloud Well-Architected Framework.\n\nAI and ML systems enable new automation and decision-making capabilities for\nyour organization. The performance of these systems can directly affect your\nbusiness drivers like revenue, costs, and customer satisfaction. To realize the\nfull potential of your AI and ML systems, you need to optimize their performance\nbased on your business goals and technical requirements. The performance\noptimization process often involves certain trade-offs. For example, a design\nchoice that provides the required performance might lead to higher costs. The\nrecommendations in this document prioritize performance over other\nconsiderations like costs.\n\nTo optimize AI and ML performance, you need to make decisions regarding factors\nlike the model architecture, parameters, and training strategy. When you make\nthese decisions, consider the entire lifecycle of the AI and ML systems and\ntheir deployment environment. For example, LLMs that are very large can be\nhighly performant on massive training infrastructure, but very large models\nmight not perform well in capacity-constrained environments like mobile\ndevices.\n\nTranslate business goals to performance objectives\n--------------------------------------------------\n\nTo make architectural decisions that optimize performance, start with a clear\nset of business goals. Design AI and ML systems that provide the technical\nperformance that's required to support your business goals and priorities. Your\ntechnical teams must understand the mapping between performance objectives and\nbusiness goals.\n\nConsider the following recommendations:\n\n- **Translate business objectives into technical requirements** : Translate the business objectives of your AI and ML systems into specific technical performance requirements and assess the effects of not meeting the requirements. For example, for an application that predicts customer churn, the ML model should perform well on standard metrics, like accuracy and recall, *and* the application should meet operational requirements like low latency.\n- **Monitor performance at all stages of the model lifecycle**: During experimentation and training after model deployment, monitor your key performance indicators (KPIs) and observe any deviations from business objectives.\n- **Automate evaluation to make it reproducible and standardized**: With a standardized and comparable platform and methodology for experiment evaluation, your engineers can increase the pace of performance improvement.\n\nRun and track frequent experiments\n----------------------------------\n\nTo transform innovation and creativity into performance improvements, you need\na culture and a platform that supports experimentation. Performance improvement\nis an ongoing process because AI and ML technologies are developing\ncontinuously and quickly. To maintain a fast-paced, iterative process, you\nneed to separate the experimentation space from your training and serving\nplatforms. A standardized and robust experimentation process is important.\n\nConsider the following recommendations:\n\n- **Build an experimentation environment**: Performance improvements require a dedicated, powerful, and interactive environment that supports the experimentation and collaborative development of ML pipelines.\n- **Embed experimentation as a culture** : Run experiments before any production deployment. Release new versions iteratively and always collect performance data. Experiment with different data types, feature transformations, algorithms, and [hyperparameters](https://developers.google.com/machine-learning/glossary#hyperparameter).\n\nBuild and automate training and serving services\n------------------------------------------------\n\nTraining and serving AI models are core components of your AI services. You\nneed robust platforms and practices that support fast and reliable creation,\ndeployment, and serving of AI models. Invest time and effort to create\nfoundational platforms for your core AI training and serving tasks. These\nfoundational platforms help to reduce time and effort for your teams and improve\nthe quality of outputs in the medium and long term.\n\nConsider the following recommendations:\n\n- **Use AI-specialized components of a training service**: Such components include high-performance compute and MLOps components like feature stores, model registries, metadata stores, and model performance-evaluation services.\n- **Use AI-specialized components of a prediction service**: Such components provide high-performance and scalable resources, support feature monitoring, and enable model performance monitoring. To prevent and manage performance degradation, implement reliable deployment and rollback strategies.\n\nMatch design choices to performance requirements\n------------------------------------------------\n\nWhen you make design choices to improve performance, carefully assess whether\nthe choices support your business requirements or are wasteful and\ncounterproductive. To choose the appropriate infrastructure, models, or\nconfigurations, identify performance bottlenecks and assess how they're linked\nto your performance measures. For example, even on very powerful GPU\naccelerators, your training tasks can experience performance bottlenecks due to\ndata I/O issues from the storage layer or due to performance limitations of the\nmodel itself.\n\nConsider the following recommendations:\n\n- **Optimize hardware consumption based on performance goals**: To train and serve ML models that meet your performance requirements, you need to optimize infrastructure at the compute, storage, and network layers. You must measure and understand the variables that affect your performance goals. These variables are different for training and inference.\n- **Focus on workload-specific requirements**: Focus your performance optimization efforts on the unique requirements of your AI and ML workloads. Rely on managed services for the performance of the underlying infrastructure.\n- **Choose appropriate training strategies**: Several pre-trained and foundational models are available, and more such models are released often. Choose a training strategy that can deliver optimal performance for your task. Decide whether you should build your own model, tune a pre-trained model on your data, or use a pre-trained model API.\n- **Recognize that performance-optimization strategies can have\n diminishing returns**: When a particular performance-optimization strategy doesn't provide incremental business value that's measurable, stop pursuing that strategy.\n\nLink performance metrics to design and configuration choices\n------------------------------------------------------------\n\nTo innovate, troubleshoot, and investigate performance issues, establish a\nclear link between design choices and performance outcomes. In addition to\nexperimentation, you must reliably record the lineage of your assets,\ndeployments, model outputs, and the configurations and inputs that produced the\noutputs.\n\nConsider the following recommendations:\n\n- **Build a data and model lineage system**: All of your deployed assets and their performance metrics must be linked back to the data, configurations, code, and the choices that resulted in the deployed systems. In addition, model outputs must be linked to specific model versions and how the outputs were produced.\n- **Use explainability tools to improve model performance**: Adopt and standardize tools and benchmarks for model exploration and explainability. These tools help your ML engineers understand model behavior and improve performance or remove biases.\n\nContributors\n------------\n\nAuthors:\n\n- [Benjamin Sadik](https://www.linkedin.com/in/benjaminhaimsadik) \\| AI and ML Specialist Customer Engineer\n- [Filipe Gracio, PhD](https://www.linkedin.com/in/filipegracio) \\| Customer Engineer, AI/ML Specialist\n\n\u003cbr /\u003e\n\nOther contributors:\n\n- [Kumar Dhanagopal](https://www.linkedin.com/in/kumardhanagopal) \\| Cross-Product Solution Developer\n- [Marwan Al Shawi](https://www.linkedin.com/in/marwanalshawi) \\| Partner Customer Engineer\n- [Zach Seils](https://www.linkedin.com/in/zachseils) \\| Networking Specialist\n\n\u003cbr /\u003e"]]