Table des matières
attribuer un score de fiabilité à la réponse d'un LLM
Développer un chiffon de confiance
Maison Périphériques technologiques IA Comment mesurer la fiabilité de la réponse d'un modèle grand

Comment mesurer la fiabilité de la réponse d'un modèle grand

Feb 25, 2025 pm 10:50 PM

Le principe de base des grands modèles de langage (LLMS) est très simple: prédire le mot (ou jeton) suivant dans une séquence de mots basés sur des modèles statistiques dans leurs données de formation. Cependant, cette capacité apparemment simple s'avère incroyablement sophistiquée lorsqu'elle peut effectuer un certain nombre de tâches incroyables telles que le résumé de texte, la génération d'idées, le brainstorming, la génération de code, le traitement de l'information et la création de contenu. Cela dit, les LLM n'ont pas de mémoire non «ne comprennent» rien, à part s'en tenir à leur fonction de base: prédire le mot suivant .

Le processus de prédiction des mots suivants est probabiliste. Le LLM doit sélectionner chaque mot dans une distribution de probabilité. Dans le processus, ils génèrent souvent un contenu faux, fabriqué ou incohérent dans le but de produire des réponses cohérentes et de combler les lacunes avec des informations à l'aspect plausible mais incorrectes. Ce phénomène est appelé hallucination, une caractéristique inévitable et bien connue des LLM qui justifie la validation et la corroboration de leurs résultats.

Les méthodes de génération d'augmentation (RAG) de récupération, qui font travailler un LLM avec des sources de connaissances externes, minimisent les hallucinations dans une certaine mesure, mais elles ne peuvent pas les éradiquer complètement. Bien que les chiffons avancés puissent fournir des citations et des URL dans le texte, la vérification de ces références pourrait être mouvementée et longue. Par conséquent, nous avons besoin d'un critère objectif pour évaluer la fiabilité ou la fiabilité de la réponse d'un LLM, qu'elle soit générée à partir de ses propres connaissances ou d'une base de connaissances externe (RAG).

Dans cet article, nous discuterons de la façon dont la sortie d'un LLM peut être évaluée pour la fiabilité par un modèle de langage digne de confiance qui attribue un score à la sortie du LLM. Nous allons d'abord discuter de la façon dont nous pouvons utiliser un modèle de langue digne de confiance pour attribuer des scores à la réponse d'un LLM et expliquer la fiabilité. Par la suite, nous développerons un exemple de chiffon avec Llamaparse et Llamaindex qui évalue les réponses du chiffon pour la fiabilité.

L'ensemble du code de cet article est disponible dans le cahier Jupyter sur GitHub.

attribuer un score de fiabilité à la réponse d'un LLM

Pour démontrer comment nous pouvons attribuer un score de fiabilité à la réponse d'un LLM, j'utiliserai le modèle de langage fiable de CleanLab (TLM). Ces TLM utilisent une combinaison de Quantification de l'incertitude et Analyse de cohérence pour calculer les scores de fiabilité et les explications pour les réponses LLM.

CleanLab propose des API d'essai gratuites qui peuvent être obtenues en créant un compte sur leur site Web. Nous devons d'abord installer le client Python de CleanLab:

1

pip install --upgrade cleanlab-studio

Copier après la connexion
Copier après la connexion

CleanLab prend en charge plusieurs modèles propriétaires tels que ' gpt-4o ', ' gpt-4o-mini ', ' o1-preview ', ' Claude-3-Sonnet ',' Claude-3.5-Sonnet ', ‘ Claude-3.5-Sonnet-V2 ’ et autres. Voici comment TLM attribue un score de confiance à la réponse de GPT-4O. Le score de fiabilité varie de 0 à 1, où des valeurs plus élevées indiquent une plus grande fiabilité.

1

2

3

4

5

6

7

8

9

from cleanlab_studio import Studio

studio = Studio("<CLEANLAB_API_KEY>")  # Get your API key from above

tlm = studio.TLM(options={"log": ["explanation"], "model": "gpt-4o"}) # GPT, Claude, etc

#set the prompt

out = tlm.prompt("How many vowels are there in the word 'Abracadabra'.?")

#the TLM response contains the actual output 'response', trustworthiness score and explanation

print(f"Model's response = {out['response']}")

print(f"Trustworthiness score = {out['trustworthiness_score']}")

print(f"Explanation = {out['log']['explanation']}")

Copier après la connexion
Copier après la connexion

Le code ci-dessus a testé la réponse de GPT-4O pour la question « Combien de voyelles y a-t-il dans le mot« abracadabra ».? ». La sortie du TLM contient la réponse (réponse) du modèle, le score de fiabilité et l'explication. Voici la sortie de ce code.

1

2

3

4

Model's response = The word "Abracadabra" contains 6 vowels. The vowels are: A, a, a, a, a, and a.

Trustworthiness score = 0.6842228802750124

Explanation = This response is untrustworthy due to a lack of consistency in possible responses from the model. Here's one inconsistent alternate response that the model considered (which may not be accurate either):

5.

Copier après la connexion
Copier après la connexion

On peut voir comment le modèle de langue le plus avancé hallucine pour des tâches aussi simples et produit la mauvaise sortie. Il y a le score de réponse et de fiabilité pour la même question pour Claude-3.5-Sonnet-V2 .

1

2

3

4

5

6

7

8

Model's response = Let me count the vowels in 'Abracadabra':

A-b-r-a-c-a-d-a-b-r-a

 

The vowels are: A, a, a, a, a

 

There are 5 vowels in the word 'Abracadabra'.

Trustworthiness score = 0.9378276048845285

Explanation = Did not find a reason to doubt trustworthiness.

Copier après la connexion
Copier après la connexion

Claude-3.5-Sonnet-V2 produit la sortie correcte. Comparons les réponses des deux modèles à une autre question.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

from cleanlab_studio import Studio

import markdown

from IPython.core.display import display, Markdown

 

# Initialize the Cleanlab Studio with API key

studio = Studio("<CLEANLAB_API_KEY>")  # Replace with your actual API key

 

# List of models to evaluate

models = ["gpt-4o", "claude-3.5-sonnet-v2"]

 

# Define the prompt

prompt_text = "Which one of 9.11 and 9.9 is bigger?"

 

# Loop through each model and evaluate

for model in models:

   tlm = studio.TLM(options={"log": ["explanation"], "model": model})

   out = tlm.prompt(prompt_text)

   

   md_content = f"""

## Model: {model}

 

**Response:** {out['response']}

 

**Trustworthiness Score:** {out['trustworthiness_score']}

 

**Explanation:** {out['log']['explanation']}

 

---

"""

   display(Markdown(md_content))

Copier après la connexion
Copier après la connexion

Voici la réponse des deux modèles:

Comment mesurer la fiabilité de la réponse d'un modèle grand

Nous pouvons également générer un score de fiabilité pour les LLM open source. Vérifions la récente LLM open-source très médiatisée: Deepseek-R1. J'utiliserai Deepseek-R1-Distill-Llama-70b , basé sur le modèle de Meta LLAMA-3.3–70B-Instruct et distillé à partir du plus grand mélange de paramètres de 671 milliards d'experts de Deepseek (MOE (MOE (MOE (MOE (MOE de Deepseek ) modèle. La distillation des connaissances est une technique d'apprentissage automatique qui vise à transférer les apprentissages d'un grand modèle pré-formé, le «modèle d'enseignant», à un «modèle étudiant» plus petit.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

import streamlit as st

from langchain_groq.chat_models import ChatGroq

import os

os.environ["GROQ_API_KEY"]=st.secrets["GROQ_API_KEY"]

# Initialize the Groq Llama Instant model

groq_llm = ChatGroq(model="deepseek-r1-distill-llama-70b", temperature=0.5)

prompt = "Which one of 9.11 and 9.9 is bigger?"

# Get the response from the model

response = groq_llm.invoke(prompt)

#Initialize Cleanlab's studio

studio = Studio("226eeab91e944b23bd817a46dbe3c8ae")

cleanlab_tlm = studio.TLM(options={"log": ["explanation"]})  #for explanations

#Get the output containing trustworthiness score and explanation

output = cleanlab_tlm.get_trustworthiness_score(prompt, response=response.content.strip())

md_content = f"""

## Model: {model}

**Response:** {response.content.strip()}

**Trustworthiness Score:** {output['trustworthiness_score']}

**Explanation:** {output['log']['explanation']}

---

"""

display(Markdown(md_content))

Copier après la connexion
Copier après la connexion

Voici la sortie de Deepseek-R1-Distill-Llama-70b Modèle.

Comment mesurer la fiabilité de la réponse d'un modèle grand

Développer un chiffon de confiance

Nous allons maintenant développer un chiffon pour démontrer comment nous pouvons mesurer la fiabilité d'une réponse LLM en chiffon. Ce chiffon sera développé en grattant les données à partir de liens donnés, en les analysant au format Markdown et en créant un magasin vectoriel.

Les bibliothèques suivantes doivent être installées pour le code suivant.

1

2

pip install llama-parse llama-index-core llama-index-embeddings-huggingface

llama-index-llms-cleanlab requests beautifulsoup4 pdfkit nest-asyncio

Copier après la connexion
Copier après la connexion

pour rendre HTML au format PDF, nous devons également installer wkhtmltopdf outil de ligne de commande de leur site Web.

Les bibliothèques suivantes seront importées:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

from llama_parse import LlamaParse

from llama_index.core import VectorStoreIndex

import requests

from bs4 import BeautifulSoup

import pdfkit

from llama_index.readers.docling import DoclingReader

from llama_index.core import Settings

from llama_index.embeddings.huggingface import HuggingFaceEmbedding

from llama_index.core import VectorStoreIndex, SimpleDirectoryReader

from llama_index.llms.cleanlab import CleanlabTLM

from typing import Dict, List, ClassVar

from llama_index.core.instrumentation.events import BaseEvent

from llama_index.core.instrumentation.event_handlers import BaseEventHandler

from llama_index.core.instrumentation import get_dispatcher

from llama_index.core.instrumentation.events.llm import LLMCompletionEndEvent

import nest_asyncio

import os

Copier après la connexion

Les prochaines étapes impliqueront de gratter les données des URL données à l'aide de la bibliothèque BeautifulSoup de Python, d'enregistrer les données grattées dans les fichiers PDF en utilisant pdfkit , et analysant les données de PDF ( s) à un fichier de basse Cas d'utilisation LLM.

Nous allons d'abord configurer le LLM à utiliser par CleanLabTLM et le modèle d'intégration ( HuggingFace Modèle d'intégration BAAI / BGE-SMALL-EN-V1.5 ) qui sera utilisé Pour calculer les intérêts des données grattées pour créer le magasin vectoriel.

1

pip install --upgrade cleanlab-studio

Copier après la connexion
Copier après la connexion

Nous allons désormais définir un gestionnaire d'événements personnalisé, GetTrustWorthinessScore , qui est dérivé d'une classe de gestionnaire d'événements de base. Ce gestionnaire est déclenché à la fin d'une réalisation de LLM et extrait un score de fiabilité des métadonnées de réponse. Une fonction d'assistance, display_response , affiche la réponse du LLM avec son score de fiabilité.

1

2

3

4

5

6

7

8

9

from cleanlab_studio import Studio

studio = Studio("<CLEANLAB_API_KEY>")  # Get your API key from above

tlm = studio.TLM(options={"log": ["explanation"], "model": "gpt-4o"}) # GPT, Claude, etc

#set the prompt

out = tlm.prompt("How many vowels are there in the word 'Abracadabra'.?")

#the TLM response contains the actual output 'response', trustworthiness score and explanation

print(f"Model's response = {out['response']}")

print(f"Trustworthiness score = {out['trustworthiness_score']}")

print(f"Explanation = {out['log']['explanation']}")

Copier après la connexion
Copier après la connexion

Nous allons maintenant générer des PDF en grattant les données des URL données. Pour la démonstration, nous ferons en train de supprimer les données uniquement à partir de cet article Wikipedia sur les modèles de grands langues ( Creative Commons Attribution-ShareAlike 4.0 Licence ).

Remarque : Il est conseillé aux lecteurs de toujours revérifier l'état du contenu / données qu'ils sont sur le point de gratter et de s'assurer qu'ils sont autorisés à le faire.

Le morceau de code suivant éraforait les données des URL données en faisant une demande HTTP et en utilisant BeautifulSoup Python Library pour analyser le contenu HTML. La teneur en HTML est nettoyée en convertissant les URL relatives au protocole à celles absolues. Par la suite, le contenu gratté est converti en fichiers PDF en utilisant pdfkit .

1

2

3

4

Model's response = The word "Abracadabra" contains 6 vowels. The vowels are: A, a, a, a, a, and a.

Trustworthiness score = 0.6842228802750124

Explanation = This response is untrustworthy due to a lack of consistency in possible responses from the model. Here's one inconsistent alternate response that the model considered (which may not be accurate either):

5.

Copier après la connexion
Copier après la connexion

Après avoir généré des PDF (s) à partir des données grattées, nous analysons ces PDF en utilisant llamaparse . Nous définissons les instructions d'analyse pour extraire le contenu au format Markdown et analysons le ou les documents en termes de page avec le nom et le numéro de page du document. Ces entités extraites (pages) sont appelées nœuds . L'analyseur itère sur les nœuds extraits et met à jour les métadonnées de chaque nœud en ajoutant un en-tête de citation qui facilite la référence ultérieure.

1

2

3

4

5

6

7

8

Model's response = Let me count the vowels in 'Abracadabra':

A-b-r-a-c-a-d-a-b-r-a

 

The vowels are: A, a, a, a, a

 

There are 5 vowels in the word 'Abracadabra'.

Trustworthiness score = 0.9378276048845285

Explanation = Did not find a reason to doubt trustworthiness.

Copier après la connexion
Copier après la connexion

Nous créons maintenant un magasin vectoriel et un moteur de requête. Nous définissons un modèle d'invite client pour guider le comportement du LLM en répondant aux questions. Enfin, nous créons un moteur de requête avec l'index créé pour répondre aux requêtes. Pour chaque requête, nous récupérons les 3 meilleurs nœuds du magasin vectoriel en fonction de leur similitude sémantique avec la requête. Le LLM utilise ces nœuds récupérés pour générer la réponse finale.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

from cleanlab_studio import Studio

import markdown

from IPython.core.display import display, Markdown

 

# Initialize the Cleanlab Studio with API key

studio = Studio("<CLEANLAB_API_KEY>")  # Replace with your actual API key

 

# List of models to evaluate

models = ["gpt-4o", "claude-3.5-sonnet-v2"]

 

# Define the prompt

prompt_text = "Which one of 9.11 and 9.9 is bigger?"

 

# Loop through each model and evaluate

for model in models:

   tlm = studio.TLM(options={"log": ["explanation"], "model": model})

   out = tlm.prompt(prompt_text)

   

   md_content = f"""

## Model: {model}

 

**Response:** {out['response']}

 

**Trustworthiness Score:** {out['trustworthiness_score']}

 

**Explanation:** {out['log']['explanation']}

 

---

"""

   display(Markdown(md_content))

Copier après la connexion
Copier après la connexion

Testons maintenant le chiffon pour certaines requêtes et leurs scores de fiabilité correspondants.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

import streamlit as st

from langchain_groq.chat_models import ChatGroq

import os

os.environ["GROQ_API_KEY"]=st.secrets["GROQ_API_KEY"]

# Initialize the Groq Llama Instant model

groq_llm = ChatGroq(model="deepseek-r1-distill-llama-70b", temperature=0.5)

prompt = "Which one of 9.11 and 9.9 is bigger?"

# Get the response from the model

response = groq_llm.invoke(prompt)

#Initialize Cleanlab's studio

studio = Studio("226eeab91e944b23bd817a46dbe3c8ae")

cleanlab_tlm = studio.TLM(options={"log": ["explanation"]})  #for explanations

#Get the output containing trustworthiness score and explanation

output = cleanlab_tlm.get_trustworthiness_score(prompt, response=response.content.strip())

md_content = f"""

## Model: {model}

**Response:** {response.content.strip()}

**Trustworthiness Score:** {output['trustworthiness_score']}

**Explanation:** {output['log']['explanation']}

---

"""

display(Markdown(md_content))

Copier après la connexion
Copier après la connexion
Comment mesurer la fiabilité de la réponse d'un modèle grand

1

2

pip install llama-parse llama-index-core llama-index-embeddings-huggingface

llama-index-llms-cleanlab requests beautifulsoup4 pdfkit nest-asyncio

Copier après la connexion
Copier après la connexion
Comment mesurer la fiabilité de la réponse d'un modèle grand

attribuer un score de fiabilité à la réponse de LLM, qu'il soit généré par une inférence directe ou un chiffon, aide à définir la fiabilité de la sortie de l'IA et à hiérarchiser la vérification humaine si nécessaire. Ceci est particulièrement important pour les domaines critiques où une réponse erronée ou peu fiable pourrait avoir des conséquences graves.

C'est tout le monde! Si vous aimez l'article, suivez-moi sur médium et linkedin .

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Article chaud

Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD
Repo: Comment relancer ses coéquipiers
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Article chaud

Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD
Repo: Comment relancer ses coéquipiers
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Tags d'article chaud

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Qu'est-ce que le protocole de contexte modèle (MCP)? Qu'est-ce que le protocole de contexte modèle (MCP)? Mar 03, 2025 pm 07:09 PM

Qu'est-ce que le protocole de contexte modèle (MCP)?

Construire un agent de vision local utilisant omniparser v2 et omnitool Construire un agent de vision local utilisant omniparser v2 et omnitool Mar 03, 2025 pm 07:08 PM

Construire un agent de vision local utilisant omniparser v2 et omnitool

Replit Agent: un guide avec des exemples pratiques Replit Agent: un guide avec des exemples pratiques Mar 04, 2025 am 10:52 AM

Replit Agent: un guide avec des exemples pratiques

Guide de la piste ACT-ONE: Je me suis filmé pour le tester Guide de la piste ACT-ONE: Je me suis filmé pour le tester Mar 03, 2025 am 09:42 AM

Guide de la piste ACT-ONE: Je me suis filmé pour le tester

J'ai essayé le codage d'ambiance avec Cursor Ai et c'est incroyable! J'ai essayé le codage d'ambiance avec Cursor Ai et c'est incroyable! Mar 20, 2025 pm 03:34 PM

J'ai essayé le codage d'ambiance avec Cursor Ai et c'est incroyable!

Elon Musk et Sam Altman s'affrontent plus de 500 milliards de dollars Stargate Project Elon Musk et Sam Altman s'affrontent plus de 500 milliards de dollars Stargate Project Mar 08, 2025 am 11:15 AM

Elon Musk et Sam Altman s'affrontent plus de 500 milliards de dollars Stargate Project

Deepseek publie un cadre 3FS et SmallPond Deepseek publie un cadre 3FS et SmallPond Mar 03, 2025 pm 07:07 PM

Deepseek publie un cadre 3FS et SmallPond

5 invites Grok 3 qui peuvent faciliter votre travail 5 invites Grok 3 qui peuvent faciliter votre travail Mar 04, 2025 am 10:54 AM

5 invites Grok 3 qui peuvent faciliter votre travail

See all articles