Code, ensembles de données, modèles pour l'article "Évaluation automatique de l'attribution par de grands modèles de langue"

26 juin 2023 : 1) Résultats de l'évaluation de plus de modèles, y compris GPT-4. 2) Réexamen approfondi de l'ensemble de données Attreval-Gensearch et correction de certains problèmes d'annotation. Ensemble de données mis à jour publié. 3) Code de formation et d'évaluation ainsi que les points de contrôle des modèles publiés.
Nous publions notre ensemble de données (y compris la formation et deux ensembles d'évaluation: Attreval-Simulation et Attreval-Gensearch) à: GrouggingFace DataSets (plus de détails peuvent être trouvés sur la page de l'ensemble de données)
#loading dataset
from datasets import load_dataset
# training
attr_train = load_dataset ( "osunlp/AttrScore" , "combined_train" )
# test
# attr_eval_simulation = load_dataset("osunlp/AttrScore", "attreval_simulation")
attr_eval_gensearch = load_dataset ( "osunlp/AttrScore" , "attreval_gensearch" )Nous montrons nos résultats à la fois pour inviter les LLM et les LLM à réglage fin sur les données réutilisées à partir de tâches connexes.
| Simulation | Recherche de la recherche | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| Paramètre | Modèle (taille) | Att. | Contra. | Supplémentaire. | Dans l'ensemble | Att. | Contra. | Supplémentaire. | Dans l'ensemble |
| Zéro | Alpaga (7b) | 50.0 | 4.0 | 1.4 | 33.6 | 50.7 | 8.6 | 3.6 | 34.3 |
| Alpaga (13B) | 48.3 | 5.6 | 2.2 | 33.5 | 50.6 | 6.1 | 19.3 | 34.7 | |
| Vicuna (13b) | 46.3 | 8.3 | 21.6 | 34.6 | 54.4 | 13.3 | 26.1 | 41.4 | |
| Chatte | 45.7 | 17.9 | 52.7 | 43.2 | 61.2 | 20.6 | 53.3 | 55.0 | |
| Gpt-4 | 58.7 | 23.2 | 61.5 | 55.6 | 87.3 | 45.0 | 89.6 | 85.1 | |
| À quelques coups | Alpaga (7b) | 45.4 | 8.2 | 9.6 | 31.9 | 49.6 | 5.2 | 13.5 | 37.2 |
| Alpaga (13B) | 38.9 | 20.1 | 2.2 | 33.1 | 50.5 | 10.3 | 5.6 | 34.8 | |
| Vicuna (13b) | 35.4 | 37.2 | 0.3 | 32.6 | 50.6 | 9.1 | 8.4 | 34.1 | |
| Chatte | 46.6 | 27.6 | 35.8 | 39.2 | 62.6 | 26.8 | 49.5 | 53.3 | |
| Gpt-4 | 61.1 | 31.3 | 68.8 | 60.0 | 85.2 | 53.3 | 88.9 | 84.3 | |
| Affronté | Roberta (330m) | 62.5 | 54.6 | 74.7 | 65.0 | 47.2 | 25.2 | 62.3 | 49.8 |
| Gpt2 (1,5b) | 63.6 | 54.6 | 71.9 | 63.5 | 51.1 | 18.6 | 60.7 | 47.4 | |
| T5 (770m) | 45.9 | 57.1 | 71.6 | 59.1 | 58.5 | 24.3 | 72.5 | 61.6 | |
| Flan-T5 (770m) | 57.3 | 50.1 | 70.5 | 59.3 | 64.3 | 27.6 | 72.9 | 64.5 | |
| Flan-T5 (3B) | 48.1 | 48.7 | 67.1 | 55.7 | 77.7 | 44.4 | 80.0 | 75.2 | |
| Flan-T5 (11b) | 48.4 | 49.9 | 66.5 | 55.4 | 81.6 | 38.9 | 76.9 | 72.7 | |
| Lama (7b) | 62.2 | 50.7 | 74.6 | 62.8 | 77.9 | 41.1 | 78.3 | 72.5 | |
| Alpaga (7b) | 66.8 | 41.1 | 76.8 | 64.5 | 73.0 | 30.2 | 80.0 | 72.5 | |
| Alpaga (13B) | 63.6 | 48.9 | 75.8 | 63.6 | 77.5 | 34.5 | 79.4 | 73.3 | |
| Vicuna (13b) | 66.2 | 49.1 | 78.6 | 66.0 | 69.4 | 37.7 | 79.9 | 72.1 |
Nous pouvons inviter des LLM tels que ChatGPT et GPT-4 pour évaluer l'attribution. L'entrée est l'invite de la tâche d'évaluation, la revendication (une concaténation de Query + Response ) et une référence. Par exemple,
Vérifiez si une référence donnée peut étayer la réclamation. Options: attribuable, extrapolatoire ou contradictoire. Attribuable signifie que la référence soutient pleinement la réclamation, extrapolatoire signifie que la référence manque d'informations suffisantes pour valider la réclamation et contradictoire signifie que la réclamation contredit les informations présentées dans la référence.
Réclamation: Qui est l'actuel PDG de Twitter? Le PDG actuel de Twitter est Elon Musk
Référence: Elon Musk est le PDG de Twitter. Musk a pris ses fonctions de PDG en octobre 2022 à la suite d'une affaire de va-et-vient dans laquelle le milliardaire a proposé d'acheter la société de médias sociaux pour 44 milliards de dollars, a tenté de reculer, puis a finalement conclu l'acquisition. Après être devenu PDG, l'ancien PDG Parag Agrawal, le directeur financier Ned Segal et le chef des affaires juridiques et les politiques Vijaya Gadde ont tous été licenciés de la société.
Pour reproduire le numéro dans le tableau pour ChatGpt / GPT4 , veuillez copier votre touche API OpenAI dans "./api_key.txt" puis exécutez l'exemple de cahier prompt_chatgpt_gpt4.ipynb
Pour inviter Llama / Alpaca / Vicuna, veuillez consulter ci-dessous comment exécuter l'inférence sur ces modèles.
Vous pouvez affiner n'importe quel LMS sur nos ensembles de données réutilisés pour évaluer l'attribution.
Ici, nous donnons un exemple pour les réglages de réglage fin / alpaga / vicuna. Vous pouvez utiliser le --model_name_or_path avec tous les modèles de famille Llama. Nous effectuons une amende complète des modèles LLAMA / Alpaca / Vicuna 7B / 13B avec 4 GPU A100 80 Go.
torchrun --nproc_per_node 4 train_alpaca.py
--model_name_or_path chavinlo/alpaca-13b
--data_path osunlp/AttrScore
--train_subset ' combined_train '
--input_has_query True
--num_train_samples -1
--bf16 True
--output_dir tmp/alpaca_13b_combined_train/
--evaluation_strategy steps
--eval_steps 500
--num_train_epochs 1
--model_max_length 512
--per_device_train_batch_size 2
--per_device_eval_batch_size 2
--gradient_accumulation_steps 8
--save_strategy steps
--save_steps 5000
--save_total_limit 1
--learning_rate 2e-5
--weight_decay 0.
--warmup_ratio 0.03
--lr_scheduler_type cosine
--logging_steps 1
--fsdp ' full_shard auto_wrap '
--fsdp_transformer_layer_cls_to_wrap ' LlamaDecoderLayer '
--tf32 True
Vous pouvez également charger nos modèles affinés pour évaluer. Nous fournissons les points de contrôle suivants que nous avons formés sur le jeu de données combined_train dans les modèles HuggingFace:
Par exemple,
from transformers import AutoTokenizer , AutoModelForSeq2SeqLM
tokenizer = AutoTokenizer . from_pretrained ( "osunlp/attrscore-flan-t5-xl" )
model = AutoModelForSeq2SeqLM . from_pretrained ( "osunlp/attrscore-flan-t5-xl" )
input = "As an Attribution Validator, your task is to verify whether a given reference can support the given claim. A claim can be either a plain sentence or a question followed by its answer. Specifically, your response should clearly indicate the relationship: Attributable, Contradictory or Extrapolatory. A contradictory error occurs when you can infer that the answer contradicts the fact presented in the context, while an extrapolatory error means that you cannot infer the correctness of the answer based on the information provided in the context. n n Claim: Who is the current CEO of Twitter? The current CEO of Twitter is Elon Musk n Reference: Elon Musk is the CEO of Twitter. Musk took over as CEO in October 2022 following a back-and-forth affair in which the billionaire proposed to purchase the social media company for $44 billion, tried to back out, and then ultimately went through with the acquisition. After becoming CEO, former CEO Parag Agrawal, CFO Ned Segal, and legal affairs and policy chief Vijaya Gadde were all dismissed from the company."
input_ids = tokenizer . encode ( input , return_tensors = "pt" )
outputs = model . generate ( input_ids )
output = tokenizer . decode ( outputs [ 0 ], skip_special_tokens = True )
print ( output ) #'Attributable' Ou simplement utiliser le pipeline
from transformers import pipeline
model = pipeline ( "text2text-generation" , "osunlp/attrscore-flan-t5-xl" )
input = "As an Attribution Validator, your task is to verify whether a given reference can support the given claim. A claim can be either a plain sentence or a question followed by its answer. Specifically, your response should clearly indicate the relationship: Attributable, Contradictory or Extrapolatory. A contradictory error occurs when you can infer that the answer contradicts the fact presented in the context, while an extrapolatory error means that you cannot infer the correctness of the answer based on the information provided in the context. n n Claim: Who is the current CEO of Twitter? The current CEO of Twitter is Elon Musk n Reference: Elon Musk is the CEO of Twitter. Musk took over as CEO in October 2022 following a back-and-forth affair in which the billionaire proposed to purchase the social media company for $44 billion, tried to back out, and then ultimately went through with the acquisition. After becoming CEO, former CEO Parag Agrawal, CFO Ned Segal, and legal affairs and policy chief Vijaya Gadde were all dismissed from the company."
output = model ( input )[ 0 ][ 'generated_text' ]
print ( output ) #'Attributable'Nous montrons un script d'inférence et d'évaluation pour les modèles basés sur LLAMA:
python inference_alpaca.py
--model_name_or_path osunlp/attrscore-vicuna-13b
--test_data_path osunlp/AttrScore
--subset_name attreval_simulation
--model_max_length 512Tous les ensembles de données de ce projet sont destinés à une utilisation à des fins de recherche uniquement. Nous collectons et annotons les données pour l'évaluation à l'aide d'informations accessibles au public sur le Web, avec l'aide d'un moteur de recherche génératif, New Bing. Nous reconnaissons que les LLM ont le potentiel de reproduire et d'amplifier les informations nocives présentes dans les données. Nous avons fait un effort pour atténuer ce risque en sélectionnant soigneusement nos données d'évaluation et en effectuant des analyses pour identifier et atténuer les risques potentiels dans le processus.
Notre ensemble d'évaluation annoté, Attreval-Gensearch, est dérivé de New Bing, qui utilise GPT-4 comme squelette. Il est crucial de noter que nous utilisons également GPT-4 pour évaluer l'attribution sur Attreval-Gensearch, qui atteint les meilleures performances avec une précision globale d'environ 85%. Certains biais pourraient provenir de GPT-4 générant tous deux les exemples de test et évaluant l'attribution, ce qui pourrait potentiellement fausser notre compréhension des véritables performances du modèle. Nous avertissons donc contre l'optimisme. Nous reconnaissons également que la taille de l'attreval-Gensearch est modérée, ce qui peut ne pas représenter entièrement le paramètre d'utilisation réel des LLM attribués.
En outre, l'ensemble de données de simulation attrevale propose toujours des lacunes du scénario réel. Les modèles d'erreur dans cet ensemble de données simulés peuvent être trop simplistes et manquer de diversité, ce qui peut limiter la capacité des modèles à gérer efficacement les erreurs plus complexes et plus variées du monde. Il convient également de noter que cet ensemble de données simulé peut contenir du bruit et des étiquettes erronées, ce qui pourrait entraver davantage l'apprentissage des modèles et les performances ultérieures. Comment obtenir des données de formation de meilleure qualité pour l'évaluation de l'attribution à l'échelle peut être un objectif majeur pour le développement futur.
Si vous trouvez ce code ou l'ensemble de données utile, veuillez envisager de citer notre papier:
@article { yue2023automatic ,
title = { Automatic Evaluation of Attribution by Large Language Models } ,
author = { Yue, Xiang and Wang, Boshi and Zhang, Kai and Chen, Ziru and Su, Yu and Sun, Huan } ,
journal = { arXiv preprint arXiv:2305.06311 } ,
year = { 2023 }
}N'hésitez pas à tendre la main si vous avez des questions. Xiang Yue, Yu Su, Huan Sun