Aller au contenu

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).
Appel de l'endpoint public
# 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 →