Concevoir et surveiller des métriques personnalisées pour les cas d'utilisation de l'IA générative dans la production d'IA DataRobot

Concevoir et surveiller des métriques personnalisées pour les cas d’utilisation de l’IA générative dans la production d’IA Simseo

Les DSI et autres leaders technologiques ont pris conscience que les cas d’utilisation de l’IA générative (GenAI) nécessitent une surveillance attentive : ces applications comportent des risques inhérents, et de solides capacités d’observabilité aident à les atténuer. Ils ont également réalisé que les mêmes mesures de précision de la science des données couramment utilisées pour les cas d’utilisation prédictives, bien qu’utiles, ne sont pas totalement suffisantes pour les LLMOps.

Lorsqu’il s’agit de surveiller les résultats du LLM, l’exactitude des réponses reste importante, mais les organisations doivent désormais également se soucier des mesures liées à la toxicité, à la lisibilité, aux fuites d’informations personnelles identifiables (PII), aux informations incomplètes et, surtout, aux coûts du LLM. Bien que toutes ces mesures soient nouvelles et importantes pour des cas d’utilisation spécifiques, la quantification des coûts LLM inconnus est généralement celle qui revient en premier dans nos discussions avec nos clients.

Cet article partage une approche généralisable pour définir et surveiller des métriques de performances personnalisées et spécifiques à chaque cas d’utilisation pour les cas d’utilisation de l’IA générative pour les déploiements surveillés avec Simseo AI Production.

N’oubliez pas qu’il n’est pas nécessaire de créer des modèles avec Simseo pour utiliser les fonctionnalités étendues de gouvernance et de surveillance. N’oubliez pas non plus que Simseo propose de nombreuses mesures de déploiement prêtes à l’emploi dans les catégories Santé du service, Dérive des données, Précision et Équité. La présente discussion porte sur ajout de vos propres métriques personnalisées définies par l’utilisateur à un déploiement surveillé.

Métriques client dans Simseo

Pour illustrer cette fonctionnalité, nous utilisons un exemple de l’industrie logistique publié sur Simseo Community Github que vous pouvez répliquer vous-même avec une licence Simseo ou avec un compte d’essai gratuit. Si vous choisissez de vous lancer, regardez également la vidéo ci-dessous et consultez la documentation sur les métriques personnalisées.

Surveillance des métriques pour les cas d’utilisation de l’IA générative

Bien que Simseo vous offre la flexibilité de définir n’importe quelle métrique personnalisée, la structure qui suit vous aidera à réduire vos métriques à un ensemble gérable qui offre toujours une large visibilité. Si vous définissez une ou deux mesures dans chacune des catégories ci-dessous, vous serez en mesure de surveiller les coûts, l’expérience de l’utilisateur final, les mauvais comportements LLM et la création de valeur. Examinons chacun en détail plus tard.

Coût total de possession

Les mesures de cette catégorie surveillent les dépenses liées à l’exploitation de la solution d’IA générative. Dans le cas des LLM auto-hébergés, il s’agirait des coûts de calcul directs encourus. Lors de l’utilisation de LLM hébergés en externe, cela dépendra du coût de chaque appel d’API.

La définition de votre mesure de coût personnalisée pour un LLM externe nécessitera une connaissance du modèle de tarification. Au moment d’écrire ces lignes, la page de tarification d’Azure OpenAI indique le prix d’utilisation de GPT-3.5-Turbo 4K à 0,0015 $ pour 1 000 jetons dans l’invite, plus 0,002 $ pour 1 000 jetons dans la réponse. Ce qui suit get_gpt_3_5_cost La fonction calcule le prix par prédiction lors de l’utilisation de ces prix codés en dur et du nombre de jetons pour l’invite et la réponse calculées à l’aide de Tiktoken.

import tiktoken
encoding = tiktoken.get_encoding("cl100k_base")

def get_gpt_token_count(text):
    return len(encoding.encode(text))

def get_gpt_3_5_cost(
    prompt, response, prompt_token_cost=0.0015 / 1000, response_token_cost=0.002 / 1000
):
    return (
        get_gpt_token_count(prompt) * prompt_token_cost
        + get_gpt_token_count(response) * response_token_cost
    )

Expérience utilisateur

Les mesures de cette catégorie surveillent la qualité des réponses du point de vue de l’utilisateur final prévu. La qualité varie en fonction du cas d’utilisation et de l’utilisateur. Vous souhaiterez peut-être qu’un chatbot pour un chercheur parajuriste produise de longues réponses écrites formellement avec de nombreux détails. Cependant, un chatbot destiné à répondre aux questions de base sur les voyants du tableau de bord de votre voiture doit répondre clairement sans utiliser de termes automobiles inconnus.

Deux mesures de départ pour l’expérience utilisateur sont la longueur de la réponse et la lisibilité. Vous avez déjà vu ci-dessus comment capturer la longueur de réponse générée et son rapport avec le coût. Il existe de nombreuses options pour les mesures de lisibilité. Tous sont basés sur certaines combinaisons de longueur moyenne des mots, de nombre moyen de syllabes dans les mots et de longueur moyenne de phrases. Flesch-Kincaid est l’une de ces mesures de lisibilité largement adoptée. Sur une échelle de 0 à 100, les scores les plus élevés indiquent que le texte est plus facile à lire. Voici un moyen simple de calculer la lisibilité de la réponse générative à l’aide du package textstat.

import textstat

def get_response_readability(response):
    return textstat.flesch_reading_ease(response)

Mesures de sécurité et de réglementation

Cette catégorie contient des mesures permettant de surveiller les solutions d’IA générative pour détecter les contenus susceptibles d’être offensants (sécurité) ou d’enfreindre la loi (réglementation). Les bonnes mesures pour représenter cette catégorie varieront considérablement selon le cas d’utilisation et les réglementations qui s’appliquent à votre secteur ou à votre emplacement.

Il est important de noter que les métriques de cette catégorie s’appliquent aux invites soumises par les utilisateurs et aux réponses générées par les grands modèles de langage. Vous souhaiterez peut-être surveiller les invites en cas de langage abusif et toxique, de biais manifestes, de piratages par injection d’invites ou de fuites de données personnelles. Vous souhaiterez peut-être également surveiller les réponses génératives pour détecter la toxicité et les biais, ainsi que les hallucinations et la polarité.

La surveillance de la polarité des réponses est utile pour garantir que la solution ne génère pas de texte avec une perspective négative cohérente. Dans l’exemple lié qui traite des e-mails proactifs pour informer les clients de l’état de l’expédition, la polarité de l’e-mail généré est vérifiée avant d’être présentée à l’utilisateur final. Si l’e-mail est extrêmement négatif, il est remplacé par un message invitant le client à contacter le service client pour obtenir une mise à jour sur son envoi. Voici une façon de définir une métrique de polarité à l’aide du package TextBlob.

import numpy as np
from textblob import TextBlob

def get_response_polarity(response):
    blob = TextBlob(response)
    return np.mean((sentence.sentiment.polarity for sentence in blob.sentences))

Valeur commerciale

Les DSI subissent une pression croissante pour démontrer clairement la valeur commerciale des solutions d’IA générative. Dans un monde idéal, le retour sur investissement et la manière de le calculer sont un élément à prendre en compte lors de l’approbation du cas d’utilisation à construire. Mais dans la ruée actuelle vers l’expérimentation de l’IA générative, cela n’a pas toujours été le cas. L’ajout de mesures de valeur commerciale à une solution GenAI conçue comme preuve de concept peut aider à garantir un financement à long terme pour celle-ci et pour le prochain cas d’utilisation.

Les métriques de cette catégorie dépendent entièrement du cas d’utilisation. Pour illustrer cela, réfléchissez à la manière de mesurer la valeur commerciale de l’exemple de cas d’utilisation traitant des notifications proactives aux clients sur l’état de leurs expéditions.

Une façon de mesurer la valeur consiste à considérer la vitesse de frappe moyenne d’un agent du support client qui, en l’absence de solution générative, taperait un e-mail personnalisé à partir de zéro. Ignorer le temps nécessaire pour rechercher l’état de l’envoi du client et quantifier simplement le temps de frappe à 150 mots par minute et 20 $ par heure pourrait être calculé comme suit.

def get_productivity(response):
    return get_gpt_token_count(response) * 20 / (150 * 60)

Il est plus probable que le véritable impact commercial résidera dans une réduction des appels au centre de contact et une plus grande satisfaction des clients. Disons que cette entreprise a connu une baisse de 30 % de son volume d’appels depuis la mise en place de la solution d’IA générative. Dans ce cas, les économies réelles associées à chaque e-mail envoyé de manière proactive peuvent être calculées comme suit.

def get_savings(CONTAINER_NUMBER):
    prob = 0.3
    email_cost = $0.05
    call_cost = $4.00
    return prob * (call_cost - email_cost)

Créer et soumettre des métriques personnalisées dans Simseo

Créer une métrique personnalisée

Une fois que vous avez des définitions et des noms pour vos métriques personnalisées, les ajouter à un déploiement est très simple. Vous pouvez ajouter des métriques à l’onglet Métriques personnalisées d’un déploiement à l’aide du bouton +Ajouter une métrique personnalisée dans l’interface utilisateur ou avec du code. Pour les deux itinéraires, vous devrez fournir les informations affichées dans cette boîte de dialogue ci-dessous.

Menu de mesures client
Menu de mesures client

Soumettre une métrique personnalisée

Il existe plusieurs options pour soumettre des métriques personnalisées à un déploiement, qui sont couvertes en détail dans la documentation de support. Selon la façon dont vous définissez les métriques, vous pouvez connaître les valeurs immédiatement ou il peut y avoir un retard et vous devrez les associer au déploiement à une date ultérieure.

Il est recommandé de joindre la soumission des détails des métriques à la prédiction LLM pour éviter de manquer des informations. Dans cette capture d’écran ci-dessous, qui est un extrait d’une fonction plus large, vous voyez llm.predict() au premier rang. Ensuite, vous voyez le test de polarité et la logique de remplacement. Enfin, vous voyez la soumission des métriques au déploiement.

En d’autres termes, il n’existe aucun moyen pour un utilisateur d’utiliser cette solution générative sans enregistrer les métriques. Chaque appel au LLM et sa réponse sont entièrement surveillés.

Soumission des métriques client
Soumission des métriques client

Simseo pour l’IA générative

Nous espérons que cette analyse approfondie des métriques de l’IA générative vous permettra de mieux comprendre comment utiliser la plateforme Simseo AI pour exploiter et gouverner vos cas d’utilisation de l’IA générative. Bien que cet article se concentre exclusivement sur la surveillance des métriques, la plateforme Simseo AI peut vous aider à simplifier l’ensemble du cycle de vie de l’IA : pour créer, exploiter et gouverner des solutions d’IA générative de niveau entreprise, de manière sûre et fiable.

Profitez de la liberté de travailler avec tous les meilleurs outils et techniques, dans des environnements cloud, au même endroit. Brisez les silos et évitez-en de nouveaux avec une expérience cohérente. Déployez et maintenez des applications et des solutions d’IA génératives sûres et de haute qualité en production.