Ordonnanceur RL

PPO maison pour une file de rendu

Rôle
Simulateur, algorithme, évaluation
Outils
  • PyTorch
  • PPO
  • NumPy
Statut
Fonctionnel
Apprentissage de la politique sur 2 000 itérations.
Apprentissage de la politique sur 2 000 itérations.
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

  1. 01 · EntréeSimulateurArrivées de Poisson, charge 0,85, durées mesurées (P06)
  2. 02 · OutilÉtat24 tâches × 8 traits + 4 globaux = 196 entrées
  3. 03 · ModèlePPOActeur-critique, ratio clippé, entropie 0,02
  4. 04 · OutilComparatif300 scénarios inédits contre FIFO, SPT, EDD, WSPT, ATC
  5. 05 · Sortieclasser(taches)Politique gloutonne, point d’intégration Studio Flow

Fabrication 4 étapes

  1. SimulateurArrivées de Poisson, charge 0,85.
  2. PPO2 000 itérations.
  3. Comparatif300 scénarios jamais vus.
  4. 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

  1. D1
    Calibrer 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.

  2. D2
    Ajouter 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.

  3. D3
    Mettre les récompenses à l’échelle ×0,001 (une unité = 1 000 s).

    Pour stabiliser l’apprentissage PPO.

  4. 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é.

  5. D5
    Une 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

PolitiqueRetard pondéré moyenp90Gain vs FIFO
FIFO24935652—
SPT (plus courte d’abord)6751506+72,9 %
WSPT6821438+72,6 %
EDD (échéance)5711206+77,1 %
ATC (référence)5441114+78,2 %
P08 (RL)5811167+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

Politique RL contre heuristiques, 300 scénarios : ATC reste devant.

Ce que ce projet change pour vous

Le même savoir-faire, sur votre sujet.

01

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.

02

Un simulateur avant la production

Calibré sur vos durées réelles, il permet d’essayer une politique sans toucher à la production.

03

Un comparatif honnête

La méthode inclut la meilleure heuristique connue : si une règle simple suffit, je vous le dis.