{"adoption": {"forks": 285, "observed_at": "2026-08-28T04:05:40.074513+00:00", "stars": 1816}, "canonical_url": "https://ross.abutalabs.com/products/ppq", "card": {"archived": false, "artifact_type": "library", "description": "PPL Quantization Tool (PPQ) is a powerful offline neural network quantization tool.", "domain": ["deep-learning", "machine-learning", "gpu-computing", "developer-tools"], "enriched": true, "function": ["machine-learning", "deep-learning", "compiler", "benchmarking", "parser"], "health_score": 20, "homepage": null, "language": "Python", "license": "Apache-2.0", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["OpenPPL/ppq"], "name": "OpenPPL/ppq", "platform": ["python", "windows"], "pushed_at": "2024-03-28T04:26:28+00:00", "repo": "OpenPPL/ppq", "stars": 1816, "tags": ["quantization", "model-optimization", "onnx", "pytorch", "inference-deployment", "qat", "fp8", "neural-network-acceleration", "linux", "cuda", "gpu"], "topics": ["neural-network", "deep-learning", "quantization", "pytorch", "caffe", "onnx", "cuda", "open-source"], "urls": [], "use_cases": ["quantize a neural network model for edge deployment", "convert an onnx model to int8 for tensorrt", "simulate quantized inference on different hardware platforms", "perform quantization-aware training on a model", "calibrate quantization parameters for a custom accelerator", "export a quantized model to ncnn or openvino"], "what_it_is": "PPQ (PPL Quantization Tool) is an extensible, high-performance offline neural network quantization framework written in Python. It parses and quantizes complex model graphs (ONNX, PyTorch, Caffe), supports FP8 and QAT, and exports to inference engines like TensorRT, OpenPPL, OpenVINO, ncnn, and SNPE.", "when_to_avoid": ["you just need simple one-click post-training quantization with minimal configuration", "your workflow is TensorFlow-only, since PPQ focuses on ONNX, PyTorch, and Caffe", "you need a maintained tool with frequent releases, as the latest release dates to early 2024"], "when_to_choose": ["you need fine-grained control over per-operator quantization settings and custom quantization passes", "you target multiple inference backends like TensorRT, OpenPPL, ncnn, or SNPE", "you need FP8 or QAT support alongside standard PTQ calibration", "you want to experiment with quantization research on custom hardware"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/ppq", "repo": "OpenPPL/ppq", "role": "main", "score": 23}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:05:40.074513+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T03:20:34.515397+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "874c2b59348e214b67f9c69fb170fa8e842295452b1fe30d7193405bc037f84c", "fetched_at": "2026-08-28T04:05:40.074513+00:00", "kind": "readme", "missing": false, "url": "https://github.com/OpenPPL/ppq"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:05:40.074513+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T03:20:34.515397+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "874c2b59348e214b67f9c69fb170fa8e842295452b1fe30d7193405bc037f84c", "fetched_at": "2026-08-28T04:05:40.074513+00:00", "kind": "readme", "missing": false, "url": "https://github.com/OpenPPL/ppq"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T03:20:34.515397+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "874c2b59348e214b67f9c69fb170fa8e842295452b1fe30d7193405bc037f84c", "fetched_at": "2026-08-28T04:05:40.074513+00:00", "kind": "readme", "missing": false, "url": "https://github.com/OpenPPL/ppq"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:05:40.074513+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:05:40.074513+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:05:40.074513+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T03:20:34.515397+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "874c2b59348e214b67f9c69fb170fa8e842295452b1fe30d7193405bc037f84c", "fetched_at": "2026-08-28T04:05:40.074513+00:00", "kind": "readme", "missing": false, "url": "https://github.com/OpenPPL/ppq"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:05:40.074513+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:05:40.074513+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T03:20:34.515397+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "874c2b59348e214b67f9c69fb170fa8e842295452b1fe30d7193405bc037f84c", "fetched_at": "2026-08-28T04:05:40.074513+00:00", "kind": "readme", "missing": false, "url": "https://github.com/OpenPPL/ppq"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:05:40.074513+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:05:40.074513+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:05:40.074513+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T03:20:34.515397+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "874c2b59348e214b67f9c69fb170fa8e842295452b1fe30d7193405bc037f84c", "fetched_at": "2026-08-28T04:05:40.074513+00:00", "kind": "readme", "missing": false, "url": "https://github.com/OpenPPL/ppq"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:05:40.074513+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:05:40.074513+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T03:20:34.515397+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "874c2b59348e214b67f9c69fb170fa8e842295452b1fe30d7193405bc037f84c", "fetched_at": "2026-08-28T04:05:40.074513+00:00", "kind": "readme", "missing": false, "url": "https://github.com/OpenPPL/ppq"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T03:20:34.515397+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "874c2b59348e214b67f9c69fb170fa8e842295452b1fe30d7193405bc037f84c", "fetched_at": "2026-08-28T04:05:40.074513+00:00", "kind": "readme", "missing": false, "url": "https://github.com/OpenPPL/ppq"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T03:20:34.515397+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "874c2b59348e214b67f9c69fb170fa8e842295452b1fe30d7193405bc037f84c", "fetched_at": "2026-08-28T04:05:40.074513+00:00", "kind": "readme", "missing": false, "url": "https://github.com/OpenPPL/ppq"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T03:20:34.515397+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "874c2b59348e214b67f9c69fb170fa8e842295452b1fe30d7193405bc037f84c", "fetched_at": "2026-08-28T04:05:40.074513+00:00", "kind": "readme", "missing": false, "url": "https://github.com/OpenPPL/ppq"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 1707, "days_push": 888, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 23, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}