Ordonnanceur RL
PPO maison pour une file de rendu

- de retard pondéré en moins que FIFO ; ATC, la référence, reste devant (+78,2 %)
- +76,7 %
- scénarios de test, graines inédites
- 300
- d’entraînement sur CPU
- 3,2 min
- entrées d’état, MLP 256 × 256
- 196
- Le problème
- Des images et des vidéos arrivent en continu, avec durées, priorités et échéances différentes : dans quel ordre les rendre ?
- Pour qui
- La file de rendu de Studio Flow ; un problème de retard pondéré, NP-difficile, classique en ordonnancement.
- Le résultat
- Une politique PPO entraînée en 3,2 min sur CPU : +76,7 % contre FIFO sur 300 scénarios inédits.
Contexte
Des images et des vidéos arrivent au fil de l’eau, avec des durées, des priorités et des échéances différentes. Minimiser le retard pondéré total est un problème NP-difficile classique : une politique apprise peut tenir compte de tout l’état de la file.
Ce que j’ai construit
- Simulateur calibré sur les durées réellement mesurées par le banc GPU (P06).
- PPO écrit à la main : acteur-critique, ratio clippé, entropie 0,02.
- Comparaison honnête à cinq heuristiques, dont ATC, la référence du domaine.
- Point d’intégration pour Studio Flow : classer(tâches).
Architecture 5 briques
- 01 · EntréeSimulateurArrivées de Poisson, charge 0,85, durées mesurées (P06)
- 02 · OutilÉtat24 tâches × 8 traits + 4 globaux = 196 entrées
- 03 · ModèlePPOActeur-critique, ratio clippé, entropie 0,02
- 04 · OutilComparatif300 scénarios inédits contre FIFO, SPT, EDD, WSPT, ATC
- 05 · Sortieclasser(taches)Politique gloutonne, point d’intégration Studio Flow
Fabrication 4 étapes
- SimulateurArrivées de Poisson, charge 0,85.
- PPO2 000 itérations.
- Comparatif300 scénarios jamais vus.
- IntégrationPoint d’entrée classer(tâches) pour Studio Flow, décisions déterministes.
Décisions le choix, la raison, l’alternative écartée
- D1Calibrer le simulateur sur des durées réellement mesurées par le banc GPU (image médiane : 25 s).
La politique apprend sur une file réaliste, sans jeu de données à acheter.
ÉcartéDes durées arbitraires.
- D2Ajouter ATC, la règle de référence du domaine, au comparatif.
Un comparatif complet face à la référence du domaine : la politique apprise finit 3e sur 6, derrière ATC et EDD. Le résultat est publié tel quel.
ÉcartéNe se comparer qu’à FIFO.
- D3Mettre les récompenses à l’échelle ×0,001 (une unité = 1 000 s).
Pour stabiliser l’apprentissage PPO.
- D4Évaluer en mode flux, le mode d’entraînement.
La politique est entraînée pour des arrivées continues : c’est le régime d’une file de rendu en production.
ÉcartéUne évaluation en rafale statique, hors du régime visé.
- D5Une politique gloutonne au point d’intégration.
Des décisions déterministes et rejouables, sans échantillonnage. La règle reste celle qui gagne au comparatif.
Résultats
| Politique | Retard pondéré moyen | p90 | Gain vs FIFO |
|---|---|---|---|
| FIFO | 2493 | 5652 | — |
| SPT (plus courte d’abord) | 675 | 1506 | +72,9 % |
| WSPT | 682 | 1438 | +72,6 % |
| EDD (échéance) | 571 | 1206 | +77,1 % |
| ATC (référence) | 544 | 1114 | +78,2 % |
| P08 (RL) | 581 | 1167 | +76,7 % |
Classement : ATC, EDD, P08 (RL), SPT, WSPT, FIFO. La politique apprise ne remplace une règle simple que si elle la bat ; ici, ce n’est pas encore le cas.
Livrables 4
- Politique entraînée (politique.pt), rejouable.
- Rapport, résumé CSV et résultats par scénario.
- Graphiques d’apprentissage et de comparaison.
- Scénario reproductible (graine 2026) : la politique égale le meilleur, 57 = EDD = ATC.
Environnement
Matériel et conditions de mesure
- Entraîné en 3,2 min sur CPU, sans GPU.
Reproduire commandes du README
Code privé : accès en lecture sous accord de confidentialité, ou démo en direct de 30 minutes. Demander l’accès →
PY=~/Documents/ComfyUI/.venv/bin/python
$PY ordonnanceur/entrainer.py --iterations 2000 # ≈ 3 min CPU → resultats/
$PY ordonnanceur/demonstration.py- Sorties : rapport.md, resume.csv, résultats par scénario, graphiques et politique.pt.
- Simulateur calibré sur les durées du banc GPU (P06).
Galerie 1
Ce que ce projet change pour vous
Le même savoir-faire, sur votre sujet.
Optimiser une file de production
Rendus, traitements, tickets : je modélise votre file, mesure d’abord les règles simples et ne garde l’apprentissage que s’il les bat.
Un simulateur avant la production
Calibré sur vos durées réelles, il permet d’essayer une politique sans toucher à la production.
Un comparatif honnête
La méthode inclut la meilleure heuristique connue : si une règle simple suffit, je vous le dis.