界面已本地化;技能介绍与说明文档按所选语言由 AI 自动翻译,代码、命令、路径和专业术语保留原文,以原作者文档为准。
探索技能
开发与工程 · SKILL.md

prepare-training-corpus

prepare-training-corpus

【开发与工程】Builds and freezes deterministic train, validation, and test corpora with provenance, group-safe splits, manifests, hashes, and prompt-leakage checks. Use before teacher labeling, fine-tuning, or comparing models on generated or retrieved examples.

独立 GitHub 快照 · 自动分类 · 以原作者文档为准

技能说明

GitHub

name: prepare-training-corpus description: Builds and freezes deterministic train, validation, and test corpora with provenance, group-safe splits, manifests, hashes, and prompt-leakage checks. Use before teacher labeling, fine-tuning, or comparing models on generated or retrieved examples.

Prepare Training Corpus

Make the corpus reproducible before any expensive labeling or training call.

Define the contract

Write down:

  • the population and approved data sources;
  • the unit of an example and the group that must never cross splits;
  • target split sizes and distributions;
  • input, output, abstention, and identifier schemas;
  • required positive, negative, ambiguous, and boundary cases;
  • leakage rules for prompts, labels, canonical IDs, and teacher-only metadata.

Separate deterministic scenario generation from teacher labeling. Materialize and validate the entire candidate pool without model calls first.

Materialize deterministically

  1. Pin source snapshots and generator revision.
  2. Set and record the random seed.
  3. Assign splits by stable group identity, not by individual row.
  4. Write a selection manifest before calling a teacher or evaluating a model.
  5. Keep opaque request-local identifiers in model-visible inputs when canonical IDs would leak answers.
  6. Store teacher/reference fields outside the model prompt.

Do not silently repair generated or teacher-produced rows. Preserve raw failures and derive validated outputs separately.

Validate and freeze

Use scripts/build_corpus_manifest.py for JSONL split invariants:

python scripts/build_corpus_manifest.py \
  --split train=path/train.jsonl \
  --split validation=path/valid.jsonl \
  --split test=path/test.jsonl \
  --id-field id --group-field deckGroupID \
  --output path/corpus-manifest.json

Also run project-specific validators for legality, replay, terminal boundaries, data licenses, and context sufficiency. Fail before labeling if:

  • IDs repeat or groups leak across splits;
  • requested distributions are wrong;
  • prompts contain reference answers or teacher-only information;
  • examples rely on unmodeled or unknown state;
  • provenance or licenses are incomplete.

Freeze exact JSONL bytes, manifests, source revisions, generator configuration, and SHA-256 hashes. Any schema, prompt, or corpus-membership change creates a new revision and fresh state; never resume incompatible evidence.

我的收藏