Kode, set data, model untuk makalah "Evaluasi Otomatis Atribusi oleh Model Bahasa Besar"

26 Juni 2023 : 1) Hasil evaluasi dari lebih banyak model termasuk GPT-4. 2) Pemeriksaan ulang menyeluruh dari dataset ATTREVAL-GENSEARCH dan mengoreksi beberapa masalah anotasi. Dataset yang diperbarui dirilis. 3) Kode pelatihan dan evaluasi serta pos pemeriksaan model yang dirilis.
Kami merilis dataset kami (termasuk pelatihan dan dua set evaluasi: attreval-simulasi dan attreval-gensearch) di: HuggingFace Dataset (detail lebih lanjut dapat ditemukan di halaman Dataset)
#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" )Kami menunjukkan hasil kami untuk memicu LLMS dan menyempurnakan LLMS pada data yang digunakan kembali dari tugas terkait.
| Simulasi | Gensearch | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| Pengaturan | Model (ukuran) | Attr. | Kontra. | Tambahan. | Keseluruhan | Attr. | Kontra. | Tambahan. | Keseluruhan |
| Zero-shot | Alpaca (7b) | 50.0 | 4.0 | 1.4 | 33.6 | 50.7 | 8.6 | 3.6 | 34.3 |
| Alpaca (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 | |
| Beberapa shot | Alpaca (7b) | 45.4 | 8.2 | 9.6 | 31.9 | 49.6 | 5.2 | 13.5 | 37.2 |
| Alpaca (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 | |
| Disesuaikan | 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 | |
| Llama (7b) | 62.2 | 50.7 | 74.6 | 62.8 | 77.9 | 41.1 | 78.3 | 72.5 | |
| Alpaca (7b) | 66.8 | 41.1 | 76.8 | 64.5 | 73.0 | 30.2 | 80.0 | 72.5 | |
| Alpaca (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 |
Kami dapat meminta LLMS seperti ChatGPT dan GPT-4 untuk mengevaluasi atribusi. Input adalah prompt tugas evaluasi, klaim (penggabungan kueri + jawaban ), dan referensi. Misalnya,
Verifikasi apakah referensi yang diberikan dapat mendukung klaim. Opsi: Diatribusikan, ekstrapolatori atau kontradiktif. Dikaitkan berarti referensi sepenuhnya mendukung klaim, ekstrapolatori berarti referensi tidak memiliki informasi yang cukup untuk memvalidasi klaim, dan kontradiktif berarti klaim bertentangan dengan informasi yang disajikan dalam referensi.
Klaim: Siapa CEO Twitter saat ini? CEO Twitter saat ini adalah Elon Musk
Referensi: Elon Musk adalah CEO Twitter. Musk mengambil alih sebagai CEO pada Oktober 2022 setelah perselingkuhan bolak-balik di mana miliarder mengusulkan untuk membeli perusahaan media sosial seharga $ 44 miliar, mencoba untuk mundur, dan kemudian akhirnya menjalani akuisisi. Setelah menjadi CEO, mantan CEO Parag Agrawal, CFO NED Segal, dan Kepala Kebijakan dan Kepala Kebijakan Vijaya Gadde semuanya diberhentikan dari perusahaan.
Untuk mereplikasi nomor dalam tabel untuk chatgpt/gpt4 , silakan salin kunci API openai Anda di "./api_key.txt" dan kemudian jalankan contoh notebook prompt_chatgpt_gpt4.ipynb
Untuk meminta llama/alpaca/vicuna, silakan lihat di bawah untuk cara menjalankan inferensi pada model -model ini.
Anda dapat menyempurnakan LMS apa pun pada kumpulan data kami untuk mengevaluasi atribusi.
Di sini, kami memberikan contoh untuk menyempurnakan llama/alpaca/vicuna. Anda dapat menggunakan --model_name_or_path dengan model keluarga Llama. Kami melakukan penyempurnaan penuh model Llama/Alpaca/Vicuna 7B/13B dengan 4 A100 80GB GPU.
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
Anda juga dapat memuat model yang disesuaikan untuk dievaluasi. Kami memberikan pos pemeriksaan berikut yang kami latih pada dataset combined_train dalam model HuggingFace:
Misalnya,
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' Atau hanya menggunakan 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'Kami menunjukkan skrip inferensi dan evaluasi untuk model berbasis 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 512Semua dataset dalam proyek ini dimaksudkan hanya untuk penggunaan tujuan penelitian. Kami mengumpulkan dan memberi anotasi data untuk evaluasi menggunakan informasi yang tersedia untuk umum di web, dengan bantuan mesin pencari generatif, Bing baru. Kami mengakui bahwa LLM memiliki potensi untuk mereproduksi dan memperkuat informasi berbahaya yang ada dalam data. Kami berupaya mengurangi risiko ini dengan memilih data evaluasi kami dengan cermat dan dengan melakukan analisis untuk mengidentifikasi dan mengurangi potensi risiko dalam proses.
Set evaluasi beranotasi kami, Attreval-Gensearch, berasal dari New Bing, yang menggunakan GPT-4 sebagai tulang punggungnya. Sangat penting untuk dicatat bahwa kami juga menggunakan GPT-4 untuk mengevaluasi atribusi pada attreval-gensearch, yang mencapai kinerja terbaik dengan sekitar 85% akurasi secara keseluruhan. Beberapa bias mungkin berasal dari GPT-4 keduanya menghasilkan contoh uji dan mengevaluasi atribusi, yang berpotensi memiringkan pemahaman kita tentang kinerja sebenarnya model. Karena itu kami berhati-hati terhadap optimisme yang berlebihan. Kami juga mengakui bahwa ukuran attreval-gensearch adalah moderat, yang mungkin tidak sepenuhnya mewakili pengaturan penggunaan nyata dari LLMS yang dikaitkan.
Selain itu, dataset attreval-simulasi masih memiliki celah dari skenario nyata. Pola kesalahan dalam dataset yang disimulasikan ini mungkin terlalu sederhana dan kurang keragaman, yang dapat membatasi kemampuan model untuk secara efektif menangani kesalahan dunia nyata yang lebih kompleks dan bervariasi. Perlu juga dicatat bahwa dataset yang disimulasikan ini dapat berisi noise dan label yang keliru, yang selanjutnya dapat menghambat pembelajaran model dan kinerja selanjutnya. Cara mendapatkan data pelatihan berkualitas tinggi untuk evaluasi atribusi pada skala dapat menjadi fokus utama untuk pengembangan di masa depan.
Jika Anda menemukan kode atau dataset ini bermanfaat, silakan pertimbangkan mengutip makalah kami:
@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 }
}Jangan ragu untuk menjangkau jika Anda memiliki pertanyaan. Xiang Yue, Yu Su, Huan Sun