[codex] Fuse NeMo transcribe diarize actor#43
Conversation
Performance ResultsThese are the measurements captured while developing this PR. The smoke result is from the current pushed commit ( Current fused actor smokeCommand: MODAL_PROFILE=everett-38139 uv run --extra models modal run pipelines/transcribe_diarize/modal_app.py::measure \
--source '/audio/flac/Build_Scalable_Batch_Inference_Pipelines_in_3_Lines_Daft_GPT_vLLM_0.00_2.38.flac' \
--config parakeet+sortformerResult:
This smoke is mainly a runtime/API validation because the clip is too small for stable throughput conclusions. 2-hour L40S scale runArtifact:
The old linear path did not produce a comparable throughput number:
Artifact: Real-file processing runsIMG_3800:
Artifacts:
Zoom batch:
Artifact: MarbleNet VAD threshold benchArtifact: On the 155.64s sample, threshold
Threshold Profiler smokeArtifact:
|
Summary
TranscribeDiarizeVadDaft class that loads Parakeet, MarbleNet VAD, and Sortformer directly in__init__and runs decode, VAD, ASR, diarization, speaker merge, and VAD stats in oneprocessmethod.batch_size=1calls from the NeMo ASR/diarization path.Why
The previous implementation kept model weights resident but still crossed Daft graph/host boundaries between VAD, ASR, and diarization. This PR makes the Daft actor itself the residency boundary and keeps model inference orchestration inside one device-resident class.
Validation
uv run --extra models python -m py_compile models/common/speech.py models/common/vad.py models/parakeet/model.py models/sortformer/model.py pipelines/transcribe_diarize/pipeline.py pipelines/transcribe_diarize/modal_app.py pipelines/transcribe_diarize/benchmark.pyuv run --extra lint ruff check models/common/speech.py models/common/vad.py models/parakeet/model.py models/sortformer/model.py pipelines/transcribe_diarize/pipeline.py pipelines/transcribe_diarize/modal_app.py pipelines/transcribe_diarize/benchmark.pyMODAL_PROFILE=everett-38139 uv run --extra models modal run pipelines/transcribe_diarize/modal_app.py::measure --source '/audio/flac/Build_Scalable_Batch_Inference_Pipelines_in_3_Lines_Daft_GPT_vLLM_0.00_2.38.flac' --config parakeet+sortformer