Skip to content

[QC][livre] Chronos et FinBERT ré-entraînés (06/18/02, 06/19/02) : porter le fine-tuning (GPU) #18962

Description

@jsboige

Part of #18898

Constat

Les modèles de base sont portés : Chronos (projects/ML-Chronos-Foundation/, projects/Chronos-Foundation-Forecasting/) et FinBERT (projects/ML-FinBERT-Sentiment/, Python/QC-Py-Cloud-01-FinBERT-Sentiment.ipynb). Aucun ré-entraînement n'existe dans le dépôt.

Ce que contient le livre

  • 06 Applied Machine Learning/18 Amazon Chronos Model/02 Fine-Tuned Model/main.py : ChronosPipeline, module d'entraînement de chronos (chronos.scripts.training), transformers.Trainer, gluonts, torch, puis scipy.optimize.minimize.
  • 06 Applied Machine Learning/19 FinBERT Model/02 Fine-Tuned Model/main.py : TFBertForSequenceClassification (TensorFlow), datasets.Dataset.

Référence du livre : dépôt QuantConnect/HandsOnAITradingBook, commit e025f21 (imports et appels relevés dans le code ; le détail reste à lire avant le portage). Inventaire : MyIA.AI.Notebooks/QuantConnect/BOOK_MAPPING.md.

Travail

  1. Porter chaque ré-entraînement. Il demande un GPU : router vers une machine GPU (verdict RECOVERABLE-MACHINE de .claude/rules/sota-not-workaround.md).
  2. Comparer modèle de base et modèle ré-entraîné sur la même période hors échantillon : erreur de prévision pour Chronos, exactitude de classification pour FinBERT, puis effet sur la stratégie.
  3. FinBERT : le portage de base ne produit aucune transaction sur QC Cloud ([QC][livre] ML-FinBERT-Sentiment (06-19) : faire produire des trades au portage sur QC Cloud #18903). Régler ce point d'abord, ou dans le même travail.
  4. Verdict §C, au moins 4 graines d'entraînement.
  5. Mettre à jour les lignes 18/02 et 19/02 de la table du chapitre 06.

Activity

  1. jsboige commented on Oct 6, 2026

    @jsboige
    OwnerAuthor

    [CLAIMED] lane myia-po-2023:CoursIA — tapis central du 06/10 22:46Z, file profonde posee par le coordinateur au dispatch (rang 2/5) : [QC][livre] Chronos et FinBERT ré-entraînés (06/18/02, 06/19/02) : porter le fine-tuning (. Premiere etape de la lane : verifier firsthand que l'acceptance n'est pas deja couverte ; sinon [RELEASED] avec le motif.

  2. jsboige commented on Oct 7, 2026

    @jsboige
    OwnerAuthor

    Grain: DEEP/qc — lane myia-po-2023:CoursIA — prev: MED/tooling #19618

    [DELIVERED] volet Chronos (06/18/02) : PR #19622. Volet FinBERT (06/19/02) : bloqué, une ligne plus bas.

    Ce qui est livré

    Le ré-entraînement de Chronos n'existait pas dans le dépôt (le GAP de BOOK_MAPPING.md). Il est porté et mesuré :

    • main_finetuned.py — port de 06/18/02 (HandsOnAITradingBook @ e025f21). Le diff du corps des méthodes contre le livre ne montre qu'une différence fonctionnelle : set_seed(1) devient set_seed(self._seed), défaut 1, soit la valeur que le livre fige.
    • finetune/run_finetune_chronos.py — harnais base vs ré-entraîné, hors échantillon (2022-01-01 → 2026-01-01), 19 origines, appariement strict des deux bras à chaque origine.
    • finetune/chronos_training.py — module d'entraînement vendorisé (tag v2.3.2, Apache-2.0). Motif : le livre importe chronos.scripts.training.train, absent du wheel PyPI et du tag ; sans cette copie le port ne tourne nulle part.
    • finetune/measures/ — les quatre graines et l'agrégat (49 Ko).

    Verdict §C — 4 graines

    Graine MAE base MAE ré-entraîné MASE base MASE ré-entraîné DM (p) Sharpe base Sharpe ré-entraîné
    1 18,40 17,61 6,24 5,99 0,409 0,746 0,603
    2 17,78 16,87 6,03 5,69 0,153 0,664 0,751
    3 19,21 17,82 6,50 6,02 0,093 0,588 0,746
    42 18,31 17,30 6,27 5,83 0,256 0,559 0,675
    moyenne 18,43 17,40 6,26 5,88 — 0,639 0,694

    Précision : NO BEATS. Plus précis sur 4 graines sur 4 (MAE −1,02 en moyenne), mais aucune n'atteint le seuil de 5 % (p de 0,093 à 0,409). Stratégie : effet instable — le signe du Sharpe change selon la graine (une sur quatre recule) et la pire baisse se creuse en moyenne (−29,1 % → −33,5 %). Aucun gain n'est revendiqué.

    L'univers (AAPL, MSFT, NVDA, AMZN, GOOGL) est un sous-ensemble de Mag7 : le §C interdit d'y revendiquer un BEATS, et aucun ne l'est.

    Acceptance

    # Critère État
    1 Porter chaque ré-entraînement Chronos : fait. FinBERT : non commencé
    2 Base vs ré-entraîné hors échantillon + effet stratégie Chronos : fait
    3 FinBERT : régler #18903 d'abord non fait — #18903 est toujours OPEN
    4 Verdict §C, ≥ 4 graines fait — graines 1, 2, 3, 42
    5 Lignes 18/02 et 19/02 du chapitre 06 18/02 : fait. 19/02 : inchangé

    Blocage du volet FinBERT

    Le volet FinBERT n'est pas commencé : le critère 3 le conditionne à #18903 — « le portage de base ne produit aucune transaction sur QC Cloud » — qui est toujours ouvert. Comparer un ré-entraînement sur une base qui ne trade pas ne mesurerait rien. Le grain se poursuivra quand #18903 sera levé ; le reste de la file a avancé sans l'attendre.

    Corrections attenantes

    Les deux README renvoyaient à research.ipynb, fichier absent de main (git ls-tree origin/main ne liste que README.en.md, README.md et main.py) : le renvoi mort est retiré. BOOK_MAPPING.md : la ligne 18/02 du chapitre 06 et la table « Exemples sans reproduction ».

  3. added 5 commits that reference this issue on Oct 7, 2026
  4. added 2 commits that reference this issue on Oct 7, 2026
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

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions