Passer au contenu principal

Devin post-entraîne un LoRA FLUX sur un GPU Modal, déploie le meilleur checkpoint et l’intègre à une application de chat

Devin s’exécute là où la tâche l’exige. Avec Devin Outposts, une session peut tourner sur votre propre infrastructure ou sur une plateforme partenaire ; ici, elle s’exécute dans une sandbox GPU Modal : le même Devin qui écrit votre code peut ainsi entraîner, évaluer et déployer un modèle de bout en bout. Dans ce tutoriel, Devin affine un LoRA FLUX sur 18 images de loutres pour que « Devin the software engineer » soit représenté sous les traits d’une loutre, le déploie comme endpoint Modal, puis l’ajoute au sélecteur de modèles de l’application d’exemple, otterchat.

Avant de commencer

  • Créer un outpost Modal : exécutez uvx modal-devin init et choisissez un GPU pour l’application Modal générée. Consultez Exécuter Devin sur Modal et le démarrage rapide d’Outposts.
  • Connecter votre repository : le repo d’exemple, otterchat, est une application de chat dotée d’un sélecteur de modèles d’image. L’outpost en effectue un checkout sur un Modal Volume persistant.
  • Préparer vos données d’entraînement : ajoutez des images légendées au repository ou à un Modal Volume monté par l’outpost. L’exemple utilise 18 images de loutres façon dessin animé, avec des légendes comme « Devin the software engineer in a data center ».
  • Ajouter des secrets : enregistrez votre clé Weights & Biases dans Paramètres > Secrets. La sandbox Modal dispose déjà des credentials Modal : Devin peut donc déployer des endpoints sans configuration supplémentaire.
  • Définir des règles pour les longues exécutions : ajoutez des règles d’organisation (ou intégrez-les au prompt), par exemple : publier un point d’avancement toutes les 15 minutes, générer des images de validation à chaque checkpoint et inclure le lien d’aperçu dans chaque PR.
  • Connecter Slack (facultatif) : les exécutions d’entraînement durent plusieurs heures ; synchronisez la session avec un thread Slack pour en suivre l’avancement.

Étape 1 : Démarrer une session sur l’outpost

Ouvrez Devin, sélectionnez votre outpost Modal dans le menu Virtual environment situé sous la zone de prompt, puis activez l’option Slack dans le composer. Vérifiez le matériel :
Devin indique disposer d’un GPU NVIDIA B200 avec PyTorch et diffusers installés, ainsi que du projet sur un Modal Volume persistant.

Étape 2 : Vérifier les données d’entraînement

Devin trouve le jeu de données dans le projet et publie les 18 images avec leur légende dans la session et dans le thread Slack.

Étape 3 : Lancer l’exécution de l’entraînement

Devin mène la tâche en toute autonomie, en suivant les règles ci-dessus :
  1. Entraîne le LoRA : environ 1 000 étapes, consignées dans Weights & Biases, avec des rendus de validation toutes les 100 étapes.
  2. Rend compte dans Slack : un point d’avancement toutes les 15 minutes avec les derniers rendus. Les premiers rendus montrent des humains ; la loutre apparaît au fil de l’entraînement.
  3. Choisit le meilleur checkpoint : l’étape 700, car les étapes 900 et 1 000 présentaient des signes de surapprentissage.
  4. Déploie et livre : expose l’étape 700 sous forme d’endpoint Modal serverless, ajoute otterimage 1.0 au sélecteur de modèles de l’application de chat, enregistre un test de bout en bout et ouvre une PR avec un lien d’aperçu.
Grille d'images de validation à chaque checkpoint

Rendus de validation de l'étape 500 à l'étape 1 000

Étape 4 : Tester le modèle

Ouvrez le lien d’aperçu indiqué dans la PR et demandez une image :
L'application de chat renvoyant une loutre de dessin animé en train de manger des spaghettis
Avec le même prompt, un modèle de génération d’images généraliste renvoie un humain.

Étape 5 : Itérer avec des sessions enfants

Le post-entraînement se limite rarement à une seule exécution. Confiez un article de recherche à Devin et laissez-le explorer les différentes pistes en parallèle :
Devin ajoute les nouvelles méthodes au script d’entraînement dans une PR, puis lance trois sessions enfants sur l’outpost : une pour LoHa, une pour LoKr et une pour le fine-tuning natif.
Session de Devin affichant trois sessions enfants pour LoHa, LoKr et le fine-tuning natif

Étapes suivantes

Exécuter Devin sur Modal

Créez un outpost reposant sur Modal avec des GPU, des Volumes et des Secrets

Devin Outposts

Exécutez des sessions sur votre propre infrastructure ou sur une plateforme partenaire

Intégration Slack

Suivez les sessions de longue durée depuis un thread Slack

Devins gérés

Lancez et supervisez des sessions enfants pour mener des expérimentations en parallèle