{"adoption": {"forks": 83, "observed_at": "2026-08-28T04:03:21.618512+00:00", "stars": 1046}, "canonical_url": "https://ross.abutalabs.com/products/opendelta", "card": {"archived": false, "artifact_type": "library", "description": "A plug-and-play library for parameter-efficient-tuning (Delta Tuning)", "domain": ["machine-learning", "deep-learning"], "enriched": true, "function": ["machine-learning", "deep-learning", "nlp"], "health_score": 20, "homepage": "https://opendelta.readthedocs.io", "language": "Python", "license": "Apache-2.0", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["thunlp/OpenDelta"], "name": "thunlp/OpenDelta", "platform": ["python"], "pushed_at": "2024-09-19T08:33:56+00:00", "repo": "thunlp/OpenDelta", "stars": 1046, "tags": ["parameter-efficient-tuning", "delta-tuning", "lora", "adapters", "prefix-tuning", "pytorch", "transformers", "prompt-tuning", "natural-language-processing"], "topics": ["nlp", "nlp-library", "pretrained-language-model", "parameter-efficient-learning", "deep-learning"], "urls": [], "use_cases": ["fine-tune large language models with LoRA instead of full fine-tuning", "add adapters to a pretrained transformer while freezing base weights", "implement prefix tuning or soft prompt tuning on BART or T5", "serve multiple tasks from one frozen PLM with small delta modules", "reduce GPU memory and storage costs when fine-tuning pretrained models", "experiment with parameter-efficient learning methods on Hugging Face models"], "what_it_is": "OpenDelta is a Python library for parameter-efficient tuning (delta tuning) of pretrained language models, letting users attach small trainable modules like adapters, LoRA, or prefix-tuning while freezing the rest. It plugs into PyTorch and Hugging Face Transformers models with flexible, name-based module addressing.", "when_to_avoid": ["you need full fine-tuning of all model parameters", "you work outside PyTorch or with non-Transformers model architectures", "you need actively maintained support for the latest LLM architectures"], "when_to_choose": ["you want plug-and-play parameter-efficient tuning on PyTorch/Transformers models", "you need to swap between adapter, LoRA, prefix-tuning, and other delta methods", "you want space-saving multitask serving with a shared frozen backbone"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/opendelta", "repo": "thunlp/OpenDelta", "role": "main", "score": 23}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:03:21.618512+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T07:02:00.102382+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a70cbbf90e28ff3aaa69b4c779ab4c6f4b2315a8207a8d8d9b81440229055699", "fetched_at": "2026-08-28T04:03:21.618512+00:00", "kind": "readme", "missing": false, "url": "https://github.com/thunlp/OpenDelta"}, {"content_hash": "5a36bbf7fbbc6d8f7f92db728c01b3b2b209df8a2564270b117748ba700dacf7", "fetched_at": "2026-08-29T13:03:30.727375+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/opendelta/json"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:03:21.618512+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T07:02:00.102382+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a70cbbf90e28ff3aaa69b4c779ab4c6f4b2315a8207a8d8d9b81440229055699", "fetched_at": "2026-08-28T04:03:21.618512+00:00", "kind": "readme", "missing": false, "url": "https://github.com/thunlp/OpenDelta"}, {"content_hash": "5a36bbf7fbbc6d8f7f92db728c01b3b2b209df8a2564270b117748ba700dacf7", "fetched_at": "2026-08-29T13:03:30.727375+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/opendelta/json"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T07:02:00.102382+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a70cbbf90e28ff3aaa69b4c779ab4c6f4b2315a8207a8d8d9b81440229055699", "fetched_at": "2026-08-28T04:03:21.618512+00:00", "kind": "readme", "missing": false, "url": "https://github.com/thunlp/OpenDelta"}, {"content_hash": "5a36bbf7fbbc6d8f7f92db728c01b3b2b209df8a2564270b117748ba700dacf7", "fetched_at": "2026-08-29T13:03:30.727375+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/opendelta/json"}], "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:03:21.618512+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:03:21.618512+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:03:21.618512+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T07:02:00.102382+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a70cbbf90e28ff3aaa69b4c779ab4c6f4b2315a8207a8d8d9b81440229055699", "fetched_at": "2026-08-28T04:03:21.618512+00:00", "kind": "readme", "missing": false, "url": "https://github.com/thunlp/OpenDelta"}, {"content_hash": "5a36bbf7fbbc6d8f7f92db728c01b3b2b209df8a2564270b117748ba700dacf7", "fetched_at": "2026-08-29T13:03:30.727375+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/opendelta/json"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:03:21.618512+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:03:21.618512+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T07:02:00.102382+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a70cbbf90e28ff3aaa69b4c779ab4c6f4b2315a8207a8d8d9b81440229055699", "fetched_at": "2026-08-28T04:03:21.618512+00:00", "kind": "readme", "missing": false, "url": "https://github.com/thunlp/OpenDelta"}, {"content_hash": "5a36bbf7fbbc6d8f7f92db728c01b3b2b209df8a2564270b117748ba700dacf7", "fetched_at": "2026-08-29T13:03:30.727375+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/opendelta/json"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:03:21.618512+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:03:21.618512+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:03:21.618512+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T07:02:00.102382+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a70cbbf90e28ff3aaa69b4c779ab4c6f4b2315a8207a8d8d9b81440229055699", "fetched_at": "2026-08-28T04:03:21.618512+00:00", "kind": "readme", "missing": false, "url": "https://github.com/thunlp/OpenDelta"}, {"content_hash": "5a36bbf7fbbc6d8f7f92db728c01b3b2b209df8a2564270b117748ba700dacf7", "fetched_at": "2026-08-29T13:03:30.727375+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/opendelta/json"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:03:21.618512+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:03:21.618512+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T07:02:00.102382+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a70cbbf90e28ff3aaa69b4c779ab4c6f4b2315a8207a8d8d9b81440229055699", "fetched_at": "2026-08-28T04:03:21.618512+00:00", "kind": "readme", "missing": false, "url": "https://github.com/thunlp/OpenDelta"}, {"content_hash": "5a36bbf7fbbc6d8f7f92db728c01b3b2b209df8a2564270b117748ba700dacf7", "fetched_at": "2026-08-29T13:03:30.727375+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/opendelta/json"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T07:02:00.102382+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a70cbbf90e28ff3aaa69b4c779ab4c6f4b2315a8207a8d8d9b81440229055699", "fetched_at": "2026-08-28T04:03:21.618512+00:00", "kind": "readme", "missing": false, "url": "https://github.com/thunlp/OpenDelta"}, {"content_hash": "5a36bbf7fbbc6d8f7f92db728c01b3b2b209df8a2564270b117748ba700dacf7", "fetched_at": "2026-08-29T13:03:30.727375+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/opendelta/json"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T07:02:00.102382+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a70cbbf90e28ff3aaa69b4c779ab4c6f4b2315a8207a8d8d9b81440229055699", "fetched_at": "2026-08-28T04:03:21.618512+00:00", "kind": "readme", "missing": false, "url": "https://github.com/thunlp/OpenDelta"}, {"content_hash": "5a36bbf7fbbc6d8f7f92db728c01b3b2b209df8a2564270b117748ba700dacf7", "fetched_at": "2026-08-29T13:03:30.727375+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/opendelta/json"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T07:02:00.102382+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "a70cbbf90e28ff3aaa69b4c779ab4c6f4b2315a8207a8d8d9b81440229055699", "fetched_at": "2026-08-28T04:03:21.618512+00:00", "kind": "readme", "missing": false, "url": "https://github.com/thunlp/OpenDelta"}, {"content_hash": "5a36bbf7fbbc6d8f7f92db728c01b3b2b209df8a2564270b117748ba700dacf7", "fetched_at": "2026-08-29T13:03:30.727375+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/opendelta/json"}], "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": 1661, "days_push": 713, "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}}