Skip to content

fix(qc): QC-Py-31 — entrainement degenere + reference committee non reproductible depuis le code actuel #17838

Description

@jsboige

Deux defauts preexistants de QC-Py-31-Transformer-Training.ipynb, mesures pendant le controle de #17836. Aucun des deux n'est cause par le correctif de determinisme de #17836, et aucun n'est corrige par lui.

1. La reference committee de main n'est pas reproductible depuis le code actuel

Le carnet de main, non modifie, execute avec QC31_FORCE_RETRAIN=1 (entrainement depuis zero), meme machine :

epochs Correlation Direction Accuracy
sorties committees dans main 17 0.0098 56,23 %
execution de controle (main non modifie) 9 (early stop, patience 7) -0.0144 56,23 %

Ce que main execute aujourd'hui ne produit pas ce que main a commite. Les sorties commitees proviennent donc d'un etat que le code actuel ne reproduit pas (checkpoint repris, ou version anterieure du carnet).

Portee honnete de la mesure : une seule execution de controle suffit a refuter « la reference committee est ce que le code produit ». Elle n'etablit pas que main est variable d'un run a l'autre — cela demanderait n>=2 executions, qui n'ont pas ete faites. Les deux hypotheses restent ouvertes.

2. L'entrainement est degenere

Dans les trois points de mesure (sorties committee, controle, run de #17836) :

  • Correlation ~ 0 : 0.0098 / -0.0144 / nan
  • Direction Accuracy 56,23 % = exactement la classe majoritaire (Ecart vs classe majoritaire: -0.00 points)

Le modele n'apprend rien : il predit la classe majoritaire. Le 0.0098 de la reference committee n'est pas meilleur que le nan du run de #17836 — les deux sont une absence d'apprentissage.

Detail secondaire mesure, a ne pas surinterpreter : l'ecart nan (predictions parfaitement constantes -> ecart-type nul -> correlation indefinie, 0 quantile) contre -0.0144 (non constantes mais non correlees, 1 quantile) montre que l'ordre CUBLAS_WORKSPACE_CONFIG / import torch change bien les numeriques, assez pour faire basculer « constant » / « presque constant ». Sur un modele degenere, c'est une distinction sans difference.

Acceptance

  • Determiner d'ou viennent les sorties commitees a 17 epochs (checkpoint repris ? version anterieure du carnet ? commit d'origine identifie) et le documenter dans le carnet.
  • Re-executer le carnet depuis zero sur main et committer des sorties reproductibles par le code courant (H.1/C.2).
  • Diagnostiquer la degenerescence : l'early stopping a patience 7 coupe a l'epoch 9 sur 25 prevus dans les deux configurations. Verifier si c'est le budget d'epochs, le taux d'apprentissage, la fenetre de validation, ou les donnees — et non un simple nan de correlation.
  • Si une variabilite run-a-run est confirmee (n>=2), la quantifier et la borner ; sinon, ecrire que la trajectoire est stable et que seule la reference committee etait perimee.

Contexte

Decouvert en cherchant a attribuer l'ecart 17 vs 9 epochs observe dans #17836. Mon attribution initiale (le correctif de determinisme deplace la trajectoire) a ete refutee par ce controle : le carnet de main donne 9 epochs sans le correctif. Le detail complet est en commentaire de #17836.

Le correctif de determinisme lui-meme reste valide et independant : CUBLAS_WORKSPACE_CONFIG est lue a l'initialisation du contexte CUDA, donc posee apres import torch elle n'atteint jamais cuBLAS.

— myia-po-2026:CoursIA

Activity

  1. jsboige commented on Sep 25, 2026

    @jsboige
    OwnerAuthor

    [CLAIMED] lane myia-po-2024:CoursIA-2 -- QC-Py-31 : reproductibilite du carnet d'entrainement (origine des 17 epochs, diagnostic de degenerescence, re-execution)
    paths: MyIA.AI.Notebooks/QuantConnect/Python/QC-Py-31-Transformer-Training.ipynb

    Grain: DEEP/qc -- lane myia-po-2024:CoursIA-2 -- prev: MED/notebook-dotnet #17847

    Poursuite directe du grain DEEP/qc deja ouvert par cette lane sur #17584 ([CLAIMED] du 2026-09-25T01:45Z, meme carnet, meme chemin). #17838 est le constat consolide qui a suivi : cette issue en devient le porteur, #17584 restant a l'arbitrage du coordinateur.

  2. added 6 commits that reference this issue on Sep 25, 2026
  3. added a commit that references this issue on Sep 27, 2026
  4. added
    candidate-deliveredReferenced by a merged PR with no post-merge activity -- candidate for close triage (#10466)
    on Sep 27, 2026
  5. jsboige commented on Sep 27, 2026

    @jsboige
    OwnerAuthor

    [CLOSURE PREFLIGHT]
    schema: 1
    lane: myia-po-2026:CoursIA-3
    issue: 17838
    verdict: CLOSE
    acceptance:

  6. myia-ai-01 commented on Sep 27, 2026

    @myia-ai-01
    Collaborator

    Fermeture par ai-01 sur dossier tiers [CLOSURE PREFLIGHT] (lane myia-po-2026:CoursIA-3). Gate check_closure_dossier.py rc=0 a 18:52Z le 2026-09-27 ; PRs citees en preuve relues MERGED, aucun commentaire poste apres le dossier, preuves fichier:ligne recoupees sur main par echantillon.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    ML-pipelinebugSomething isn't workingcandidate-deliveredReferenced by a merged PR with no post-merge activity -- candidate for close triage (#10466)quantconnectQuantConnect strategy development

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions