Вы можете выбрать неоптимальные подсказки для вашего LLM (или сделать другой неоптимальный выбор с помощью оценки модели), если вы не очистите свои тестовые данные.

Авторы: Крис Маук, Джонас Мюллер

Надежная оценка модели лежит в основе MLops и LLMops, помогая принимать важные решения, например, какую модель или приглашение развертывать (и следует ли развертывать вообще). В этой статье мы подсказываем FLAN-T5 LLM от Google Research различными подсказками, пытаясь классифицировать текст как вежливый или невежливый. Среди подсказок-кандидатов мы обнаружили, что подсказки, которые кажутся наиболее эффективными на основе наблюдаемой точности теста, часто фактически хуже, чем другие подсказки-кандидаты. Более пристальный обзор тестовых данных показывает, что это связано с ненадежными аннотациями. В реальных приложениях вы можете выбрать неоптимальные подсказки для вашего LLM (или сделать другой неоптимальный выбор, руководствуясь оценкой модели), если вы не очистите свои тестовые данные, чтобы обеспечить их надежность.

В то время как вред шумных аннотаций хорошо описан в обучающих данных, эта статья демонстрирует их часто упускаемые из виду последствия в тестовых данных.

В настоящее время я работаю специалистом по данным в Cleanlab, и я рад поделиться важностью (и тем, как вы можете обеспечить) высококачественных тестовых данных для обеспечения оптимального оперативного выбора LLM.

Обзор

Скачать данные можно здесь.

В этой статье исследуется вариант бинарной классификации Стэнфордского набора данных о вежливости (используется в соответствии с лицензией CC BY v4.0), в котором текстовые фразы помечены как вежливые или невежливые. . Мы оцениваем модели, используя фиксированный набор тестовых данных, содержащий 700 фраз.

Стандартной практикой является оценка того, насколько «хороша» классификационная модель, путем измерения точности ее прогнозов по заданным меткам для примеров, которые модель не видела во время обучения, обычно называемых «тестированием», «оценкой» или «проверкой». " данные. Это обеспечивает числовую метрику для оценки того, насколько хороша модель A по сравнению с моделью B. Если модель A показывает более высокую точность тестирования, мы оцениваем ее как лучшую модель и предпочитаем использовать ее вместо модели B. Создание фреймворка может быть применено к другим вариантам выбора, например, использовать ли: настройку гиперпараметров A или B, подсказку A или B, набор функций A или B и т. д.

Общая проблема в реальных тестовых данных заключается в том, что некоторые примеры имеют неправильные метки, будь то из-за человеческой ошибки аннотации, ошибки обработки данных, шума датчика и т. д. В таких случаях точность теста становится менее надежным показателем относительная производительность между моделями A и моделями B. Давайте проиллюстрируем это на очень простом примере. Представьте, что в вашем тестовом наборе данных есть два примера невежливого текста, но незаметно для вас, они (ошибочно) помечены как вежливые. Например, в нашем наборе данных Стэнфордской вежливости мы видим, что реальный комментатор-человек ошибочно назвал этот текст Ты здесь, внизу, сошел с ума?! Что, черт возьми, происходит? как вежливо, когда речь явно взволнована. Теперь ваша задача — выбрать лучшую модель для классификации этих примеров. Модель А говорит, что оба примера невежливы, а модель Б говорит, что оба примера вежливы. Основываясь на этих (неправильных) метках, модель A получает 0%, а модель B — 100% — вы выбираете модель B для развертывания! Но подождите, какая модель на самом деле сильнее?

Хотя эти последствия тривиальны, и многие знают, что реальные данные полны ошибок маркировки, люди часто сосредотачиваются только на зашумленных метках в своих обучающих данных, забывая тщательно проверять свои тестовые данные, даже если они определяют важные решения. Используя реальные данные, эта статья иллюстрирует важность высококачественных тестовых данных для выбора подсказок LLM и демонстрирует один из способов легкого улучшения качества данных с помощью алгоритмических методов.

Наблюдаемая точность теста по сравнению с точностью чистого теста

Здесь мы рассматриваем два возможных набора тестов, построенных из одного и того же набора текстовых примеров, которые отличаются только некоторыми (~30%) метками. Представляя типичные данные, которые вы использовали бы для оценки точности, одна версия имеет метки, полученные из одной аннотации (человек-оценщик) для каждого примера, и мы сообщаем точность прогнозов модели, рассчитанных для этой версии, как Наблюдаемая точность теста. . Вторая более чистая версия того же набора тестов имеет высококачественные метки, установленные на основе консенсуса среди многих согласующихся аннотаций для каждого примера (полученных от нескольких оценщиков-людей). Точность, измеренная в более чистой версии, указывается как Точность чистого теста. Таким образом, Точность чистого теста более точно отражает то, что вас интересует (фактическая производительность развертывания модели), но Наблюдаемая точность теста — это все, что вы можете наблюдать в большинстве приложений, если только вы не сначала очистите свои тестовые данные!

Ниже приведены два тестовых примера, в которых один человек-аннотатор неправильно назвал пример, но группа из многих людей-аннотаторов согласилась с правильной меткой.

В реальных проектах у вас часто нет доступа к таким «чистым» меткам, поэтому вы можете измерять только наблюдаемую точность теста. Если вы принимаете важные решения, например, какой LLM или подсказку использовать на основе этой метрики, обязательно сначала проверьте качество меток. В противном случае мы считаем, что вы можете принять неправильные решения, как показано ниже при выборе подсказок для классификации вежливости.

Влияние зашумленных данных оценки

В качестве прогностической модели для классификации вежливости текста естественно использовать предварительно обученную модель большого языка (LLM). Здесь мы специально используем любимую LLM специалистов по данным — модель FLAN-T5 с открытым исходным кодом. Чтобы этот LLM точно предсказывал вежливость текста, мы должны давать ему только правильные подсказки. Быстрый инжиниринг может быть очень чувствительным, а небольшие изменения сильно влияют на точность!

Подсказки A и B, показанные ниже (выделенный текст), представляют собой два разных примера подсказок по цепочке размышлений, которые можно добавить перед любым примером текста, чтобы получить LLM, чтобы классифицировать его вежливость. Эти подсказки объединяют подсказки несколько выстрелов и инструкции (подробности позже), которые предоставляют примеры, правильный ответ и обоснование, которое побуждает LLM объяснить свои рассуждения. Единственная разница между этими двумя подсказками заключается в выделенном тексте, который фактически вызывает ответ от LLM. Небольшие примеры и рассуждения остаются прежними.

Естественный способ решить, какая подсказка лучше, основан на их наблюдаемой точности теста. При использовании для подсказки FLAN-T5 LLM ниже мы видим, что классификации, созданные подсказкой A, имеют более высокую наблюдаемую точность. Проверяйте точность на исходном наборе тестов, чем на подсказке B. Значит, очевидно, что мы должны развернуть наш LLM с подсказкой A, правильно? Не так быстро!

Когда мы оцениваем точность чистого теста каждой подсказки, мы обнаруживаем, что подсказка B на самом деле намного лучше, чем подсказка A (на 4,5 процентных пункта). Поскольку Точность чистого теста более точно отражает реальную производительность, о которой мы действительно заботимся, мы приняли бы неправильное решение, если бы просто полагались на исходные данные тестирования, не изучив их качество этикетки!

Это просто статистическая флуктуация?

Тест Макнемара — это рекомендуемый способ оценки статистической значимости сообщаемых различий в точности машинного обучения. Когда мы применяем этот тест для оценки разницы в 4,5 % в Точности чистого теста между подсказками A и B в наших 700 текстовых примерах, разница является высокостатистически значимой (значение p = 0,007, = 7,086). Таким образом, все данные свидетельствуют о том, что подсказка B является значительно лучшим выбором — мы не должны были не выбрать ее, тщательно проверив наши исходные тестовые данные!

Является ли это случайным результатом, который только что имел место для этих двух подсказок?

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

Инструкции

Этот тип подсказки просто предоставляет LLM инструкцию о том, что ему нужно делать с приведенным текстовым примером. Рассмотрим следующую пару таких подсказок, между которыми мы можем выбрать.

Подсказки с несколькими выстрелами

Этот тип подсказки использует две инструкции, префикс и суффикс, а также включает два (предварительно выбранных) примера из текстового корпуса, чтобы наглядно продемонстрировать LLM. желаемого отображения ввода-вывода. Рассмотрим следующую пару таких подсказок, между которыми мы можем выбрать.

Шаблонные подсказки

Этот тип приглашения использует две инструкции, необязательный префикс и суффикс, в дополнение к форматированию с множественным выбором, так что модель выполняет классификацию как ответ с множественным выбором, а не чем отвечать напрямую с предсказанным классом. Рассмотрим следующую пару таких подсказок, между которыми мы можем выбрать.

Результаты для различных типов подсказок

Помимо цепочки размышлений, мы также оценили эффективность классификации того же FLAN-T5 LLM с этими тремя дополнительными типами подсказок. На графике зависимости наблюдаемой точности теста от чистой точности теста, достигнутой со всеми этими подсказками ниже, мы видим много пар подсказок, которые страдают от одной и той же вышеупомянутой проблемы, где полагаются на Наблюдаемая точность теста приводит к выбору подсказки, которая на самом деле хуже.

Основываясь исключительно на Наблюдаемой точности теста, вы склонны выбирать каждую из подсказок «A» над подсказками «B» среди каждого типа подсказок. Однако на самом деле лучшим запросом для каждого из типов запросов является запрос B (который имеет более высокую точность чистого теста). Каждая из этих пар подсказок подчеркивает необходимость проверки качества тестовых данных, иначе вы можете принять неоптимальные решения из-за проблем с данными, таких как зашумленные аннотации.

Вы также можете видеть на этом графике, что все наблюдаемые точности подсказок A обведены кружками, что означает, что они имеют более высокую точность, чем их аналоги B. Точно так же все подсказки B с чистой точностью обведены кружком, что означает, что они имеют более высокую точность, чем их аналоги B. Как и в простом примере в начале этой статьи, вы склонны выбирать все подсказки A, хотя на самом деле подсказки B справляются с задачей гораздо лучше.

Улучшение доступных тестовых данных для более надежной оценки

Надеюсь, важность высококачественных данных оценки очевидна. Давайте рассмотрим несколько способов исправления доступных тестовых данных.

Ручная коррекция

Самый простой способ убедиться в качестве ваших тестовых данных — просто просмотреть их вручную! Обязательно просмотрите каждый из примеров, чтобы убедиться, что он помечен правильно. В зависимости от размера вашего тестового набора это может быть или не быть осуществимым. Если ваш тестовый набор относительно небольшой (~100 примеров), вы можете просто просмотреть их и внести необходимые исправления. Если ваш тестовый набор большой (более 1000 примеров), это отнимет слишком много времени и умственных усилий, чтобы делать это вручную. Наш тестовый набор довольно большой, поэтому мы не будем использовать этот метод!

Алгоритмическая коррекция

Еще один способ оценить доступный (возможно, зашумленный) набор тестов — использовать алгоритмы искусственного интеллекта, ориентированные на данные, для диагностики проблем, которые можно исправить, чтобы получить более надежную версию того же набора данных (без необходимости собирать много дополнительных человеческих аннотаций). Здесь мы используем алгоритмы Confident Learning (через пакет cleanlab с открытым исходным кодом) для проверки наших тестовых данных, которые автоматически оценивают, какие примеры кажутся неправильно помеченными. Затем мы проверяем только эти автоматически обнаруженные проблемы с метками и при необходимости исправляем их метки, чтобы создать более качественную версию нашего тестового набора данных. Мы называем измерения точности модели, сделанные для этой версии тестового набора данных, Точность теста CL.

Используя этот новый набор тестов с поправкой на CL для оценки модели, мы видим, что все предыдущие подсказки B теперь правильно отображают более высокую точность, чем их аналоги A. Это означает, что мы можем доверять нашим решениям, принятым на основе набора тестов с поправкой на CL, как более надежным, чем решения, сделанные на основе зашумленных исходных тестовых данных.

Конечно, Confident Learning не может волшебным образом выявить все ошибки в любом наборе данных. Насколько хорошо этот алгоритм обнаруживает ошибки маркировки, будет зависеть от наличия разумных прогнозов на основе базовой модели ML, и даже в этом случае определенные типы систематически вносимых ошибок останутся необнаружимыми (например, если мы полностью поменяем определение двух классов). Точный список математических допущений, при которых уверенное обучение может быть доказано, можно найти в оригинальной статье Норткатт и др.. Для многих реальных текстовых/изображений/аудио/табличных наборов данных этот алгоритм, по крайней мере, предлагает эффективный способ сосредоточить ограниченные ресурсы для просмотра данных на наиболее подозрительных примерах, скрывающихся в большом наборе данных.

Вам не всегда нужно тратить время/ресурсы на создание «идеального» оценочного набора — использование таких алгоритмов, как Confident Learning, для диагностики и исправления возможных проблем в имеющемся наборе тестов может предоставить высококачественные данные для обеспечения оптимальной скорости. и выбор моделей.

Все изображения, если не указано иное, принадлежат автору.