La sécurité de la chaîne d’approvisionnement logicielle s’est longtemps concentrée sur le code et ses dépendances, avec la SBOM (Software Bill of Materials) comme pierre angulaire. Mais pour l’IA, ce n’est que la moitié de l’histoire. Un modèle est un artefact complexe dont les risques ne viennent pas seulement des librairies utilisées pour l’entraîner, mais surtout des données sur lesquelles il a été formé et de la manière dont il a été fine-tuné. Face à la multiplication des modèles open source, l’adoption d’un standard de “Model Bill of Materials” (MBOM) devient une nécessité pour garantir la traçabilité, la sécurité et la conformité.
la sbom ne suffit plus
Une SBOM classique décrit le “comment” (le code), mais pas le “quoi” (les données) ni le “pourquoi” (l’intention). Le MBOM complète le tableau.
que contient une “Model Card” enrichie en MBOM ?
Le MBOM n’est pas un document séparé, mais une section structurée et machine-lisible à l’intérieur d’une Model Card. Elle répond à des questions essentielles.
- Données d’entraînement: Quelles sources de données ont été utilisées ? Quelle est leur licence ? Comment ont-elles été nettoyées ?
- Modèle de base: Si c’est un fine-tuning, quel était le modèle de base et quelle est sa licence d’utilisation ?
- Hyperparamètres: Quels paramètres ont été utilisés pour l’entraînement (learning rate, nombre d’époques, etc.) ? Cela garantit la reproductibilité.
- Évaluation: Quels jeux de test ont été utilisés ? Quels sont les scores sur les métriques clés (exactitude, équité, biais) ?
- Empreinte environnementale: Une estimation du coût en kWh et en émissions de CO2 de l’entraînement.
# Extrait d'une Model Card avec une section MBOM
model_card:
id: "customer_churn_predictor_v3"
# ... (infos générales)
mbom:
model_base:
name: "Mistral-7B-v0.2"
license: "Apache 2.0"
training_data:
- id: "internal_crm_data_2024"
hash: "sha256:abcdef..."
license: "Propriétaire"
preprocessing_steps: ["anonymisation", "suppression_inactifs"]
hyperparameters:
learning_rate: 0.0002
epochs: 3
evaluation:
test_dataset_hash: "sha256:fedcba..."
metrics:
auc: 0.89
environmental_impact:
training_kwh: 450
co2_equivalent_kg: 180 # basé sur la localisation du datacenter
comment l’implémenter en pratique ?
- Générer automatiquement: Les informations du MBOM doivent être générées automatiquement à la fin de chaque pipeline d’entraînement par votre orchestrateur (MLflow, Vertex AI, etc.).
- Stocker avec le modèle: Le fichier
model_card.ymlcontenant le MBOM doit être stocké et versionné avec le binaire du modèle lui-même. - Valider en CI/CD: Le pipeline de déploiement doit avoir une étape qui valide la présence et la conformité du MBOM. Un modèle sans MBOM ou avec une licence incompatible doit être bloqué.
# Script de validation dans une CI
# 1. Télécharger la model card associée au modèle
aws s3 cp s3://models/churn_v3/model_card.yml .
# 2. Vérifier la présence de champs clés et la conformité de la licence
MODEL_LICENSE=$(yq e '.mbom.model_base.license' model_card.yml)
if [[ "$MODEL_LICENSE" != "Apache 2.0" && "$MODEL_LICENSE" != "MIT" ]]; then
echo "Erreur: Licence de modèle de base non autorisée: $MODEL_LICENSE"
exit 1
fi
les bénéfices concrets
- Sécurité: En cas de découverte d’un jeu de données d’entraînement “empoisonné”, vous pouvez immédiatement identifier tous les modèles impactés.
- Conformité: Vous pouvez prouver à un auditeur ou à un régulateur sur quelles données votre modèle a été entraîné.
- Reproductibilité: Un nouveau membre de l’équipe peut comprendre comment un modèle a été construit et essayer de reproduire les résultats.
- Efficacité: Évite de ré-entraîner des modèles sur les mêmes données si un modèle existant, bien documenté, fait déjà le travail.
pièges à éviter
- La documentation manuelle: Si la création du MBOM est un processus manuel, il sera rapidement obsolète. L’automatisation est la clé.
- L’inventaire sans validation: Avoir une SBOM ou un MBOM ne sert à rien si vous n’avez pas de processus qui les valide et bloque les déploiements non conformes.
- Ignorer les licences: Utiliser un modèle de base avec une licence “non-commercial” pour un produit commercial est un risque juridique majeur. La vérification de la licence doit être la première étape de votre CI.
faq
-
Est-ce que cela remplace la SBOM classique ? Non, cela la complète. La SBOM couvre le code de votre application, le MBOM couvre l’artefact de machine learning qu’elle utilise. Vous avez besoin des deux.
-
Où trouver la licence des données d’entraînement des grands modèles open source ? C’est souvent le point le plus flou. Il faut lire attentivement la documentation du modèle. Si l’information n’est pas claire, la prudence est de mise, surtout pour un usage commercial.
-
Comment commencer si on a des dizaines de modèles en production sans MBOM ? Commencez par les nouveaux modèles. Rendez le MBOM obligatoire pour tout nouveau déploiement. Ensuite, priorisez les modèles les plus critiques en production et documentez-les rétroactivement.