Ciência e Dados
Menu
  • Home
  • Sobre
  • Contato
Menu

O Que São Feature Stores e Por Que São Essenciais na Escalabilidade em Data Science?

Posted on 19 de fevereiro de 202221 de fevereiro de 2022 by David Matos

O que é Feature Store (Armazernamento de Recursos)?

Se os dados forem o novo ouro (termo usado em excesso, mas mesmo assim verdadeiro), eu diria que os recursos são, na verdade, barras de ouro e, portanto, precisam ser tratados em conformidade. Para chegar ao ouro, você precisa cavar e trabalhar duro, o que também é válido para encontrar as características certas.

O processo de criação de recursos (features) é chamado de engenharia de recursos (ou engenharia de atributos), que é um componente complicado, mas crítico para qualquer processo de aprendizado de máquina. Melhores recursos significam melhores modelos, resultando em melhores resultados de negócios.

Gerar um novo recurso exige uma quantidade enorme de trabalho – e criar o pipeline para construir o recurso é apenas um aspecto. Para chegar a esse estágio, você provavelmente teve um longo processo de tentativa e erro, com uma grande variedade de recursos, até chegar a um ponto em que ficou satisfeito com seu novo recurso singular. Em seguida, você precisava calculá-lo e armazená-lo como parte de um pipeline operacional, que difere, dependendo se o recurso está online ou offline.

Além disso, todo projeto de Ciência de Dados começa com a busca pelos recursos certos. O problema é que, na maioria das vezes, não há um lugar único e centralizado para pesquisar; recursos estão hospedados em todos os lugares. Portanto, em primeiro lugar, o armazenamento de recursos fornece um único painel de vidro para compartilhar todos os recursos disponíveis. Quando um Cientista de Dados inicia um novo projeto, ele ou ela pode acessar este catálogo e encontrar facilmente os recursos que procura. Mas um armazenamento de recursos não é apenas uma camada de dados, é também um serviço de transformação de dados que permite aos usuários manipular dados brutos e armazená-los como recursos prontos para serem usados ​​por qualquer modelo de aprendizado de máquina.

Recursos offline e Online

Existem dois tipos de recursos: online e offline

Recursos off-line – alguns recursos são calculados como parte de um trabalho em lote. Por exemplo, gasto médio mensal. Eles são usados ​​principalmente por processos offline. Dada a sua natureza, a criação desses tipos de recursos pode levar tempo. Normalmente, os recursos off-line são calculados por meio de estruturas como Spark ou simplesmente executando consultas SQL em um determinado banco de dados e, em seguida, usando um processo de inferência em lote.

Recursos online – Esses recursos são um pouco mais complicados, pois precisam ser calculados muito rapidamente e geralmente são exibidos em latência de milissegundos. Por exemplo, calcular uma pontuação z para detecção de fraude em tempo real. Nesse caso, o pipeline é construído calculando a média e o desvio padrão em uma janela deslizante em tempo real. Esses cálculos são muito mais desafiadores, exigindo computação rápida, bem como acesso rápido aos dados. Os dados podem ser armazenados na memória ou em um banco de dados de valores-chave muito rápido. O processo em si pode ser realizado em vários serviços na nuvem ou em uma plataforma como a Plataforma de Ciência de Dados Iguazio, que possui todos esses componentes como parte de sua oferta principal.

Aqui está um exemplo de um pipeline online e offline usando armazenamento de recursos (Feature Store). Foi projetado pela Uber como parte de sua plataforma Michelangelo:

Benefícios:

● Desenvolvimento Mais Rápido

O ideal é que os Cientistas de Dados se concentrem no que estudaram para fazer e no que são melhores: em construir modelos. No entanto, eles frequentemente se veem tendo que gastar a maior parte do tempo em configurações de engenharia de dados. Alguns recursos são caros para computar e requerem agregação, enquanto outros são bastante diretos. Mas isso realmente não é algo que deva preocupar os Cientistas de Dados ou impedi-los de aproveitar os melhores recursos para seu modelo. Portanto, o conceito de armazenamento de recursos é abstrair todas as camadas de engenharia e fornecer acesso fácil para leitura e escrita de recursos.

Conforme mencionado anteriormente, os recursos online e offline têm características diferentes. Nos bastidores, os recursos off-line são construídos principalmente em estruturas como o Spark ou SQL, onde os recursos reais são armazenados em um banco de dados ou como arquivos em parquet. Enquanto os recursos online podem exigir acesso a dados usando APIs para mecanismos de streaming, como Kafka, Kinesis, ou bancos de dados de valores-chave na memória, como Redis ou Cassandra.

Trabalhar com um armazenamento de recursos abstrai essa camada, de forma que quando um Cientista de Dados está procurando por um recurso, em vez de escrever um código de engenharia, ele pode usar uma API simples para recuperar os dados de que precisa. Pode ser simples como executar o seguinte:

df = feature_store.get (“transaction_volume”). filter_by (transaction_id)

● Fácil Implantação do Modelo em Produção

Um dos principais desafios na implementação do aprendizado de máquina em produção surge do fato de que os recursos que estão sendo usados ​​para treinar um modelo no ambiente de desenvolvimento não são os mesmos que os recursos na camada de serviço de produção. Portanto, habilitar um conjunto de recursos consistente entre a camada de treinamento e de serviço permite um processo de implantação mais suave, garantindo que o modelo treinado realmente reflita a maneira como as coisas funcionariam na produção.

● Maior Precisão do Modelo

Além dos recursos reais, o armazenamento de recursos mantém metadados adicionais para cada recurso. Por exemplo, uma métrica que mostra o impacto do recurso no modelo ao qual está associada. Essas informações podem ajudar os Cientistas de Dados tremendamente ao selecionar recursos para um novo modelo, permitindo que eles se concentrem naqueles que alcançaram um impacto melhor em modelos existentes semelhantes.

● Melhor Colaboração

Como diz o velho ditado – compartilhar é cuidar! A realidade hoje é que quase todos os novos serviços de negócios são baseados em Machine Learning, portanto, o número de projetos e recursos está crescendo exponencialmente. Isso reduz nossa capacidade de ter uma boa visão geral abrangente dos recursos disponíveis, uma vez que são tantos. Em vez de desenvolver em silos, o armazenamento de recursos nos permite compartilhar nossos recursos junto com seus metadados com nossos colegas. Está se tornando um problema comum em grandes organizações que equipes diferentes acabem desenvolvendo soluções semelhantes, simplesmente porque não estão cientes das tarefas umas das outras. Os armazenamentos de recursos preenchem essa lacuna e permitem que todos compartilhem seu trabalho e evitam a duplicação.

● Rastreamento da Linhagem e Tratamento da Conformidade

Para atender às diretrizes e regulamentações, especialmente nos casos em que os modelos de IA gerados atendem a setores como saúde, serviços financeiros e segurança, é importante rastrear a linhagem dos algoritmos em desenvolvimento. Alcançar isso requer visibilidade do fluxo de dados de ponta a ponta para entender melhor como o modelo está gerando seus resultados. Como os recursos estão sendo gerados como parte do processo, é necessário rastrear o fluxo do processo de geração de recursos. Em um armazenamento de recursos, podemos manter a linhagem de dados de um recurso. Isso fornece as informações de rastreamento necessárias que capturam como o recurso foi gerado e fornece a visão e os relatórios necessários para conformidade regulamentar.

Feature Store e MLOps

MLOps é uma extensão do DevOps em que a ideia é aplicar os princípios do DevOps em pipelines de Machine Learning. O desenvolvimento de um pipeline de aprendizado de máquina é diferente do desenvolvimento de software, principalmente por causa do aspecto dos dados. A qualidade do modelo não se baseia apenas na qualidade do código. Também é baseado na qualidade dos dados – ou seja, os recursos – que são usados ​​para executar o modelo. De acordo com o Airbnb, cerca de 60%-80% do tempo dos Cientistas de Dados é gasto na criação, treinamento e teste. Os armazenamentos de recursos permitem que os Cientistas de Dados reutilizem recursos em vez de reconstruí-los repetidas vezes para modelos diferentes, economizando tempo e esforço valiosos. Os armazenamentos de recursos automatizam esse processo e podem ser acionados mediante alterações de código que são enviadas para o Git ou pela chegada de novos dados. Essa engenharia automatizada de recursos é uma parte importante do conceito de MLOps.

Conclusão

Algumas das maiores empresas de tecnologia que lidam extensivamente com IA criaram suas próprias Feature Stores (Uber, Twitter, Google, Netflix, Facebook, Airbnb, etc.). Essa é uma boa indicação para o resto do setor de como é importante usar armazenamento de recursos como parte de um pipeline de Machine Learning eficiente. Dado o crescente número de projetos de IA e as complexidades associadas a colocar esses projetos em produção, a indústria precisa de uma forma de padronizar e automatizar o núcleo da engenharia de recursos. Portanto, é justo supor que o armazenamento de recursos está posicionado para ser um componente básico de qualquer pipeline de aprendizado de máquina.

Referência:

What are Feature Stores and Why Are They Critical for Scaling Data Science?

David Matos

Compartilhar

  • Clique para compartilhar no X(abre em nova janela) 18+
  • Clique para compartilhar no Facebook(abre em nova janela) Facebook
  • Clique para compartilhar no LinkedIn(abre em nova janela) LinkedIn
  • Clique para compartilhar no WhatsApp(abre em nova janela) WhatsApp
  • Clique para compartilhar no Telegram(abre em nova janela) Telegram
  • Clique para compartilhar no Tumblr(abre em nova janela) Tumblr
  • Clique para compartilhar no Pinterest(abre em nova janela) Pinterest

Relacionado

1 thought on “O Que São Feature Stores e Por Que São Essenciais na Escalabilidade em Data Science?”

  1. Pingback: MLOps: Machine Learning Como Disciplina de Engenharia – Parte 2 - Data Science Academy

Deixe um comentário Cancelar resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Assinar blog por e-mail

Digite seu endereço de e-mail para assinar este blog e receber notificações de novas publicações por e-mail.

Buscar

Tags Mais Comuns nos Posts

Agentes de IA Analytics Análise de Negócios Apache Spark AWS Big Data Blockchain Business Intelligence Cache-Augmented Generation (CAG) ChatGPT Cientista de Dados Cientistas de Dados Ciência de Dados Cloud Computing Data Lake Data Mesh Data Science Data Scientist Data Warehouse Deep Learning Deploy Engenharia de Dados Estatística GPU GraphRAG Hadoop IA Generativa Inteligência Artificial Internet of Things Linguagem Python Linguagem R LLM LLMs Machine Learning Metadados Normalização NVIDIA Oracle Pipeline de Dados Predictive Analytics Probabilidade PySpark Python RAG Storytelling

Histórico de Posts

  • abril 2025 (2)
  • março 2025 (4)
  • fevereiro 2025 (8)
  • janeiro 2025 (5)
  • dezembro 2024 (4)
  • novembro 2024 (1)
  • outubro 2024 (1)
  • setembro 2024 (1)
  • agosto 2024 (1)
  • julho 2024 (3)
  • junho 2024 (1)
  • maio 2024 (1)
  • abril 2024 (2)
  • março 2024 (1)
  • fevereiro 2024 (1)
  • janeiro 2024 (1)
  • dezembro 2023 (1)
  • outubro 2023 (2)
  • setembro 2023 (1)
  • agosto 2023 (4)
  • julho 2023 (2)
  • junho 2023 (4)
  • maio 2023 (2)
  • abril 2023 (2)
  • março 2023 (3)
  • fevereiro 2023 (3)
  • janeiro 2023 (3)
  • dezembro 2022 (7)
  • novembro 2022 (6)
  • outubro 2022 (2)
  • setembro 2022 (3)
  • agosto 2022 (2)
  • julho 2022 (2)
  • junho 2022 (3)
  • maio 2022 (1)
  • abril 2022 (3)
  • março 2022 (1)
  • fevereiro 2022 (3)
  • janeiro 2022 (2)
  • dezembro 2021 (1)
  • novembro 2021 (5)
  • outubro 2021 (2)
  • setembro 2021 (3)
  • agosto 2021 (1)
  • junho 2021 (1)
  • fevereiro 2021 (2)
  • janeiro 2021 (1)
  • dezembro 2020 (1)
  • novembro 2020 (1)
  • outubro 2020 (2)
  • agosto 2020 (1)
  • abril 2020 (1)
  • março 2020 (1)
  • fevereiro 2020 (2)
  • agosto 2019 (1)
  • abril 2019 (1)
  • setembro 2018 (2)
  • julho 2018 (1)
  • junho 2018 (3)
  • abril 2018 (1)
  • março 2018 (1)
  • fevereiro 2018 (2)
  • janeiro 2018 (1)
  • dezembro 2017 (1)
  • novembro 2017 (1)
  • outubro 2017 (1)
  • setembro 2017 (1)
  • julho 2017 (1)
  • junho 2017 (1)
  • maio 2017 (2)
  • abril 2017 (1)
  • janeiro 2017 (1)
  • novembro 2016 (1)
  • outubro 2016 (1)
  • setembro 2016 (1)
  • julho 2016 (1)
  • junho 2016 (1)
  • maio 2016 (1)
  • abril 2016 (1)
  • fevereiro 2016 (1)
  • janeiro 2016 (3)
  • dezembro 2015 (4)
  • novembro 2015 (6)
  • outubro 2015 (9)
  • setembro 2015 (9)
  • agosto 2015 (9)
©2025 Ciência e Dados
Menu
  • Home
  • Sobre
  • Contato
 

Carregando comentários...