From 54718c3793ee45790e2c42df82a17492de5bef1e Mon Sep 17 00:00:00 2001 From: Yong Yue Date: Wed, 15 Jul 2026 15:16:08 +0800 Subject: [PATCH] Add audio-classification fp32/fp16 recipes for jakeBland/wav2vec-vm-finetune Recipe-only PR. Adds fp32 and fp16 recipe configs for jakeBland/wav2vec-vm-finetune (Wav2Vec2ForSequenceClassification) on two verified EP/device combinations: cpu/cpu and dml/gpu. Recipes added: - examples/recipes/jakeBland_wav2vec-vm-finetune/cpu/cpu/audio-classification_fp32_config.json - examples/recipes/jakeBland_wav2vec-vm-finetune/cpu/cpu/audio-classification_fp16_config.json - examples/recipes/jakeBland_wav2vec-vm-finetune/dml/gpu/audio-classification_fp32_config.json - examples/recipes/jakeBland_wav2vec-vm-finetune/dml/gpu/audio-classification_fp16_config.json Goal ladder (verified on local hardware): - L0 (build): PASS on all 4 configs - L1 (perf): - cpu/cpu fp32: 128ms avg, 7.78 samples/s - cpu/cpu fp16: 128ms avg, 602MB (50% size reduction) - dml/gpu fp32: 35ms avg, 28.54 samples/s (3.7x vs cpu) - dml/gpu fp16: 35ms avg, 28.53 samples/s --- .../cpu/audio-classification_fp16_config.json | 54 +++++++++++++++++++ .../cpu/audio-classification_fp32_config.json | 35 ++++++++++++ .../gpu/audio-classification_fp16_config.json | 54 +++++++++++++++++++ .../gpu/audio-classification_fp32_config.json | 35 ++++++++++++ 4 files changed, 178 insertions(+) create mode 100644 examples/recipes/jakeBland_wav2vec-vm-finetune/cpu/cpu/audio-classification_fp16_config.json create mode 100644 examples/recipes/jakeBland_wav2vec-vm-finetune/cpu/cpu/audio-classification_fp32_config.json create mode 100644 examples/recipes/jakeBland_wav2vec-vm-finetune/dml/gpu/audio-classification_fp16_config.json create mode 100644 examples/recipes/jakeBland_wav2vec-vm-finetune/dml/gpu/audio-classification_fp32_config.json diff --git a/examples/recipes/jakeBland_wav2vec-vm-finetune/cpu/cpu/audio-classification_fp16_config.json b/examples/recipes/jakeBland_wav2vec-vm-finetune/cpu/cpu/audio-classification_fp16_config.json new file mode 100644 index 000000000..f08fc2112 --- /dev/null +++ b/examples/recipes/jakeBland_wav2vec-vm-finetune/cpu/cpu/audio-classification_fp16_config.json @@ -0,0 +1,54 @@ +{ + "export": { + "opset_version": 17, + "batch_size": 1, + "export_params": true, + "do_constant_folding": true, + "verbose": false, + "dynamo": false, + "enable_hierarchy_tags": true, + "clean_onnx": false, + "hierarchy_tag_format": "full", + "input_tensors": [ + { + "name": "input_values", + "dtype": "float32", + "shape": [1, 16000], + "value_range": [-1, 1] + } + ], + "output_tensors": [ + { + "name": "logits" + } + ] + }, + "optim": {}, + "quant": { + "mode": "fp16", + "samples": 10, + "calibration_method": "minmax", + "weight_type": "uint8", + "activation_type": "uint8", + "per_channel": false, + "symmetric": false, + "weight_symmetric": null, + "activation_symmetric": null, + "save_calibration": false, + "distribution": "uniform", + "seed": null, + "calibration_load_path": null, + "calibration_save_path": null, + "op_types_to_quantize": null, + "nodes_to_exclude": null, + "fp16_keep_io_types": true, + "fp16_op_block_list": null + }, + "compile": null, + "loader": { + "task": "audio-classification", + "model_class": "AutoModelForAudioClassification", + "model_type": "wav2vec2", + "trust_remote_code": true + } +} diff --git a/examples/recipes/jakeBland_wav2vec-vm-finetune/cpu/cpu/audio-classification_fp32_config.json b/examples/recipes/jakeBland_wav2vec-vm-finetune/cpu/cpu/audio-classification_fp32_config.json new file mode 100644 index 000000000..39021e0e2 --- /dev/null +++ b/examples/recipes/jakeBland_wav2vec-vm-finetune/cpu/cpu/audio-classification_fp32_config.json @@ -0,0 +1,35 @@ +{ + "export": { + "opset_version": 17, + "batch_size": 1, + "export_params": true, + "do_constant_folding": true, + "verbose": false, + "dynamo": false, + "enable_hierarchy_tags": true, + "clean_onnx": false, + "hierarchy_tag_format": "full", + "input_tensors": [ + { + "name": "input_values", + "dtype": "float32", + "shape": [1, 16000], + "value_range": [-1, 1] + } + ], + "output_tensors": [ + { + "name": "logits" + } + ] + }, + "optim": {}, + "quant": null, + "compile": null, + "loader": { + "task": "audio-classification", + "model_class": "AutoModelForAudioClassification", + "model_type": "wav2vec2", + "trust_remote_code": true + } +} diff --git a/examples/recipes/jakeBland_wav2vec-vm-finetune/dml/gpu/audio-classification_fp16_config.json b/examples/recipes/jakeBland_wav2vec-vm-finetune/dml/gpu/audio-classification_fp16_config.json new file mode 100644 index 000000000..f08fc2112 --- /dev/null +++ b/examples/recipes/jakeBland_wav2vec-vm-finetune/dml/gpu/audio-classification_fp16_config.json @@ -0,0 +1,54 @@ +{ + "export": { + "opset_version": 17, + "batch_size": 1, + "export_params": true, + "do_constant_folding": true, + "verbose": false, + "dynamo": false, + "enable_hierarchy_tags": true, + "clean_onnx": false, + "hierarchy_tag_format": "full", + "input_tensors": [ + { + "name": "input_values", + "dtype": "float32", + "shape": [1, 16000], + "value_range": [-1, 1] + } + ], + "output_tensors": [ + { + "name": "logits" + } + ] + }, + "optim": {}, + "quant": { + "mode": "fp16", + "samples": 10, + "calibration_method": "minmax", + "weight_type": "uint8", + "activation_type": "uint8", + "per_channel": false, + "symmetric": false, + "weight_symmetric": null, + "activation_symmetric": null, + "save_calibration": false, + "distribution": "uniform", + "seed": null, + "calibration_load_path": null, + "calibration_save_path": null, + "op_types_to_quantize": null, + "nodes_to_exclude": null, + "fp16_keep_io_types": true, + "fp16_op_block_list": null + }, + "compile": null, + "loader": { + "task": "audio-classification", + "model_class": "AutoModelForAudioClassification", + "model_type": "wav2vec2", + "trust_remote_code": true + } +} diff --git a/examples/recipes/jakeBland_wav2vec-vm-finetune/dml/gpu/audio-classification_fp32_config.json b/examples/recipes/jakeBland_wav2vec-vm-finetune/dml/gpu/audio-classification_fp32_config.json new file mode 100644 index 000000000..39021e0e2 --- /dev/null +++ b/examples/recipes/jakeBland_wav2vec-vm-finetune/dml/gpu/audio-classification_fp32_config.json @@ -0,0 +1,35 @@ +{ + "export": { + "opset_version": 17, + "batch_size": 1, + "export_params": true, + "do_constant_folding": true, + "verbose": false, + "dynamo": false, + "enable_hierarchy_tags": true, + "clean_onnx": false, + "hierarchy_tag_format": "full", + "input_tensors": [ + { + "name": "input_values", + "dtype": "float32", + "shape": [1, 16000], + "value_range": [-1, 1] + } + ], + "output_tensors": [ + { + "name": "logits" + } + ] + }, + "optim": {}, + "quant": null, + "compile": null, + "loader": { + "task": "audio-classification", + "model_class": "AutoModelForAudioClassification", + "model_type": "wav2vec2", + "trust_remote_code": true + } +}