| title | Rakuten Multimodal API |
|---|---|
| emoji | 🚀 |
| colorFrom | red |
| colorTo | gray |
| sdk | docker |
| pinned | false |
Ce moteur de classification de produits exploite le Deep Learning Multimodal (Texte + Image) pour résoudre le challenge Rakuten / Challenge Data ENS.
Ce challenge porte sur la classification multimodale à grande échelle des product-type-code, le but étant de prédire la classe de chaque produit telle que défini Rakuten.
Objectif : Prédire le type de produit à grande échelle en fusionnant les signaux textuels (désignations, descriptions) et visuels (images).
- Architecture hybride : Fusion de modèles Transformers (CamemBERT) et de Computer Vision (EfficientNet / CNN).
- Stacking multicouche : Système d'ensemble combinant LightGBM, CatBoost, Régression Logistique et MLP via un Meta-Learner.
- Inférence Optimisée : Pipeline d'inférence aligné sur les données d'entraînement (tokenisation [CLS], normalisation des métadonnées, clipping de stabilité).
- Architecture API : Backend FastAPI haute performance avec monitoring de diagnostic intégré.
L'inférence génère un vecteur de caractéristiques de 1131 dimensions :
- Texte (768) : Embeddings CamemBERT (token [CLS]).
- Texte SVD (110) : Désignation (30) + Description (80) via TF-IDF & SVD.
- Image Vision (250) : Features EfficientNet réduites par SVD.
- Metadata (3) : [Longueur titre, Nombre de mots, Largeur image].
Le modèle utilise un Meta-Learner qui fusionne les prédictions (108 probabilités) de 4 modèles de base :
- LightGBM (5-Folds) : Opère sur les données brutes pour capturer les non-linéarités.
- CatBoost & LogReg : Opèrent sur les données scalées.
- MLP (Deep Learning) : Fournit une vision probabiliste neuronale.
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
python -m spacy download fr_core_news_md
git lfs pullLe backend surveille les changements et affiche des logs de diagnostic détaillés pour chaque prédiction.
TOKENIZERS_PARALLELISM=false uvicorn api.app:app --host 0.0.0.0 --port 8000 --reloadcd frontend
npm install
npm run devLe projet utilise Git LFS pour gérer les fichiers modèles (.joblib, .cbm, etc.).
- Modifications : Travaillez normalement, Git LFS gère les binaires en arrière-plan.
- Premier Clone : N'oubliez pas de lancer
git lfs pullpour récupérer les vrais fichiers binaires à la place des pointeurs.
Les étapes détaillées du preprocessing (nb2) et de la modélisation (nb3), incluant la génération des 57 artefacts du projet, sont disponibles sur Kaggle :
Le projet est déployé et disponible 24/7 via l'infrastructure suivante :
- Backend API (Hugging Face) : Hébergement du modèle et de la logique d'inférence.
- Interface Démo Web (Vercel) : Application React interactive pour tests en temps réel
Le système a été validé sur des cas complexes (mots courts, désignations ambiguës) avec une précision stabilisée après résolution de la dérive de classification.
Équipe :
- Noel CHING (Lead Data Scientist, ML Ops & Architecture)
- Ediz OZKOHEN (Data Science Associate, Technical Writing & Communications)
Statut : API Déployée et Stabilisée (Avril 2026)
Un projet développé dans le cadre du cursus Liora