fix(audio): benchmark tagging on pre-staged AMI meetings#2187
fix(audio): benchmark tagging on pre-staged AMI meetings#2187mohammadaaftabv wants to merge 11 commits into
Conversation
Greptile SummaryThis PR replaces the placeholder audio-tagging nightly benchmarks with real AMI meeting audio (three SDM meetings, ~1.56 h). It adds a one-time
Confidence Score: 5/5The change is self-contained to benchmarking infrastructure and a small set of audio-stage fixes; no production data paths are altered. All runtime fixes are narrowly scoped and locally validated. The new data-prep and benchmark scripts have clear input/output contracts and fail loudly on missing or malformed data. No production pipeline logic is changed in a way that would silently regress existing users. The row-index-based meeting selection in Important Files Changed
Reviews (8): Last reviewed commit: "Fix benchmark ruff lint" | Re-trigger Greptile |
| results = pipeline.run(executor) | ||
|
|
||
| num_tasks = len(results) if results else 0 | ||
| output_metrics = validate_tagging_outputs(results) |
There was a problem hiding this comment.
Tutorial now fails hard on empty-segment pipelines
validate_tagging_outputs raises RuntimeError when the pipeline produces zero tagged segments. Because there is no try/except around this call in the tutorial's main, any small or synthetic dataset that passes diarization but produces no PrepareModuleSegments output will crash with an unhandled exception — the PIPELINE COMPLETE block is never reached. Previously the tutorial logged num_tasks = 0 and completed normally, so this is a behavioural break for developers iterating against toy fixtures. Consider documenting in the tutorial that a non-trivial audio dataset producing at least one segment is required, or catching the validation error and printing a user-friendly hint before re-raising.
| source_id = data.get(self._unique_id_key) | ||
| if not source_id: | ||
| msg = f"Cannot repeat entry without '{self._unique_id_key}'" | ||
| raise ValueError(msg) |
There was a problem hiding this comment.
Use an explicit
None/empty-string check so that a legitimate ID value of 0 (or any other falsy non-empty value) does not incorrectly raise.
| source_id = data.get(self._unique_id_key) | |
| if not source_id: | |
| msg = f"Cannot repeat entry without '{self._unique_id_key}'" | |
| raise ValueError(msg) | |
| source_id = data.get(self._unique_id_key) | |
| if source_id is None or source_id == "": | |
| msg = f"Cannot repeat entry without '{self._unique_id_key}'" | |
| raise ValueError(msg) |
Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!
bf71137 to
00ff62a
Compare
|
🌿 Preview your docs: https://nvidia-preview-aaftabv-fix-audio-tagging-benchmarks.docs.buildwithfern.com/nemo/curator Here are the markdown pages you've updated: |
c0715c4 to
4dbec5b
Compare
884bb49 to
8facc37
Compare
07cbd64 to
2943bd1
Compare
Signed-off-by: V Mohammad Aaftab <aaftaabv@gmail.com>
Signed-off-by: V Mohammad Aaftab <aaftaabv@gmail.com>
Signed-off-by: V Mohammad Aaftab <aaftaabv@gmail.com>
Signed-off-by: V Mohammad Aaftab <aaftaabv@gmail.com>
Signed-off-by: V Mohammad Aaftab <aaftaabv@gmail.com>
4495478 to
f45278f
Compare
Summary
Adds a reproducible AMI-based audio-tagging benchmark setup and hardens the tagging benchmark so nightly runs fail when no useful work is done.
Features Added
benchmarking/data_prep/prepare_audio_tagging_data.pyto stage AMI SDM audio plus a local PyAnnote snapshot.benchmarking/nightly-data-setup.yamland--data-setup-configrunner support so benchmark data prep can run before nightly entries.--raw-data-dir,--no-auto-download, and a local diarization model path.run.shto keep benchmark containers reproducible.Validation
ruff check,ruff format --check,py_compile,git diff --check../benchmarking/tools/build_docker.sh --tag-as-latest.cuda>=12.9.Checklist