- BrainTools - https://www.braintools.ru -

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

Контекстное окно в 200 тыс. токенов Claude 2.1 подвергли проверке - 1
Anthropic [1]

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

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

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

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

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

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

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

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

Контекстное окно в 200 тыс. токенов Claude 2.1 подвергли проверке - 2
Lost in the Middle: How Language Models Use Long Contexts (arXiv:2307.03172 [8])

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

Контекстное окно в 200 тыс. токенов Claude 2.1 подвергли проверке - 3
Lost in the Middle: How Language Models Use Long Contexts (arXiv:2307.03172 [8])

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

В среднем токенизатор OpenAI умещает [13] в каждом токене ¾ слова английского языка, поэтому в расширенный контекст может влезть почти 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 [14].

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

Контекстное окно в 200 тыс. токенов Claude 2.1 подвергли проверке - 4
@GregKamradt [12]

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

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

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

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

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

Контекстное окно в 200 тыс. токенов Claude 2.1 подвергли проверке - 5
Обновлённые тарифы, Anthropic [19]

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

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

Контекстное окно в 200 тыс. токенов Claude 2.1 подвергли проверке - 6
Anthropic [1]

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

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

Контекстное окно в 200 тыс. токенов Claude 2.1 подвергли проверке - 7
Anthropic [1]

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

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

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

Контекстное окно в 200 тыс. токенов Claude 2.1 подвергли проверке - 8
@GregKamradt [2]

Грег положительно оценил работу 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 [26] успокаивает, что техники промптинга совпадают с таковыми для Claude 2. Единственное нововведение — обязательное структурирование промптов [27]: вводные данные и документы должны находиться выше самого вопроса.

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

github.com/gkamradt/LLMTest_NeedleInAHaystack [28]

Автор: atomlib

Источник [29]


Сайт-источник BrainTools: https://www.braintools.ru

Путь до страницы источника: https://www.braintools.ru/article/10711

URLs in this post:

[1] Anthropic: https://www.anthropic.com/index/claude-2-1

[2] протестировал: https://twitter.com/GregKamradt/status/1727018183608193393

[3] памяти: http://www.braintools.ru/article/4140

[4] Efficient Attention: Breaking The Quadratic Transformer Bottleneck: https://gwern.net/note/attention

[5] внимания: http://www.braintools.ru/article/7595

[6] arXiv:2309.17453: https://arxiv.org/abs/2309.17453

[7] DOI.org:10.1162/neco.1997.9.8.1735: https://direct.mit.edu/neco/article-abstract/9/8/1735/6109/Long-Short-Term-Memory

[8] arXiv:2307.03172: https://arxiv.org/abs/2307.03172

[9] забывать: http://www.braintools.ru/article/333

[10] представила: https://habr.com/ru/news/772182/

[11] научный: http://www.braintools.ru/article/7634

[12] выложил: https://twitter.com/GregKamradt/status/1722386725635580292

[13] умещает: https://platform.openai.com/tokenizer

[14] evaluation: https://python.langchain.com/docs/guides/evaluation/

[15] вспоминать: http://www.braintools.ru/article/3999

[16] похвастала: https://www.anthropic.com/index/100k-context-windows

[17] выпустила: https://www.anthropic.com/index/claude-2

[18] claude.ai: https://claude.ai/

[19] Anthropic: https://www-files.anthropic.com/production/images/model_pricing_nov2023.pdf

[20] Великий Гэтсби: https://ru.wikipedia.org/wiki/%D0%92%D0%B5%D0%BB%D0%B8%D0%BA%D0%B8%D0%B9_%D0%93%D1%8D%D1%82%D1%81%D0%B1%D0%B8

[21] Илиада: https://ru.wikipedia.org/wiki/%D0%98%D0%BB%D0%B8%D0%B0%D0%B4%D0%B0

[22] Одиссея: https://ru.wikipedia.org/wiki/%D0%9E%D0%B4%D0%B8%D1%81%D1%81%D0%B5%D1%8F

[23] пытается: https://www.theinformation.com/articles/openai-rival-anthropic-in-talks-to-raise-2-billion-from-google-others-as-ai-arms-race-accelerates

[24] говорил: https://twitter.com/GregKamradt/status/1725577399923024197

[25] повторять: http://www.braintools.ru/article/4012

[26] документации к Claude 2.1: https://docs.anthropic.com/claude/docs/claude-2p1-guide

[27] обязательное структурирование промптов: https://docs.anthropic.com/claude/docs/claude-2p1-guide#prompting-techniques-for-claude-21

[28] github.com/gkamradt/LLMTest_NeedleInAHaystack: https://github.com/gkamradt/LLMTest_NeedleInAHaystack

[29] Источник: https://habr.com/ru/news/775558/?utm_source=habrahabr&utm_medium=rss&utm_campaign=775558

www.BrainTools.ru

Rambler's Top100