{ "status": "generated_and_validated", "format": "tiny_receipt_vqa_onnx_w8a8_u8s8_qdq_v1", "mode": "static_w8a8_qdq", "quant_format": "QDQ", "scheme": "U8S8", "weight_dtype": "int8", "weight_granularity": "per_output_channel", "activation_dtype": "uint8", "activation_granularity": "per_tensor", "accumulation_dtype": "int32", "operators": [ "Conv", "MatMul", "Gemm" ], "calibration": { "source": "synthetic_training_split", "heldout_used": false, "records": 256, "decoder_feeds": 768, "receipt_limit": 1024, "prefixes_per_record": 3, "family_counts": { "address": 43, "item_lookup": 42, "item_math": 42, "item_row": 43, "phone": 43, "store": 43 }, "seed": 71 }, "runtime_validation": { "onnxruntime": "passed", "provider": "CPUExecutionProvider", "family_ids": [ -1, 0, 1, 2, 3, 4, 5, 6, 7 ], "dynamic_prefix_lengths": [ 1, 10, 20 ], "onnxruntime_version": "1.23.2" }, "onnx_checker": "passed", "preprocessing_seconds": { "encoder": 1.0108887921087444, "decoder": 0.49629638995975256 }, "quantization_seconds": { "encoder": 54.21439538593404, "decoder": 9.798198190983385 }, "total_seconds": 67.12692705495283, "models": { "encoder": { "source": "encoder_model.onnx", "output": "encoder_model_int8.onnx", "source_bytes": 58500824, "output_bytes": 17808595, "size_ratio": 0.3044161395060008, "sha256": "924a60cfa8172456131aedb2e672af2ad1de7e4fa975bf14f4837a49e09cec94", "graph": { "nodes": { "Add": 69, "ArgMax": 1, "Cast": 1, "Clip": 2, "Concat": 24, "Conv": 13, "DequantizeLinear": 167, "Div": 9, "Equal": 1, "Erf": 8, "Expand": 3, "Gather": 23, "Gemm": 8, "GreaterOrEqual": 1, "InstanceNormalization": 13, "LayerNormalization": 12, "MatMul": 32, "Mul": 57, "Not": 1, "QuantizeLinear": 120, "ReduceSum": 2, "Reshape": 100, "Shape": 22, "Sigmoid": 13, "Slice": 19, "Softmax": 6, "Squeeze": 8, "Transpose": 51, "Unsqueeze": 9, "Where": 2 }, "initializers": { "BOOL": 1, "FLOAT": 254, "INT32": 16, "INT64": 20, "INT8": 78, "UINT8": 120 } }, "optimized_graph": { "nodes": { "Add": 69, "ArgMax": 1, "Cast": 1, "Clip": 2, "Concat": 24, "DequantizeLinear": 67, "Div": 9, "Equal": 1, "Erf": 8, "Expand": 3, "Gather": 5, "GreaterOrEqual": 1, "InstanceNormalization": 13, "LayerNormalization": 12, "Mul": 44, "Not": 1, "QGemm": 8, "QLinearConv": 13, "QLinearMatMul": 32, "QuantizeLinear": 61, "QuickGelu": 13, "ReduceSum": 2, "Reshape": 100, "Shape": 22, "Slice": 19, "Softmax": 6, "Split": 6, "Squeeze": 26, "Transpose": 77, "Unsqueeze": 9, "Where": 2 }, "initializers": { "BOOL": 1, "FLOAT": 240, "INT32": 8, "INT64": 42, "INT8": 78, "UINT8": 120 } } }, "decoder": { "source": "decoder_model.onnx", "output": "decoder_model_int8.onnx", "source_bytes": 29924405, "output_bytes": 10917677, "size_ratio": 0.36484190746649764, "sha256": "24dbf7411719fea928f1f249db9b981eedf4b3af6751bec0970f242ca3f99d0a", "graph": { "nodes": { "Add": 51, "Clip": 1, "Concat": 31, "DequantizeLinear": 146, "Div": 5, "Equal": 1, "Erf": 5, "Expand": 6, "Gather": 25, "Gemm": 8, "LayerNormalization": 13, "MatMul": 39, "Mul": 28, "QuantizeLinear": 109, "Reshape": 97, "Shape": 14, "Slice": 25, "Softmax": 8, "Squeeze": 10, "Transpose": 67, "Trilu": 1, "Unsqueeze": 11, "Where": 3 }, "initializers": { "BOOL": 1, "FLOAT": 205, "INT32": 16, "INT64": 17, "INT8": 58, "UINT8": 109 } }, "optimized_graph": { "nodes": { "Add": 51, "Clip": 1, "Concat": 31, "DequantizeLinear": 40, "Div": 5, "Equal": 1, "Erf": 5, "Expand": 6, "Gather": 5, "LayerNormalization": 13, "Mul": 28, "QGemm": 8, "QLinearMatMul": 39, "QuantizeLinear": 54, "Reshape": 97, "Shape": 14, "Slice": 25, "Softmax": 8, "Split": 8, "Squeeze": 30, "Transpose": 67, "Trilu": 1, "Unsqueeze": 11, "Where": 3 }, "initializers": { "BOOL": 1, "FLOAT": 186, "INT32": 8, "INT64": 44, "INT8": 58, "UINT8": 109 } } } }, "heldout_evaluation": { "status": "passed", "dataset": "eval/heldout supported phone/address records", "records_total": 2000, "routing": "learned_router", "evaluation_mode": "final_split_onnx_files", "runtime": { "library": "onnxruntime", "version": "1.23.2", "provider": "CUDAExecutionProvider" }, "batch_size": 24, "artifacts": { "fp32": { "encoder": { "filename": "encoder_model.onnx", "bytes": 58500824, "sha256": "0c6469ef75eeb266c3dbc77c414d658f98f704264b72bdc7dfeed9cf37217db7" }, "decoder": { "filename": "decoder_model.onnx", "bytes": 29924405, "sha256": "3fff897777fa5e9805c01a6779812f4adf33e1294f4e2003dd823c04a3300b05" } }, "int8": { "encoder": { "filename": "encoder_model_int8.onnx", "bytes": 17808595, "sha256": "924a60cfa8172456131aedb2e672af2ad1de7e4fa975bf14f4837a49e09cec94" }, "decoder": { "filename": "decoder_model_int8.onnx", "bytes": 10917677, "sha256": "24dbf7411719fea928f1f249db9b981eedf4b3af6751bec0970f242ca3f99d0a" } } }, "summary": { "fp32": { "address": { "n": 1032, "answer_exact": 0.9496124031007752, "recomputed_n": 1032, "recomputed_answer_exact": 0.9486434108527132, "target_exact": 0.015503875968992248 }, "overall": { "n": 2000, "answer_exact": 0.9705, "recomputed_n": 2000, "recomputed_answer_exact": 0.97, "target_exact": 0.453 }, "phone_number": { "n": 968, "answer_exact": 0.9927685950413223, "recomputed_n": 968, "recomputed_answer_exact": 0.9927685950413223, "target_exact": 0.9194214876033058 } }, "int8": { "address": { "n": 1032, "answer_exact": 0.9437984496124031, "recomputed_n": 1032, "recomputed_answer_exact": 0.9457364341085271, "target_exact": 0.01065891472868217 }, "overall": { "n": 2000, "answer_exact": 0.968, "recomputed_n": 2000, "recomputed_answer_exact": 0.969, "target_exact": 0.4505 }, "phone_number": { "n": 968, "answer_exact": 0.993801652892562, "recomputed_n": 968, "recomputed_answer_exact": 0.993801652892562, "target_exact": 0.9194214876033058 } } }, "comparison": { "answer_agreement": 0.9925, "changed_predictions": 388, "n": 2000, "prediction_exact_agreement": 0.806, "selected_family_agreement": 1.0 }, "timing": { "fp32": { "encoder_seconds": 4.9500676593743265, "decoder_seconds": 20.797384655103087, "total_seconds": 25.747452314477414, "decoder_calls": 2953, "providers": [ "CUDAExecutionProvider", "CPUExecutionProvider" ], "encoder": "encoder_model.onnx", "decoder": "decoder_model.onnx" }, "int8": { "encoder_seconds": 5.913507376797497, "decoder_seconds": 26.702236368786544, "total_seconds": 32.61574374558404, "decoder_calls": 2944, "providers": [ "CUDAExecutionProvider", "CPUExecutionProvider" ], "encoder": "encoder_model_int8.onnx", "decoder": "decoder_model_int8.onnx" } }, "timing_note": "Static W8A8 speed depends on QDQ fusion and the selected execution provider." }, "runtime_note": "Supported QDQ regions can be fused into integer kernels; performance depends on the execution provider." }