batchCooking/services/tech-step-intent-service/intent_service
Nicolas 19e0507852 fix(recipes): entraine le textcat plus longtemps pour une confiance reelle
Suite a une revue de code sur locale_pipeline.py, trois ameliorations
implementees et verifiees contre le vrai corpus (74 techniques) :

- spacy.util.fix_random_seed(_TRAINING_SEED) avant nlp.initialize() —
  random.Random() ne graine que l'ordre de melange des exemples, pas
  l'init des poids/dropout internes de thinc.
- _DiacriticsNormalizer deplace au-dessus de sa factory @Language.factory
  — plus d'annotation de type en chaine.
- Log explicite (logger.warning) quand train() recoit moins de 2 labels
  et saute la creation du textcat, plus une clarification de la docstring
  de process() sur les deux cas menant a intent=None.
- Early stopping avec suivi de la perte par epoque, _TRAINING_ITERATIONS
  restant le plafond. Mesure sur le vrai corpus : ne se declenche jamais
  dans le budget actuel de 40 iterations (la perte continue de baisser
  significativement jusqu'au bout) — documente honnetement comme filet
  de securite pour un futur relevement du plafond, pas un gain de temps
  aujourd'hui.

Deux suggestions de la revue examinees et non retenues, avec
justification en commentaire : le risque de desalignement pattern/texte
via normalize_text (normalize_text opere par token deja tokenise, jamais
sur la chaine brute — pas de risque de segmentation differente) ; passer
a attr="LOWER" aurait au contraire regresse l'insensibilite aux accents
que attr="NORM" fournit deliberement.

Verifie : 28/28 pytest (dont le vrai corpus complet via la fixture
partagee), lint du monorepo. Temps d'entrainement mesure stable
(~200-230s/locale, dans la marge de bruit deja documentee).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-26 07:49:01 +02:00
..
routes feat(recipes): rapatrie le corpus NLP cote Python et l'enrichit de 48 techniques 2026-08-25 22:59:13 +02:00
__init__.py feat(recipes): migre la detection des tech steps de node-nlp vers un microservice Python spaCy 2026-08-25 20:11:30 +02:00
config.py feat(recipes): rapatrie le corpus NLP cote Python et l'enrichit de 48 techniques 2026-08-25 22:59:13 +02:00
locale_pipeline.py fix(recipes): entraine le textcat plus longtemps pour une confiance reelle 2026-08-26 07:49:01 +02:00
logging_config.py feat(recipes): rapatrie le corpus NLP cote Python et l'enrichit de 48 techniques 2026-08-25 22:59:13 +02:00
main.py feat(recipes): rapatrie le corpus NLP cote Python et l'enrichit de 48 techniques 2026-08-25 22:59:13 +02:00
pipeline_registry.py feat(recipes): rapatrie le corpus NLP cote Python et l'enrichit de 48 techniques 2026-08-25 22:59:13 +02:00
schemas.py feat(recipes): rapatrie le corpus NLP cote Python et l'enrichit de 48 techniques 2026-08-25 22:59:13 +02:00
security.py feat(recipes): migre la detection des tech steps de node-nlp vers un microservice Python spaCy 2026-08-25 20:11:30 +02:00
text_normalization.py feat(recipes): migre la detection des tech steps de node-nlp vers un microservice Python spaCy 2026-08-25 20:11:30 +02:00
training_data.py feat(recipes): rapatrie le corpus NLP cote Python et l'enrichit de 48 techniques 2026-08-25 22:59:13 +02:00