Creación de Pipelines de Características para ML

Construye pipelines de características y almacenes de características para ML — uniones correctas en el tiempo para evitar fuga de etiquetas, paridad offline/online, frescura y rellenos históricos con herramientas como Feast. Úsalo al ingenierizar características para ML, prevenir sesgo train/serve o fuga de datos, construir un almacén de características, o rellenar características históricas para entrenamiento.

¿Qué es Creación de Pipelines de Características para ML?

Esta habilidad proporciona un enfoque sistemático para diseñar e implementar pipelines de características de Machine Learning, centrándose en la corrección temporal para evitar la fuga de etiquetas, la paridad entre entornos offline y online, y la gestión de frescura y rellenos históricos. Es especialmente útil para equipos que construyen almacenes de características con herramientas como Feast, asegurando que las características se definan una sola vez y se materialicen de manera consistente tanto para entrenamiento como para inferencia. La habilidad explica patrones clave como la unión as-of (puntual), la definición única con dos caminos (offline/online) y la materialización programada con monitoreo de frescura. También advierte sobre errores comunes como la fuga de etiquetas, el sesgo train/serve y la falta de versionado de características. Está diseñada para ser utilizada en plataformas como Claude Code, Cursor y Codex, donde los agentes de IA pueden aplicar estos principios directamente en el código y la configuración de los pipelines.

Compatible con~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 Investigación y análisis de datos skills: affaan-m/uspto-database, affaan-m/scholar-evaluation, affaan-m/literature-review · View all 6 →

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

Creación de Pipelines de Características

Cuándo usarlo

  • Ingenierizar características para modelos de ML a partir de datos de almacén/stream.
  • Prevenir la fuga de etiquetas y el sesgo train/serve.
  • Configurar un almacén de características, servir online o rellenos históricos.
  • NO usarlo para modelado/agregación general (usar habilidades de dbt/Spark) a menos que alimente características de ML.

Flujo de trabajo

- [ ] Definir cada característica con una clave de entidad y una marca de tiempo de evento
- [ ] Construir conjuntos de entrenamiento con uniones correctas en el tiempo (as-of la hora de la etiqueta)
- [ ] Compartir UNA definición para offline (entrenamiento) y online (servicio)
- [ ] Establecer frescura/materialización para características online
- [ ] Rellenar características históricas de forma idempotente para entrenamiento
  1. Corrección en el tiempo. Unir características según la marca de tiempo de cada etiqueta — usar solo datos que se conocían antes del momento de la predicción. Esto previene la fuga de etiquetas, el error de características más dañino.
  2. Paridad offline/online. Calcular una característica de la misma manera para entrenamiento (offline, por lotes) y servicio (online, baja latencia). La lógica divergente causa sesgo train/serve y degradación silenciosa en producción.
  3. Frescura. Las características online deben materializarse en un horario que cumpla con la tolerancia de obsolescencia del modelo.
  4. Rellenos idempotentes. Recalcular características históricas debe ser repetible (ver diseñando-rellenos-y-repeticiones).

Patrones

Unión en el tiempo (as-of) — elegir el valor de la característica más reciente estrictamente anterior a cada evento de etiqueta:

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          -- solo datos pasados; sin fuga
QUALIFY ROW_NUMBER() OVER (
  PARTITION BY l.entity_id, l.label_ts ORDER BY f.event_ts DESC) = 1;

Definición única, dos caminos — definir la característica una vez (por ejemplo, FeatureView de Feast); materializar en un almacén offline para entrenamiento y en un almacén online para servicio, de modo que ambos usen lógica idéntica.

Frescura + materialización — programar la materialización online; monitorear la frescura de las características como cualquier SLA de conjunto de datos (implementando-observabilidad-de-pipelines).

Errores comunes

  • Fuga de etiquetas — unir características calculadas después de la hora de la etiqueta infla las métricas offline y colapsa en producción; siempre unir as-of.
  • Sesgo train/serve — implementaciones offline y online separadas derivan; compartir una definición.
  • Características online obsoletas — el modelo sirve con valores antiguos; establecer y monitorear la frescura.
  • Rellenos no reproducibles — historial de entrenamiento inconsistente; hacer que la recomputación de características sea idempotente.
  • Sin claves de entidad/marca de tiempo — las características no se pueden unir correctamente a través del tiempo; requerir ambas.
  • Características sin versionar — la redefinición silenciosa rompe la comparabilidad del modelo; versionar las definiciones de características.

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.

Skills relacionados