Код, наборы данных, модели для статьи «Автоматическая оценка атрибуции крупными языковыми моделями»

26 июня 2023 года : 1) Результаты оценки большего количества моделей, включая GPT-4. 2) Тщательное повторное рассмотрение набора данных атрибуты и исправления некоторых проблем с аннотацией. Обновленный набор данных выпущен. 3) Учебный и оцененный код, а также выпущенные контрольные точки модели.
Мы выпускаем наш набор данных (включая обучение и два набора оценки: атрибут-симуляция и атрибут-Gensearch) по адресу: наборы данных HuggingFace (подробнее можно найти на странице набора данных)
#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" )Мы показываем наши результаты как для подсказки LLMS, так и для тонкой настройки LLMS для перепрофилированных данных из соответствующих задач.
| Симуляция | Gensearch | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| Параметр | Модель (размер) | Атрис | Противодействие | Дополнительный. | Общий | Атрис | Противодействие | Дополнительный. | Общий |
| Нулевой выстрел | Альпака (7b) | 50.0 | 4.0 | 1.4 | 33,6 | 50,7 | 8.6 | 3.6 | 34.3 |
| Альпака (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 | |
| Чатгпт | 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 | |
| Несколько выстрелов | Альпака (7b) | 45,4 | 8.2 | 9.6 | 31.9 | 49,6 | 5.2 | 13.5 | 37.2 |
| Альпака (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 | |
| Чатгпт | 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 | |
| Тонко настроенный | Роберта (330 м) | 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 | |
| Лама (7b) | 62,2 | 50,7 | 74,6 | 62,8 | 77.9 | 41.1 | 78.3 | 72,5 | |
| Альпака (7b) | 66.8 | 41.1 | 76.8 | 64,5 | 73,0 | 30.2 | 80.0 | 72,5 | |
| Альпака (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 |
Мы можем предложить LLM, такие как CHATGPT и GPT-4 для оценки атрибуции. Ввод - это подсказка задачи оценки, претензия (объединение запроса + ответ ) и ссылка. Например,
Убедитесь, может ли данная ссылка поддержать претензию. Варианты: приписываемые, экстраполяционные или противоречивые. Приписываемое означает, что ссылка полностью поддерживает претензию, экстраполяция означает, что ссылка не имеет достаточной информации для проверки претензии, а противоречиво означает, что требование противоречит информации, представленной в ссылке.
Претензия: кто текущий генеральный директор Twitter? Текущий генеральный директор Twitter - Элон Маск
Ссылка: Элон Маск - генеральный директор Twitter. Маск занял пост генерального директора в октябре 2022 года после обратного дела, в котором миллиардер предложил приобрести компанию социальных сетей за 44 миллиарда долларов, попытался отступить, а затем в конечном итоге прошел через приобретение. После того, как он стал генеральным директором, бывшим генеральным директором Параг Агравал, финансовый директор Сегал, а также руководитель по правовым вопросам и политике Виджая Гадде были уволены из компании.
Чтобы повторить номер в таблице для CHATGPT/GPT4 , пожалуйста, скопируйте свой ключ API OpenAI в "./api_key.txt" , а затем запустите пример ноутбука prompt_chatgpt_gpt4.ipynb
Чтобы попросить Llama/Alpaca/Vicuna, см. Ниже, чтобы сделать вывод на эти модели.
Вы можете точно настроить любые LMS на наших перепрофилированных наборах данных, чтобы оценить атрибуцию.
Здесь мы приводим пример для точной настройки Llama/Alpaca/Vicuna. Вы можете использовать --model_name_or_path с любыми семейными моделями Llama. Мы делаем полную точную настройку моделей Llama/Alpaca/Vicuna 7b/13b с 4 A100 80 ГБ.
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
Вы также можете загрузить наши тонкие модели, чтобы оценить. Мы предоставляем следующие контрольно -пропускные пункты, которые мы обучали на наборе данных combined_train в моделях HuggingFace:
Например,
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' Или просто использовать 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'Мы показываем сценарий вывода и оценки для моделей на основе ламы:
python inference_alpaca.py
--model_name_or_path osunlp/attrscore-vicuna-13b
--test_data_path osunlp/AttrScore
--subset_name attreval_simulation
--model_max_length 512Все наборы данных в этом проекте предназначены только для использования целей исследования. Мы собираем и аннотируем данные для оценки, используя общедоступную информацию в Интернете с помощью генеративной поисковой системы, New Bing. Мы признаем, что LLMs могут воспроизводить и усилить вредную информацию, присутствующую в данных. Мы приложили усилия, чтобы смягчить этот риск, тщательно выбрав наши данные оценки и проведя анализ для выявления и снижения потенциальных рисков в процессе.
Наш аннотированный набор оценки, Attreval-Gensearch, получен из нового Bing, который использует GPT-4 в качестве основы. Крайне важно отметить, что мы также используем GPT-4 для оценки атрибуции на Attreval-Gensearch, что достигает наилучшей производительности с общей точностью около 85%. Некоторые предвзятость может исходить из-за того, что GPT-4 генерирует тестовые примеры и оценку атрибуции, что потенциально может исказить наше понимание истинной производительности модели. Поэтому мы предостерегаем от чрезмерного оптимизма. Мы также подтверждаем, что размер атрибута-Gensearch является умеренным, что может не полностью представить реальное настройку атрибуты LLM.
Кроме того, набор данных Attrival-Simulation по-прежнему имеет пробелы из реального сценария. Паттерны ошибок в этом смоделированном наборе данных могут быть слишком упрощенными и не имеют разнообразия, что может ограничить способность моделей эффективно обрабатывать более сложные и различные ошибки в реальном мире. Стоит также отметить, что этот моделируемый набор данных может содержать шум и ошибочные этикетки, что может дополнительно препятствовать обучению и последующей производительности моделей. Как получить более качественные данные обучения для оценки атрибуции в масштабе, может быть основным направлением для будущего развития.
Если вы найдете этот код или набор данных полезным, пожалуйста, рассмотрите возможность ссылаться на нашу статью:
@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 }
}Не стесняйтесь обращаться, если у вас есть какие -либо вопросы. Сян Юэ, Ю -Су, Хуан Солнце