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

Компания 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] сказанное в середине контекстного окна. Модель лучше использует релевантные данные в тех случаях, когда они расположены в начале или конце контекста. Если спросить про что-то из середины, производительность значительно падает.

Lost in the Middle: How Language Models Use Long Contexts (arXiv:2307.03172 [8])
Авторы работы оценили не только GPT-3.5: тесты прогнали на других БЯМ и флагманском продукте OpenAI — GPT-4. Хотя «четвёрка» работает куда лучше остальных, как и все, она показывает схожий эффект проседания в середине.

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 работает с большими объёмами контекста.

@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. Впрочем, качество работы этих продуктов может отличаться.

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

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

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 уровней длины контекста.

@GregKamradt [2]
Грег положительно оценил работу Claude 2.1. В некоторых глубинах закладки БЯМ способна вспоминать факты даже из текста на 200 тыс. токенов. Факты из самого начала и из самого конца Claude 2.1 вспоминает с почти 100 % точностью. При этом как и у GPT-4, факты из самого начала цитируются чуть хуже.
С другой стороны, Claude 2.1 заметно теряет способность вспоминать на отметке в примерно 90 тыс. токенов, и даже при низкой длине контекста производительность не гарантируется.
Камрадт выдал список рекомендаций, как преодолевать недостатки Claude 2.1:
Играет роль также количество вопросов. На уровне гипотезы предполагается, что если спрашивать сразу про несколько фактов, качество ответа упадёт. Также важны промпт, вопрос, фоновый контекст и сам факт.
Сама Anthropic в документации к Claude 2.1 [26] успокаивает, что техники промптинга совпадают с таковыми для Claude 2. Единственное нововведение — обязательное структурирование промптов [27]: вводные данные и документы должны находиться выше самого вопроса.
Код теста Грег Камрадт выложил в репозитории на личном аккаунте GitHub.
Автор: 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
Нажмите здесь для печати.