Parametrisierung

In der nächsten Phase unseres Beispiels parametrisieren wir die Verarbeitung und erstellen hierfür in der params.yaml-Datei folgendem Inhalt:

featurize:
  max_features: 100
  ngrams: 1

Damit die Parameter gelesen werden, wird dem dvc stage-Befehl noch -p featurize.max_features,featurize.ngrams hinzugefügt, in unserem Beispiel also:

$ uv run dvc stage add \
    -n featurize \
    -p featurize.max_features,featurize.ngrams \
    -d src/dvc_example/featurization.py -d data/prepared \
    -o data/features \
    uv run python src/dvc_example/featurization.py data/prepared data/features

Dies ergänzt die dvc.yaml-Datei um:

featurize:
  cmd: uv run python src/dvc_example/featurization.py data/prepared
    data/features
  deps:
  - data/prepared
  - src/dvc_example/featurization.py
  params:
  - featurize.max_features
  - featurize.ngrams
  outs:
  - data/features

Damit diese Phase wiederholt werden kann, werden die MD5-Hash- und Parameter-Werte in der dvc.lock-Datei gespeichert:

featurize:
  cmd: uv run python src/dvc_example/featurization.py data/prepared
    data/features
  deps:
  - path: data/prepared
    hash: md5
    md5: 153aad06d376b6595932470e459ef42a.dir
    size: 8437363
    nfiles: 2
  - path: src/dvc_example/featurization.py
    hash: md5
    md5: e22789fc9581cad11ef7a6fa3aa3f17b
    size: 4158
  params:
    params.yaml:
      featurize.max_features: 100
      featurize.ngrams: 1
  outs:
  - path: data/features
    hash: md5
    md5: 820664b8b793837e74ea3a5d334eb85c.dir
    size: 1556292
nfiles: 2

Schließlich müssen data/.gitignore, dvc.lock, dvc.yaml, params.yaml und src/dvc_example/featurization.py ins Git-Repository übernommen werden:

$ git add data/.gitignore dvc.lock dvc.yaml src/dvc_example/featurization.py

Siehe auch

dvc params