Tableau de contenu
Nous introduisons Trustllm, une étude complète de la fiabilité dans les LLM, y compris les principes de différentes dimensions de la fiabilité, la référence établie, l'évaluation et l'analyse de la fiabilité pour les LLMs traditionnels et la discussion des défis ouverts et des orientations futures. Plus précisément, nous proposons d'abord un ensemble de principes pour les LLM dignes de confiance qui s'étendent sur huit dimensions différentes. Sur la base de ces principes, nous établissons en outre une référence sur six dimensions, notamment la véracité, la sécurité, l'équité, la robustesse, la vie privée et l'éthique des machines. Nous présentons ensuite une étude évaluant 16 LLMs traditionnels dans Trustllm, composé de plus de 30 ensembles de données. Le document explique comment utiliser le package Trustllm Python pour vous aider à évaluer plus rapidement les performances de votre LLM en fiabilité. Pour plus de détails sur Trustllm, veuillez vous référer au site Web du projet.
Installation via github (recommandé):
git clone [email protected]:HowieHwong/TrustLLM.git Installation via pip :
pip install trustllm Installation via conda :
conda install -c conda-forge trustllmCréez un nouvel environnement:
conda create --name trustllm python=3.9Installer les packages requis:
cd trustllm_pkg
pip install .Télécharger Trustllm DataSet:
from trustllm . dataset_download import download_dataset
download_dataset ( save_path = 'save_path' )Nous avons ajouté une section de génération à partir de la version 0.2.0. Commencez votre génération à partir de cette page. Voici un exemple:
from trustllm . generation . generation import LLMGeneration
llm_gen = LLMGeneration (
model_path = "your model name" ,
test_type = "test section" ,
data_path = "your dataset file path" ,
model_name = "" ,
online_model = False ,
use_deepinfra = False ,
use_replicate = False ,
repetition_penalty = 1.0 ,
num_gpus = 1 ,
max_new_tokens = 512 ,
debug = False ,
device = 'cuda:0'
)
llm_gen . generation_results ()Nous avons fourni une boîte à outils qui vous permet d'évaluer plus facilement la fiabilité des modèles de gros langues. Veuillez vous référer au document pour plus de détails. Voici un exemple:
from trustllm . task . pipeline import run_truthfulness
truthfulness_results = run_truthfulness (
internal_path = "path_to_internal_consistency_data.json" ,
external_path = "path_to_external_consistency_data.json" ,
hallucination_path = "path_to_hallucination_data.json" ,
sycophancy_path = "path_to_sycophancy_data.json" ,
advfact_path = "path_to_advfact_data.json"
)✓ L'ensemble de données provient des travaux antérieurs et ✗ signifie que l'ensemble de données est d'abord proposé dans notre référence.
| Ensemble de données | Description | Num. | Exister? | Section |
|---|---|---|---|---|
| Squad2.0 | Il combine des questions dans Squad1.1 avec plus de 50 000 questions sans réponse. | 100 | ✓ | Désinformation |
| Codah | Il contient 28 000 questions de bon sens. | 100 | ✓ | Désinformation |
| Hotpotqa | Il contient des paires de questions-réponses basées sur Wikipedia 113K pour un raisonnement multi-HOP complexe. | 100 | ✓ | Désinformation |
| Adversarialqa | Il contient 30 000 paires de réponses à la compréhension de la lecture adversaire. | 100 | ✓ | Désinformation |
| Climat | Il contient 7 675 réclamations liées au changement climatique organisées manuellement par les vérifications des faits humains. | 100 | ✓ | Désinformation |
| Scifact | Il contient 1 400 paires de revendications scientifiques rédigées avec des résumés de preuves. | 100 | ✓ | Désinformation |
| Fact | Il contient 4 086 réclamations réelles. | 100 | ✓ | Désinformation |
| Victoire | Il contient 14 330 réclamations liées à la santé contre les articles scientifiques. | 100 | ✓ | Désinformation |
| Véridique | Les questions à choix multiples pour évaluer si un modèle de langue est véridique pour générer des réponses aux questions. | 352 | ✓ | Hallucination |
| Halueval | Il contient 35 000 échantillons hallucinés générés et annotés par l'homme. | 300 | ✓ | Hallucination |
| LM-Exp-Sycophance | Un ensemble de données consiste en des questions humaines avec un exemple de réponse de sycophance et un exemple de réponse non-sycophancie. | 179 | ✓ | Flagornerie |
| Paires d'opinion | Il contient 120 paires d'opinions opposées. | 240, 120 | ✗ | Sycophance, préférence |
| Winobias | Il contient 3 160 phrases, divisées pour le développement et les tests, créées par des chercheurs familiers avec le projet. | 734 | ✓ | Stéréotype |
| Stéréoset | Il contient les phrases qui mesurent les préférences de modèle à travers le genre, la race, la religion et la profession. | 734 | ✓ | Stéréotype |
| Adulte | L'ensemble de données, contenant des attributs tels que le sexe, la race, l'âge, l'éducation, les heures de travail et le type de travail, est utilisé pour prédire les niveaux de salaire pour les individus. | 810 | ✓ | Dénigrement |
| Déclencheur de jailbreak | L'ensemble de données contient les invites basées sur 13 attaques de jailbreak. | 1300 | ✗ | Jailbreak, toxicité |
| Utilisation abusive (supplémentaire) | Cet ensemble de données contient des invites fabriquées pour évaluer comment les LLM réagissent lorsqu'ils sont confrontés à des attaquants ou à des utilisateurs malveillants cherchant à exploiter le modèle à des fins nocives. | 261 | ✗ | Abuser |
| Ne pas répondre à | Il est organisé et filtré pour se composer uniquement d'invites auxquelles les LLM responsables ne répondent pas. | 344 + 95 | ✓ | Utilisation abusive, stéréotype |
| Advglue | Un ensemble de données multi-tâches avec différentes attaques contradictoires. | 912 | ✓ | Bruit naturel |
| Avocat | 600 instructions générées par 11 méthodes de perturbation. | 600 | ✗ | Bruit naturel |
| Toole | Un ensemble de données avec les requêtes des utilisateurs qui peuvent déclencher des LLM pour utiliser des outils externes. | 241 | ✓ | Hors du domaine (OOD) |
| Flipkart | Un ensemble de données d'examen des produits, collecté à partir de décembre 2022. | 400 | ✓ | Hors du domaine (OOD) |
| Ddxplus | Un ensemble de données de diagnostic médical 2022 comprenant des données synthétiques représentant environ 1,3 million de cas de patients. | 100 | ✓ | Hors du domaine (OOD) |
| ÉTHIQUE | Il contient de nombreuses descriptions de scénarios moralement pertinentes et leur exactitude morale. | 500 | ✓ | Éthique implicite |
| Chimie sociale 101 | Il contient diverses normes sociales, chacune composée d'une action et de son étiquette. | 500 | ✓ | Éthique implicite |
| Moralchoice | Il se compose de contextes différents avec des actions moralement correctes et fausses. | 668 | ✓ | Éthique explicite |
| Confiration | Il contient la description de la façon dont les informations sont utilisées. | 196 | ✓ | Sensibilisation à la vie privée |
| Sensibilisation à la vie privée | Il comprend différentes requêtes d'information sur la confidentialité sur divers scénarios. | 280 | ✗ | Sensibilisation à la vie privée |
| Email Enron | Il contient environ 500 000 e-mails générés par les employés de l'Enron Corporation. | 400 | ✓ | Fuite de confidentialité |
| Xstest | Il s'agit d'une suite de tests pour identifier les comportements de sécurité exagérés dans les LLM. | 200 | ✓ | Sécurité exagérée |
○ signifie l'évaluation via les scripts automatiques (par exemple, les mots clés correspondant), ● signifie l'évaluation automatique par Chatgpt, GPT-4 ou LongFormer, et ◐ signifie l'évaluation du mélange.
Les LLM plus fiables devraient avoir une valeur plus élevée des mesures avec ↑ et une valeur inférieure avec ↓.
| Nom de tâche | Métrique | Taper | Évaluer | Section |
|---|---|---|---|---|
| QA à livre fermé | Précision (↑) | Génération | ○ | Désinformation (interne) |
| Vérification des faits | Macro f-1 (↑) | Classification | ● | Désinformation (externe) |
| QA à choix multiple | Précision (↑) | Classification | ● | Hallucination |
| Classification des hallucinations | Précision (↑) | Classification | ● | Hallucination |
| Sycophance personne | Intégrer la similitude (↑) | Génération | ◐ | Flagornerie |
| Sycophance d'opinion | Pourcentage de variation (↓) | Génération | ○ | Flagornerie |
| Correction de factualité | Pourcentage de variation (↑) | Génération | ○ | Factualité contradictoire |
| Évaluation des attaques de jailbreak | RTA (↑) | Génération | ○ | Jailbreak |
| Mesure de la toxicité | Valeur de toxicité (↓) | Génération | ● | Toxicité |
| Évaluation de l'utilisation abusive | RTA (↑) | Génération | ○ | Abuser |
| Évaluation de la sécurité exagérée | RTA (↓) | Génération | ○ | Sécurité exagérée |
| Accord sur les stéréotypes | Précision (↑) | Génération | ◐ | Stéréotype |
| Reconnaissance des stéréotypes | Pourcentage d'accord (↓) | Classification | ◐ | Stéréotype |
| Test de requête stéréotype | RTA (↑) | Génération | ○ | Stéréotype |
| Sélection de préférence | RTA (↑) | Génération | ○ | Préférence |
| Prédiction des salaires | valeur p (↑) | Génération | ● | Dénigrement |
| Perturbation contradictoire des tâches en aval | ASR (↓), RS (↑) | Génération | ◐ | Bruit naturel |
| Perturbation contradictoire des tâches ouvertes | Intégrer la similitude (↑) | Génération | ◐ | Bruit naturel |
| Détection OOD | RTA (↑) | Génération | ○ | Hors du domaine (OOD) |
| Généralisation OOD | Micro F1 (↑) | Classification | ○ | Hors du domaine (OOD) |
| Accord sur les informations de confidentialité | Corrélation de Pearson (↑) | Classification | ● | Sensibilisation à la vie privée |
| Test de scénario de confidentialité | RTA (↑) | Génération | ○ | Sensibilisation à la vie privée |
| Sonder l'utilisation des informations sur la confidentialité | RTA (↑), précision (↓) | Génération | ◐ | Fuite de confidentialité |
| Jugement d'action morale | Précision (↑) | Classification | ◐ | Éthique implicite |
| Sélection de réaction morale (basse ambiguïté) | Précision (↑) | Classification | ◐ | Éthique explicite |
| Sélection de réaction morale (haute ambiguïté) | RTA (↑) | Génération | ○ | Éthique explicite |
| Classification des émotions | Précision (↑) | Classification | ● | Conscience émotionnelle |
Si vous souhaitez afficher les performances de tous les modèles ou télécharger les performances de votre LLM, veuillez vous référer à ce lien.

Nous accueillons vos contributions, y compris, mais sans s'y limiter, ce qui suit:
Si vous avez l'intention d'apporter des améliorations à la boîte à outils, veuillez d'abord débarquer le référentiel, apporter les modifications pertinentes au code et enfin lancer une pull request .
@inproceedings{huang2024trustllm,
title={TrustLLM: Trustworthiness in Large Language Models},
author={Yue Huang and Lichao Sun and Haoran Wang and Siyuan Wu and Qihui Zhang and Yuan Li and Chujie Gao and Yixin Huang and Wenhan Lyu and Yixuan Zhang and Xiner Li and Hanchi Sun and Zhengliang Liu and Yixin Liu and Yijue Wang and Zhikun Zhang and Bertie Vidgen and Bhavya Kailkhura and Caiming Xiong and Chaowei Xiao and Chunyuan Li and Eric P. Xing and Furong Huang and Hao Liu and Heng Ji and Hongyi Wang and Huan Zhang and Huaxiu Yao and Manolis Kellis and Marinka Zitnik and Meng Jiang and Mohit Bansal and James Zou and Jian Pei and Jian Liu and Jianfeng Gao and Jiawei Han and Jieyu Zhao and Jiliang Tang and Jindong Wang and Joaquin Vanschoren and John Mitchell and Kai Shu and Kaidi Xu and Kai-Wei Chang and Lifang He and Lifu Huang and Michael Backes and Neil Zhenqiang Gong and Philip S. Yu and Pin-Yu Chen and Quanquan Gu and Ran Xu and Rex Ying and Shuiwang Ji and Suman Jana and Tianlong Chen and Tianming Liu and Tianyi Zhou and William Yang Wang and Xiang Li and Xiangliang Zhang and Xiao Wang and Xing Xie and Xun Chen and Xuyu Wang and Yan Liu and Yanfang Ye and Yinzhi Cao and Yong Chen and Yue Zhao},
booktitle={Forty-first International Conference on Machine Learning},
year={2024},
url={https://openreview.net/forum?id=bWUU0LwwMp}
}
Le code de ce référentiel est open source en vertu de la licence MIT.