Skip to main content

Documentation-as-Code : documentation technique synchronisée avec les versions

Comment la documentation comme code aide à garder la documentation technique du règlement sur l'IA en phase avec chaque changement du code.

Par Scanara

Points essentiels

  1. 1.Les fournisseurs de systèmes d'IA à haut risque doivent tenir leur documentation technique à jour (article 11, paragraphe 1).
  2. 2.La documentation comme code conserve la documentation technique sous gestion de versions, à côté du code.
  3. 3.Certaines parties peuvent être générées à partir du code et des données du pipeline. Les décisions qui demandent du jugement exigent des personnes.
  4. 4.La gestion de versions montre ce qui a changé et quand, pas que le contenu est correct.

L'obligation s'applique aux fournisseurs de systèmes d'IA à haut risque. Elle vise ceux qui les mettent sur le marché de l'UE ou les y mettent en service, selon l'article 2, paragraphe 1, point a). L'annexe IV liste ce que la documentation doit contenir. L'annexe III est la liste des usages à haut risque du règlement, comme le recrutement. L'annexe I concerne l'IA intégrée à des produits soumis au droit de sécurité de l'UE. La section A de l'annexe I liste des textes sur les produits, par exemple sur les jouets et les dispositifs médicaux. La section B liste d'autres textes sur les produits. Pour les systèmes de l'annexe III, l'obligation s'applique à partir du 2 décembre 2027. Pour les systèmes de la section A de l'annexe I, elle s'applique à partir du 2 août 2028 (règlement (UE) 2026/1744). Les systèmes mis sur le marché ou mis en service avant ces dates relèvent de l'article 111, paragraphe 2. Ce paragraphe a été remplacé par le règlement (UE) 2026/1744. Hors les systèmes de l'article 111, paragraphe 1, ils ne sont couverts que si, dès la date applicable, leur conception subit des modifications importantes. Pour les systèmes destinés aux autorités publiques, l'article 111, paragraphe 2, exige les mesures nécessaires à la conformité d'ici le 2 août 2030.

Pour les systèmes à haut risque liés à des produits de la section B de l'annexe I, l'article 2, paragraphe 2, limite les dispositions applicables. Seuls s'appliquent l'article 6, paragraphe 1 (règles de classification), et les articles 102 à 112 (dispositions finales). S'applique aussi l'article 60a (essais en conditions réelles hors bacs à sable). Les articles 57 à 59 portent sur les bacs à sable réglementaires de l'IA. Ils ne s'appliquent que dans la mesure où ces textes intègrent les exigences du règlement pour l'IA à haut risque. L'article 11 n'y figure pas.

Les obligations du fournisseur figurent à l'article 16. Une violation peut coûter jusqu'à 15 millions d'EUR ou, pour une entreprise, 3 % du chiffre d'affaires annuel mondial (article 99, paragraphe 4). Le montant le plus élevé s'applique. Pour les microentreprises et les petites et moyennes entreprises (PME, article 3, point 14a), le montant le plus bas s'applique (article 99, paragraphe 6).

Avec la documentation comme code, les changements sont relus dans des pull requests et chaque version est associée à une release. Première étape : vérifiez, avec le tableau ci-dessous, lesquels des neuf points de l'annexe IV vous pouvez générer à partir de votre dépôt.

Pourquoi les documents hors du dépôt dérivent

Les documents dans des fichiers Word, des PDF ou des wikis sont séparés du code qu'ils décrivent.

Un document peut décrire une ancienne version

Le document et le système en production peuvent décrire des versions différentes. Par exemple, le document décrit la version 2.3 de votre système d'IA et la production tourne en version 2.7.

La mise à jour se fait à la main

Quelqu'un doit mettre à jour les documents chaque fois que le système change, car l'article 11, paragraphe 1, exige qu'ils soient tenus à jour.

Ce que signifie la documentation comme code en pratique

La documentation comme code applique à la documentation technique les pratiques de l'ingénierie logicielle :

1

Gestion de versions

La documentation technique se trouve dans le même dépôt Git que le code. Chaque modification est un commit avec un auteur, une date et un diff, ce qui permet de relier une version du document à une version du code.

2

Génération quand c'est possible

Certaines sections peuvent être générées à partir de la base de code, comme le montre le tableau ci-dessous. Les sections qui demandent du jugement sont écrites par des personnes.

3

Contrôles dans le pipeline

Votre équipe peut écrire une règle de pipeline qui fait échouer une pull request quand le modèle change sans que la section de document correspondante change. Le règlement ne l'exige pas.

4

Paquets de release

Chaque release regroupe les documents avec la version du logiciel : vous pouvez ainsi produire la documentation qui correspondait à une release donnée.

La génération aide davantage pour certains points de l'annexe IV que pour d'autres

La génération aide un peu pour 4 des 9 points de l'annexe IV, peu pour 4 et pas du tout pour 1. Les deux colonnes de droite sont notre appréciation, pas celle du règlement.

Les PME et les petites entreprises à moyenne capitalisation (SMC, article 3, point 14b) peuvent fournir les éléments de l'annexe IV de manière simplifiée. Cela découle de l'article 11, paragraphe 1, tel que modifié par le règlement (UE) 2026/1744. Celles qui le font doivent utiliser le formulaire simplifié que la Commission doit établir. Le montant d'amende le plus bas s'applique aussi aux SMC (article 99, paragraphe 6a).

Point de l'annexe IVApproche possibleAide de la génération
1. Description générale du système d'IANoms et versions tirés du manifeste, du README et des métadonnées de releaseEn partie
2. Éléments du système et de son processus de développementDescriptions d'architecture et de pipeline tirées du code ; justification de la conception rédigée par des personnesEn partie
3. Surveillance, fonctionnement et contrôleChiffres d'exactitude tirés des résultats de tests ; limites et mesures de contrôle humain rédigées par des personnesEn partie
4. Adéquation des indicateurs de performanceIndicateurs tirés des pipelines d'évaluation ; l'argumentation sur leur adéquation est rédigée par des personnesPeu
5. Système de gestion des risques (article 9)Registre des risques sous forme de fichier versionné ; l'analyse des risques est faite par des personnesPeu
6. Modifications pertinentes tout au long du cycle de vieL'historique Git et le journal des modifications donnent la liste brute ; le fournisseur choisit les modifications pertinentesEn partie
7. Normes appliquéesUne liste tenue à jour dans le dépôtPeu
8. Copie de la déclaration UE de conformitéLa déclaration signée, conservée avec la releaseAucune
9. Système de surveillance après commercialisation (article 72)Le plan sous forme de document versionné ; les données de surveillance viennent de l'exploitationPeu

Exemple d'organisation : des fichiers de documentation à côté du code

Cette organisation est un exemple, pas une structure imposée.

your-ai-system/
├── src/
├── docs/
│   └── compliance/
│       ├── annex-iv/
│       │   ├── 01-general-description.md
│       │   ├── 02-development-process.md
│       │   └── ...
│       ├── risk-register.yaml
│       └── oversight.md
├── tests/
│   └── docs/
└── .github/
    └── workflows/
        └── docs-check.yml

Un pipeline peut vérifier les documents à chaque pull request

1

Analyser : examiner la base de code

Une étape d'analyse peut utiliser un outil qui détecte dans le code les motifs courants des frameworks de ML. Les wrappers sur mesure et le code obscurci peuvent échapper à la détection.

2

Générer : actualiser les projets

Le pipeline reconstruit les sections générées à partir des entrées actuelles : le diff montre donc ce qui a changé dans les documents.

3

Valider : vérifier la complétude

Des règles vérifient que les sections requises existent et contiennent le contenu requis. Un contrôle du contenu n'est pas un contrôle de véracité : des personnes relisent l'exactitude.

4

Rapporter : afficher le résultat sur la pull request

La pull request indique quels contrôles ont réussi ou échoué : un relecteur voit ainsi l'effet sur la documentation avant la fusion du changement.

Le texte brut permet une relecture ligne par ligne, et la protection de branche garde l'historique

Les pull requests montrent les lignes modifiées

Les fichiers Markdown et YAML sont du texte brut : une pull request montre donc exactement quelles lignes de la documentation ont changé.

Protéger l'historique

Un force push peut réécrire l'historique des commits, sauf si une règle de protection de branche le bloque. Appliquez une telle règle à la branche qui contient les documents.

Articles connexes

Sources et références

Questions fréquemment posées

Qu'est-ce que la documentation comme code pour la documentation du règlement sur l'IA ?

La documentation comme code conserve la documentation technique sous gestion de versions, la modifie par des pull requests et en génère certaines parties dans un pipeline. Le but est que la documentation technique corresponde au système tel qu'il a été publié.

Pourquoi les documents hors du dépôt dérivent-ils ?

Les fichiers Word et les PDF sont séparés du code : un changement du code ne les met donc pas à jour. Quelqu'un doit les mettre à jour, car l'article 11, paragraphe 1, exige que la documentation technique soit tenue à jour.

La documentation comme code satisfait-elle l'annexe IV ?

Aucune pratique ne satisfait l'annexe IV à elle seule. L'annexe IV fixe le contenu en neuf points. La documentation comme code aide à garder ce contenu à jour et traçable. Le fournisseur doit veiller à ce que le système respecte les exigences du chapitre III, section 2, dont l'article 11 (article 16, point a)).

Quels outils utilise-t-on pour la documentation comme code ?

Vous pouvez combiner Git, des fichiers Markdown ou YAML et un pipeline CI pour les contrôles et la génération. Un scanner ou un générateur peut produire les sections déduites du code.

À quelle fréquence faut-il mettre à jour la documentation technique d'un système d'IA ?

L'article 11, paragraphe 1, exige que la documentation technique soit établie avant la mise sur le marché ou la mise en service du système, et tenue à jour. L'article 11, paragraphe 1, ne fixe aucun intervalle. Nous suggérons de la relire à chaque release et après tout changement du modèle, des données d'entraînement ou de la finalité prévue. Une modification substantielle exige une nouvelle évaluation de la conformité (article 43, paragraphe 4). Une modification substantielle est un changement postérieur à la mise sur le marché ou à la mise en service. La première évaluation de la conformité ne l'avait ni prévu ni planifié. Elle affecte le respect des exigences applicables aux systèmes d'IA à haut risque (chapitre III, section 2) ou change la finalité prévue (article 3, point 23). Une évaluation de la conformité est la procédure qui démontre si ces exigences sont respectées (article 3, point 20).

Scanara prépare des preuves à partir de vos dépôts

Scanara lit vos dépôts GitHub connectés et exécute des analyses à base de règles pour repérer les schémas courants d'IA et d'apprentissage automatique. Il peut manquer du code non standard. Par ailleurs, il génère des projets de documentation à partir de modèles et de vos réponses aux évaluations, comme preuves pour votre travail de conformité. Vous décidez de la classification.