# Modification record ## Source - Repository: `nvidia/parakeet-tdt_ctc-0.6b-ja` - Revision: `44edb27eea9317daf89333e75eb830db4b1cc298` - Checkpoint SHA-256: `a2ed2aab9c82cce4e9b699dca669184d7525c7b5e1eb8c3f7b789421bc3637e8` ## Export 1. The pinned NeMo checkpoint was loaded in FP32. 2. The TDT branch was exported to an encoder and fused decoder/joint graph. 3. The CTC branch was exported as one monolithic graph. 4. The standalone TDT encoder export was rejected after numerical validation against the PyTorch encoder. 5. A faithful shared encoder was extracted from the CTC graph at `/Transpose_2_output_0` with the encoded length from `/Cast_output_0`. 6. The extracted encoder was validated against the PyTorch encoder. 7. The CTC projection, transpose, and log-softmax were extracted into a small `ctc-head-model.onnx` graph. Export environment: - NeMo: `3.1.0+b331a3488` - PyTorch: `2.12.0+cpu` - ONNX: `1.22.0` ## Quantization Only constant-weight `MatMul` operations in the shared encoder were quantized: ```text onnxruntime.quantization.quantize_dynamic( op_types_to_quantize=["MatMul"], weight_type=QInt8, per_channel=True, use_external_data_format=True, ) ``` - Quantization ONNX Runtime: `1.27.0` - Runtime validation ONNX Runtime: `1.24.4` - Execution provider: CPUExecutionProvider - TDT decoder/joint: exported FP32, not quantized - CTC head: exported FP32, not quantized - Vocabulary: unchanged from the pinned export The distribution omits the redundant monolithic CTC graph. Both TDT and CTC reuse the same quantized encoder. No fine-tuning was performed.