Este é um post de blog convidado co-escrito com Hussain Jagirdar da Games24x7.
Jogos 24x7 é uma das plataformas multijogos mais valiosas da Índia e entretém mais de 100 milhões de jogadores em vários jogos de habilidade. Com a “Ciência do jogo” como sua filosofia central, eles permitiram uma visão de informática de ponta a ponta em torno da dinâmica do jogo, plataformas de jogos e jogadores, consolidando direções de pesquisa ortogonais de IA de jogos, ciência de dados de jogos e pesquisa de usuários de jogos. A equipe de IA e ciência de dados mergulha em uma infinidade de dados multidimensionais e executa uma variedade de casos de uso, como otimização de jornada do jogador, detecção de ação do jogo, hiperpersonalização, cliente 360 e muito mais na AWS.
O Games24x7 emprega uma estrutura automatizada, baseada em dados e alimentada por IA para a avaliação do comportamento de cada jogador por meio de interações na plataforma e sinaliza os usuários com comportamento anômalo. Eles construíram um modelo de aprendizado profundo ScarceGAN, que se concentra na identificação de amostras extremamente raras ou escassas de dados de telemetria longitudinal multidimensional com rótulos pequenos e fracos. Este trabalho foi publicado em CIKM'21 e é open source para identificação de classe rara para quaisquer dados de telemetria longitudinal. A necessidade de produção e adoção do modelo foi fundamental para criar um backbone por trás de permitir um jogo responsável em sua plataforma, onde os usuários sinalizados podem ser conduzidos por uma jornada diferente de moderação e controle.
Nesta postagem, compartilhamos como a Games24x7 melhorou seus pipelines de treinamento para sua plataforma de jogo responsável usando Amazon Sage Maker.
desafios do cliente
A equipe DS/AI da Games24x7 usou vários serviços fornecidos pela AWS, incluindo notebooks SageMaker, Funções de etapa da AWS, AWS Lambda e Amazon EMR, para criar pipelines para vários casos de uso. Para lidar com o desvio na distribuição de dados e, portanto, treinar novamente seu modelo ScarceGAN, eles descobriram que o sistema existente precisava de uma solução MLOps melhor.
No pipeline anterior por meio do Step Functions, uma única base de código monolítica executava pré-processamento, retreinamento e avaliação de dados. Isso se tornou um gargalo na solução de problemas, adição ou remoção de uma etapa ou até mesmo na realização de algumas pequenas alterações na infraestrutura geral. Essa função de etapa instanciava um cluster de instâncias para extrair e processar dados do S3 e as etapas posteriores de pré-processamento, treinamento e avaliação seriam executadas em uma única instância grande do EC2. Em cenários em que o pipeline falhava em qualquer etapa, todo o fluxo de trabalho precisava ser reiniciado desde o início, o que resultava em execuções repetidas e aumento de custos. Todas as métricas de treinamento e avaliação foram inspecionadas manualmente a partir do Amazon Simple Storage Service (Amazon S3). Não havia nenhum mecanismo para passar e armazenar os metadados dos vários experimentos feitos no modelo. Devido ao monitoramento de modelo descentralizado, a investigação completa e a escolha do melhor modelo exigiram horas da equipe de ciência de dados. A acumulação de todos esses esforços resultou em menor produtividade da equipe e aumento de despesas gerais. Além disso, com uma equipe em rápido crescimento, foi muito desafiador compartilhar esse conhecimento com toda a equipe.
Como os conceitos de MLOps são muito extensos e a implementação de todas as etapas levaria tempo, decidimos que na primeira etapa abordaríamos as seguintes questões centrais:
- Um ambiente seguro, controlado e modelado para retreinar nosso modelo interno de aprendizado profundo usando as melhores práticas do setor
- Um ambiente de treinamento parametrizado para enviar um conjunto diferente de parâmetros para cada trabalho de retreinamento e auditar as últimas execuções
- A capacidade de rastrear visualmente métricas de treinamento e métricas de avaliação e ter metadados para rastrear e comparar experimentos
- A capacidade de dimensionar cada etapa individualmente e reutilizar as etapas anteriores em casos de falhas nas etapas
- Um único ambiente dedicado para registrar modelos, armazenar recursos e invocar pipelines de inferência
- Um conjunto de ferramentas moderno que pode minimizar os requisitos de computação, reduzir os custos e impulsionar o desenvolvimento e as operações sustentáveis de ML, incorporando a flexibilidade de usar diferentes instâncias para diferentes etapas
- Criação de um modelo de benchmark de pipeline MLOps de última geração que pode ser usado em várias equipes de ciência de dados
Games24x7 começou a avaliar outras soluções, incluindo Pipelines do Amazon SageMaker Studio. A solução já existente através do Step Functions tinha limitações. Os pipelines do Studio tinham a flexibilidade de adicionar ou remover uma etapa a qualquer momento. Além disso, a arquitetura geral e suas dependências de dados entre cada etapa podem ser visualizadas por meio de DAGs. A avaliação e o ajuste fino das etapas de retreinamento tornaram-se bastante eficientes após adotarmos diversas funcionalidades do Amazon SageMaker como Amazon SageMaker Studio, Pipelines, Processing, Training, cadastro de modelos e experimentos e testes. A equipe de arquitetura de soluções da AWS mostrou grande profundidade e foi realmente fundamental no design e implementação desta solução.
Visão geral da solução
O diagrama a seguir ilustra a arquitetura da solução.
A solução usa um Estúdio SageMaker ambiente para executar os experimentos de retreinamento. O código para invocar o script do pipeline está disponível nos notebooks do Studio, e podemos alterar os hiperparâmetros e entrada/saída ao invocar o pipeline. Isso é bem diferente do nosso método anterior, no qual tínhamos todos os parâmetros codificados nos scripts e todos os processos estavam indissociavelmente vinculados. Isso exigia a modularização do código monolítico em diferentes etapas.
O diagrama a seguir ilustra nosso processo monolítico original.
Modularização
Para dimensionar, rastrear e executar cada etapa individualmente, o código monolítico precisava ser modularizado. Parâmetros, dados e dependências de código entre cada etapa foram removidos e foram criados módulos compartilhados para os componentes compartilhados nas etapas. Uma ilustração da modularização é mostrada abaixo: -
Para cada módulo, o teste foi feito localmente usando o SDK do SageMaker Modo de script para treinamento, processamento e avaliação que necessárias pequenas alterações no código para executar com o SageMaker. O teste de modo local para scripts de aprendizado profundo pode ser feito em notebooks SageMaker se já estiver sendo usado ou usando Modo local usando pipelines do SageMaker no caso de iniciar diretamente com Pipelines. Isso ajuda a validar se nossos scripts personalizados serão executados em instâncias do SageMaker.
Cada módulo foi então testado isoladamente usando SageMaker Training/processing SDK's usando Modo de script e os executei em uma sequência manualmente usando as instâncias do SageMaker para cada etapa, como abaixo da etapa de treinamento:
O Amazon S3 foi usado para obter os dados de origem para processar e, em seguida, armazenar os dados intermediários, quadros de dados e resultados NumPy de volta ao Amazon S3 para a próxima etapa. Depois que o teste de integração entre os módulos individuais para pré-processamento, treinamento e avaliação foi concluído, o SageMaker Pipeline SDK que está integrado com os SDKs do SageMaker Python que já usamos nas etapas acima, nos permitiu encadear todos esses módulos programaticamente passando os parâmetros de entrada, dados, metadados e saída de cada etapa como uma entrada para as próximas etapas.
Poderíamos reutilizar o código Sagemaker Python SDK anterior para executar os módulos individualmente em execuções baseadas no Sagemaker Pipeline SDK. As relações entre cada etapa do pipeline são determinadas pelas dependências de dados entre as etapas.
As etapas finais do pipeline são as seguintes:
- Pré-processamento de dados
- Retreinamento
- Avaliação
- Registro de modelo
Nas seções a seguir, discutimos cada uma das etapas com mais detalhes quando executadas com os SDKs do SageMaker Pipeline.
Pré-processamento de dados
Esta etapa transforma os dados brutos de entrada e pré-processa e divide em conjuntos de treinamento, validação e teste. Para esta etapa de processamento, instanciamos um trabalho de processamento do SageMaker com Processador TensorFlow Framework, que pega nosso script, copia os dados do Amazon S3 e extrai uma imagem do Docker fornecida e mantida pelo SageMaker. Esse contêiner do Docker nos permitiu passar nossas dependências de biblioteca no arquivo requirements.txt com todas as bibliotecas do TensorFlow já incluídas e passar o caminho para source_dir para o script. Os dados de treinamento e validação vão para a etapa de treinamento e os dados de teste são encaminhados para a etapa de avaliação. A melhor parte de usar esse contêiner foi que ele nos permitiu passar uma variedade de entradas e saídas como diferentes locais do S3, que poderiam ser passadas como uma dependência de etapa para as próximas etapas no pipeline do SageMaker.
Retreinamento
Envolvemos o módulo de treinamento através do Pipelines SageMaker API TrainingStep e usei imagens de contêiner de aprendizado profundo já disponíveis por meio do estimador TensorFlow Framework (também conhecido como modo Script) para Treinamento SageMaker. O modo de script nos permitiu ter alterações mínimas em nosso código de treinamento, e o contêiner Docker pré-construído do SageMaker lida com o Python, versões do Framework e assim por diante. As saídas de processamento do Data_Preprocessing
step foram encaminhados como o TrainingInput desta etapa.
Todos os hiperparâmetros foram passados pelo estimador por meio de um arquivo JSON. Para cada época em nosso treinamento, já estávamos enviando nossas métricas de treinamento por meio de stdOut no script. Como queríamos rastrear as métricas de um trabalho de treinamento contínuo e compará-las com trabalhos de treinamento anteriores, tivemos apenas que analisar esse StdOut definindo as definições de métrica por meio de regex para buscar as métricas de StdOut para cada época.
Foi interessante entender que o SageMaker Pipelines automaticamente integra-se com a API de experimentos do SageMaker, que por padrão cria um experimento, teste e componente de teste para cada execução. Isso nos permite comparar métricas de treinamento, como exatidão e precisão em várias execuções, conforme mostrado abaixo.
Para cada execução de trabalho de treinamento, geramos quatro modelos diferentes para o Amazon S3 com base em nossa definição de negócios personalizada.
Avaliação
Esta etapa carrega os modelos treinados do Amazon S3 e avalia nossas métricas personalizadas. Este ProcessingStep usa o modelo e os dados de teste como entrada e despeja os relatórios de desempenho do modelo no Amazon S3.
Estamos usando métricas personalizadas, portanto, para registrar essas métricas personalizadas no registro do modelo, precisamos converter o esquema das métricas de avaliação armazenadas no Amazon S3 como CSV para o Qualidade do modelo SageMaker Saída JSON. Em seguida, podemos registrar a localização dessa métrica JSON de avaliação no registro do modelo.
As capturas de tela a seguir mostram um exemplo de como convertemos um CSV no formato JSON de qualidade do modelo Sagemaker.
Registro de modelo
Como mencionado anteriormente, estávamos criando vários modelos em uma única etapa de treinamento, então tivemos que usar uma integração SageMaker Pipelines Lambda para registrar todos os quatro modelos em um registro de modelo. Para o registro de um único modelo, podemos usar o ModeloEtapa API para criar um modelo SageMaker no registro. Para cada modelo, a função do Lambda recupera o artefato do modelo e a métrica de avaliação do Amazon S3 e cria um pacote de modelo para um ARN específico, para que todos os quatro modelos possam ser registrados em um único registro de modelo. As APIs Python do SageMaker também nos permitiu enviar metadados personalizados que queríamos passar para selecionar os melhores modelos. Isso provou ser um marco importante para a produtividade porque todos os modelos agora podem ser comparados e auditados em uma única janela. Fornecemos metadados para distinguir exclusivamente o modelo um do outro. Isso também ajudou na aprovação de um modelo único com a ajuda de revisões por pares e revisões de gerenciamento com base nas métricas do modelo.
O bloco de código acima mostra um exemplo de como adicionamos metadados por meio da entrada do pacote de modelo ao registro do modelo junto com as métricas do modelo.
A captura de tela abaixo mostra com que facilidade podemos comparar métricas de diferentes versões de modelo depois de registradas.
Invocação de Pipeline
O pipeline pode ser chamado por meio de EventBridge , Sagemaker Studio ou o SDK em si. A chamada executa as tarefas com base nas dependências de dados entre as etapas.
Conclusão
Nesta postagem, demonstramos como a Games24x7 transformou seus ativos MLOps por meio dos pipelines do SageMaker. A capacidade de rastrear visualmente métricas de treinamento e métricas de avaliação, com ambiente parametrizado, escalar as etapas individualmente com a plataforma de processamento certa e um registro de modelo central provou ser um marco importante na padronização e avanço para um fluxo de trabalho auditável, reutilizável, eficiente e explicável . Este projeto é um modelo para diferentes equipes de ciência de dados e aumentou a produtividade geral, permitindo que os membros operem, gerenciem e colaborem com as melhores práticas.
Se você tiver um caso de uso semelhante e quiser começar, recomendamos usar o SageMaker Modo de script e os votos de Exemplos de ponta a ponta do SageMaker usando o Sagemaker Studio. Esses exemplos têm os detalhes técnicos que foram abordados neste blog.
Uma estratégia de dados moderna oferece um plano abrangente para gerenciar, acessar, analisar e agir com base nos dados. A AWS fornece o conjunto mais completo de serviços para toda a jornada de dados de ponta a ponta para todas as cargas de trabalho, todos os tipos de dados e todos os resultados de negócios desejados. Por sua vez, isso torna a AWS o melhor lugar para extrair valor de seus dados e transformá-los em insights.
Sobre os autores
Hussain Jagirdar é Cientista Sênior – Pesquisa Aplicada na Games24x7. Atualmente, ele está envolvido em esforços de pesquisa na área de IA explicável e aprendizado profundo. Seu trabalho recente envolveu modelagem generativa profunda, modelagem de séries temporais e subáreas relacionadas de aprendizado de máquina e IA. Ele também é apaixonado por MLOps e projetos de padronização que exigem restrições como escalabilidade, confiabilidade e sensibilidade.
Sumir Kumar é arquiteto de soluções da AWS e tem mais de 13 anos de experiência no setor de tecnologia. Na AWS, ele trabalha de perto com os principais clientes da AWS para projetar e implementar soluções baseadas em nuvem que resolvem problemas complexos de negócios. Ele é muito apaixonado por análise de dados e aprendizado de máquina e tem um histórico comprovado de ajudar as organizações a liberar todo o potencial de seus dados usando a Nuvem AWS.
- Conteúdo com tecnologia de SEO e distribuição de relações públicas. Seja amplificado hoje.
- Platoblockchain. Inteligência Metaverso Web3. Conhecimento Ampliado. Acesse aqui.
- Cunhando o Futuro com Adryenn Ashley. Acesse aqui.
- Fonte: https://aws.amazon.com/blogs/machine-learning/how-games24x7-transformed-their-retraining-mlops-pipelines-with-amazon-sagemaker/
- :é
- 1
- 10
- 100
- 11
- 7
- a
- habilidade
- Sobre
- acima
- Acesso
- acumulação
- precisão
- ACM
- em
- Aja
- Açao Social
- adicionado
- Adicional
- Adicionalmente
- endereço
- adotado
- Adoção
- Depois de
- AI
- Todos os Produtos
- Permitindo
- permite
- já
- Amazon
- Amazon Sage Maker
- Estúdio Amazon SageMaker
- analítica
- analisar
- e
- api
- aplicado
- arquitetura
- SOMOS
- ÁREA
- por aí
- AS
- avaliação
- Ativos
- At
- auditor
- auditável
- auditadas
- Automatizado
- automaticamente
- disponível
- AWS
- em caminho duplo
- Espinha dorsal
- baseado
- BE
- Porque
- Começo
- atrás
- ser
- abaixo
- referência
- MELHOR
- melhores práticas
- Melhor
- entre
- Bloquear
- Blog
- Prédio
- construído
- negócio
- by
- CAN
- casas
- casos
- central
- cadeia
- desafiante
- alterar
- Alterações
- classe
- de perto
- Na nuvem
- Agrupar
- código
- Codebase
- colaborar
- comparar
- comparado
- completar
- integrações
- componente
- componentes
- compreensivo
- Computar
- conceitos
- consolidando
- restrições
- Recipiente
- Containers
- ao controle
- controlado
- converter
- convertido
- núcleo
- Custo
- custos
- poderia
- coberto
- crio
- criado
- cria
- Criar
- Atualmente
- personalizadas
- cliente
- Clientes
- dados,
- Análise de Dados
- ciência de dados
- estratégia de dados
- orientado por dados
- Descentralizada
- decidido
- dedicado
- profundo
- mergulho profundo
- deep learning
- Padrão
- definição
- Demanda
- demonstraram
- Dependência
- Design
- desejado
- detalhe
- detalhes
- Detecção
- determinado
- Desenvolvimento
- diferente
- diretamente
- descoberto
- discutir
- distinguir
- distribuição
- Estivador
- down
- distância
- dinâmica
- cada
- Mais cedo
- facilmente
- eficiente
- esforços
- ou
- emprega
- habilitado
- permitindo
- end-to-end
- Todo
- Meio Ambiente
- época
- avaliação
- avaliação
- Mesmo
- Cada
- exemplo
- exemplos
- execução
- existente
- sistema existente
- vasta experiência
- experimentar
- extenso
- extrato
- extremamente
- fracassado
- Funcionalidades
- Envie o
- final
- Primeiro nome
- marcado
- bandeiras
- Flexibilidade
- concentra-se
- seguinte
- segue
- Escolha
- formato
- Quadro
- da
- cheio
- função
- funcionalidades
- funções
- mais distante
- jogo
- Os jogadores
- Games
- jogos
- plataforma de jogos
- gerar
- generativo
- ter
- dá
- Go
- vai
- ótimo
- Locatário
- manipular
- Alças
- Queijos duros
- Ter
- ter
- ajudar
- ajudou
- ajuda
- ajuda
- HORÁRIO
- Como funciona o dobrador de carta de canal
- HTML
- HTTPS
- identificação
- imagem
- imagens
- executar
- implementação
- implementação
- importar
- melhorado
- in
- incluído
- Incluindo
- incorporando
- aumentou
- Individual
- Individualmente
- indústria
- Infraestrutura
- entrada
- introspecção
- instância
- instrumental
- integrado
- integração
- interações
- interessante
- investigação
- envolvido
- isolamento
- questões
- IT
- iteração
- ESTÁ
- se
- Trabalho
- Empregos
- viagem
- jpg
- json
- Chave
- Conhecimento
- conhecido
- Rótulos
- grande
- aprendizagem
- bibliotecas
- Biblioteca
- como
- limitações
- ligado
- cargas
- localmente
- localização
- locais
- máquina
- aprendizado de máquina
- principal
- FAZ
- Fazendo
- gerencia
- de grupos
- manualmente
- mecanismo
- Membros
- mencionado
- metadados
- método
- métrico
- Métrica
- marco miliário
- milhão
- mínimo
- menor
- ML
- MLOps
- Moda
- modelo
- modelos
- moderação
- EQUIPAMENTOS
- Módulo
- Módulos
- monitoração
- Monolítico
- mais
- a maioria
- múltiplo
- nome
- você merece...
- Próximo
- caderno
- numpy
- of
- on
- ONE
- contínuo
- aberto
- operar
- Operações
- otimização
- ordem
- organizações
- original
- Outros
- saída
- global
- pacote
- parâmetros
- Supremo
- parte
- passar
- passou
- passes
- Passagem
- apaixonado
- caminho
- atuação
- filosofia
- oleoduto
- Lugar
- plano
- plataforma
- Plataformas
- platão
- Inteligência de Dados Platão
- PlatãoData
- Jogar
- jogador
- players
- abundância
- ponto
- Publique
- potencial
- alimentado
- práticas
- Precisão
- anterior
- problemas
- processo
- processos
- em processamento
- produtividade
- projeto
- projetos
- Propriedades
- provou
- comprovado
- fornecido
- fornece
- publicado
- Pullover
- Python
- qualidade
- RARO
- Cru
- recentemente
- recomendar
- registro
- regex
- cadastre-se
- registrado
- Registo
- registro
- relacionado
- Relacionamentos
- confiabilidade
- Removido
- removendo
- repetido
- Relatórios
- requeridos
- Requisitos
- pesquisa
- responsável
- jogo responsável
- reiniciado
- Resultados
- retorno
- reutilizável
- reutilizar
- Opinões
- Tipo
- Execute
- corrida
- sábio
- Pipelines SageMaker
- AMPLIAR
- Escala
- dimensionamento
- Escasso
- cenários
- Ciência
- Cientista
- screenshots
- Scripts
- Sdk
- seções
- seguro
- envio
- senior
- Sensibilidade
- Seqüência
- serviço
- Serviços
- conjunto
- Conjuntos
- Partilhar
- compartilhado
- mostrar
- mostrando
- Shows
- semelhante
- simples
- solteiro
- habilidade
- pequeno
- So
- solução
- Soluções
- RESOLVER
- alguns
- fonte
- específico
- splits
- Etapa
- padronização
- começado
- Comece
- estado-da-arte
- estatística
- Passo
- Passos
- armazenamento
- loja
- armazenadas
- Estratégia
- estudo
- tal
- sustentável
- .
- toma
- Profissionais
- equipes
- Dados Técnicos:
- Tecnologia
- modelo
- fluxo tensor
- teste
- ensaio
- que
- A
- A área
- A fonte
- deles
- Eles
- assim sendo
- Este
- Através da
- tempo
- para
- pista
- Trem
- treinado
- Training
- transformado
- julgamento
- ensaios
- VIRAR
- tipos
- compreender
- unicamente
- destravar
- us
- usar
- caso de uso
- Utilizador
- usuários
- validação
- Valioso
- valor
- variedade
- vário
- visão
- querido
- qual
- enquanto
- inteiro
- precisarão
- de
- dentro
- Atividades:
- trabalho
- seria
- Envolvido
- anos
- Vocês
- investimentos
- zefirnet