O que é repositório de recursos gerenciados?

Para o repositório 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 manipula o serviço, a proteção e o monitoramento dos recursos. Isso libera você da configuração de pipeline de engenharia de recursos subjacente e da sobrecarga de gerenciamento.

Graças à integração do nosso repositório 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 estas vantagens.

Para obter mais informações sobre entidades de nível superior no repositório de recursos, incluindo especificações do 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 dados de entrada para seu modelo. Para casos de uso controlados por dados em um contexto empresarial, um recurso geralmente transforma dados históricos (agregações simples, agregações de janela, transformações de nível de linha etc.). Por exemplo, considere um modelo de machine learning para rotatividade de clientes. As entradas de modelo podem incluir dados de interação do 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 de agregação são computadas nos sete dias anteriores de dados.

Problemas resolvidos pelo repositório de recursos

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

  • Um repositório de recursos permite que você pesquise e reutilize recursos que sua equipe cria, 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 maneira ágil e dinâmica.

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

  • Você pode usar o mesmo pipeline de recursos, originalmente usado para a geração de dados de treinamento, em novos usos de inferência para fornecer consistência online/offline e 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 workspaces

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

Visão geral do Feature Store

Diagrama representando uma arquitetura conceitual do Azure Machine Learning

No caso do repositório de recursos gerenciado, você fornece uma especificação do conjunto de recursos. Em seguida, o sistema manipula o serviço, a proteção e o monitoramento dos recursos. Uma especificação de conjunto de recursos contém definições de recurso e lógica de transformação opcional. Você também pode fornecer declarativamente configurações de materialização para materializar para um repositório 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 pesquisar recursos para gerar dados para treinamento e inferência. A API de serviço pode efetuar pull dos dados diretamente da origem ou de um repositório 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 (criação de protótipos para a operacionalização):
    • Descobrir e reutilizar recursos em vez de criar do zero
    • Experimentação mais rápida com desenvolvimento/teste local de novos recursos com suporte à transformação e uso da especificação de recuperação de recursos como tecido conjuntivo no fluxo de MLOps
    • Materialização declarativa e backfill
    • Constructos predefinidos: componente de recuperação de recursos e especificação de recuperação de recursos
  • Melhora a confiabilidade dos modelos de ML
    • Uma definição de recursos consistente em toda a unidade/organização de negócios
    • Os conjuntos de recursos são com controle de versão e imutáveis: a versão mais recente dos modelos pode usar versões de recursos mais recentes sem interromper a versão mais antiga do modelo
    • Materialização do conjunto de recursos do Monitor
    • A materialização evita a distorção de treinamento/serviço
    • A recuperação de recursos dá suporte a junções temporais pontuais (também conhecidas como viagem no tempo) para evitar vazamento de dados.
  • Reduz o custo
    • Reutilizar recursos criados por outras pessoas na organização
    • A materialização e o monitoramento são gerenciados pelo sistema para reduzir o custo da engenharia

Descobrir e gerenciar recursos

O repositório de recursos gerenciados fornece esses recursos para descoberta e gerenciamento de recursos:

  • Pesquisar e reutilizar recursos: você pode pesquisar e reutilizar recursos nos repositórios de recursos
  • Suporte ao controle de versão: os conjuntos de recursos têm controle de versão e são imutáveis, permitindo que você gerencie 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 do modelo mais antiga
  • Exibir o custo no nível do repositório de recursos: o custo principal associado ao uso do repositório de recursos são os trabalhos de materialização do Spark gerenciados. Você pode ver o custo no nível do repositório 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 recursos. Para uma experimentação mais rápida, o código de transformação faz cálculos nos dados de origem e permite o desenvolvimento local e o teste de transformações.

O repositório de recursos gerenciados fornece os seguintes 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, agregações baseadas em janela
  • Suporte a recursos pré-compilados: você pode trazer recursos pré-compilados para o repositório de recursos e oferecê-los sem escrever código
  • Desenvolvimento e teste locais – com um ambiente do Spark, você pode desenvolver e testar totalmente os conjuntos de recursos localmente

Materialização de recursos

A materialização envolve a computação de valores de recursos para determinada janela de recursos 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 agendamento de materialização e o sistema manipula o agendamento, a pré-compilação e a materialização dos valores no repositório de materialização
  • Suporte a backfill – você pode executar a materialização sob demanda de conjuntos de recursos para uma determinada janela de recursos
  • Suporte gerenciado do Spark para materialização: o Spark gerenciado do Azure Machine Learning (em instâncias de computação sem servidor) executa os trabalhos de materialização. Ele libera você da configuração e do gerenciamento da infraestrutura do Spark.

Observação

Atualmente, há suporte para a materialização do repositório offline (ADLS Gen2) e do Repositório Online (Redis).

Recuperação de recursos

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

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

  • Geração de dados de treinamento declarativo: com o componente interno de recuperação de recursos, 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ática: você também pode usar o get_offline_features()SDK do Python para gerar os dados de treinamento/inferência

Monitoramento

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

  • Status dos trabalhos de materialização – você pode exibir o status de trabalhos de materialização usando a interface do usuário, a CLI ou o SDK
  • Notificação sobre trabalhos de materialização – Você pode configurar notificações por e-mail nos 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 repositório de recursos, conjunto de recursos e entidades.
  • Consulta entre repositórios de recursos: você pode criar vários repositórios de recursos com permissões de acesso diferentes para os usuários, mas permitir consultas (por exemplo, gerar dados de treinamento) de vários repositórios de recursos

Próximas etapas