Étude de cas
Euro-Information Code Contest
3e sur 177 : choisir quels modèles d'IA entraîner sous contrainte d'énergie.
- sur 177 participants
- 3e
- de compétition
- 50 h
- datasets dans la plus grande instance
- 250 000
- instances aux contraintes différentes
- 7
- 01Relaxation LPborner et guider la sélection
- 02Bin packing à intervallesréaliser les affectations
- 03CP-SAT · MIPsous-problèmes exacts, réparations
- 04Génération de colonnesinstance la plus contrainte
- 05LNS · C/C++améliorer, boucles critiques
- 06Recherche distribuéeplusieurs machines, fusion
| Instance | Modèles | Datasets |
|---|---|---|
| Q1 “Example” | 5 modèles | |
| Q2 “So it begins.” | 3 000 modèles | |
| Q3 “Everything is free!” | 5 000 modèles | |
| Q4 “Those models are demanding!” | 8 000 modèles | |
| Q5 “Looks like there's a discount on our electricity bill.” | 11 000 modèles | |
| Q6 “Where are the files?” | 15 000 modèles | |
| Q7 “We're in the endgame now.” | 50 000 modèles |
Le problème
Un data center doit entraîner des modèles d'IA sans dépasser un plafond d'énergie. Chaque modèle a une valeur, un coût énergétique et des besoins en données par type (numérique, texte, image, code), chacun dans une fourchette : en dessous le modèle est mal entraîné, au-dessus c'est de l'énergie gaspillée.
Chaque dataset ne sert qu'à un seul modèle. Utiliser des données sous copyright, ou des données générées par un autre modèle, divise la valeur par deux. Un modèle mono-besoin peut servir de générateur, mais un modèle alimenté ainsi ne peut pas en alimenter un autre.
Sept instances, de 5 modèles à 50 000 modèles et 250 000 datasets. Le classement compare chaque solution à la meilleure.
Approche
- Relaxation LP sur les « modes » de chaque modèle (propre, dégradé, générateur) pour borner l'optimum et guider la sélection.
- Réalisation par bin packing à intervalles : remplir chaque besoin avec des tailles de datasets dans sa fourchette.
- Sous-problèmes exacts et réparations avec CP-SAT (OR-Tools) et MIP (HiGHS, SCIP).
- Génération de colonnes avec pricing exact par programmation dynamique sur l'instance la plus contrainte.
- Recherche à grand voisinage (LNS) pour améliorer les solutions, avec les boucles critiques en C et C++.
- Recherche distribuée : plusieurs machines lancées en parallèle, synchronisation et fusion des meilleures solutions par scripts.
Résultat
3e sur 177 participants. Merci à Euro-Information pour l'organisation.
