Dataset (Data Pipeline): foundations

accepted

Dataset (Data Pipeline) — foundations RFC

Status

*ccepted*— ratificada 20260509 (mesmo dia da abertura) como parte da onda piloto de bootstrap servicesai. Implementação iniciada em `servicesaidataset; tickets em servicesaidatasetbacklogpending/{001..005}`.

Summary

Foundation pra versionamento, curadoria e splits de dataset — análogo HuggingFace Datasets/W&B Tables.

Motivation

ML treinamento exige dataset versionado. libras/ ingest pipeline está sendo definido isolado. Sem service, cada projeto reinventa data lineage + splits + dedup.

Scope

In

  • Dataset versioning (DVC-like)
  • Splits (trainvaltest)
  • Schema validation
  • Dedup
  • Parquet/jsonl IO

Out (yet)

  • ETL genérico (escopo de pipeline, não dataset)
  • Labeling UI

Initial design

Surfaces

  • backend/ — Go API + storage layer
  • app/ — não aplicável v1

Key APIs

  • POST /v1/datasets — criar dataset
  • GET /v1/datasets/{id}/versions — histórico
  • POST /v1/datasets/{id}/splits — gerar splits

Dependencies

  • infra/data/kdb-blob — storage de dados brutos
  • services/ai/training — consumer
  • services/ai/embed — consumer pra dedup semântico

Relation to existing sectors

  • Pré-requisito de training
  • Pode consumir extract para curadoria

Selfhostedfirst analysis (5 gates)

  • *1 Feature parity* zero
  • *2 Performance* N/A
  • *3 Stability* N/A
  • *4 Capability* DVC/HuggingFace Datasets viáveis embutidos
  • *5 Critical-path readiness* bloqueia training

Open questions

  • Q1: DVC vs próprio?
  • Q2: Storage backend — kdb-blob suficiente ou exige object store dedicado?

Next steps

  1. Ratificar esta RFC (1 round de comments).
  2. Criar sector dir services/ai/dataset/ com koder.toml, README.md, skeleton.
  3. Abrir tickets de implementação em services/ai/dataset/backlog/pending/.
  4. Registrar em meta/docs/stack/registries/self-hosted-pairs.md se substituir externo.

Source: ../home/koder/dev/koder/meta/docs/stack/rfcs/dataset-RFC-001-foundations.kmd