recipe(wav2vec-vm): refresh CPU audio-classification recipes - #1331
Draft
ssss141414 wants to merge 3 commits into
Draft
recipe(wav2vec-vm): refresh CPU audio-classification recipes#1331ssss141414 wants to merge 3 commits into
ssss141414 wants to merge 3 commits into
Conversation
Contributor
Author
|
APPROVE Independent review completed against exact head
Coverage is full for the chartered CPU FP32 and FP16 tuples; deferred tuples: none. Dependency #1326 must land before merge, and this approval does not change Draft state or authorize readiness/merge. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This refreshes the existing CPU FP32 and FP16 recipes for
jakeBland/wav2vec-vm-finetune, an English Wav2Vec2 human-versus-voicemail audio classifier originally contributed in #1114. Effort L0 refines two existing recipe files on the generic audio-classification evaluator from dependency #1326; Outcome L0 ships both CPU precisions, while the committed Goal reaches L3 PASS with full bounded coverage.Model metadata
What the model does
This English Wav2Vec2 classifier consumes the first two seconds of an isolated call response at 16 kHz and emits two logits that distinguish a live human response from a voicemail greeting.
Wav2Vec2ForSequenceClassificationandid2label={0: human, 1: voicemail}; the ONNX contract isinput_valuesfloat32[1,16000]tologitsfloat32[1,2](verified).Primary user stories
663b7dfbe8e08d615c6a83353a119e35d47903bd(verified).Supported tasks
audio-classificationthrough the checkpoint, Transformers, Optimum ONNX, and WinML surfaces. The pinned checkpoint pipeline tag and architecture identify the task; WinML resolvesAutoModelForAudioClassificationandWav2Vec2OnnxConfig(verified).Model architecture
mapped).Validation and support evidence
1. Baseline
Baseline authority is
microsoft/winml-climain commit0876e5ae1c98a169a6137e092e0d7b30bf9cee33, WinML0.3.0.export.compatibility.transformers_attention=eagerand without obsoleteloader.trust_remote_code; FP16 selectedquant.mode=fp16andfp16_keep_io_types=true.input_valuesfloat32[1,16000], andlogitsfloat32[1,2].audio-classificationwas rejected before dataset loading because main had no registered evaluator. Dependency recipe(ast): use eager attention for AudioSet model #1326 provides that generic evaluator and raw-streaming media fix.DIRECT-PROBE-BLOCKEDbecause locked Optimum imports a removed private symbol from Transformers 5.14.1. Independent WinML inspect/config/build resolution confirms the vendor Wav2Vec2 exporter; no WinML-specific task registration is added here.2. Goal
Goal success means CPU FP32/FP16 recipe-authority build, structure, realized precision, named-input runtime/perf/PyTorch parity, and final-SHA-pinned 42-row FP32 functional evaluation. The branch is a direct child of approved dependency #1326 at
1bd919b583aa8ccd974e35fa6a1a132ac7e1c9f8; dependent #1329 is intentionally not included because this dataset uses scalarClassLabel.3. Outcome
d15ac73b633d5bb0209a0b1a2e2f4e468df49e92, treec5b0034b60c3c0f06f46d11ec4dfe0bb96260a66.examples/recipes/jakeBland_wav2vec-vm-finetune/cpu/cpu/audio-classification_fp32_config.jsonandexamples/recipes/jakeBland_wav2vec-vm-finetune/cpu/cpu/audio-classification_fp16_config.json.gim-home/ModelKitArtifacts#254at90770910fcf0d2ddb0a0d76189b220fb89bdb726,wav2vec2.jsonSHA-2561496004226d438662b55f4db05ed8dbafec347111c9994a8ccdac13f21c8d443, findingswav2vec2-019andwav2vec2-020.No methodology friction observed.4. Per-EP/device/precision results and Functional smoke Eval
L0 build and realized precision
input_valuesfloat32[1,16000]andlogitsfloat32[1,2]. FP16 realizes half-size external weights while preserving float32 public IO.L2 PyTorch parity
The identical named input
sin(arange(16000) * 0.003)as float32[1,16000]was supplied byte-for-byte to pinned PyTorch revision663b7dfbe8e08d615c6a83353a119e35d47903bdand both ONNX sessions.L3 Functional smoke Eval
FP32 CPU only. This is end-to-end operability evidence on one exact pinned public dataset, not a checkpoint benchmark, representative accuracy result, or general voicemail-accuracy claim. No Eval accuracy was measured for FP16 or another EP.
d15ac73b633d5bb0209a0b1a2e2f4e468df49e92.herbiel/id-voicemail-dataset-v2revision3761e739c2b499461739f61f826ad4208467c7f7, configdefault, splittest, fingerprintb1fc4518bf13edee.0=human,1=voicemail.0.9523809523809523; represented-class macro-F10.9522727272727273; labels[human, voicemail]; confusion matrix[[19,1],[1,21]].5. Delta
The two checked-in recipes refine existing historical files and are structurally identical to the planner-generated current-main FP32/FP16 configurations. No product source, tests, shared evaluator, dependency file, or production recipe README changes are included.
Relative to the approved dependency-base historical recipes:
/export/compatibility/transformers_attentioneager/loader/trust_remote_codetrueAutoModelForAudioClassificationneeds no remote code/quant/taskaudio-classification/quant/model_idjakeBland/wav2vec-vm-finetune/quant/model_typewav2vec2Reducibility is consistent with the charter: no shipped field differs from generated baseline, no model-ID conditional or evaluator duplication is introduced, and recipe-free acceptance is not required for this recipe-only coverage refresh.
6. Analyze summary - component level and op level
ANALYZE-PARTIAL-SUCCESS: static rule analysis emitted complete JSON for both artifacts, but OpenVINO plugin registration failed on this host becauseonnxruntime_providers_shared.dllwas missing (Windows error 126). This is a host packaging caveat, not model incompatibility, an operator failure, or runtime execution evidence.Component-level summary
Op-level summary
No partial or unsupported operator types were reported. CUDA, MIGraphX, TensorRT, and DML have no shipped rule data, so their operator classifications remain unknown.
7. Reproduce commands
These guards acquire the exact public dependency and candidate refs, verify both advertised SHAs, and fail if the candidate is not the direct child tested above.
$OUTis a disposable relative output directory.The bounded L2 parity and L3 dataset harnesses are tester evidence rather than checked-in product files; their exact results and limits are transcribed above without inventing a public command surface.
Quality gates
src/ tests/winml.modelkitThis is a dependent Draft PR against
main: #1326 must land first, and its exact tested head is verified above. Historical context is #1114. Lane A knowledge is tracked separately ingim-home/ModelKitArtifacts#254at exact commit90770910fcf0d2ddb0a0d76189b220fb89bdb726; no Lane A files are present in this model PR.