Авторы: Норберт Маагер и Мариан Титц (Otto Group data.works GmbH)

tl;dr: Стремясь автоматически отвечать на письма, мы исследуем меньшие и более крупные LLM, а также более классические подходы и сравниваем их на двух реальных наборах данных (почта службы поддержки клиентов). и данные чата). Мы пришли к выводу, что tf-idf/логистическая регрессия по-прежнему конкурентоспособны, но LLM конкурентоспособны, особенно в качестве базовых моделей, когда доступны только ограниченные данные.

Мы являемся частью команды специалистов по обработке данных, работающих в Otto Group, крупнейшем онлайн-ритейлере европейского происхождения (помимо прочего), и наша цель формально проста: мы хотим пролить свет на обычный хайп-цикл, который в настоящее время происходит с моделями большого языка. С этой целью мы изучаем однократный и малочастотный поиск, а также классификацию однократных и малочастотных запросов с подсказками. Результаты будут сравниваться с моделями, находящимися в производстве, насколько это возможно, но с неизбежными отклонениями, от которых мы постараемся как можно лучше избавиться.

Это не маркетинговый ход; мы пытаемся получить более четкое представление о возможностях.

Мы планируем внедрить автоматическую генерацию ответов по электронной почте, поскольку в настоящее время это обрабатывается простым подтверждающим ответом (например, «спасибо за ваше сообщение, мы свяжемся с вами»). Данные нетривиальны, поскольку они включают в себя широкий спектр тем: от задержек доставки, сложностей с оплатой до возвратов. Следовательно, это задача естественного языка (рассуждения), для которой у нас есть данные, и которую можно построить с различной степенью сложности. Чтобы сделать это полезным для клиента, а также для агента по обслуживанию клиентов, а также ограничить объем, мы просто предложим клиенту топ-k ответов на его первый запрос, предоставим им возможность обратной связи («мой случай решена!»), а затем позвольте разговору между людьми развернуться естественным образом, если это все еще необходимо.

Задача электронной почты аналогична классификации намерений в чат-ботах («где моя посылка?» → shipment.parcel.ask_status), для которой у нас, по совпадению, есть много размеченных данных. Поэтому мы аппроксимируем основную задачу классификацией по намерениям, чтобы понять, какие модели лучше, прежде чем переходить к реальной задаче классификации почты. Конечно, мы также оцениваем эффективность прямого ответа по электронной почте с помощью LLM.

Ограничения

Есть несколько ограничений, которые объясняют некоторые недостатки наших экспериментов. Во-первых, мы были ограничены во времени, задач было больше, чем о которых мы сообщаем, а динамика поля означала, что нам нужно было провести несколько предварительных экспериментов, прежде чем переходить к более масштабным экспериментам. Во-вторых, нам неясно, как такие компании, как OpenAI, будут использовать данные, отправляемые через их API. Поэтому особое внимание было уделено тому, чтобы не отправлять конфиденциальные данные (т. е. секретную информацию или информацию, позволяющую установить личность (PII)) этим компаниям, а также ограничить раскрытие данных, специфичных для домена.

Какие данные у нас есть

У нас есть значительное количество высказываний, кратное десяти тысячам, помеченных соответствующими (клиентскими) намерениями. Приведу пример: высказывание клиента где моя посылка? может быть помечен shipment.parcel.ask_status. У нас также есть список часто задаваемых вопросов, то есть ответы, сопоставленные с вопросами, которые вы можете найти на таком веб-сайте, как otto.de.

В соответствии с нашей политикой в ​​отношении данных мы выбираем случайным образом выбранное подмножество данных о намерениях («проверено», 381 образец), которое мы разделяем на две части, используя стратифицированное случайное разделение (80% «обучающие» и 20% «тестовые»). Сопоставление вопросов в наборе данных FAQ вручную позволяет нам использовать пересечение набора данных намерения и FAQ («поезд FAQ»). Это сопоставляет реальные высказывания клиентов с часто задаваемыми вопросами, ответами и — косвенно — метками намерений, как показано в Таблице 1.

Кроме того, у нас есть доступ примерно к 80 тысячам писем с запросами клиентов, которые были отправлены в службу поддержки OTTO. Чтобы генерировать ответы на письма клиентов, мы используем в общей сложности 85 часто задаваемых вопросов, взятых с трех страниц часто задаваемых вопросов на веб-сайте otto.de (Часто задаваемые вопросы о магазине, Часто задаваемые вопросы о торговых площадках и Часто задаваемые вопросы о платежах OTTO).

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

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

Эксперименты

Намеренный эксперимент с данными

Поскольку у нас есть данные о намерениях чата, мы можем легко настроить одноразовые и малоразовые задачи классификации, используя конвейер поиска (как показано на рисунке 4). Процесс обучения состоит из построения индекса на основе вложений часто задаваемых вопросов и их соответствующего назначения (и составленного вручную ответа для поиска часто задаваемых вопросов). Эксперимент считается однократным, если в указателе есть только вопросы FAQ и ответы на них. Эксперимент считается маломасштабным, если в индекс добавляются дополнительные выборки из набора данных о намерениях, сопоставленные с ответами. Во время прогнозирования высказывания пользователей (для которых мы знаем правильное намерение) внедряются и запрашиваются/ранжируются по индексу. Таким образом, мы можем измерить точность полученных намерений и, как следствие, то, насколько хорошо встраивания кодируют пользовательский запрос.

Для сравнения мы повторно обучаем нашу базовую модель классификации намерений, логистическую регрессию с функциями tf-idf, чтобы соответствовать данным, доступным для LLM. Если LLM оценивается в однократном режиме, в базовой модели доступны только пары вопрос/намерение из часто задаваемых вопросов. Для режима нескольких выстрелов базовая модель обучается на тех же дополнительных данных. Учитывая имеющиеся у нас данные, мы можем провести следующие два мета-эксперимента:

  1. Используйте разделение данных «Часто задаваемые вопросы о поезде» для обучения, разделение «проверенных» данных для оценки (однократно).
  2. Используйте разделение данных «Часто задаваемые вопросы по поезду» и разделение данных «Поезд» для обучения, используйте разделение «тест» для оценки (несколько кадров)

Мы используем точность top-k в качестве показателя оценки, чтобы обеспечить некоторую свободу интерпретации (в конце концов, мы имеем дело с данными на естественном языке). Каждый эксперимент сравнивается с версией базовой модели, обученной на всех доступных данных о намерениях, чтобы дать нам представление о том, что возможно для модели с большим количеством данных.

Мы выбираем модели, которые дают хорошую производительность при обработке запросов на немецком языке, поскольку мы имеем дело в основном с немецкими данными и которые в то время были легко доступны: miniLM и gBERT DPR. Последнее выбрано с учетом того факта, что извлеченный текст и поисковый запрос могут не совпадать должным образом, и модели поиска с плотным проходом (DPR) могут иметь здесь преимущество.

Эксперименты с почтовыми данными

Во втором эксперименте мы повторяем эксперимент по классификации намерений с помеченными почтовыми данными. Здесь мы сопоставляем письма клиентов с часто задаваемыми вопросами, а не высказывания в чате с часто задаваемыми вопросами. В качестве базовых моделей мы используем модели намерений чата tf-idf из предыдущего эксперимента, то есть одну модель tf-idf, обученную на всех данных производственного чата («чит BYT»), и другую, которая переоснащается на данные, доступные соответствующему LLM, который он использует. сравнивается с («ремонт БЮТ»). Мы прогнозируем топ-k намерений, соответствующих тексту письма, и, используя наше сопоставление (см. таблицу 1), мы можем сопоставить эти прогнозируемые намерения с часто задаваемыми вопросами (рис. 5a).

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

Во-вторых, мы настраиваем конвейер извлечения из нескольких фрагментов, дополняя предыдущий индекс вставками из наших данных о намерениях чата. Это возможно, поскольку мы также можем связать чаты с соответствующими часто задаваемыми вопросами, как это было сделано в эксперименте по классификации намерений. Мы считаем, что это полезно, поскольку существует хотя бы частичное перекрытие между данными почты и чата, что должно улучшить производительность поиска (рис. 5c).

В нашем третьем подходе мы используем LLM генеративным способом для поиска соответствующих часто задаваемых вопросов. Здесь мы создаем приглашение, содержащее пронумерованные часто задаваемые вопросы и почту клиента, прося модель вернуть номера топ-k наиболее релевантных часто задаваемых вопросов. По существу приглашение выглядит так:

Here is a list of numbered FAQs-Answers:  
{list of FAQ answers with ids} 
Please return the top 3 FAQs that best fit the following customer inquiry. 
Examples: 
Customer inquiry: Where is my parcel? 
FAQ id: 01, 22, 05 
Customer inquiry: {customer mail} 
FAQ id:

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

Мы также попробовали LLM свободно отвечать на почтовые запросы клиентов (рис. 5d), т. е. просто предлагать LLM написать ответ на письмо. Однако это имело два существенных недостатка. Во-первых, автоматическая оценка свободно генерируемых ответов LLM является весьма нетривиальной и все еще открытой областью исследований. Например, классические партитуры, такие как ROGUE и BLEU (и их варианты), оказались совершенно бесполезными. Таким образом, нам придется утомительно оценивать ответы вручную. Во-вторых, что гораздо более важно с практической точки зрения, модельные галлюцинации затрудняют прямое общение LLM с клиентами. Например, в ответ на письмо модель предложила позвонить на горячую линию для клиентов и дала номер горячей линии для клиентов совершенно другой организации, а именно горячей линии по короне британской Национальной службы здравоохранения, которая, уверяем вас, не связана с Наша компания. Поскольку избежать этих галлюцинаций нетривиально, но важно, а другие подходы выглядели многообещающими, мы не стали проводить эту конкретную оценку дальше.

Полученные результаты

Классификация намерений

Результаты поиска/классификации намерений всегда будут сопровождаться эталонной моделью «BYT чит», которая имеет доступ ко всему массиву данных обучения чата. В общем, можно сказать, что для режима с низким объемом данных вполне возможно, что для начала работы стоит использовать степень LLM. В частности, gBERT DPR работает довольно хорошо по сравнению со всеми другими подходами, когда он представлен только набором данных FAQ в качестве базы знаний — возможно, из-за того, что он был специально предварительно обучен на немецких данных. Интересно, что встраивания OpenAI Davinci (text-davinci-003) в этой настройке работают особенно плохо. Неудивительно, что базовая модель «BYT refit» на основе tf-idf показала худшие результаты из всех моделей в этом тесте, поскольку не было никаких предварительных знаний, на основе которых можно было бы получить данные.

Картина кардинально меняется, если представить больше данных в режиме «несколько кадров». И miniLM, и gBERT DPR, похоже, не слишком хорошо обобщают новые образцы. Кажется, что что бы ни представляли вложения, учитывается любая дисперсия, которую новые данные привносят в таблицу. Вложения OpenAI, а также базовая модель tf-idf довольно хорошо улавливают нюансы новых образцов и работают сравнительно хорошо. Похоже, что, по крайней мере для этой задачи, наилучший вариант использования LLM находится где-то между «почти нет данных» и «небольшое количество данных», поскольку модель tf-idf работает так же хорошо, как и модели OpenAI с значительно меньше параметров при настройке нескольких выстрелов и легко обучается.

Чтобы выяснить, как модель OpenAI Davinci масштабируется с точки зрения обучающих данных, мы построили график точности топ-3 как функцию дополнительных обучающих выборок в настройке с несколькими выстрелами и обнаружили, что она развивается логарифмически. Это может быть совпадением, но сам OpenAI говорит, что для тонкой настройки ожидается масштабирование O(2^n) для линейного увеличения производительности, где n — количество выборок данных.

Ответ на почту

В эксперименте с почтовыми данными одноразовый подход модели Давинчи работает плохо и, что неудивительно, уступает его одноразовому аналогу, который помимо часто задаваемых вопросов использует высказывания в чате. Весьма примечательно, что подход генеративной классификации, прогнозирующий индексы часто задаваемых вопросов, превосходит подход поиска по нескольким фрагментам, даже несмотря на то, что генеративный подход подвергается лишь небольшому количеству синтетических запросов клиентов в своей подсказке, в то время как подход с несколькими выстрелами имеет 381 поддерживающее вложение реальных данных. доступны высказывания в чате клиентов. Это говорит о том, что значительная часть возможностей LLM теряется при исключении его генеративных уровней. Модель намерений «обман BYT» на основе tf-idf (как на рис. 6) превосходит подходы на основе LLM, правда, не так сильно, как в предыдущем эксперименте. Поскольку именно эта модель помогла предварительно пометить почтовые данные, как упоминалось ранее, может возникнуть предвзятость в пользу этой модели. Без такого большого количества размеченных данных («переоборудование БЮТ») LLM работали лучше. С точки зрения эффективности результаты неоднозначны. Модель tf-idf «обман BYT» использует гораздо больше размеченных обучающих данных, но не намного более эффективна. Однако вариант с переоборудованием на на порядки меньше по параметрам (и, следовательно, в целом с ним легче обращаться), чем LLM, но при этом работает лишь немного хуже.

Выводы

Подводя итог всему, что мы пробовали, что мы можем сказать о рекомендованных тогда программах LLM с открытым исходным кодом и шумихе вокруг ChatGPT?

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

Говоря о доверии, мы обнаружили, что это поколение, что неудивительно, не очень-то заслуживает доверия. Галлюцинации, особенно вокруг числовых фактов, таких как номера телефонов/IBAN, являются обычным явлением. Хотя, безусловно, будут достижения, которые уменьшат галлюцинации, стоит разложить вашу задачу на более мелкие, вместо того, чтобы стремиться непосредственно к комплексному решению. Например, мы сочли чрезвычайно ценным иметь возможность классифицировать намерения с помощью всего лишь нескольких примеров, что фактически облегчает проблему холодного запуска для новых намерений. В будущем, возможно, окажется целесообразным полностью исключить необходимость классификации по намерениям и основывать решение о том, что сообщать клиенту, исключительно на подходах, основанных на поиске, как уже подчеркивалось в таких архитектурах, как StarSpace. Нетехническим решением было бы, конечно, использовать такой комплексный подход с участием человека, что порождает массу проблем.

Одной из основных проблем, особенно с моделями с открытым исходным кодом, а также со смешанными языковыми подсказками с ChatGPT, была способность понимать тексты на немецком языке. Многие из доступных моделей настолько плохо работали с немецкими текстами, что никогда не использовались для сравнения (даже больших), и это, безусловно, вопрос для будущей работы и исследований.

За это время многое произошло с тех пор, как мы начали работу над этим проектом и с тех пор, как мы закончили этот пост в блоге (около 5 месяцев — это большой срок!). Появилось множество новых моделей, и мы стремимся провести новые тесты для дальнейшего изучения потенциальных сильных (и слабых сторон) этих LLM, помимо того, что они являются очень хорошими базовыми моделями. Мы надеемся, что вы извлекли пользу из наших результатов, и мы смогли пролить свет на реальную полезность ChatGPT, даже несмотря на то, что он измеряется для узкого варианта использования.

Особая благодарность Алексу Гримму и Саре Грицка за их выдающуюся работу. Без вас это было бы невозможно!