Exposer un modèle (Model Serving)¶
Industrialiser → Model Serving expose un modèle du registre MLflow via une API d'inférence : un endpoint interne (pour les traitements in-cluster) et un endpoint public sécurisé (façon « Consommation API »).
Procédure¶
1. Nouveau serving¶
Sélectionnez le modèle (ex. models:/fraud-detection/3), le nombre de réplicas et l'exposition (interne / externe).
2. Déployer¶
SAAM déploie le serveur d'inférence sur le cluster. La carte passe à Déployé.
3. Consommer¶
- En interne : URL de service ClusterIP (pour les Data Flows et jobs du cluster).
- En public : endpoint HTTPS protégé, appelé avec un jeton (client-credentials Keycloak).
# 1) Jeton client-credentials (royaume Keycloak « saam »)
TOKEN=$(curl -s .../token -d grant_type=client_credentials ... | jq -r .access_token)
# 2) Inférence
curl -s https://fraud-detection.saam-data.fr/invocations \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"inputs": [[128.0, 1.0, 0.0, 4200.0]]}'
# → [[0.03, 0.97]] (p_non_fraude, p_fraude)
Appeler l'API d'inférence¶
Un serving expose deux accès au même modèle :
| Accès | Pour qui | Sécurité |
|---|---|---|
| Interne (ClusterIP) | Traitements in-cluster (Data Flows, jobs) | Réseau interne du cluster |
| Public (HTTPS) | Applications tierces (« Consommation API ») | Jeton client-credentials Keycloak |
Le point /invocations attend des entrées numériques et renvoie les probabilités par classe — pour la fraude, [[p_non_fraude, p_fraude]].
Format des entrées
L'ordre et le nombre de features doivent correspondre exactement au modèle entraîné. Documentez le vecteur d'entrée (ex. [montant_norm, canal, pays, solde]) avec le modèle.
Suivant : Inférence batch & streaming →