CommunityPesquisa e Análise de Dadosgithub.com

Pipeline de Recursos para Modelos (Feature Pipelines)

Construa pipelines de recursos para aprendizado de máquina (feature pipelines) e feature stores — junções temporalmente corretas (point-in-time-correct joins) para evitar vazamento de rótulo, paridade offline/online, atualização e retrocarga de recursos, além de materialização com ferramentas como Feast. Use ao projetar recursos para ML, evitar skew entre treino e produção ou vazamento de dados, construir um feature store ou retrocarregar recursos históricos para treinamento.

O que é Pipeline de Recursos para Modelos (Feature Pipelines)?

Este skill guia engenheiros de ML e cientistas de dados na construção de pipelines de recursos robustos e profissionalizados para modelos de aprendizado de máquina. Ele aborda desafios críticos como vazamento de rótulo (label leakage), skew entre treino e produção (train/serve skew) e atualização (freshness) de recursos online, com base em ferramentas como Feast, dbt e Spark. O fluxo recomenda definir cada recurso com uma chave de entidade e timestamp, realizar junções temporais corretas (as-of joins) para evitar o uso de dados futuros no treinamento, e manter uma definição única de recurso para cenários offline e online, garantindo paridade e evitando degradação silenciosa. Além disso, enfatiza a materialização agendada, retrocargas idempotentes e versionamento de definições para garantir reprodutibilidade e monitoramento contínuo.

Funciona com~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/Unknown-333/awesome-data-engineering-skills/tree/main/skills/building-feature-pipelines

Installed? Explore more Pesquisa e Análise de Dados skills: affaan-m/uspto-database, affaan-m/scholar-evaluation, affaan-m/literature-review · View all 6 →

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

Construindo Pipelines de Recursos (Feature Pipelines)

Quando usar

  • Projetar recursos para modelos de ML a partir de dados de warehouse/stream.
  • Prevenir vazamento de rótulo e skew entre treino e produção.
  • Configurar um feature store, serviço online ou retrocargas históricas.
  • Não usar para modelagem ou agregação geral (use skills dbt/Spark) a menos que alimente recursos de ML.

Workflow

- [ ] Definir cada recurso com uma chave de entidade e um timestamp de evento
- [ ] Construir conjuntos de treinamento com junções temporalmente corretas (as-of o tempo do rótulo)
- [ ] Compartilhar UMA definição para offline (treinamento) e online (servir)
- [ ] Definir actualização/materialização para recursos online
- [ ] Retrocarregar recursos históricos de forma idempotente para treinamento
  1. Correção temporal (point-in-time). Juntar recursos de acordo com o timestamp de cada rótulo — usar apenas dados conhecidos antes do momento da predição. Isso previne o vazamento de rótulo, o bug mais prejudicial em features.
  2. Paridade offline/online. Calcular um recurso da mesma forma para treinamento (offline, batch) e servir (online, baixa latência). Lógica divergente causa skew entre treino e produção e degradação silenciosa.
  3. Atualização (Freshness). Recursos online devem ser materializados em uma agenda que atenda à tolerância de obsolescência do modelo.
  4. Retrocargas idempotentes. Recomputar recursos históricos deve ser repetível (ver designing-backfills-and-replays).

Padrões

Junção temporal (as-of join) — obter o valor mais recente do recurso estritamente anterior a cada evento de rótulo:

SELECT l.entity_id, l.label_ts, f.value AS feature
FROM labels l
LEFT JOIN features f
  ON f.entity_id = l.entity_id
 AND f.event_ts <= l.label_ts          -- apenas dados passados; sem vazamento
QUALIFY ROW_NUMBER() OVER (
  PARTITION BY l.entity_id, l.label_ts ORDER BY f.event_ts DESC) = 1;

Definição única, dois caminhos — definir o recurso uma vez (ex.: Feast FeatureView); materializar para um armazenamento offline para treinamento e para um armazenamento online para servir, de modo que ambos usem lógica idêntica.

Atualização + materialização — agendar materialização online; monitorar a atualização dos recursos como qualquer SLA de dataset (implementing-pipeline-observability).

Armadilhas comuns

  • Vazamento de rótulo — juntar recursos computados após o timestamp do rótulo infla as métricas offline e colapsa em produção; sempre utilizar junção as-of.
  • Skew entre treino e produção — implementações separadas para offline e online derivam; compartilhar uma definição única.
  • Recursos online obsoletos — o modelo serve com valores antigos; definir e monitorar a atualização.
  • Retrocargas não reproduzíveis — histórico de treinamento inconsistente; tornar a recomputação de recursos idempotente.
  • Ausência de chaves de entidade/timestamp — recursos não podem ser unidos corretamente ao longo do tempo; exigir ambos.
  • Recursos não versionados — redefinição silenciosa quebra a comparabilidade do modelo; versionar as definições de recursos.

Individual skills in this repo

This repo contains 9 individual skills — each has its own dedicated page.

Unknown-333/authoring-airflow-dags

Write production-grade Apache Airflow DAGs using the TaskFlow API — idempotent tasks, correct scheduling and catchup, retries/SLAs, connections/variables, and avoiding top-level code. Use when creating or reviewing Airflow DAGs, scheduling pipelines, wiring task dependencies, configuring retries/backfills, or fixing non-idempotent tasks.

Unknown-333/building-dagster-assets

Build Dagster pipelines using software-defined assets — asset dependencies, partitions, resources and IO managers, asset checks, and schedules/sensors. Use when creating Dagster assets or jobs, modeling data as assets, adding partitions or backfills, wiring resources/IO managers, or migrating from task-based orchestration to assets.

Unknown-333/building-dbt-models

Build well-structured dbt models — staging/intermediate/marts layers, ref() and source(), materializations, and incremental models with the right strategy. Use when creating or refactoring dbt models, choosing table vs view vs incremental, structuring a dbt project, or writing incremental logic.

Unknown-333/building-iceberg-tables

Design and operate Apache Iceberg tables — partitioning and hidden partitioning, partition/schema evolution, snapshots and time travel, compaction and small-file cleanup, and MERGE/upsert for lakehouse tables on Spark, Flink, Trino, or Snowflake. Use when creating or maintaining Iceberg tables, choosing partitioning, evolving schema/partitions, or fixing small-file and metadata bloat.

Unknown-333/building-ingestion-pipelines

Build batch and incremental data ingestion (extract-load) pipelines — full vs incremental extraction, change data capture (CDC), watermarks and high-water marks, API pagination and rate limits, and choosing managed EL tools (Fivetran, Airbyte) vs custom code. Use when ingesting data from databases, APIs, files, or SaaS into a warehouse/lake, or designing incremental extraction and CDC.

Unknown-333/building-kafka-consumers

Build reliable Apache Kafka consumers and producers — consumer groups and partition assignment, offset commit strategy, at-least-once vs exactly-once, idempotent/transactional producers, rebalancing, and dead-letter handling. Use when writing Kafka consumers/producers, configuring offset commits or consumer groups, tuning throughput, or handling rebalances and poison messages.

Unknown-333/debugging-data-pipelines

Systematically root-cause data pipeline failures and data incidents — job errors, wrong or missing data, duplicates, and freshness misses — by tracing lineage upstream, isolating the failing stage, reconciling against source, and planning a safe fix and backfill. Use when a pipeline fails, numbers look wrong, data is missing or duplicated, a dashboard is stale, or a stakeholder reports a data discrepancy.

Unknown-333/designing-backfills-and-replays

Plan and run safe data backfills and replays — idempotent reprocessing of historical windows, partition-by-partition execution, isolating backfill compute from production, verifying results, and avoiding double-counting or changed history. Use when backfilling a new or fixed model, reprocessing after a bug, replaying events, or loading history for a new pipeline without corrupting existing data.

Unknown-333/designing-data-contracts

Define and enforce data contracts between producers and consumers — explicit schema, semantics, ownership, SLAs, and versioning — to prevent silent upstream changes from breaking downstream pipelines. Use when a producer schema change could break consumers, defining an interface between teams/services and the warehouse, or adding schema enforcement at ingestion.

Habilidades Relacionadas