Analyser le comportement du modèle à l'aide d'outils d'interprétabilité

Bien qu'une approche responsable de l'IA doive inclure des règles de sécurité, des techniques visant à améliorer la sécurité des modèles et la création d'artefacts de transparence, votre approche de la responsabilité avec l'IA générative ne doit pas simplement consister à suivre une checklist. Les produits d'IA générative sont relativement nouveaux et les comportements d'une application peuvent varier plus que les formes précédentes de logiciels. Pour cette raison, vous devez vérifier les modèles de machine learning utilisés, examiner des exemples de comportement des modèles et enquêter sur les surprises.

Aujourd'hui, les requêtes constituent autant de l'art que de la science, mais il existe des outils qui peuvent vous aider à améliorer empiriquement les requêtes pour les grands modèles de langage, tels que l'outil d'interprétation de l'apprentissage (LIT). LIT est une plate-forme Open Source développée pour la visualisation, la compréhension et le débogage de modèles d'IA/de ML. Vous trouverez ci-dessous un exemple d'utilisation de LIT pour explorer le comportement de Gemma, anticiper les problèmes potentiels et améliorer sa sécurité.

Vous pouvez installer LIT sur votre machine locale, dans Colab ou sur Google Cloud. Pour commencer à utiliser LIT, importez votre modèle et un ensemble de données associé (par exemple, un ensemble de données d'évaluation de la sécurité) dans Colab. LIT génère un ensemble de sorties pour l'ensemble de données à l'aide de votre modèle et vous fournit une interface utilisateur permettant d'explorer le comportement du modèle.

Analyser des modèles Gemma avec LIT

Démarrer l'atelier de programmation Démarrer Google Colab

Animation de l'interface utilisateur de l'outil d'interprétation de l'apprentissage (LIT)

Cette image montre l'interface utilisateur de LIT. L'éditeur de points de données en haut permet aux utilisateurs de modifier leurs requêtes. En bas, le module Salience du LM leur permet de vérifier les résultats de saillance.

Identifier les erreurs dans les requêtes complexes

Les requêtes few-shot (qui incluent des exemples du comportement souhaité dans la requête) et la chaîne de pensée, y compris une forme d'explication ou de raisonnement avant la sortie finale du LLM, sont deux des techniques de requête les plus importantes pour les prototypes et les applications basés sur un LLM de haute qualité. Cependant, créer une requête efficace reste souvent difficile.

Prenons un exemple : aider une personne à évaluer si elle aimera un plat en fonction de ses goûts. Un modèle initial de requête de chaîne de pensée de prototype peut se présenter comme suit:

Analyze a menu item in a restaurant.


## For example:


Taste-likes: I've a sweet-tooth
Taste-dislikes: Don't like onions or garlic
Suggestion: Onion soup
Analysis: it has cooked onions in it, which you don't like.
Recommendation: You have to try it.


Taste-likes: I've a sweet-tooth
Taste-dislikes: Don't like onions or garlic
Suggestion: Baguette maison au levain
Analysis: Home-made leaven bread in France is usually great
Recommendation: Likely good.


Taste-likes: I've a sweet-tooth
Taste-dislikes: Don't like onions or garlic
Suggestion: Macaron in France
Analysis: Sweet with many kinds of flavours
Recommendation: You have to try it.


## Now analyse one more example:


Taste-likes: {{users-food-like-preferences}}
Taste-dislikes: {{users-food-dislike-preferences}}
Suggestion: {{menu-item-to-analyse}}
Analysis:

Avez-vous repéré des problèmes avec cette invite ? LIT vous aidera à examiner l'invite à l'aide du module LM Salience.

Utiliser la saillance de la séquence pour le débogage

La saillance est calculée au plus petit niveau possible (c'est-à-dire pour chaque jeton d'entrée), mais LIT peut agréger la saillance des jetons dans des intervalles plus grands plus interprétables, tels que des lignes, des phrases ou des mots. Pour en savoir plus sur la saillance et comment l'utiliser pour identifier les biais inconscients, consultez la page Interactive Saliency Explorable.

Commençons par donner à l'invite un nouvel exemple d'entrée pour les variables de modèle d'invite:

{{users-food-like-preferences}} = Cheese
{{users-food-dislike-preferences}} = Can't eat eggs
{{menu-item-to-analyse}} = Quiche Lorraine

Une fois cette opération effectuée, on observe que le modèle est complet, ce qui est surprenant:

Taste-likes: Cheese
Taste-dislikes: Can't eat eggs
Suggestion: Quiche Lorraine
Analysis: A savoury tart with cheese and eggs
Recommendation: You might not like it, but it's worth trying.

Pourquoi le modèle vous suggère-t-il de manger quelque chose que vous ne pouvez pas manger ?

La saillance de la séquence peut aider à mettre en évidence le problème racine, comme le montre nos exemples few-shot. Dans le premier exemple, le raisonnement en chaîne de pensée de la section d'analyse ne correspond pas à la recommandation finale. L'analyse du résultat "Il contient des oignons cuit, que vous n'aimez pas" est associée à la recommandation "You have to try it" (Vous devez essayer).

Interface utilisateur LIT montrant l'analyse de la saillance de la séquence de requêtes

Cela met en évidence une erreur dans l'invite initiale: il y a eu une copie accidentelle de la recommandation (You have to try it!) pour le premier exemple few-shot. Vous pouvez voir la force de saillance de la requête dans l'obscurité de la nuance violette. La saillance la plus élevée correspond au premier exemple few-shot, et plus particulièrement aux lignes correspondant à Taste-likes, Analysis et Recommendation. Cela suggère que le modèle utilise surtout ces lignes pour formuler sa recommandation finale incorrecte.

Cet exemple met également en évidence le fait que le prototypage précoce peut révéler des risques auxquels vous ne pensez peut-être pas à l'avance, et que la nature sujette aux erreurs des modèles de langage signifie que vous devez concevoir de manière proactive pour éviter les erreurs. Ce point est abordé plus en détail dans notre Guide People + AI sur la conception avec IA.

Tester des hypothèses pour améliorer le comportement du modèle

La fonctionnalité LIT vous permet de tester les modifications apportées aux requêtes dans la même interface. Dans ce cas, essayez d'ajouter une constitution pour améliorer le comportement du modèle. Les constitutions font référence aux requêtes de conception comportant des principes qui aident à guider la génération du modèle. Des méthodes récentes permettent même la dérivation interactive de principes constitutionnels.

Utilisons cette idée pour améliorer encore davantage la requête. Utilisez l'éditeur de points de données de LIT pour ajouter en haut de notre invite une section contenant les principes de génération, qui commence désormais comme suit:

Analyze a menu item in a restaurant.

* The analysis should be brief and to the point.
* It should provide a clear statement of suitability for someone with
  specific dietary restrictions.
* It should reflect the person's tastes

## For example:

Taste-likes: I've a sweet-tooth
Taste-dislikes: Don't like onions or garlic
Suggestion: Onion soup
Analysis: it has cooked onions in it, which you don't like.
Recommendation: Avoid.

Avec cette mise à jour, l'exemple peut être réexécuté et observer un résultat très différent:

Taste-likes: Cheese
Taste-dislikes: Can't eat eggs
Suggestion: Quiche Lorraine
Analysis: This dish contains eggs, which you can't eat.
Recommendation: Not suitable for you.

La saillance de la requête peut ensuite être réexaminée pour aider à comprendre pourquoi ce changement se produit:

Interface utilisateur LIT montrant l'analyse de saillance des invites

Dans cet exemple, la mention Ne convient pas à vos besoins est influencée par le principe Indiquer clairement si une personne est apte à répondre à des restrictions alimentaires spécifiques et par la déclaration d'analyse explicative indiquant que le plat contient des œufs (ce que l'on appelle la chaîne de pensée).

Inclure des équipes non techniques dans la vérification et l'exploration des modèles

L'interprétabilité est un travail d'équipe qui englobe une expertise en matière de politique, de droit, etc. Comme vous l'avez vu, le support visuel et la capacité interactive de LIT à examiner la saillance et à explorer des exemples peuvent aider les différentes personnes concernées à partager et à communiquer leurs résultats. Cela peut vous permettre d'élargir la diversité des équipes chargées de l'exploration, de la vérification et du débogage des modèles. Leur exposition à ces méthodes techniques peut améliorer leur compréhension du fonctionnement des modèles. En outre, un ensemble d'expertise plus diversifié dans les tests préliminaires des modèles peut également aider à identifier des résultats indésirables qui peuvent être améliorés.

Résumé

Lorsque vous trouvez des exemples problématiques dans vos évaluations de modèle, importez-les dans LIT pour le débogage. Commencez par analyser la plus grande unité de contenu sensible à laquelle vous pouvez penser et qui est liée de manière logique à la tâche de modélisation. Utilisez les visualisations pour voir où le modèle assiste correctement ou incorrectement au contenu de la requête, puis examinez les plus petites unités de contenu pour décrire plus en détail le comportement incorrect que vous observez afin d'identifier des solutions possibles.

Ressources pour les développeurs