group-telegram.com/senior_augur/32
Last Update:
Краткая история иголки в стоге сена
Всё началось... нет, не с Твиттера, как мне казалось изначально, когда я сел писать этот пост. А с поста MosaicML про модель с 65k контекстом и поста Anthropic про модель с 100k контекстом. Был май 2023 года, GPT-4 уже 2 месяца как выпущена, поэтому надо было удивлять.
Для публики же широкий контекст был на бумаге, и нужно было проверить, реально ли он работает.
Поэтому почти сразу же появились первые тесты, например Little Retrieval Test, далее LRT. В каждой нумерованной строчке контекста мы пишем случайные числа. На случайной строчке говорим, число из какой строчки нужно вернуть. А ещё есть версия с перемешанными строчками. Claude в этом тесте оказалсь неплоха, но далеко не идеальна. Модификацию LRT предложили в посте про LongChat. Номер линии заменили на случайные слова, да и инструкцию вроде как переместили строго в конец. Был конец июня.
Упрощенно это выглядит примерно так:
line torpid-kid: CONTENT is <2156>
line moaning-conversation: CONTENT is <9805>
line tacit-colonial: CONTENT is <6668>
What is the <CONTENT> in line torpid-kid?
Output: 2156
И тут в нашу историю врывается хайп в Твиттере.
- Берём все очерки Пола Грэма, соединяем в один большой текст, “сено”.
- В разные места пробуем вставлять случайный факт, “иголку”. По умолчанию иголка является фактом про определенный город.
- Просим модели ответить на вопрос об этом факте, используя только контекст.
- Оцениваем схожесть ответа на эталонный ещё одним запросом к модели.
- Получаем красивые картинки для разной глубины вставки и длины контекста.
То есть, человек взял и перепридумал LRT, накинув лишних шагов и сложностей с оценкой ответа.
Это подхватили: Гугл, например, ссылается на этот репозиторий в анонсе Gemini 1.5 Pro.
Упрощенно это выглядит примерно так:
<куски текстов>
The best thing to do in San Francisco is eat a sandwich and sit in Dolores Park on a sunny day.
<куски текстов>
What is the best thing to do in San Francisco?
Output: eat a sandwich and sit in Dolores Park on a sunny day.
Есть несколько расширений этого бенчмарка:
- В модификации от Arize всё упростили. Факт стал случайным числом, привязанным к случайному названию города. Шаблон: “The special magic {city} number is: {rnd_number}”. Модели нужно извлечь это случайное число по названию этого города. Результат теперь гораздо проще оценить, не нужен шаг с оценкой схожести. То есть мы вернулись практически к оригинальному LRT! Спустя полгода.
- В статье про LWM, открытую модель с 1M контекстом, метод обобщили вставкой нескольких “иголок“ и поиском не всех из них.
- В BABILong в качестве “иголок” взяли bAbI, древний синтетический бенчмарк с вопросами по заданной ситуации, в котором фактов несколько, и важен их порядок. Так проверяется то, что модели не просто ищут факты, но и умеют ими как-то оперировать после этого. Только ребята не сослались вообще ни на кого, осуждаю.
Итого мы имеем с десяток вариаций бенчмарка, создатели половины из которых были даже не в курсе предыдущих попыток и переизобретали всё заново. При том, что находилось всё буквально в паре кликов.
За кадром остались другие тесты для длинных контекстов, про них расскажу когда-нибудь потом, может даже скоро.