BL-23: clip_scope: global default paired with unreviewed clipping_norm: 1.0 may over-clip cache_model_0 reference weights
Mantenedores costumam responder em até 1 dia
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 4/5
- Tempo estimado
- 3-5 dias
- Facilidade para iniciantes
- 48/100
- Tipo de issue
- Bug
- Clareza
- Razoavelmente clara
- Status de atividade
- Ativa
- Stack de tecnologia
- machine-learning, python
- Domínio
- backend, machine-learning
Direção de pesquisa
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.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
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
- Linguagem predominante
- Python
- Estrelas
- 4
- Forks
- 7
- Merge médio
- 3d 5h
- PRs com merge (30d)
- 34
Preparar o ambiente
Este projeto não oferece contêiner de desenvolvimento, Dockerfile nem guia de contribuição, então a configuração fica por sua conta: comece pelo README e veja nosso guia da primeira contribuição para os passos gerais.
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de InfiniteZeroFoundation/DevNet
-
ROADMAP.md: refresh "What is still open for P3" (several items were fixed in October)Talvez já em andamento @umermjd11 assumiu há 4 dias. Abertadocumentation good first issue
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 74/100
InfiniteZeroFoundation/DevNet#285 · 1 comentário · 1 responsável ·
Mantenedores costumam responder em até 1 dia
-
Update the 25 translated organisation READMEs to match the English versionTalvez já em andamento @mrCabez assumiu há 1 dia. Abertagood first issue help wanted
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 76/100
InfiniteZeroFoundation/DevNet#277 · 2 comentários · 1 responsável ·
Mantenedores costumam responder em até 1 dia
-
Update the client-service guide to explain training and uploading separatelyTalvez já em andamento @Santiagocetran assumiu há 1 dia. Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 76/100
InfiniteZeroFoundation/DevNet#266 · 1 responsável ·
Mantenedores costumam responder em até 1 dia
-
Few questions related to GI2 aggregatorTalvez já em andamento @Abidoyesimze assumiu há 1 dia. Aberta
InfiniteZeroFoundation/DevNet#307 · 1 reação · 4 responsáveis ·
Mantenedores costumam responder em até 1 dia
-
bug python
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 52/100
InfiniteZeroFoundation/DevNet#306 ·
Mantenedores costumam responder em até 1 dia
Todas as issues de InfiniteZeroFoundation/DevNet
Issues semelhantes
-
bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 74/100
BCDA-APS/polar-bits#93 ·
-
infer_audio_type only recognises one MPEG Layer III frame header, so most MP3 files are rejectedTalvez já em andamento @Steve-20-ai assumiu hoje. Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
Mantenedores costumam responder em até 1 dia
-
[BUG] - ssh_config `Match tagged` statement always appliesTalvez já em andamento @AtharvRG assumiu hoje. AbertaBug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 68/100
paramiko/paramiko#2715 · 1 comentário ·
Mantenedores costumam responder em até 9 dias
-
auto-rejected intake mcp-intake needs-salvage priority:high type:feature
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 65/100
Ikalus1988/MisakaNet#4221 · 2 comentários ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 82/100
Mantenedores costumam responder em até 1 dia