>_ DevTrendsfr

Langue

Accueil

Langages

Sections

Frontend Backend Mobile DevOps AI / ML GameDev Blockchain Embarqué Sécurité
Jupyter

Évolution des prompts au lieu du RL : les coulisses du framework GEPA

L'ajustement des instructions système et des agents se transforme généralement en retouches textuelles manuelles sans fin. Corrigez une formulation — améliorez la logique, mais cassiez le formatage de sortie. Utiliser l'apprentissage par renforcement comme GRPO pour de tels ajustements est trop coûteux : les algorithmes nécessitent des dizaines de milliers d'exécutions, et tous les retours se résument à un seul score.

Récemment, j'ai exploré le dépôt GEPA (Genetic-Pareto). Le projet est développé par des chercheurs de Berkeley et Stanford, offrant une approche fondamentalement différente pour optimiser n'importe quel paramètre textuel.

Logo GEPA

L'idée centrale du projet

Les optimiseurs classiques traitent le système comme une boîte noire : ils obtiennent un score numérique en sortie et essaient de deviner où aller ensuite. GEPA fonctionne différemment. Le framework fournit au réseau de neurones l'ensemble du journal d'exécution — erreurs, sortie du profileur, traces de pile et raisonnement intermédiaire.

Le modèle analyse ces données de la même manière qu'un développeur lors du débogage. Il identifie la cause spécifique d'un échec et suggère des corrections ciblées. Ensuite, un algorithme génétique entre en jeu avec des considérations de front de Pareto : le système préserve les variantes textuelles qui performent le mieux sur différents sous-ensembles de tâches.

Ce que le framework peut accomplir

Cette approche permet l'ajustement automatique de divers éléments :

  • Prompts pour des modèles individuels ou des chaînes dans DSPy et LangChain
  • Architecture des agents et leurs ensembles de compétences
  • Règles de planification des tâches et fichiers de configuration
  • Descriptions des outils pour le protocole MCP

Dans les tests des auteurs, le modèle GPT-4.1 Mini a amélioré la précision sur le benchmark mathématique AIME de 46,6% à 56,6% après une centaines d'itérations. Les ingénieurs de Databricks ont utilisé GEPA pour réduire leurs coûts d'opération des agents de 90x sans perdre en qualité.

Comment fonctionne le processus d'optimisation

Le framework opère dans une boucle de cinq étapes séquentielles :

  1. Sélection du candidat depuis le front de Pareto. Le système choisit une variante qui a montré le résultat maximal sur un groupe de test spécifique.
  2. Exécution sur un petit jeu de données. Pendant cette étape, tous les journaux d'exécution et erreurs sont collectés.
  3. Réflexion. Le modèle réflecteur lit les journaux d'échecs textuels et formule des diagnostics.
  4. Mutation. Une nouvelle version du prompt ou du code est créée, tenant compte des erreurs passées de tous les ancêtres.
  5. Décision. Le nouveau candidat est ajouté au pool partagé s'il a démontré une amélioration réelle.

Tous les diagnostics sont appelés Actionable Side Information dans la terminologie des auteurs. En optimisation textuelle, cela sert d'équivalent du gradient de l'apprentissage automatique traditionnel.

Exemple de prompt AIME

Comment écrire du code

Vous pouvez installer la bibliothèque depuis PyPI :

pip install gepa

Le projet a une API simple appelée optimize_anything. Elle vous permet d'ajuster non seulement les prompts mais aussi n'importe quel artefact textuel :

import gepa.optimize_anything as oa
from gepa.optimize_anything import GEPAConfig, EngineConfig, optimize_anything


def evaluate(candidate: str) -> float:
    result = run_my_system(candidate)
    oa.log(f"Output: {result.output}")
    oa.log(f"Error: {result.error}")
    return result.score


result = optimize_anything(
    seed_candidate="Начальный текст инструкции или кода",
    evaluator=evaluate,
    objective="Уменьшить количество ошибок форматирования вывода",
    config=GEPAConfig(engine=EngineConfig(max_metric_calls=100)),
)

Les logs envoyés via oa.log() sont exactement ce qui est transmis au modèle réflecteur pour la détection d'erreurs. Si vous utilisez déjà DSPy, l'outil est disponible prêt à l'emploi comme dspy.GEPA.

Quand l'ajustement via GEPA vaut vraiment le coup

La méthode fonctionne mieux dans les scénarios suivants :

  • Exécuter des agents avec de nombreux outils externes
  • Petits jeux de données d'entraînement avec seulement 5–10 exemples
  • Modèles fermés sans accès aux poids via API
  • Appels coûteux ou lents, y compris la compilation de code et les simulations

Là où le RL nécessite 5 000–25 000 exécutions pour converger, cet algorithme n'a généralement besoin que de 100–500 évaluations.

En conclusion

Le framework aborde le sujet douloureux de l'ajustement manuel des instructions textuelles. C'est bien que l'outil ait déjà été intégré dans MLflow, Pydantic AI et Google ADK, vous n'aurez donc pas besoin de traîner beaucoup de code supplémentaire dans votre projet. Commencez par le court tutoriel dans la documentation ou exécutez optimize_anything sur quelques-uns de vos prompts les plus problématiques.

Projets similaires