Pull to refresh

Контекстное окно в 200 тыс. токенов Claude 2.1 подвергли проверке

Reading time6 min
Views4.6K

Anthropic

Компания Anthropic представила Claude 2.1, следующую версию своей языковой модели. В 2.1 заявлены разнообразные улучшения точности и 50-процентное сокращение частоты галлюцинаций. Новая модель удваивает размер контекстного окна со 100 тыс. токенов до 200 тыс.

Грег Камрадт протестировал эффективность памяти Claude 2.1 в зависимости от длины контекста и выдал несколько рекомендаций.

В последние несколько месяцев большие языковые модели (БЯМ) на генеративных предобученных трансформерах завоевали большую популярность. Инвесторы и компании пристально следят за ChatGPT и другими схожими проектами, ожидая постоянных улучшений. Архитектура этих БЯМ связана с генерацией текста в ответ на некий объём естественного языка — контекстного окна. Очевидно, что чем выше размер контекстного окна, тем шире применения у БЯМ.

Говоря проще, в модель с огромным контекстным окном можно засунуть даже книгу на сотни страниц и заставить оперировать всеми данными оттуда. А вот БЯМ с крошечным контекстным окном едва сможет пояснить сотню строчек кода.

Увеличение размера контекстного окна в трансформерах связано с квадратичной сложностью. Если нужно поднять размер контекстного окна в 2 раза, требования к ресурсам возрастут в 4 раза, в 4 — в 16 раз и так далее.

Проблема квадратичного ограничения трансформеров не нова. На странице Efficient Attention: Breaking The Quadratic Transformer Bottleneck на личном сайте Гвен Бранвен с 2020 года и по сей день собирает ссылки на разнообразные научные статьи, касающиеся оптимизации алгоритмов attention (внимания). Работ много, предложения разнообразны.

Некоторые решения радикальны и сулят бесконечное контекстное окно. Речь про недавнюю научную статью Efficient Streaming Language Models with Attention Sinks (arXiv:2309.17453), где представлена архитектура StreamingLLM. Иногда сравнения не имеют смысла из-за различия архитектур. Ещё в середине девяностых годов прошлого века Йозеф Хохрайтер и Юрген Шмидхубер представили (DOI.org:10.1162/neco.1997.9.8.1735) решение long short-term memory (долгая краткосрочная память), где размер контекста технически бесконечен.

Вместо числа токенов лучше учитывать реальное качество работы. Как рассказывает статья Lost in the Middle: How Language Models Use Long Contexts (arXiv:2307.03172), БЯМ имеют тенденцию забывать сказанное в середине контекстного окна. Модель лучше использует релевантные данные в тех случаях, когда они расположены в начале или конце контекста. Если спросить про что-то из середины, производительность значительно падает.


Lost in the Middle: How Language Models Use Long Contexts (arXiv:2307.03172)

Авторы работы оценили не только GPT-3.5: тесты прогнали на других БЯМ и флагманском продукте OpenAI — GPT-4. Хотя «четвёрка» работает куда лучше остальных, как и все, она показывает схожий эффект проседания в середине.


Lost in the Middle: How Language Models Use Long Contexts (arXiv:2307.03172)

6 ноября OpenAI представила GPT-4 Turbo и поддержку контекстного окна в 128 тысяч токенов — в 4 раза больше 32 тысяч токенов до этого. Энтузиаст Грег Камрадт [Greg Kamradt] немедленно оценил новинку. Он не писал научный доклад или хотя бы статью в блоге; свои изыскания он выложил в виде длинного твита.


В среднем токенизатор OpenAI умещает в каждом токене ¾ слова английского языка, поэтому в расширенный контекст может влезть почти 100 тыс. слов. Для анализа Камрадт взял сборник эссе Пола Грэма. У Грэма их 218 штук, что вполне хватает для 128 тыс. токенов.

Затем энтузиаст вставлял в различный фрагмент контекста изречение. Выбор пал на факт про город проживания Грега: «The best thing to do in San Francisco is eat a sandwich and sit in Dolores Park on a sunny day» [«лучшее занятие в Сан-Франциско — сидеть под летним солнцем в парке Долорес и жевать сэндвич»]. Камрадт заставлял GPT-4 ответить на вопрос с помощью этого контекста. Оценку корректности выполняла другая языковая модель, Грег использовал фреймворк LangChain и его инструменты evaluation.

Операции Камрадт повторил, варьируя на 15 уровней глубину закладки изречения (от 0 %, в самом начале, до 100 %, в конце) и на 15 уровней размер контекста (от 1 тыс. токенов до 128 тыс.). Поскольку даже один запрос на 128 тыс. токенов сто́ит $1,28, суммарно запросы в API обошлись в примерно $200. Зато получилась таблица, которая иллюстрирует, насколько хорошо GPT-4 работает с большими объёмами контекста.


@GregKamradt

Как заметно по изображению, способность GPT-4 вспоминать падает после отметки в 73 тыс. токенов. Также на производительность негативно влияет место упоминания факта: из глубины от 7 % и 50 % GPT-4 вспоминать сложнее. При этом изречение из начала документа GPT-4 хорошо вспоминает вне зависимости от длины контекста.

Расширив контекстное окно до 128 тыс. токенов, OpenAI в ноябре перегнала одного из своих конкурентов. Компания Anthropic ещё в мае этого года похвастала, что поднимает максимальный контекст с 9 до 100 тыс. токенов.

В июле Anthropic выпустила Claude 2. Модель работает как через API, так и на веб-сайте claude.ai в виде чата.

Вчера Anthropic заявила о выходе Claude 2.1. Эта БЯМ уже обслуживает запросы через API и отвечает в веб-чате claude.ai даже для пользователей без платной подписки. Также компания увеличила размер контекста до 200 тыс. токенов и обновила тарифы.

Расценки Anthropic чуть ниже, чем у OpenAI. Тысяча токенов запроса в Claude 2.1 сто́ит $0,008, что дешевле, чем цент за тысячу токенов в gpt-4-1106-preview. Впрочем, качество работы этих продуктов может отличаться.


Обновлённые тарифы, Anthropic

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

Кроме того, Anthropic заявляет, что новая версия лучше выполняет краткий пересказ текста. Это важно для требующих точности сценариев с юридическими документами, финансовыми отчётами и техническими спецификациями. Внутренние тесты компании показывают, что Claude 2.1 на 30 % реже отвечает неправильно и в 3–4 раза реже приходит к ошибочному выводу о том, что текст подкрепляет некое изречение.


Anthropic

Любопытны мечтательные полунамёки в тексте. В майском объявлении для иллюстрации объёма 100 тыс. токенов Anthropic прибегала к роману «Великий Гэтсби», который полностью умещается в это ограничение. Во вчерашнем посте про 200 тыс. токенов упоминаются классические произведения античности «Илиада» и «Одиссея». Будто ненароком компания упоминает, что можно также анализировать финансовые документы S-1. Этот тип документов нужен для первичного публичного размещения, IPO. На данный момент Anthropic на бирже не торгуется — это относительно небольшой стартап выходцев из OpenAI, который пытается получить оценку в $20–30 млрд.

Anthropic приводит частоту ошибок в зависимости от длины контекста: в версии 2.1 их в разы меньше. Как и в анализе Камрадта, БЯМ тем лучше вспоминает информацию, чем ближе к концу она расположена в контексте.


Anthropic

Но компания не ограничилась красивыми графиками только внутренних тестов. Через час после выхода Claude 2.1 Грег Камрадт объявил, что Anthropic заранее с ним связалась и дала «пощупать» новинку в раннем доступе. Вообще, он ещё 17 ноября говорил, что на него вышли сразу несколько провайдеров языковых моделей, которым понравился анализ Грега.

Энтузиаст протестировал БЯМ Claude 2.1 схожим с GPT-4-128K образом. Грег вновь задействовал собрание сочинений Пола Грэма, но в этот раз некоторые эссе пришлось повторять, чтобы «добить» до 200 тыс. токенов. Изречение про сэндвичи в парке искал Claude 2.1, но оценку корректности проводил опять GPT-4.

Представители компании одарили исследователя рекомендациями по промптам и балансом на API, из которого на анализ ушло около $1016. В этот раз Камрадт варьировал глубину закладки факта на 35 уровней и перебрал 35 уровней длины контекста.


@GregKamradt

Грег положительно оценил работу Claude 2.1. В некоторых глубинах закладки БЯМ способна вспоминать факты даже из текста на 200 тыс. токенов. Факты из самого начала и из самого конца Claude 2.1 вспоминает с почти 100 % точностью. При этом как и у GPT-4, факты из самого начала цитируются чуть хуже.

С другой стороны, Claude 2.1 заметно теряет способность вспоминать на отметке в примерно 90 тыс. токенов, и даже при низкой длине контекста производительность не гарантируется.

Камрадт выдал список рекомендаций, как преодолевать недостатки Claude 2.1:

  • Прибегать к грамотному промпт-инжинирингу: экспериментировать с промптами, оценивать точность извлечения информации A/B-тестированием.
  • Не ожидать, что Claude 2.1 сможет извлечь какой-либо факт из контекста.
  • Уменьшить размер контекста. Чем короче контекст, тем точнее ответ — это общеизвестная истина.
  • Учитывать положение фактов в тексте.

Играет роль также количество вопросов. На уровне гипотезы предполагается, что если спрашивать сразу про несколько фактов, качество ответа упадёт. Также важны промпт, вопрос, фоновый контекст и сам факт.

Сама Anthropic в документации к Claude 2.1 успокаивает, что техники промптинга совпадают с таковыми для Claude 2. Единственное нововведение — обязательное структурирование промптов: вводные данные и документы должны находиться выше самого вопроса.

Код теста Грег Камрадт выложил в репозитории на личном аккаунте GitHub.

github.com/gkamradt/LLMTest_NeedleInAHaystack
Tags:
Hubs:
If this publication inspired you and you want to support the author, do not hesitate to click on the button
Total votes 25: ↑25 and ↓0+25
Comments6

Other news