Vous en avez marre de passer des heures à peaufiner manuellement aux petits oignons vos méga prompts pour tirer de meilleurs résultats de vos modèles d’IA ?

Alors laissez-moi vous présenter Promptimizer, une toute nouvelle bibliothèque expérimentale et open-source qui va automatiser l’amélioration de vos prompts en se basant sur des évaluations systématiques et du feedback humain.

Le principe est redoutable : vous fournissez un prompt initial, un jeu de données et des évaluateurs personnalisés, et Promptimizer se charge d’optimiser automatiquement votre prompt pour obtenir les meilleurs résultats possibles.

Prenons un exemple concret pour illustrer : supposons que vous souhaitiez créer un générateur de tweets optimisé.

Voici comment procéder pas à pas. Déjà on va l’installer : pip install -U promptim

Ensuite, on va configurer les clés API. Assurez-vous d’avoir configuré vos clés pour LangSmith et le modèle de votre choix (comme Claude d’Anthropic) :

export LANGSMITH_API_KEY=VOTRE_CLE

export ANTHROPIC_API_KEY=VOTRE_CLE

Puis nous allons créer une tâche comme ceci :

proptim create task ./mon-generateur-tweets \
--name generateur-tweets \
--prompt langchain-ai/tweet-generator-example-with-nothing:starter \
--dataset URL_DATASET \
--description "Génération de tweets informatifs sur divers sujets" \
-y

Le véritable atout de Promptimizer réside dans ses évaluateurs. Ces petits morceaux de code intelligents analysent les résultats de vos prompts et leur attribuent des scores selon vos critères.

optimizer

Imaginez par exemple que vous souhaitiez éviter les hashtags dans vos tweets générés. Voici à quoi ressemblerait votre évaluateur :

def evaluateur_tweets(run: Run, example: Example) -> dict:
# Récupère la prédiction du modèle
prediction = run.outputs["output"]
# Convertit la prédiction en string
resultat = str(prediction.content)
# Score = 1 si pas de hashtag, 0 sinon
score = int("#" not in resultat)

return {
"key": "sans_hashtags",
"score": score,
"comment": "Réussi : tweet sans hashtag" if score == 1 else "Échec : retirer les hashtags"
}

Ainsi, lorsque vous lancez l’optimisation avec la commande promptim train, un processus fascinant se met en marche :

  1. Évaluation initiale : Promptimizer teste votre prompt sur l’ensemble de validation pour établir une référence
  2. Optimisation itérative : Le système analyse les résultats par lots et suggère des améliorations via un métaprompt
  3. Validation continue : Chaque modification est testée pour s’assurer qu’elle améliore réellement les performances
  4. Feedback humain (optionnel) : Vous pouvez intervenir dans le processus en évaluant manuellement les résultats

Pour ajouter cette dimension humaine à l’optimisation, utilisez l’option --annotation-queue :

proptim train --task ./mon-generateur-tweets/config.json --annotation-queue ma_queue

Vous pourrez alors examiner les résultats dans l’interface LangSmith et fournir vos retours, que Promptimizer intégrera dans son processus d’amélioration.

Le fichier config.json vous permet de personnaliser finement le comportement de Promptimizer :

json
{
"name": "Générateur de Tweets",
"dataset": "mon_dataset",
"initial_prompt": {
"prompt_str": "Rédigez un tweet sur {sujet} dans le style de {auteur}",
"which": 0
},
"description": "Génération de tweets engageants adaptés au style",
"optimizer": {
"model": {
"name": "gpt-3.5-turbo",
"temperature": 0.7
}
}
}

Maintenant, comme d’habitude :

  1. Commencez petit : Testez d’abord sur un petit jeu de données avant de passer à l’échelle
  2. Affinez vos évaluateurs : La qualité de l’optimisation dépend directement de la pertinence de vos critères d’évaluation
  3. Utilisez le mode debug : L’option --debug vous permet de suivre en détail le processus d’optimisation
  4. Expérimentez avec les hyperparamètres : Ajustez la taille des lots et le nombre d’époques pour trouver le meilleur équilibre

En combinant évaluation systématique et feedback humain, Promptimizer offre une approche très pragmatique mais très efficace pour améliorer les performances de vos systèmes d’IA. A vous de jouer maintenant ! Et merci à Lorenper pour l’info !

En savoir plus sur Promptimizer


Source link

Categorized in: