{"adoption": {"forks": 475, "observed_at": "2026-08-28T04:06:06.872675+00:00", "stars": 2026}, "canonical_url": "https://ross.abutalabs.com/products/privacy", "card": {"archived": false, "artifact_type": "library", "description": "Library for training machine learning models with privacy for training data", "domain": ["machine-learning", "privacy", "deep-learning"], "enriched": true, "function": ["machine-learning", "privacy", "security", "llm-training"], "health_score": 85, "homepage": null, "language": "Python", "license": "Apache-2.0", "license_family": "permissive", "maturity": "active", "member_repos": ["tensorflow/privacy"], "name": "tensorflow/privacy", "platform": ["python"], "pushed_at": "2026-08-26T19:07:16+00:00", "repo": "tensorflow/privacy", "stars": 2026, "tags": ["differential-privacy", "tensorflow", "dp-sgd", "gradient-clipping", "privacy-accounting"], "topics": ["machine-learning", "privacy"], "urls": [], "use_cases": ["train a neural network with differential privacy guarantees", "add DP-SGD gradient clipping to a Keras model", "compute the epsilon privacy budget of a training run", "test models for empirical privacy leakage", "train models on sensitive data like medical records"], "what_it_is": "TensorFlow Privacy is a Python library providing TensorFlow optimizers for training machine learning models with differential privacy. It includes tutorials and analysis tools for computing the privacy guarantees of trained models.", "when_to_avoid": ["you use PyTorch or JAX rather than TensorFlow (consider Opacus instead)", "you need privacy guarantees for inference or data release rather than model training", "you need production-grade DP training with minimal overhead on complex architectures"], "when_to_choose": ["you train TensorFlow models on sensitive or personal data and need formal privacy guarantees", "you need membership inference analysis or privacy accounting tools", "you want DP optimizers that integrate with existing Keras workflows"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/privacy", "repo": "tensorflow/privacy", "role": "main", "score": 67}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:06:06.872675+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T02:59:45.071128+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "010d0782ead50e2f5b3b45e040901022a450094c9ea3dc3e5972f8feae809421", "fetched_at": "2026-08-28T04:06:06.872675+00:00", "kind": "readme", "missing": false, "url": "https://github.com/tensorflow/privacy"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:06:06.872675+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T02:59:45.071128+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "010d0782ead50e2f5b3b45e040901022a450094c9ea3dc3e5972f8feae809421", "fetched_at": "2026-08-28T04:06:06.872675+00:00", "kind": "readme", "missing": false, "url": "https://github.com/tensorflow/privacy"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T02:59:45.071128+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "010d0782ead50e2f5b3b45e040901022a450094c9ea3dc3e5972f8feae809421", "fetched_at": "2026-08-28T04:06:06.872675+00:00", "kind": "readme", "missing": false, "url": "https://github.com/tensorflow/privacy"}], "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:06:06.872675+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:06:06.872675+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:06:06.872675+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T02:59:45.071128+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "010d0782ead50e2f5b3b45e040901022a450094c9ea3dc3e5972f8feae809421", "fetched_at": "2026-08-28T04:06:06.872675+00:00", "kind": "readme", "missing": false, "url": "https://github.com/tensorflow/privacy"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:06:06.872675+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:06:06.872675+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T02:59:45.071128+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "010d0782ead50e2f5b3b45e040901022a450094c9ea3dc3e5972f8feae809421", "fetched_at": "2026-08-28T04:06:06.872675+00:00", "kind": "readme", "missing": false, "url": "https://github.com/tensorflow/privacy"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:06:06.872675+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:06:06.872675+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:06:06.872675+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T02:59:45.071128+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "010d0782ead50e2f5b3b45e040901022a450094c9ea3dc3e5972f8feae809421", "fetched_at": "2026-08-28T04:06:06.872675+00:00", "kind": "readme", "missing": false, "url": "https://github.com/tensorflow/privacy"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:06:06.872675+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:06:06.872675+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T02:59:45.071128+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "010d0782ead50e2f5b3b45e040901022a450094c9ea3dc3e5972f8feae809421", "fetched_at": "2026-08-28T04:06:06.872675+00:00", "kind": "readme", "missing": false, "url": "https://github.com/tensorflow/privacy"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T02:59:45.071128+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "010d0782ead50e2f5b3b45e040901022a450094c9ea3dc3e5972f8feae809421", "fetched_at": "2026-08-28T04:06:06.872675+00:00", "kind": "readme", "missing": false, "url": "https://github.com/tensorflow/privacy"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T02:59:45.071128+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "010d0782ead50e2f5b3b45e040901022a450094c9ea3dc3e5972f8feae809421", "fetched_at": "2026-08-28T04:06:06.872675+00:00", "kind": "readme", "missing": false, "url": "https://github.com/tensorflow/privacy"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T02:59:45.071128+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "010d0782ead50e2f5b3b45e040901022a450094c9ea3dc3e5972f8feae809421", "fetched_at": "2026-08-28T04:06:06.872675+00:00", "kind": "readme", "missing": false, "url": "https://github.com/tensorflow/privacy"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 99, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 2812, "days_push": 7, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 67, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}