SlideShare une entreprise Scribd logo
1  sur  69
Télécharger pour lire hors ligne
D’un modèle d'IA
dans un notebook
à un service
temps réel :
architecturons !
?
2023
Merci à nos sponsors
HELLO
Marie-Alice Blete
Software Architect
& Data engineer at Labs
Un peu de contexte
data scientist dév
Un peu de contexte
toute ressemblance avec des personnes
existantes serait purement fortuite
(ou pas)
Un peu de contexte
?
blabla code blabla code
blabla code
blabla code
blabla code blabla code blabla code
blabla code blabla code
data scientist
Un peu de contexte
blabla code blabla code
blabla code
blabla code
blabla code blabla code blabla code
blabla code blabla code
data scientist
Un peu de contexte
blabla code blabla code
blabla code
blabla code
blabla code blabla code blabla code
blabla code blabla code
?
data scientist
Un peu de contexte
modèle
?
Un peu de contexte
Au programme
remarques &
conclusion
solution 2
critiques/contraintes
solution 3
définitions
objectif
solution 1 solution 4
définitions
Le cycle de vie d’un modèle d’IA
entraînement inférence
création du modèle déploiement du modèle
prédiction
nouvelle
donnée modèle
données modèle
prédiction
Le cycle de vie d’un modèle d’IA
nouvelle
donnée modèle
déploiement du modèle
vous êtes ici
inférence
« model-serving »
définitions
objectif
Point de départ
entrainé + sérialisé
modèle
Point d’arrivée : MODEL-as-SERVICE
modèle
input
prediction
webservice
Point d’arrivée : MODEL-as-SERVICE
input
prediction
webservice
modèle
L’accord avec l’équipe data scientist
Pas de contraintes
pour:
le framework
les données
le modèle :
« boite noire »
ReadMe +
Python
sérialisé + entrainé
modèle
définitions
objectif
solution 1
Etape 1 : l’API
API
modèle
?
POST
predict
<data>
Etape 2 : le « wrapper »
Objectif : avoir un contrat d’interface pour le modèle
predict(data) modèle
Etape 2 : le « wrapper »
def initialize(self):
# Charger le modèle
self.model = joblib.load(...)
def predict(self, data):
# Appeler la fonction de prediction
self.model.predict(data)
Etape 2 : le « wrapper »
def initialize(self):
# Charger le modèle
self.model = keras.models.load_model(mymodel.h5)
def predict(self, data):
# Appeler la fonction de prediction
self.model.predict_proba(data)
Etape 2 : le « wrapper »
Chez GCP
Wrapper =
Docker container
avec server http
gcloud ai models upload 
--region=LOCATION 
--display-name=MODEL_NAME 
--container-image-uri=IMAGE_URI 
--container-command=COMMAND 
--container-args=ARGS 
--container-predict-route=PREDICT_ROUTE
Etape 2 : le « wrapper »
API
POST
predict
<data>
modèle
MODEL SERVING NODE
Etape 2 : le « wrapper »
API
POST
predict
<data>
modèle
MODEL SERVING NODE
modèle
Etape 2 : le « wrapper »
API
POST
predict
<data>
MODEL SERVING NODE
Point d’arrivée : MODEL-as-SERVICE
modèle
input
prediction
webservice
Model-as-service – solution 1
API
POST
predict
<data>
modèle
MODEL SERVING NODE
définitions
objectif
solution 1 solution 2
critiques/contraintes
Gérer la charge?
API
POST
predict
<data>
modèle
modèle
Problèmes de cette solution
x Risque de DOS
x Couplage entre API et modèle
x Problème de responsabilité: l’API doit
faire load balancer entre les “Model
Nodes”
?
Etape 3 : ?
?
POST
predict
<data>
modèle
MODEL SERVING NODE
API
Etape 3 : « event queue » + « event
processor »
Request queue
POST
predict
<data>
modèle
MODEL SERVING NODE
MESSAGE BROKER
API
Etape 3 : « event queue » + « event
processor »
Request queue
POST
predict
<data>
modèle
EVENT PROCESSOR
MESSAGE BROKER
API
Etape 3 : « event queue » + « event
processor »
Request queue
Prediction queue
POST
predict
<data>
API EVENT PROCESSOR
MESSAGE BROKER
modèle
Model-as-service – solution 2
Request queue
Prediction queue
POST
predict
<data>
API EVENT PROCESSOR
MESSAGE BROKER
modèle
définitions
objectif
solution 1 solution 2
critiques/contraintes
solution 3
Point d’arrivée : MODEL-as-SERVICE
« near real time »
input
prediction
webservice
< X ms modèle
Scalability ?
POST
predict
<data>
EVENT PROCESSOR
MESSAGE BROKER
modèle
API MESSAGE BROKER
Request queue
Prediction queue
Scalability ?
Request queue
Prediction queue
API MESSAGE BROKER EVENT PROCESSOR
modèle
POST
predict
<data>
Scalability ?
Request queue
Prediction queue
API MESSAGE BROKER EVENT PROCESSOR
modèle
POST
predict
<data>
Scalability ?
Request queue
Prediction queue
API MESSAGE BROKER
LOAD-
BALANCER
EVENT PROCESSOR
modèle
Near real time : timeout
POST
predict
<data>
EVENT PROCESSOR
MESSAGE BROKER
modèle
Request queue
Prediction queue
API
Near real time : timeout, FIFO?
POST
predict
<data>
EVENT PROCESSOR
MESSAGE BROKER
modèle
Request queue
Prediction queue
API
Near real time : dépendant du modèle
Se concerter avec l’équipe de data scientists
precision/recall training loss inference latency
Comparaison de modèles:
Model-as-service – solution 3
Request queue
Prediction queue
API MESSAGE BROKER
LOAD-
BALANCER
EVENT PROCESSOR
modèle
définitions
objectif
solution 1 solution 2
critiques/contraintes
solution 3 solution 4
Mais…
Hypothèse utilisée :
data fournie par l’api = data attendue dans le modèle
Mais…
modèle
Mais…
modèle
Feature engineering & Preprocessing
Création de features :
Features dérivées
date
montant
ip
jour de la semaine
montant en euros
pays
transaction transaction améliorée
Feature engineering & Preprocessing
Création de features :
Agrégations transaction
courante
24 heures
moyenne des montants
Feature engineering & Preprocessing
Spécifique au modèle
dans le « wrapper » modèle
Feature engineering & Preprocessing
def initialize(self):
# Charger le modèle
def predict(self, data):
# Appeler la fonction de prediction
def preprocess(self, data):
# Appliquer les transformations necessaires
data[‘newfeature’] =
do_something_complicated(data[‘somefeature’])
Preprocessing avec agrégat
database
transaction
courante
24 heures
moyenne des montants
Etape 4 : « base de données»
database
POST
predict
<data>
Request queue
Prediction queue
API EVENT PROCESSOR
MESSAGE BROKER
modèle
Preprocessing avec agrégat… et
latence
Agrégation : opération potentiellement coûteuse
Solution classique : utilisation d’un cache
Compromis avec la performance du modèle
?
database
Preprocessing avec agrégat… et
latence
Compromis Latence/Débit vs Performance de modèle
Cohérence entre:
✓le preprocessing de data en batch lors de l’entrainement
✓le traitement au fil de l’eau lors de l’inférence
model-as-service – solution 4
database
POST
predict
<data>
Request queue
Prediction queue
API EVENT PROCESSOR
MESSAGE BROKER
modèle
remarques &
conclusion
solution 2
critiques/contraintes
solution 3
définitions
objectif
solution 1 solution 4
Et ailleurs?
exemple chez
Et ailleurs?
Ingestion de données
distincte de l’inférence
autre exemple chez
Et ailleurs?
database
POST
predict
Request queue
Prediction queue
API EVENT PROCESSOR
MESSAGE BROKER
data
stream
input
modèle
Autres patterns d’archi possibles
avec
l’application
cliente
service ou versionning indépendant de
l’application cliente
exécution du modèle
« model-as-dependency »
synchrone
« precompute »
« model-as-service »
asynchrone
Take-aways
message broker
interfaces & généricité
découplage
scalabilité
principe de
responsabilité unique briques indépendantes
communication
wrapper
Déployer un modèle d’IA :
une architecture comme une autre
Don’t be a stranger!
Follow & get in touch
linkedin.com/in/mblete
blog.worldline.tech
@WorldlineTech
Follow our tech team: Follow me:
Marie-Alice Blete
Feedback

Contenu connexe

Similaire à D’un modèle d'IA dans un notebook à un service temps réel : architecturons !

B5252 g formation-ibm-cognos-framework-manager-concevoir-des-modeles-de-metad...
B5252 g formation-ibm-cognos-framework-manager-concevoir-des-modeles-de-metad...B5252 g formation-ibm-cognos-framework-manager-concevoir-des-modeles-de-metad...
B5252 g formation-ibm-cognos-framework-manager-concevoir-des-modeles-de-metad...CERTyou Formation
 
B5252 g formation-ibm-cognos-framework-manager-concevoir-des-modeles-de-metad...
B5252 g formation-ibm-cognos-framework-manager-concevoir-des-modeles-de-metad...B5252 g formation-ibm-cognos-framework-manager-concevoir-des-modeles-de-metad...
B5252 g formation-ibm-cognos-framework-manager-concevoir-des-modeles-de-metad...CERTyou Formation
 
meetup devops aix-marseille - décembre 2023
meetup devops aix-marseille - décembre 2023meetup devops aix-marseille - décembre 2023
meetup devops aix-marseille - décembre 2023Frederic Leger
 
La voie du succès avec les bases de données de graphes, la Graph Data Scie...
 La voie du succès avec les bases de données de graphes, la Graph Data Scie... La voie du succès avec les bases de données de graphes, la Graph Data Scie...
La voie du succès avec les bases de données de graphes, la Graph Data Scie...Neo4j
 
Plus de flexibilité et de scalabilité chez Bouygues Télécom grâce à MongoDB
Plus de flexibilité et de scalabilité chez Bouygues Télécom grâce à MongoDBPlus de flexibilité et de scalabilité chez Bouygues Télécom grâce à MongoDB
Plus de flexibilité et de scalabilité chez Bouygues Télécom grâce à MongoDBMongoDB
 
Plus de flexibilité et de scalabilité chez Bouygues Télécom grâce à MongoDB
Plus de flexibilité et de scalabilité chez Bouygues Télécom grâce à MongoDBPlus de flexibilité et de scalabilité chez Bouygues Télécom grâce à MongoDB
Plus de flexibilité et de scalabilité chez Bouygues Télécom grâce à MongoDBPierre-Alban DEWITTE
 
Migrez vos bases de données vers SQL Server et SQL Azure avec Microsoft SQL S...
Migrez vos bases de données vers SQL Server et SQL Azure avec Microsoft SQL S...Migrez vos bases de données vers SQL Server et SQL Azure avec Microsoft SQL S...
Migrez vos bases de données vers SQL Server et SQL Azure avec Microsoft SQL S...Microsoft Technet France
 
DataOps introduction : DataOps is not only DevOps applied to data!
DataOps introduction : DataOps is not only DevOps applied to data!DataOps introduction : DataOps is not only DevOps applied to data!
DataOps introduction : DataOps is not only DevOps applied to data!Adrien Blind
 
Checklist pour concevoir une application dans le cloud.10 conseils à l'attent...
Checklist pour concevoir une application dans le cloud.10 conseils à l'attent...Checklist pour concevoir une application dans le cloud.10 conseils à l'attent...
Checklist pour concevoir une application dans le cloud.10 conseils à l'attent...Alexandre Touret
 
Vis ma vie de chef de projet Drupal | Drupagora 2013, Paris
Vis ma vie de chef de projet Drupal | Drupagora 2013, ParisVis ma vie de chef de projet Drupal | Drupagora 2013, Paris
Vis ma vie de chef de projet Drupal | Drupagora 2013, ParisActency
 
Clean Architecture et Code patrimonial
Clean Architecture et Code patrimonialClean Architecture et Code patrimonial
Clean Architecture et Code patrimonialAgile Montréal
 

Similaire à D’un modèle d'IA dans un notebook à un service temps réel : architecturons ! (20)

ORM
ORMORM
ORM
 
ORM
ORMORM
ORM
 
ORM
ORMORM
ORM
 
ORM
ORMORM
ORM
 
B5252 g formation-ibm-cognos-framework-manager-concevoir-des-modeles-de-metad...
B5252 g formation-ibm-cognos-framework-manager-concevoir-des-modeles-de-metad...B5252 g formation-ibm-cognos-framework-manager-concevoir-des-modeles-de-metad...
B5252 g formation-ibm-cognos-framework-manager-concevoir-des-modeles-de-metad...
 
B5252 g formation-ibm-cognos-framework-manager-concevoir-des-modeles-de-metad...
B5252 g formation-ibm-cognos-framework-manager-concevoir-des-modeles-de-metad...B5252 g formation-ibm-cognos-framework-manager-concevoir-des-modeles-de-metad...
B5252 g formation-ibm-cognos-framework-manager-concevoir-des-modeles-de-metad...
 
meetup devops aix-marseille - décembre 2023
meetup devops aix-marseille - décembre 2023meetup devops aix-marseille - décembre 2023
meetup devops aix-marseille - décembre 2023
 
Procima deck 7 May 2014
Procima deck 7 May 2014Procima deck 7 May 2014
Procima deck 7 May 2014
 
Lunch learn 5 sep2013
Lunch learn 5 sep2013Lunch learn 5 sep2013
Lunch learn 5 sep2013
 
La voie du succès avec les bases de données de graphes, la Graph Data Scie...
 La voie du succès avec les bases de données de graphes, la Graph Data Scie... La voie du succès avec les bases de données de graphes, la Graph Data Scie...
La voie du succès avec les bases de données de graphes, la Graph Data Scie...
 
Plus de flexibilité et de scalabilité chez Bouygues Télécom grâce à MongoDB
Plus de flexibilité et de scalabilité chez Bouygues Télécom grâce à MongoDBPlus de flexibilité et de scalabilité chez Bouygues Télécom grâce à MongoDB
Plus de flexibilité et de scalabilité chez Bouygues Télécom grâce à MongoDB
 
Plus de flexibilité et de scalabilité chez Bouygues Télécom grâce à MongoDB
Plus de flexibilité et de scalabilité chez Bouygues Télécom grâce à MongoDBPlus de flexibilité et de scalabilité chez Bouygues Télécom grâce à MongoDB
Plus de flexibilité et de scalabilité chez Bouygues Télécom grâce à MongoDB
 
Migrez vos bases de données vers SQL Server et SQL Azure avec Microsoft SQL S...
Migrez vos bases de données vers SQL Server et SQL Azure avec Microsoft SQL S...Migrez vos bases de données vers SQL Server et SQL Azure avec Microsoft SQL S...
Migrez vos bases de données vers SQL Server et SQL Azure avec Microsoft SQL S...
 
DataOps introduction : DataOps is not only DevOps applied to data!
DataOps introduction : DataOps is not only DevOps applied to data!DataOps introduction : DataOps is not only DevOps applied to data!
DataOps introduction : DataOps is not only DevOps applied to data!
 
Checklist pour concevoir une application dans le cloud.10 conseils à l'attent...
Checklist pour concevoir une application dans le cloud.10 conseils à l'attent...Checklist pour concevoir une application dans le cloud.10 conseils à l'attent...
Checklist pour concevoir une application dans le cloud.10 conseils à l'attent...
 
Diapo PFE
Diapo PFEDiapo PFE
Diapo PFE
 
Vis ma vie de chef de projet Drupal | Drupagora 2013, Paris
Vis ma vie de chef de projet Drupal | Drupagora 2013, ParisVis ma vie de chef de projet Drupal | Drupagora 2013, Paris
Vis ma vie de chef de projet Drupal | Drupagora 2013, Paris
 
Agl2012
Agl2012Agl2012
Agl2012
 
Clean Architecture et Code patrimonial
Clean Architecture et Code patrimonialClean Architecture et Code patrimonial
Clean Architecture et Code patrimonial
 
CV_Bilel CHAOUADI
CV_Bilel CHAOUADICV_Bilel CHAOUADI
CV_Bilel CHAOUADI
 

Plus de Marie-Alice Blete

Décryptage des LLMs au-delà de la hype - Lyon Data science
Décryptage des LLMs au-delà de la hype - Lyon Data scienceDécryptage des LLMs au-delà de la hype - Lyon Data science
Décryptage des LLMs au-delà de la hype - Lyon Data scienceMarie-Alice Blete
 
Du Clic à la Conversation : remplaçons boutons et formulaires par un LLM !
Du Clic à la Conversation : remplaçons boutons et formulaires par un LLM !Du Clic à la Conversation : remplaçons boutons et formulaires par un LLM !
Du Clic à la Conversation : remplaçons boutons et formulaires par un LLM !Marie-Alice Blete
 
Conversations avec ChatGPT: illusion ou réalité ?
Conversations avec ChatGPT: illusion ou réalité ?Conversations avec ChatGPT: illusion ou réalité ?
Conversations avec ChatGPT: illusion ou réalité ?Marie-Alice Blete
 

Plus de Marie-Alice Blete (6)

Décryptage des LLMs au-delà de la hype - Lyon Data science
Décryptage des LLMs au-delà de la hype - Lyon Data scienceDécryptage des LLMs au-delà de la hype - Lyon Data science
Décryptage des LLMs au-delà de la hype - Lyon Data science
 
Du Clic à la Conversation : remplaçons boutons et formulaires par un LLM !
Du Clic à la Conversation : remplaçons boutons et formulaires par un LLM !Du Clic à la Conversation : remplaçons boutons et formulaires par un LLM !
Du Clic à la Conversation : remplaçons boutons et formulaires par un LLM !
 
5_metriques_ai_prod.pdf
5_metriques_ai_prod.pdf5_metriques_ai_prod.pdf
5_metriques_ai_prod.pdf
 
clicks2conversations.pdf
clicks2conversations.pdfclicks2conversations.pdf
clicks2conversations.pdf
 
chatgpt_meetup_jug.pdf
chatgpt_meetup_jug.pdfchatgpt_meetup_jug.pdf
chatgpt_meetup_jug.pdf
 
Conversations avec ChatGPT: illusion ou réalité ?
Conversations avec ChatGPT: illusion ou réalité ?Conversations avec ChatGPT: illusion ou réalité ?
Conversations avec ChatGPT: illusion ou réalité ?
 

Dernier

Câblage, installation et paramétrage d’un réseau informatique.pdf
Câblage, installation et paramétrage d’un réseau informatique.pdfCâblage, installation et paramétrage d’un réseau informatique.pdf
Câblage, installation et paramétrage d’un réseau informatique.pdfmia884611
 
JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...
JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...
JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...Institut de l'Elevage - Idele
 
JTC 2024 - SMARTER Retour sur les indicateurs de santé .pdf
JTC 2024 - SMARTER Retour sur les indicateurs de santé .pdfJTC 2024 - SMARTER Retour sur les indicateurs de santé .pdf
JTC 2024 - SMARTER Retour sur les indicateurs de santé .pdfInstitut de l'Elevage - Idele
 
Algo II : les piles ( cours + exercices)
Algo II :  les piles ( cours + exercices)Algo II :  les piles ( cours + exercices)
Algo II : les piles ( cours + exercices)Sana REFAI
 
JTC 2024 - Réglementation européenne BEA et Transport.pdf
JTC 2024 - Réglementation européenne BEA et Transport.pdfJTC 2024 - Réglementation européenne BEA et Transport.pdf
JTC 2024 - Réglementation européenne BEA et Transport.pdfInstitut de l'Elevage - Idele
 
JTC 2024 La relance de la filière de la viande de chevreau.pdf
JTC 2024 La relance de la filière de la viande de chevreau.pdfJTC 2024 La relance de la filière de la viande de chevreau.pdf
JTC 2024 La relance de la filière de la viande de chevreau.pdfInstitut de l'Elevage - Idele
 

Dernier (8)

Câblage, installation et paramétrage d’un réseau informatique.pdf
Câblage, installation et paramétrage d’un réseau informatique.pdfCâblage, installation et paramétrage d’un réseau informatique.pdf
Câblage, installation et paramétrage d’un réseau informatique.pdf
 
JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...
JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...
JTC 2024 - Leviers d’adaptation au changement climatique, qualité du lait et ...
 
JTC 2024 - SMARTER Retour sur les indicateurs de santé .pdf
JTC 2024 - SMARTER Retour sur les indicateurs de santé .pdfJTC 2024 - SMARTER Retour sur les indicateurs de santé .pdf
JTC 2024 - SMARTER Retour sur les indicateurs de santé .pdf
 
Algo II : les piles ( cours + exercices)
Algo II :  les piles ( cours + exercices)Algo II :  les piles ( cours + exercices)
Algo II : les piles ( cours + exercices)
 
JTC 2024 - DeCremoux_Anomalies_génétiques.pdf
JTC 2024 - DeCremoux_Anomalies_génétiques.pdfJTC 2024 - DeCremoux_Anomalies_génétiques.pdf
JTC 2024 - DeCremoux_Anomalies_génétiques.pdf
 
CAP2ER_GC_Presentation_Outil_20240422.pptx
CAP2ER_GC_Presentation_Outil_20240422.pptxCAP2ER_GC_Presentation_Outil_20240422.pptx
CAP2ER_GC_Presentation_Outil_20240422.pptx
 
JTC 2024 - Réglementation européenne BEA et Transport.pdf
JTC 2024 - Réglementation européenne BEA et Transport.pdfJTC 2024 - Réglementation européenne BEA et Transport.pdf
JTC 2024 - Réglementation européenne BEA et Transport.pdf
 
JTC 2024 La relance de la filière de la viande de chevreau.pdf
JTC 2024 La relance de la filière de la viande de chevreau.pdfJTC 2024 La relance de la filière de la viande de chevreau.pdf
JTC 2024 La relance de la filière de la viande de chevreau.pdf
 

D’un modèle d'IA dans un notebook à un service temps réel : architecturons !