Code, Datensätze, Modelle für das Papier "Automatische Bewertung der Zuordnung durch große Sprachmodelle"

26. Juni 2023 : 1) Bewertungsergebnisse weiterer Modelle, einschließlich GPT-4. 2) gründliche Überprüfung des Datensatzes für Attrülen-Genszene und Bekämpfung einiger Annotationsprobleme. Aktualisierter Datensatz veröffentlicht. 3) Trainings- und Bewertungscode sowie die veröffentlichten Modell -Checkpoints.
Wir veröffentlichen unseren Datensatz (einschließlich Training und zwei Bewertungssätze: Attrüß-Simulation und Attrüß-Gensuche) unter: Huggingface-Datensätze (weitere Details finden Sie auf der Datensatzseite)
#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" )Wir zeigen unsere Ergebnisse sowohl für LLMs als auch für Feinabstimmungs-LLMs für repurponierte Daten aus verwandten Aufgaben.
| Simulation | Gensearch | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| Einstellung | Modell (Größe) | Attr. | Contra. | Extra. | Gesamt | Attr. | Contra. | Extra. | Gesamt |
| Null-Shot | Alpaka (7b) | 50.0 | 4.0 | 1.4 | 33.6 | 50.7 | 8.6 | 3.6 | 34.3 |
| Alpaka (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 | |
| Chatgpt | 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 | |
| Wenige Schüsse | Alpaka (7b) | 45,4 | 8.2 | 9.6 | 31.9 | 49,6 | 5.2 | 13.5 | 37.2 |
| Alpaka (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 | |
| Chatgpt | 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 | |
| Fein abgestimmt | Roberta (330 m) | 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 (770 m) | 45,9 | 57.1 | 71.6 | 59.1 | 58,5 | 24.3 | 72,5 | 61.6 | |
| Flan-T5 (770 m) | 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 | |
| Alpaka (7b) | 66,8 | 41.1 | 76,8 | 64,5 | 73.0 | 30.2 | 80.0 | 72,5 | |
| Alpaka (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 |
Wir können LLMs wie ChatGPT und GPT-4 dazu veranlassen, die Zuordnung zu bewerten. Die Eingabe ist die Eingabeaufforderung für Bewertungsaufgaben, den Anspruch (eine Verkettung der Abfrage + Antwort ) und eine Referenz. Zum Beispiel,
Überprüfen Sie, ob eine bestimmte Referenz den Anspruch stützen kann. Optionen: zuzurechnen, extrapolatorisch oder widersprüchlich. Zugehörige bedeutet, dass die Referenz die Behauptung vollständig unterstützt, extrapolatorische bedeutet, dass der Referenz ausreichend Informationen zur Validierung des Anspruchs und widersprüchliche Beendigung der Forderung den in der Referenz dargestellten Informationen widerspricht.
Behauptung: Wer ist der aktuelle CEO von Twitter? Der aktuelle CEO von Twitter ist Elon Musk
Referenz: Elon Musk ist der CEO von Twitter. Musk übernahm im Oktober 2022 als CEO nach einer Hin- und Her-Angelegenheit, in der der Milliardär vorschlug, das Social-Media-Unternehmen für 44 Milliarden US-Dollar zu kaufen, versuchte, sich zurückzuziehen, und machte sich dann schließlich mit der Akquisition durch. Nachdem sie CEO, ehemaliger CEO Parag Agrawal, CFO Ned Segal, und Legal Affairs and Policy Chief Vijaya Gadde aus dem Unternehmen entlassen wurden.
Um die Nummer in der Tabelle für ChatGPT/GPT4 zu replizieren, kopieren Sie bitte Ihre OpenAI -API -Schlüssel in "./api_key.txt" und führen Sie dann das Notebook -Beispiel prompt_chatgpt_gpt4.ipynb aus
Um Lama/Alpaca/Vicuna zu veranlassen, finden Sie unten unten, wie Sie inferenzt werden.
Sie können alle LMs in unseren repurponierten Datensätzen fein abstellen, um die Zuordnung zu bewerten.
Hier geben wir ein Beispiel für die Feinabstimmung Lama/Alpaka/Vicuna. Sie können die --model_name_or_path mit allen Lama -Familienmodellen verwenden. Wir machen die volle Feinabstimmung von Lama/Alpaka/Vicuna 7B/13B-Modellen mit 4 A100 80 GB GPUs.
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
Sie können auch unsere fein abgestimmten Modelle für die Bewertung laden. Wir bieten die folgenden Checkpoints an, die wir auf dem Dataset combined_train in HuggingFace -Modellen trainiert haben:
Zum Beispiel,
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' Oder einfach die pipeline verwenden
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'Wir zeigen ein Inferenz- und Evaluierungsskript für Lama-basierte Modelle:
python inference_alpaca.py
--model_name_or_path osunlp/attrscore-vicuna-13b
--test_data_path osunlp/AttrScore
--subset_name attreval_simulation
--model_max_length 512Alle Datensätze in diesem Projekt dienen nur zur Verwendung von Forschungszwecken. Wir sammeln und kommentieren Daten zur Bewertung mithilfe öffentlich verfügbarer Informationen im Web mit Unterstützung einer generativen Suchmaschine, New Bing. Wir erkennen an, dass LLMs das Potenzial haben, schädliche Informationen in den Daten zu reproduzieren und zu verstärken. Wir haben uns bemüht, dieses Risiko zu mildern, indem wir unsere Bewertungsdaten sorgfältig auswählen und Analysen durchführen, um potenzielle Risiken im Prozess zu identifizieren und zu mildern.
Unser kommentiertes Bewertungssatz, die Attrüß-Gensuche, wird von New Bing abgeleitet, das GPT-4 als Rückgrat verwendet. Es ist entscheidend zu beachten, dass wir auch GPT-4 verwenden, um die Zuschreibung bei der Attrüß-Gensuche zu bewerten, was die beste Leistung mit einer Gesamtgenauigkeit von rund 85% erzielt. Einige Verzerrungen könnten von GPT-4 stammen, die sowohl die Testbeispiele erzeugen als auch die Bewertung der Zuschreibung, was möglicherweise unser Verständnis der wahren Leistung des Modells verzerren könnte. Wir warnen daher vor Überoptimismus. Wir erkennen auch an, dass die Größe der Attrülen-Gensuche moderat ist, was möglicherweise nicht vollständig die tatsächliche Verwendung von zugeschriebenen LLMs darstellt.
Außerdem hat der Datensatz des AttrVal-Simulation immer noch Lücken aus dem wirklichen Szenario. Die Fehlermuster in diesem simulierten Datensatz sind möglicherweise zu simpel und mangelnde Vielfalt, wodurch die Fähigkeit der Modelle, komplexere und unterschiedliche reale Fehler effektiv umzugehen, einschränken kann. Es ist auch erwähnenswert, dass dieser simulierte Datensatz Geräusche und fehlerhafte Beschriftungen enthalten kann, was das Lernen der Modelle und die anschließende Leistung weiter behindern könnte. Wie Sie Schulungsdaten für die Bewertung von höherer Qualität für die Bewertung der Attributionen im Maßstab erhalten, kann ein Hauptaugenmerk für die zukünftige Entwicklung sein.
Wenn Sie diesen Code oder den Datensatz nützlich finden, sollten Sie unser Papier zitieren:
@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 }
}Fühlen Sie sich frei zu erreichen, wenn Sie Fragen haben. Xiang Yue, Yu Su, Huan Sun