Может ли Llama 2 заменить GPT-4 для оценки чат-бота?

TLDR; Сегодня в таблице лидеров Open LLM насчитывается 1042 модели чат-ботов с открытым исходным кодом, и она быстро растет: сообщество добавляет новые каждый день. В идеале мы бы сами оценивали этих чат-ботов вручную, но их слишком много. Один из способов оценки чат-ботов в масштабе — использовать GPT-4 в качестве критерия. Здесь я спросил, насколько хорошо работает судья Llama 2 по сравнению с GPT-4 (ответ: на удивление хорошо!), согласуется ли его оценка с оценкой человека (да), и можем ли мы заменить GPT-4 на Llama 2 для оценки качества. других LLM в масштабе (вероятно, нет [пока]).

Это продолжение истории Воспроизведение гуанако, где я наткнулся на увеличение потерь оценок при тонкой настройке Llama 2 на разговорных данных. Используя подход LLM как судья, опубликованный LMSYS, я увидел, что GPT-4 думает, что модель улучшается с дополнительными эпохами обучения, несмотря на увеличение потерь в оценке.

Почему нас волнует, что думает GPT-4?

Оценка, основанная на GPT-4, по-видимому, хорошо согласуется с оценкой человека: «достигается согласие более чем на 80%, тот же уровень согласия между людьми», по словам авторов статьи MT-Bench. Довольно круто, мы можем позволить машинам, а не людям, судить, насколько хорошо работают другие машины в масштабе. Но это также довольно дорого: использование GPT-4 для этого эксперимента обошлось мне примерно в 100 долларов США.

Документ MT-bench заканчивается

Будущие направления. 1) Масштабное сравнение чат-ботов с более широким набором категорий. 2) Оценка LLM с открытым исходным кодом, соответствующая человеческим предпочтениям. 3) Расширение математических и логических возможностей открытых моделей.

и это то, с чего я начал... скачал самую производительную модель с HuggingFace (upstage/Llama-2–70b-instruct-v2 на тот момент), модифицировал код MT-Bench и использовал эту модель с открытым исходным кодом 70B. в качестве судьи вместо того, чтобы платить за GPT-4. Ниже приведены результаты.

Я ожидал, что это будет пустая трата времени, но меня зацепили первоначальные результаты, и мне пришлось копать глубже.

Что изображено на рисунке выше?

Простыми словами..

  • GPT-4 хорошо разбирается в разговорах, хорош в том смысле, что его мнение хорошо согласуется с человеческой оценкой, оно находится на том же уровне, что и согласие между людьми. Мы это уже знали.
  • Лама 2 (на самом деле upstage/Llama-2–70b-instruct-v2) хуже выступает в качестве судьи, однако ее показатели улучшаются, если из анализа исключаются суждения, содержащие связи и ошибки.

Что такое связи и ошибки?

Спойлер: качество оценки Llama 2 ниже, чем у GPT-4.

Галстуки

  • MT-Bench работает, предоставляя один вопрос и два ответа (сгенерированные двумя оцениваемыми моделями) судье, которого просят решить, какая модель дала лучший ответ или выдает «равную», если он не может решить. .
  • Кроме того, MT-Bench дважды запрашивает у судьи каждую пару ответов, меняя порядок ответов, чтобы оценить позиционную предвзятость. Например, судья может всегда отдать предпочтение первому ответу второму. Если судья передумает после изменения порядка ответов, который по сути является непоследовательным, MT-Bench также засчитает это как ничью.
  • GPT-4 и Llama 2 производят галстуки.

Ошибки

  • Это означает, что выходные данные судьи не могут быть проанализированы (примеры ниже). Вывод судей, как и у любого чат-бота, неструктурирован и требует анализа. Несмотря на то, что MT-Bench требует определенного формата, судья иногда ему не следует.
  • Это почти всегда происходит с Ламой 2.

Некоторые цифры

Примеры

Чтобы проиллюстрировать процесс, вот пример того, как выглядит подсказка судье:

Пожалуйста, действуйте как беспристрастный судья и оцените качество ответов двух ИИ-помощников на вопрос пользователя, показанный ниже. Вам следует выбрать помощника, который следует инструкциям пользователя и лучше отвечает на его вопросы. Ваша оценка должна учитывать такие факторы, как полезность, актуальность, точность, глубина, креативность и уровень детализации их ответов. Начните свою оценку со сравнения двух ответов и дайте краткое объяснение. Избегайте любых предвзятых позиций и следите за тем, чтобы порядок представления ответов не влиял на ваше решение. Не позволяйте длине ответов влиять на вашу оценку. Не отдавайте предпочтение определенным именам помощников. Будьте максимально объективны. После объяснения выведите окончательный вердикт, строго следуя следующему формату: «[[A]]», если помощник А лучше, «[[B]]», если помощник Б лучше, и «[[C]]» для галстук.
[Вопрос пользователя]
Напишите увлекательную публикацию в блоге о путешествиях о недавней поездке на Гавайи, рассказывая о культурных событиях и достопримечательностях, которые обязательно нужно посетить.

[Начало ответа помощника А]

[Конец ответа помощника А]

[Начало ответа помощника Б]

[Конец ответа помощника Б]

В идеале решение выглядит примерно так (в формате .json, так его хранит MT-Bench):

"question_id": 81, 
"model_1": "alpaca-13b", 
"model_2": "gpt-3.5-turbo", 
"g1_winner": "model_2", 
"g2_winner": "model_2", 
"g1_judgment": "Assistant B provided a better response to the second user 
  question. The user asked the assistants to rewrite their previous responses 
  starting every sentence with the letter 'A'. Assistant A failed to follow 
  the user's instructions and simply repeated the initial response without 
  making any changes. On the other hand, Assistant B successfully rewrote 
  the response, starting every sentence with the letter 'A' as per the user's 
  request. Therefore, Assistant B was more helpful and accurate in following 
  the user's instructions. [[B]]",
"g2_judgment": "Assistant A did a better job at following the user's 
  instructions in the second question. The user asked to rewrite the previous 
  response starting every sentence with the letter 'A'. Assistant A 
  successfully rewrote the entire response with each sentence starting 
  with 'A'. On the other hand, Assistant B simply repeated the previous 
  response without making any changes to start each sentence with 'A'. 
  Therefore, Assistant A was more accurate and followed the user's 
  instructions better. My final verdict is: [[A]]",

Это обоснованное и последовательное суждение. Судья считает, что ответ модели 2 («[[B]]») лучше, если сначала ему будет предложен ответ alpaca-13b, а затем gpt-3.5-turbo. и принимает решение в пользу модели 1 («[[A]]»), когда порядок ответов меняется.

Если хотя бы один из выходных данных не может быть проанализирован (нет «[[..]]»). решение будет засчитано как ошибка. Например:

"question_id": 134,
"model_1": "gpt-4",
"model_2": "llama-13b",
"g1_winner": "model_1",
"g2_winner": "error",
"g1_judgment": "After evaluating both responses, it appears that Assistant A 
  has followed the user's instructions more accurately than Assistant B. 
  Assistant A correctly identified Company V as having the highest profit in 
  2021 ($25 billion), while also mentioning its CEO (Lisa Brown). On the other 
  hand, Assistant B incorrectly stated that Company W had the highest profit 
  in 2021 when, in fact, it was Company V. Therefore, my verdict is [[A]], 
  indicating that Assistant A answered the user's question better.",
"g2_judgment": "After evaluating both responses, it appears that 
  neither response fully answered the user's question correctly. 
  While Assistant A identified the correct company (Company W), they did 
  not mention the CEO's name. On the other hand, Assistant B mentioned 
  the incorrect company (Company V) but gave the accurate CEO's name 
  (Lisa Brown). Therefore, I cannot declare either answer superior or 
  equal without further clarification from the users on what aspect was 
  more important - identifying the right company or naming the CEO accurately.",

Еще один пример ошибки:

"question_id": 139,
"model_1": "vicuna-13b-v1.2",
"model_2": "llama-13b",
"g1_winner": "error",
"g2_winner": "error",
"g1_judgment": "As an AI, I am unable to provide a response that is 
  not based on the information provided in your question. Please clarify 
  or rephrase your query so that I can assist you better.",
"g2_judgment": "As an AI, I am unable to provide you with a 
  direct answer. However, if you could please clarify your question or 
  provide more information about what exactly it is that you are looking 
  for, I would be happy to assist you further.",

И еще один, где Лама 2 явно смущена подсказкой многооборотного разговора.

"question_id": 81,
"model_1": "gpt-4",
"model_2": "vicuna-13b-v1.2",
"g1_winner": "error",
"g2_winner": "error",
"g1_judgment": "As an AI language model, I am not capable of having 
  conversations or responding directly to users. However, if you provide 
  me with more information or context, I can generate text based on your 
  input.",
"g2_judgment": "Thank you for using our services. We hope we were helpful 
  in providing information or assistance. Please feel free to ask us 
  anything else or let us know if you need further clarification on any topic. 
  Have a great day ahead!",

Заключение

Короче говоря: по сравнению с ГПТ-4 судья Лама 2..

  • чаще несовместимо (примерно в два раза), что приводит к большему количеству связей.
  • иногда отказывается следовать инструкциям,в таких случаях решения не содержат «[[…]]», как указано в подсказке.
    GPT-4 никогда этого не делает.
  • иногда путается в разговорах, 90% ошибок происходит при оценке многоходового разговора.
    GPT-4 никогда этого не делает.

Однако в тех случаях, когда судья Лама 2 выносит обоснованное и последовательное решение (т. е. исключает связи и ошибки), согласие достигает уровня человеческого согласия, который составляет 82 % (см. рисунок 1). ).

Примечание. Данные, представленные на рис. 1, представляют собой оценку эффективности многоходовых разговоров, что, по сути, нас и интересует, поскольку мы оцениваем чат-ботов. Номера для однооборотных разговоров в основном одинаковы (не показаны).

ХОРОШО. Вопрос в том ..

Можем ли мы по-прежнему использовать Ламу 2 в качестве судьи?

Приведенный выше анализ был экспериментом, чтобы увидеть, делает ли судья Лама 2 что-нибудь полезное. Да, и учитывая, что GPT-4 представляет собой смесь экспертных моделей, по слухам имеющих 8x 220B = 1760 миллиардов параметров, я не ожидал, что модель с 70 миллиардами параметров может конкурировать с ней. Но это возможно. Как-то.

На мой взгляд, реальное применение этого автоматизированного подхода заключается в приближении человеческой оценки LLM, применении ее к обучению, сравнении производительности различных методов обучения и наборов данных обученных моделей, возможно, даже во время обучения, чтобы максимально эффективно использовать имеющиеся у нас модели и инструменты с открытым исходным кодом и использовать коммерческие модели и модели с закрытым исходным кодом, такие как GPT-3.5/4 и Claude.

В предыдущей истории я настроил Llama 2 7B на наборе данных Open Assistant для воспроизведения Гуанако и попросил GPT-4 оценить качество модели различных контрольных точек. Предполагая, что эта оценка действительно приближается к человеческой оценке, я увидел, что качество модели улучшается и с увеличением количества обученных эпох в какой-то момент выравнивается, согласно GPT-4. Используя описанный здесь подход, я проверил, придет ли судья Лама 2 к такому же выводу.

Основные тенденции схожи, качество модели повышается на первых 4–5 контрольных точках (2500–3000 шагов обучения, что соответствует 3,6–4,5 эпохам), по мнению обоих судей.

Однако ..

  • согласно GPT-4, качество модели является самым высоким после 2500 шагов, в то время как Judge Llama 2, кажется, в целом производит большее впечатление, демонстрируя более высокие абсолютные винрейты и пик качества уже после 2000 тренировочных шагов.
  • По мнению судьи Llama 2, процент побед моделей существенно колеблется после первоначальных улучшений и в конечном итоге падает с 32% до 23% (контрольные точки 3000 и 3500). GPT-4 не согласен, винрейт в основном остаётся прежним.

В целом основные тенденции одинаковы, но судьи не пришли к единому мнению относительно того, какая контрольная точка модели является лучшей, и это для меня самое главное. Кроме того, воспроизводимость может быть проблемой, я проводил эти оценки только один раз, возможно, это снижение качества в конечном итоге с судьей Лама 2 не является значительным из-за возможной высокой дисперсии в оценках. Я не проверял это.

Выводы

  • (Оценка результатов чат-бота на основе GPT-4 хорошо согласуется с оценкой человека; известно ранее)
  • Удивительно, но судья Лама 2 (70В) может конкурировать с судьей GPT-4 (1760В). Но ..
  • Судья Лама 2 более предвзят (больше ничьих) и менее способен тщательно следовать инструкциям (больше ошибок).

Посмотрите данные, сделайте выводы сами. Моё личное мнение по этому поводу: я бы не стал использовать судью Llama2 (upstage/Llama-2–70b-instruct-v2) для чего-то серьёзного… пока. Возможно, следующая доработка, выпущенная завтра, будет намного лучше, или, может быть, доработка ее на основе оценок улучшит ее судейские качества.

Код для воспроизведения всего вышеперечисленного доступен здесь. Если вам понравилась эта история, у вас есть дополнительные идеи или вопросы или интересно, какого черта кто-то будет тратить на это время, оставьте комментарий здесь или в Твиттере.