O blog da AWS

Amazon SageMaker Feature Store agora oferece suporte ao compartilhamento, descoberta e acesso entre contas

Este Blogpost foi escrito por Ioan Catana, Philipp Kaindl, Dhaval Shah e Mizanur Rahman e foi traduzido para a língua portuguesa por Matheus Oliveira.

O Amazon SageMaker Feature Store é um repositório totalmente gerenciado e criado especificamente para armazenar, compartilhar e gerenciar recursos para modelos de aprendizado de máquina (ML). Os recursos são entradas para os modelos de ML usados durante o treinamento e a inferência. Por exemplo, em um aplicativo que recomenda uma playlist de música, os recursos podem incluir classificações de músicas, duração da canção e dados demográficos do ouvinte. Os recursos são usados repetidamente por várias equipes, e a qualidade dos recursos é fundamental para garantir um modelo altamente preciso. Além disso, quando os recursos usados para treinar modelos off-line em lote são disponibilizados para inferência em tempo real, é difícil manter os dois repositórios de recursos sincronizados. O SageMaker Feature Store fornece um armazenamento seguro e unificado para processar, padronizar e usar recursos em grande escala em todo o ciclo de vida do ML.

Agora, o SageMaker Feature Store facilita o compartilhamento, a descoberta e o acesso a grupos de recursos em todas as contas da AWS. Esse novo recurso promove a colaboração e minimiza o trabalho duplicado para equipes envolvidas no desenvolvimento de modelos e aplicativos de ML, especialmente em ambientes corporativos com várias contas abrangendo diferentes unidades ou funções de negócios.

Com esse lançamento, os proprietários de contas podem conceder acesso a grupos de recursos selecionados por outras contas usando o AWS Resource Access Manager (AWS RAM). Depois de receberem o acesso, os usuários dessas contas podem visualizar convenientemente todos os seus grupos de recursos, incluindo os compartilhados, por meio do Amazon SageMaker Studio ou dos SDKs. Isso permite que as equipes descubram e utilizem recursos desenvolvidos por outras equipes, promovendo o compartilhamento de conhecimento e a eficiência. Além disso, os detalhes de uso dos recursos compartilhados podem ser monitorados com o Amazon CloudWatch e o AWS CloudTrail. Para uma análise mais aprofundada, consulte Capacidade de descoberta e acesso ao grupo de recursos da conta cruzada.

Neste post, discutimos o porquê e o como de uma loja de recursos centralizada com acesso entre contas. Mostramos como configurá-lo e executar um exemplo de demonstração, bem como os benefícios que você pode obter ao usar esse novo recurso em sua organização.

Quem precisa de uma loja de recursos multicontas

As organizações precisam compartilhar recursos com segurança entre as equipes para criar modelos de ML precisos e, ao mesmo tempo, impedir o acesso não autorizado a dados confidenciais. O SageMaker Feature Store agora permite o compartilhamento granular de recursos entre contas via AWS RAM, possibilitando o desenvolvimento colaborativo de modelos com governança.

O SageMaker Feature Store fornece armazenamento e gerenciamento específicos para recursos de ML usados durante o treinamento e a inferência. Com o suporte entre contas, agora você pode compartilhar seletivamente recursos armazenados em uma conta da AWS com outras contas da sua organização.

Por exemplo, a equipe de análise pode organizar recursos como perfil do cliente, histórico de transações e catálogos de produtos em uma conta de gerenciamento central. Eles precisam ser acessados com segurança por desenvolvedores de ML em outros departamentos, como marketing, detecção de fraudes e assim por diante, para criar modelos.

A seguir estão os principais benefícios de compartilhar recursos de ML entre contas:

  • Recursos consistentes e reutilizáveis — O compartilhamento centralizado de recursos selecionados melhora a precisão do modelo ao fornecer dados de entrada consistentes para treinar. As equipes podem descobrir e consumir diretamente recursos criados por outras pessoas, em vez de duplicá-los em cada conta.
  • Controle de acesso ao grupo de recursos — Você pode conceder acesso somente aos grupos de recursos específicos necessários para o caso de uso de uma conta. Por exemplo, a equipe de marketing só pode ter acesso ao grupo de recursos do perfil do cliente necessário para modelos de recomendação.
  • Colaboração entre equipes — Os recursos compartilhados permitem que equipes diferentes, como fraude, marketing e vendas, colaborem na criação de modelos de ML usando os mesmos dados confiáveis, em vez de criar recursos isolados.
  • Trilha de auditoria para fins de conformidade — Os administradores podem monitorar o uso de recursos por todas as contas de forma centralizada usando os registros de eventos do CloudTrail. Isso fornece uma trilha de auditoria necessária para governança e conformidade.

Diferenciando produtores de consumidores em lojas especializadas com várias contas

No campo do aprendizado de máquina, o repositório de recursos atua como uma ponte crucial, conectando aqueles que fornecem dados com aqueles que os utilizam. Essa dicotomia pode ser gerenciada de forma eficaz usando uma configuração de várias contas para a loja de recursos. Vamos desmistificar isso usando as seguintes personas e uma analogia do mundo real:

  • Engenheiros de dados e ML (proprietários e produtores) — Eles estabelecem as bases inserindo dados na loja de recursos;
  • Cientistas de dados (consumidores) — Eles extraem e utilizam esses dados para criar seus modelos;

Os engenheiros de dados atuam como arquitetos que esboçam o plano inicial. Sua tarefa é construir e supervisionar pipelines de dados eficientes. Extraindo dados dos sistemas de origem, eles moldam atributos de dados brutos em recursos perceptíveis. Veja a “idade”, por exemplo.

Embora represente apenas o período entre agora e a data de nascimento de uma pessoa, sua interpretação pode variar em uma organização. Garantir qualidade, uniformidade e consistência é fundamental aqui. Seu objetivo é alimentar dados em um armazenamento de recursos centralizado, estabelecendo-o como ponto de referência indiscutível.

Os engenheiros de ML refinam esses recursos fundamentais, adaptando-os para fluxos de trabalho maduros de ML. No contexto bancário, eles podem deduzir informações estatísticas dos saldos das contas, identificando tendências e padrões de fluxo. O obstáculo que eles geralmente enfrentam é a redundância. É comum ver pipelines repetitivos de criação de recursos em diversas iniciativas de ML.

Analogamente, imagine cientistas de dados como chefs gourmet vasculhando uma despensa bem abastecida, buscando os melhores ingredientes para sua próxima obra-prima culinária. Seu tempo deve ser investido na criação de receitas de dados inovadoras, não na remontagem da despensa. O obstáculo nesse momento é descobrir os dados certos. Desse modo, uma interface amigável, equipada com ferramentas de pesquisa eficientes e descrições abrangentes de recursos, é indispensável.

Em essência, uma configuração de loja de recursos entre contas segmenta meticulosamente as funções dos produtores e consumidores de dados, garantindo eficiência, clareza e inovação. Se você está estabelecendo a base ou construindo sobre ela, conhecer sua função e suas ferramentas é fundamental.

O diagrama a seguir mostra duas equipes diferentes de cientistas de dados, de duas contas diferentes da AWS, que compartilham e usam o mesmo repositório central de recursos para selecionar os melhores recursos necessários para criar seus modelos de ML. O repositório central de recursos está localizado em uma conta diferente gerenciada por engenheiros de dados e engenheiros de ML, onde a camada de governança de dados e o data lake geralmente estão localizados.

Diagrama que destaca as funções e diferenças entre Consumidores e Produtores no contexto estabelecido

Controles de grupos de recursos entre contas

Com o SageMaker Feature Store, você pode compartilhar recursos de grupos de recursos entre contas. A conta do proprietário do recurso compartilha recursos com as contas do consumidor do recurso. Há duas categorias distintas de permissões associadas ao compartilhamento de recursos:

  • Permissões de descoberta — Capacidade de descoberta significa ser capaz de ver os nomes e metadados dos grupos de recursos. Quando você concede permissão de descoberta, todas as entidades do grupo de recursos na conta da qual você compartilha (conta do proprietário do recurso) se tornam detectáveis pelas contas com as quais você está compartilhando (contas de consumidores de recursos). Por exemplo, se você tornar a conta do proprietário do recurso detectável pela conta do consumidor do recurso, os diretores da conta do consumidor do recurso poderão ver todos os grupos de recursos contidos na conta do proprietário do recurso. Essa permissão é concedida às contas de consumidores de recursos usando o tipo de recurso do catálogo do SageMaker.
  • Permissões de acesso — Quando você concede uma permissão de acesso, você faz isso no nível de recursos do grupo de recursos (não no nível da conta). Isso proporciona um controle mais granular sobre a concessão de acesso aos dados. Os tipos de permissões de acesso que podem ser concedidas são somente leitura, leitura/gravação e administração. Por exemplo, você pode selecionar somente determinados grupos de recursos da conta do proprietário do recurso para serem acessados pelos diretores da conta do consumidor do recurso, dependendo das necessidades da sua empresa. Essa permissão é concedida às contas de consumidores de recursos usando o tipo de recurso do grupo de recursos e especificando entidades do grupo de recursos.

O diagrama de exemplo a seguir mostra o compartilhamento do tipo de recurso do catálogo do SageMaker concedendo a permissão de descoberta versus o compartilhamento de uma entidade do tipo de recurso de grupo de recursos com permissões de acesso. O catálogo do SageMaker contém todas as entidades do seu grupo de recursos. Quando concedida uma permissão de descoberta, a conta do consumidor do recurso pode pesquisar e descobrir todas as entidades do grupo de recursos na conta do proprietário do recurso. Uma entidade de grupo de recursos contém seus dados de ML. Quando concedida uma permissão de acesso, a conta do consumidor do recurso pode acessar os dados do grupo de recursos, com o acesso determinado pela permissão de acesso relevante.

Diagrama que ilustra as relações de permissionamento no SageMaker Feature Store

Visão geral da solução

Conclua as etapas a seguir para compartilhar com segurança recursos entre contas usando o SageMaker Feature Store:

  1. Na conta de origem (proprietário), consuma conjuntos de dados e prepare recursos normalizados. Organize recursos relacionados em grupos lógicos chamados grupos de recursos.
  2. Crie um compartilhamento de recursos para conceder acesso entre contas a grupos de recursos específicos. Defina ações permitidas, como obter e colocar, e restrinja o acesso somente às contas autorizadas.
  3. Nas contas de destino (consumidor), aceite o convite da AWS RAM para acessar recursos compartilhados. Revise a política de acesso para entender as permissões concedidas.

Agora, os desenvolvedores nas contas de destino podem recuperar recursos compartilhados usando o SDK do SageMaker, juntá-los com dados adicionais e usá-los para treinar modelos de ML. A conta de origem pode monitorar o acesso aos recursos compartilhados por todas as contas usando os registros de eventos do CloudTrail. Os registros de auditoria fornecem visibilidade centralizada do uso dos recursos.

Com essas etapas, você pode permitir que as equipes de toda a sua organização usem com segurança os recursos compartilhados de ML para o desenvolvimento colaborativo de modelos.

Pré-requisitos

Presumimos que você já tenha criado grupos de recursos e ingerido os recursos correspondentes em sua conta de proprietário. Para obter mais informações sobre como começar, consulte Comece a usar a Amazon SageMaker Feature Store.

Concedendo permissões de descoberta

Primeiro, demonstramos como compartilhar nosso catálogo da SageMaker Feature Store na conta do proprietário. Conclua as seguintes etapas:

  1. Na conta do proprietário do catálogo da SageMaker Feature Store, abra o console de RAM da AWS.
  2. Em Compartilhado por mim no painel de navegação, escolha Compartilhamentos de recursos.
  3. Escolha Criar compartilhamento de recursos.
  4. Insira um nome de compartilhamento de recursos e escolha Catálogos de recursos do SageMaker como o tipo de recurso.Console da AWS com configurações do Feature Store.
  5. Clique em Avançar.
  6. Para acesso somente para fins de descoberta, insira AWSRAMPermissionSageMakerCatalogResourceSearch for Managed permissions. Console da AWS com configurações do Feature Store.
  7. Clique em Avançar.
  8. Insira o ID da sua conta de consumidor e clique em Adicionar. Você pode adicionar várias contas de consumidores. Console da AWS com configurações do Feature Store.
  9. Clique em Avançar e conclua seu compartilhamento de recursos.

Agora, o catálogo compartilhado da SageMaker Feature Store deve aparecer na página de compartilhamentos de recursos.

Console da AWS com configurações do Feature Store.

Você pode obter o mesmo resultado usando a interface de linha de comando da AWS (AWS CLI) com o seguinte comando (forneça sua região da AWS, ID da conta do proprietário e ID da conta do consumidor):

aws ram create-resource-share\ 
 --name myCatalogFG\ --resource-arns arn:aws:sagemaker:region:ownerAccountId:sagemaker-catalog/defaultFeatureGroupCatalog\ --principals CONSACCOUNTID\ --permission-arns arn:aws:ram: 
 :aws:permission/awsrampermissionSageMakerCatalogcatalogPesquisa de recursos 

Aceitando o convite de compartilhamento de recursos

Para aceitar o convite de compartilhamento de recursos, conclua as seguintes etapas:

  1. Na conta de destino (consumidor), abra o console de RAM da AWS.
  2. Em Compartilhado comigo no painel de navegação, escolha Compartilhamentos de recursos.
  3. Escolha o novo compartilhamento de recursos pendente.Console da AWS com configurações do Feature Store.
  4. Escolha Aceitar compartilhamento de recursos.Console da AWS com configurações do Feature Store.

Você pode obter o mesmo resultado usando o AWS CLI com o seguinte comando:

aws ram get-resource-share-invitations

Na saída do comando anterior, recupere o valor de ResourceShareInvitationArn e, em seguida, aceite o convite com o seguinte comando:

aws ram accept-resource-share-invitation\ --resource-share-invitation-arn RESOURCESHAREINVITATIONARN 

O fluxo de trabalho é o mesmo para compartilhar grupos de recursos com outra conta via AWS RAM.

Depois de compartilhar alguns grupos de recursos com a conta de destino, você pode inspecionar a SageMaker Feature Store, onde você pode observar que o novo catálogo está disponível.Interface do SageMaker Studio.

Concedendo permissões de acesso

Com as permissões de acesso, podemos conceder permissões no nível de recursos do grupo de recursos. Conclua as seguintes etapas:

  1. Na conta do proprietário do catálogo da SageMaker Feature Store, abra o console de RAM da AWS.
  2. Em Compartilhado por mim no painel de navegação, selecione Compartilhamentos de recursos.
  3. Escolha Criar compartilhamento de recursos.
  4. Insira um nome de compartilhamento de recursos e escolha Grupos de recursos do SageMaker como o tipo de recurso.
  5. Selecione um ou mais grupos de recursos para compartilhar.Console da AWS com configurações do Feature Store.
  6. Selecione Avançar.
  7. Para acesso de leitura/gravação, insira awsramPermissionsageMakerFeatureGroupReadWrite para permissões gerenciadas. Console da AWS com configurações do Feature Store.
  8. Selecione Avançar.
  9. Insira o ID da sua conta de consumidor e escolha Adicionar. Você pode adicionar várias contas de consumidores. Console da AWS com configurações do Feature Store.
  10. Selecione Avançar e conclua seu compartilhamento de recursos.

Agora, o catálogo compartilhado deve aparecer na página de compartilhamentos de recursos.Console da AWS com configurações do Feature Store.

Você pode obter o mesmo resultado usando o AWS CLI com o seguinte comando (forneça sua região, ID da conta do proprietário, ID da conta do consumidor e nome do grupo de recursos):

aws ram create-resource-share\ 
 --name myCatalogFG\ --resource-arns arn:aws:sagemaker:region:ownerAccountId:feature-group/featureGroupName\ --principals CONSACCOUNTID\ --permission-arns arn:aws:ram: 
 :aws:permission/awsramPermissionsageMakerFeatureGroupReadWrite 

Há três tipos de acesso que você pode conceder aos grupos de recursos:

  • AWSRamPermissionsageMakerFeatureGroupReadOnly — O privilégio de somente leitura permite que contas de consumidores de recursos leiam registros nos grupos de recursos compartilhados e visualizem detalhes e metadados;
  • AWSRamPermissionSageMakerFeatureGroupReadWrite — O privilégio de leitura/gravação permite que contas de consumidores de recursos gravem registros e excluam registros dos grupos de recursos compartilhados, além de permissões de leitura;
  • AWSRamPermissionsageMakerFeatureGroupAdmin — O privilégio de administrador permite que as contas de consumidores de recursos atualizem a descrição e os parâmetros dos recursos dentro dos grupos de recursos compartilhados e atualizem a configuração dos grupos de recursos compartilhados, além das permissões de leitura/gravação.

Aceitando o convite de compartilhamento de recursos

Para aceitar o convite de compartilhamento de recursos, conclua as seguintes etapas:

  1. Na conta de destino (consumidor), abra o console de RAM da AWS.
  2. Em Compartilhado comigo no painel de navegação, selecione Compartilhamentos de recursos.
  3. Selecione o novo compartilhamento de recursos pendente. Console da AWS com configurações do Feature Store.
  4. Selecione Aceitar compartilhamento de recursos.

O processo de aceitar o compartilhamento de recursos usando a AWS CLI é o mesmo da seção anterior de descoberta, com os comandos get-resource-share-invitations e accept-resource-share-invitation.

Exemplos de notebooks mostrando esse novo recurso

Dois notebooks foram adicionados ao repositório GitHub do SageMaker Feature Store Workshop na pasta 09-module-security/09-03-cross-account-access:

  • m9_03_nb1_cross-account-admin.ipynb — Deve ser executado em sua conta de administrador ou proprietário da AWS;
  • m9_03_nb2_cross-account-consumer.ipynb — Deve ser executado em sua conta de consumidor da AWS.

O primeiro script mostra como criar o compartilhamento de recursos de descoberta para grupos de recursos existentes na conta de administrador ou proprietário e compartilhá-lo com outra conta de consumidor de forma programática usando a API de RAM da AWS create_resource_share(). Também mostra como conceder permissões de acesso a grupos de recursos existentes na conta do proprietário e compartilhá-las com outra conta de consumidor usando a AWS RAM. Você precisa fornecer seu ID de conta da AWS de consumidor antes de executar o notebook.

O segundo script aceita os convites da AWS RAM para descobrir e acessar grupos de recursos entre contas a partir do nível do proprietário. Em seguida, mostra como descobrir grupos de recursos entre contas que estão na conta do proprietário e listá-los na conta do consumidor. Você também pode ver como acessar grupos de recursos de leitura/gravação entre contas que estão na conta do proprietário e realizar as seguintes operações na conta do consumidor: describe(), get_record(), ingest() e delete_record().

Conclusão

O recurso de várias contas do SageMaker Feature Store oferece vários benefícios interessantes. Em primeiro lugar, facilita a colaboração efetiva ao permitir o compartilhamento de grupos de recursos em várias contas da AWS. Isso aprimora a acessibilidade e a utilização dos dados, permitindo que equipes em contas diferentes usem recursos compartilhados em seus fluxos de trabalho de ML.

Além disso, a capacidade de várias contas aprimora a governança e a segurança dos dados. Com acesso e permissões controlados por meio da AWS RAM, as organizações podem manter um armazenamento de recursos centralizado e, ao mesmo tempo, garantir que cada conta tenha níveis de acesso personalizados. Isso não apenas simplifica o gerenciamento de dados, mas também fortalece as medidas de segurança ao limitar o acesso a usuários autorizados.

Ademais, a capacidade de compartilhar grupos de recursos entre contas simplifica o processo de criação e implantação de modelos de ML em um ambiente colaborativo. Ele promove um fluxo de trabalho mais integrado e eficiente, reduzindo a redundância no armazenamento de dados e facilitando a criação de modelos robustos com recursos compartilhados de alta qualidade. No geral, a capacidade de várias contas da Feature Store otimiza a colaboração, a governança e a eficiência no desenvolvimento de ML em diversas contas da AWS. Experimente e diga-nos o que você acha nos comentários.

Este blog é uma tradução em português de seu original em inglês, que pode visualizado aqui.

Sobre os autores

Ioan Catana é arquiteto sênior de soluções especialista em inteligência artificial e aprendizado de máquina na AWS. Ele ajuda os clientes a desenvolver e escalar suas soluções de ML na nuvem da AWS. Ioan tem mais de 20 anos de experiência, principalmente em design de arquitetura de software e engenharia de nuvem.
Philipp Kaindl é arquiteto sênior de soluções de inteligência artificial e aprendizado de máquina na AWS. Com formação em ciência de dados e engenharia mecânica, seu foco é capacitar os clientes a criar um impacto comercial duradouro com a ajuda da IA. Fora do trabalho, Philipp gosta de mexer em impressoras 3D, velejar e fazer caminhadas.
Dhaval Shah é arquiteto sênior de soluções na AWS, especializado em aprendizado de máquina. Com um forte foco em negócios nativos digitais, ele capacita os clientes a usar a AWS e impulsionar o crescimento de seus negócios. Como entusiasta do ML, Dhaval é movido por sua paixão por criar soluções impactantes que tragam mudanças positivas. Em seu tempo de lazer, ele se entrega ao amor por viagens e valoriza momentos de qualidade com sua família.
Mizanur Rahman é engenheiro de software sênior da Amazon SageMaker Feature Store com mais de 10 anos de experiência prática especializada em IA e ML. Com uma base sólida em aplicações teóricas e práticas, ele tem um Ph.D. em detecção de fraudes usando aprendizado de máquina, refletindo sua dedicação ao avanço no campo. Sua experiência abrange um amplo espectro, abrangendo arquiteturas escaláveis, computação distribuída, análise de big data, microsserviços e infraestruturas em nuvem para organizações.

Revisor

Matheus Oliveira é arquiteto de soluções na AWS, especializado em engajamentos de Inteligência Artificial e Machine Learning. Com formação em Engenharia da Computação auxilia clientes a experimentarem soluções práticas e escaláveis, buscando impacto positivo e transformação por meio de computação em nuvem.