O que é a loja de recursos com gerência?

Para armazenamento de recursos gerenciados, queremos que profissionais de aprendizado de máquina como você desenvolvam e produzam recursos de forma independente. Você fornece uma especificação de conjunto de recursos. O sistema lida com o serviço, a proteção e o monitoramento dos recursos. Isso libera você da configuração do pipeline de engenharia de recursos subjacente e da sobrecarga de gerenciamento.

Graças à integração de nossa loja de recursos em todo o ciclo de vida do aprendizado de máquina, você pode experimentar e enviar modelos mais rapidamente, aumentar a confiabilidade de seus modelos e reduzir seus custos operacionais. A redefinição da experiência de aprendizado de máquina oferece essas vantagens.

Para obter mais informações sobre entidades de nível superior no repositório de recursos, incluindo especificações de conjunto de recursos, visite Noções básicas sobre entidades de nível superior no repositório de recursos gerenciado.

O que são recursos?

Um recurso serve como os dados de entrada para o seu modelo. Para casos de uso orientados por dados em um contexto empresarial, um recurso geralmente transforma dados históricos (agregações simples, agregações de janelas, transformações em nível de linha, etc.). Por exemplo, considere um modelo de aprendizado de máquina de rotatividade de clientes. As entradas do modelo podem incluir dados de interação com o cliente - por exemplo, 7day_transactions_sum (número de transações nos últimos sete dias) ou 7day_complaints_sum (número de reclamações nos últimos sete dias). Ambas as funções agregadas são calculadas nos sete dias anteriores de dados.

Problemas resolvidos pela loja de recursos

Para entender melhor o repositório de recursos gerenciados, você deve primeiro entender os problemas que um repositório de recursos pode resolver.

  • Uma loja de recursos permite que você pesquise e reutilize recursos criados por sua equipe, para evitar trabalho redundante e fornecer previsões consistentes.

  • Você pode criar um novo recurso com a capacidade de transformações, para atender aos requisitos de engenharia de recursos de forma ágil e dinâmica.

  • O sistema operacionaliza e gerencia os pipelines de engenharia de recursos necessários para transformação e materialização para libertar sua equipe dos aspetos operacionais.

  • Você pode usar o mesmo pipeline de recursos, originalmente usado para geração de dados de treinamento, para novo uso para fins de inferência para fornecer consistência on-line/offline e para evitar distorção de treinamento/serviço.

Compartilhar repositório de recursos gerenciados

Diagrama mostrando como compartilhar o repositório de recursos entre vários usuários e espaços de trabalho

O repositório de recursos é um novo tipo de espaço de trabalho que vários espaços de trabalho de projeto podem usar. Você pode consumir recursos de ambientes baseados no Spark diferentes do Azure Machine Learning, como o Azure Databricks. Você também pode executar o desenvolvimento local e testes de recursos.

Visão geral do repositório de recursos

Diagrama representando uma arquitetura conceitual do Azure Machine Learning

Para armazenamento de recursos gerenciados, você fornece uma especificação de conjunto de recursos. Em seguida, o sistema lida com o serviço, a proteção e o monitoramento de seus recursos. Uma especificação de conjunto de recursos contém definições de recursos e lógica de transformação opcional. Você também pode fornecer declarativamente configurações de materialização para materializar em uma loja offline (ADLS Gen2). O sistema gera e gerencia os pipelines de materialização de recursos subjacentes. Você pode usar o catálogo de recursos para pesquisar, compartilhar e reutilizar recursos. Com a API de serviço, os usuários podem procurar recursos para gerar dados para treinamento e inferência. A API de serviço pode extrair os dados diretamente da fonte ou de um armazenamento de materialização offline para inferência de treinamento/lote. O sistema também fornece recursos para monitorar trabalhos de materialização de recursos.

Benefícios de usar o repositório de recursos gerenciados do Azure Machine Learning

  • Aumenta a agilidade no envio do modelo (prototipagem para operacionalização):
    • Descubra e reutilize recursos em vez de criar recursos do zero
    • Experimentação mais rápida com desenvolvimento/teste local de novos recursos com suporte à transformação e uso de especificação de recuperação de recursos como tecido conjuntivo no fluxo MLOps
    • Materialização declarativa e enchimento
    • Construções pré-construídas: componente de recuperação de recursos e especificações de recuperação de recursos
  • Melhora a confiabilidade dos modelos de ML
    • Uma definição de recurso consistente em toda a unidade de negócios/organização
    • Os conjuntos de recursos são versionados e imutáveis: as versões mais recentes dos modelos podem usar versões de recursos mais recentes sem interromper a versão mais antiga do modelo
    • Monitorar a materialização do conjunto de recursos
    • A materialização evita a distorção do treino/serviço
    • A recuperação de recursos suporta junções temporais point-in-time (também conhecidas como viagens no tempo) para evitar vazamento de dados.
  • Reduz custos
    • Reutilizar recursos criados por outras pessoas na organização
    • A materialização e monitorização são geridas pelo sistema, para reduzir os custos de engenharia

Descubra e gerencie recursos

O repositório de recursos gerenciado fornece estes recursos para descoberta e gerenciamento de recursos:

  • Recursos de pesquisa e reutilização - Você pode pesquisar e reutilizar recursos em lojas de recursos
  • Suporte a controle de versão - Os conjuntos de recursos são versionados e imutáveis, o que permite gerenciar de forma independente o ciclo de vida do conjunto de recursos. Você pode implantar novas versões de modelo com diferentes versões de recursos e evitar a interrupção da versão mais antiga do modelo
  • Exibir custo no nível do repositório de recursos - O principal custo associado ao uso do repositório de recursos envolve trabalhos gerenciados de materialização do Spark. Você pode ver esse custo no nível da loja de recursos
  • Uso do conjunto de recursos - Você pode ver a lista de modelos registrados usando os conjuntos de recursos.

Transformação de recursos

A transformação de recursos envolve a modificação de recursos do conjunto de dados para melhorar o desempenho do modelo. O código de transformação, definido em uma especificação de recurso, lida com a transformação de recurso. Para uma experimentação mais rápida, o código de transformação executa cálculos em dados de origem e permite o desenvolvimento local e testes de transformações.

O repositório de recursos gerenciados fornece estes recursos de transformação de recursos:

  • Suporte para transformações personalizadas - Você pode escrever um transformador Spark para desenvolver recursos com transformações personalizadas - por exemplo, agregados baseados em janela
  • Suporte para recursos pré-computados - Você pode trazer recursos pré-computados para o repositório de recursos e servi-los sem escrever código
  • Desenvolvimento e testes locais - Com um ambiente Spark, você pode desenvolver e testar conjuntos de recursos totalmente localmente

Materialização de recursos

A materialização envolve o cálculo de valores de feição para uma determinada janela de recurso e a persistência desses valores em um repositório de materialização. Agora, os dados de recursos podem ser recuperados de forma mais rápida e confiável para fins de treinamento e inferência.

  • Pipeline de materialização de recursos gerenciados - Você especifica declarativamente o cronograma de materialização e, em seguida, o sistema lida com o agendamento, pré-cálculo e materialização dos valores no repositório de materialização
  • Suporte de preenchimento - Você pode executar a materialização sob demanda de conjuntos de recursos para uma determinada janela de recursos
  • Suporte do Managed Spark para materialização - o Azure Machine Learning gerenciado pelo Spark (em instâncias de computação sem servidor) executa os trabalhos de materialização. Ele libera você da configuração e gerenciamento da infraestrutura do Spark.

Nota

Tanto a materialização da loja offline (ADLS Gen2) como da loja online (Redis) são atualmente suportadas.

Recuperação de recursos

O Azure Machine Learning inclui um componente interno que lida com a recuperação de recursos offline. Ele permite o uso dos recursos nas etapas de treinamento e inferência em lote de um trabalho de pipeline do Azure Machine Learning.

O repositório de recursos gerenciado fornece estes recursos de recuperação de recursos:

  • Geração de dados de treinamento declarativo - Com o componente de recuperação de recursos integrado, você pode gerar dados de treinamento em seus pipelines sem escrever nenhum código
  • Geração declarativa de dados de inferência em lote - Com o mesmo componente interno de recuperação de recursos, você pode gerar dados de inferência em lote
  • Recuperação de recursos programáticos - Você também pode usar o Python SDK get_offline_features()para gerar os dados de treinamento/inferência

Monitorização

O repositório de recursos gerenciados fornece os seguintes recursos de monitoramento:

  • Status dos trabalhos de materialização - Você pode exibir o status dos trabalhos de materialização usando a interface do usuário, CLI ou SDK
  • Notificação sobre trabalhos de materialização - Você pode configurar notificações por e-mail sobre os diferentes status dos trabalhos de materialização

Segurança

O repositório de recursos gerenciados fornece estes recursos de segurança:

  • RBAC - Controle de acesso baseado em função para armazenamento de recursos, conjunto de recursos e entidades.
  • Consulta entre repositórios de recursos - Você pode criar vários repositórios de recursos com diferentes permissões de acesso para os usuários, mas permitir consultas (por exemplo, gerar dados de treinamento) em vários repositórios de recursos

Próximos passos