BL-23: clip_scope: global default paired with unreviewed clipping_norm: 1.0 may over-clip cache_model_0 reference weights
Maintainer antworten meist innerhalb von 1 Tag
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Anfängerfreundlichkeit
- 48/100
- Issue-Typ
- Bug
- Klarheit
- Größtenteils klar
- Aktivitätsstatus
- Aktiv
- Tech-Stack
- machine-learning, python
- Bereich
- backend, machine-learning
Rechercherichtung
Read cid_services/client.py, cache_model_0/manifest.json, and tests/test_cache_client_dp.py, then inspect how apply_dp_mechanism and clip_state_dict handle the global clipping bound. Run the mechanism on cache_model_0's trained state_dict and measure its combined L2 norm. If the bound clips weights aggressively, retune the manifest value and add a test for post-clip norm retention; done when the real weights are verified and the test passes.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
Summary
PR #109 (fix/dp-sensitivity) correctly defaults clip_scope to global so that noise_scale = noise_multiplier * clipping_norm is calibrated against the actual L2 bound on the combined gradient norm — the sensitivity-calibration fix itself is sound. But cache_model_0/manifest.json's clipping_norm: 1.0 was never revisited after this change, and no test in PR #109 exercises the new default against cache_model_0's real trained state_dict.
Why this matters
Under the old per_layer scope, clipping_norm: 1.0 bounded each tensor independently to norm 1.0.
Under global, clipping_norm: 1.0 bounds the combined L2 norm of all tensors to 1.0:
‖[tensor_0, tensor_1, …, tensor_n]‖₂ = sqrt(Σ ‖tensor_i‖²) ≤ 1.0
For a model with multiple floating tensors this is a much tighter constraint — sqrt(Σ ‖tensor_i‖²) can easily exceed 1.0 even if no individual tensor's norm changes. The result is that clip_state_dict clips more aggressively than before, which degrades model quality proportionally to how much the combined norm exceeds the bound.
PR #109's new tests (tests/test_cache_client_dp.py) use build_small_state_dict (synthetic tensors), not cache_model_0's real trained weights, so this is unverified.
Fix
- Run
apply_dp_mechanism/clip_state_dictagainstcache_model_0's actual trainedstate_dictunder the newglobaldefault. - Measure the combined L2 norm of the real weights before clipping.
- If
1.0clips aggressively (combined norm >> 1.0), retuneclipping_normincache_model_0/manifest.jsonto a value that allows the real weights to pass through unclipped or only lightly clipped. - Add a test in
tests/test_cache_client_dp.pythat loads the realstate_dictand asserts the combined norm post-clip is within a tolerance of the pre-clip norm.
References
Developer/BACK_LOG.mdBL-23- PR #109 (
fix/dp-sensitivity) — sensitivity fix andclip_scope: globaldefault cache_model_0/manifest.json—clipping_norm: 1.0,clip_scope: globaltests/test_cache_client_dp.py—build_small_state_dict(synthetic, not real weights)cid_services/client.py—clip_state_dict/apply_dp_mechanism
- Vorherrschende Sprache
- Python
- Sterne
- 4
- Forks
- 7
- Ø Merge
- 3 T. 7 Std.
- Gemergte PRs (30 T.)
- 33
Entwicklungsumgebung
Dieses Projekt bietet weder Dev-Container noch Dockerfile noch Beitragsleitfaden – die Einrichtung liegt bei Ihnen. Beginnen Sie mit der README; die allgemeinen Schritte stehen in unserem Leitfaden für den ersten Beitrag.
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus InfiniteZeroFoundation/DevNet
-
ROADMAP.md: refresh "What is still open for P3" (several items were fixed in October)Evtl. vergeben @umermjd11 hat das vor 5 Tagen übernommen. Offendocumentation good first issue
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 74/100
InfiniteZeroFoundation/DevNet#285 · 1 Kommentar · 1 zugewiesene Person ·
Maintainer antworten meist innerhalb von 1 Tag
-
Update the 25 translated organisation READMEs to match the English versionEvtl. vergeben @mrCabez hat das vor 3 Tagen übernommen. Offengood first issue help wanted
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 76/100
InfiniteZeroFoundation/DevNet#277 · 3 Kommentare · 1 zugewiesene Person ·
Maintainer antworten meist innerhalb von 1 Tag
-
Update the client-service guide to explain training and uploading separatelyEvtl. vergeben @Santiagocetran hat das vor 3 Tagen übernommen. Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 76/100
InfiniteZeroFoundation/DevNet#266 · 1 zugewiesene Person ·
Maintainer antworten meist innerhalb von 1 Tag
-
Few questions related to GI2 aggregatorEvtl. vergeben @Abidoyesimze hat das vor 2 Tagen übernommen. Offen
InfiniteZeroFoundation/DevNet#307 · 1 Kommentar · 1 Reaktion · 4 zugewiesene Personen ·
Maintainer antworten meist innerhalb von 1 Tag
-
bug python
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 52/100
InfiniteZeroFoundation/DevNet#306 ·
Maintainer antworten meist innerhalb von 1 Tag
Alle Issues in InfiniteZeroFoundation/DevNet
Ähnliche Issues
-
Schwierigkeit 1/5 1-3 Stunden Anfängerfreundlichkeit 68/100
MangasMango/bound-to-rot#41 · 1 Kommentar ·
-
breaking change
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 82/100
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 82/100
-
check-skill-pages: show fixture build errors when a build failsEvtl. vergeben @ShahadatTest hat das heute übernommen. Offengood first issue P2
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 85/100
coco-research/coco#439 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 70/100
IgniteRobotics/flashpoint#45 ·
Maintainer antworten meist innerhalb von 1 Tag