Contexte et historique

Pourquoi l’Insee code automatiquement l’activité économique, et comment le système est passé d’un moteur de règles au deep learning.
Auteur
Affiliation

SSP Lab, Insee

1 Le code APE et la nomenclature NACE

Toute entreprise immatriculée en France reçoit un code APE (activité principale exercée). Ce code situe l’unité dans la NAF (nomenclature d’activités française), déclinaison nationale de la nomenclature européenne NACE. Il est associé aux identifiants de l’entreprise dans le répertoire Sirene, que l’Insee gère depuis 1973 et qui fait référence pour les numéros SIREN et SIRET.

Le code APE sert à :

  • constituer les bases de sondage des enquêtes auprès des entreprises et produire les statistiques structurelles d’entreprises ;
  • produire les comptes nationaux et les indicateurs conjoncturels par branche.

Une erreur de codification se propage donc dans les statistiques qui en dépendent.

La nomenclature est hiérarchique et compte cinq niveaux :

Table 1: Taille de la nomenclature NAF à chaque niveau. Pour la NAF 2025, les niveaux supérieurs suivent la NACE Rév. 2.1.
Niveau NAF rév. 2 (2008) NAF 2025 (NACE Rév. 2.1)
Sections 21 22
Divisions 88 87
Groupes 272 287
Classes 615 651
Sous-classes (code APE) 732 746
NoteCe que l’on prédit

On prédit la sous-classe, le niveau le plus fin, soit environ 750 modalités. Les niveaux supérieurs s’en déduisent directement, et les métriques sont donc calculées à chaque niveau de la hiérarchie.

2 D’un formulaire structuré au texte libre

À chaque création d’entreprise ou modification d’activité, l’entreprise dépose une déclaration (liasse) qui comporte un libellé de son activité. Jusqu’en 2022, un agent d’un centre de formalités des entreprises aidait le déclarant à remplir le formulaire. Les libellés d’activité étaient donc plutôt courts et normalisés.

Deux réformes ont changé la donne :

  1. La loi PACTE (2019) a créé un guichet unique en ligne, géré par l’INPI. Depuis le 1er janvier 2023, toutes les formalités d’entreprise passent par lui. Le libellé d’activité est devenu un champ de texte libre, saisi par le déclarant sans aucune aide.
  2. Sirene 4, le nouveau système d’information du répertoire, est passé d’un traitement batch la nuit à un traitement au fil de l’eau, fondé sur des micro-services. La migration a été progressive, à partir de fin 2022.

Résultat : les textes sont plus longs, plus verbeux et plus variés, avec toutes les fautes et les tournures qu’on attend d’une saisie libre.

Chaque année, environ 2 millions de libellés doivent être codés.

3 Trois générations de moteurs de codification

Table 2: Moteurs successifs de codification APE.
Période Moteur Principe Limites
Années 1990 → 2022 Sicore Règles déterministes, dictionnaires de mots-clés Le taux de codification automatique est tombé à environ 30 % sur les libellés en texte libre. Les règles étaient coûteuses à maintenir.
Fin 2022 → 2025 fastText Modèle supervisé (bag of words et n-grammes de caractères), les variables annexes étant ajoutées au texte sous forme de tokens Meta a archivé la librairie en mars 2024. Ni calibration, ni explicabilité, ni support GPU.
2025 → PyTorch (torchTextClassifiers) Même famille de modèles, réimplémentée en PyTorch : un embedding dédié par variable catégorielle, calibration, explicabilité Inférence un peu plus lente qu’avec fastText, mais dans le budget.

Sicore a été développé dans les années 1990 (Meyer et Rivière 1997). Il traitait correctement les textes bien structurés de l’ancien système. Sur les libellés en texte libre, en revanche, il ne codait automatiquement qu’environ un cas sur trois. Le reste, soit environ 70 %, passait en reprise manuelle (Avouac et al. 2025).

Meyer, Pascal, et Pascal Rivière. 1997. « SICORE, un outil et une méthode pour le chiffrement automatique à l’INSEE ». Blaise Users Conference. https://www.blaiseusers.org/1997/papers/meyer97.pdf.
Avouac, Romain, Thomas Faria, et Frédéric Comte. 2025. L’apport des technologies cloud pour industrialiser le processus d’innovation statistique. Document de travail -- Méthodologie statistique Nos. M2025-05. Insee. https://www.insee.fr/fr/statistiques/8614378.

Le modèle fastText a été mis en production progressivement à partir de novembre 2022, avec un seuil volontairement prudent au départ. Il a fait remonter le taux de codification automatique à environ 80 %, ce qui a rendu la réforme du guichet unique tenable.

Lorsque Meta a archivé le dépôt fastText en mars 2024, l’équipe a engagé la migration vers PyTorch. Elle en a profité pour corriger les faiblesses structurelles du modèle : traitement des variables catégorielles, calibration et explicabilité. C’est ainsi qu’est né le package open source torchTextClassifiers, présenté dans le chapitre Modèle.

4 Contraintes de production

Le modèle est appelé par le système d’information Sirene pour chaque déclaration, dès son arrivée. Cela impose des contraintes fortes :

  • Inférence unitaire sur CPU dans un environnement fermé : pas de GPU, pas d’accès à internet, et toutes les dépendances embarquées avec le modèle.
  • Faible latence : de l’ordre de 200 ms par appel.
  • Reprise par un humain : le modèle renvoie ses cinq codes les plus probables, chacun avec sa probabilité, ainsi qu’un indice de confiance. En dessous d’un seuil, la déclaration part en reprise manuelle : une équipe de gestionnaires la code en s’appuyant sur les suggestions du modèle.
  • Traçabilité : chaque prédiction doit pouvoir être rattachée à la version exacte du modèle qui l’a produite.

Le taux de codification automatique est la part des déclarations codées sans intervention humaine, avec une qualité maîtrisée. C’est le principal indicateur métier : il détermine la charge de travail des équipes de reprise manuelle.

5 Pourquoi le MLOps

Un modèle entraîné une fois pour toutes ne reste pas performant longtemps :

  • la façon dont les déclarants décrivent leur activité évolue : nouveaux métiers, nouvelles formes juridiques, nouvelles formulations ;
  • les experts métier signalent des erreurs qu’il faut corriger vite et durablement ;
  • la nomenclature elle-même évolue : le passage de la NAF rév. 2 à la NAF 2025 a imposé de recoder tout le jeu d’entraînement (voir Données) ;
  • les librairies dont dépend le modèle sont abandonnées (fastText) ou changent de version majeure (MLflow, PyTorch).

La suite de cette note décrit ce qui permet d’en faire une routine : un entraînement reproductible, un model registry versionné, une API déployée en GitOps, du monitoring et de l’annotation en continu, et un protocole de réentraînement avec des critères de validation explicites.

Retour au sommet