MAX_DOT_SH Telegram 80
Увеличиваем контекстное окно LLM с 128K до 4M: разбор рецепта от 💻

Статья

TL;DR Авторы предлагают двухстадийный пайплайн дообучения Instruct-tuned LLM для увеличения длины контекста. Берут Llama 3.1 8B instruct c контекстным окном 128К и дообучают своим методом до нового окна на 1M, 2M или 4M. Показывают, что модель сохраняет качество на исходных бенчмарках, и становится сильно лучше на long-context задачах. На Needle in a Haystack бенчмарке показывает 100% accuracy на всех видах запросов. Бенчмарк синтетический и перестал быть показательным. На более реалистичных задачах из InfiniteBench, LV-Eval цифры сильно скромнее, не больше 30%, но лучше сравниваемых бейзлайнов. В бейзлайнах другие методы расширения контекста для Llama 3.1 8B.

🔘В чем суть подхода? Берут обученную Llama 3.1 8B instruct. Первая стадия: увеличивают контекстное окно до целевого значения (1M, 2M или 4M) через дообучение (continued pretraining) на корпусе очень длинных документов и экстраполяции RoPE эмбеддингов. Вторая стадия: делают SFT на бленде из разных качественных датасетов. Картинка 1 иллюстрирует пайплайн. Разберем детали ниже.

🔘Как именно увеличивают длину контекстного окна? Все начинается с данных. Детали датасета для continued pretaining не раскрываются. Сэмплируют из проприетарного датасета длинные документы с оверсэмплингом длинных, больше 8K токенов. Получают корпус на 1B токенов. Документы конкатенируют, так, чтобы получить желаемую целевую длину контекста (1M, 2M, или 4M). При конкатенации документы разделяют специальным сепаратором, а не стандартными begin_of_text, end_of_text токенами. Делают ablation study, который показывает, что специальный сепаратор играет важную роль и растит качество. Так же, во время дообучения attention механизм видит всю последовательность (нет cross-document attention маски).

Наконец, используют метод YaRN для модификации расчета RoPE эмбеддингов. Если коротко, то добавляют scaling factor, L’ / L, где L - максимальная поддерживаемая контекстная длина, а L’ - новая целевая длина и модифицируют расчет θ для интерполяции на новую длину.

🔘Что входит в Instruction Tuning? Собрали датасет на 100K насэмплировав примеров из открытых датасетов. Примеры в основном из трех категорий: общие знания (из ShareGPT, GPTeacher, и другие), код (WizardCoder), математика (MathInstruct, MetaMath). Часть ответов для промптов была нагенерирована с помощью GPT-4o. Далее делали SFT. Интересно, что на этой стадии никак не фильтровали данные по длине и не добавляли long context синтетики, большинство примеров < 8K. Тем не менее этого достаточно, чтобы “восстановить” reasoning навыки и instruct способности модели после увеличения контекста в первой стадии.

Авторы отмечают, что в будущем хотят попробовать RL-методы для второй стадии.

🔘Результаты. Так как брали предобученную модель и тюнили ее на длинный контекст, то измерять качество нужно на стандартных бенчмарках (чтобы убедиться, что нет деградации), и на специфичных для длинного контекста (чтобы померить эффективность метода). Метрики на общих бенчах в среднем на уровне базовой Llama 3.1 8B, либо чуть лучше. Картинка 2.

Теперь самое главное. Полезность длинного контекста. Needle In A Hastack тест решает, в отличие от pretrained модели. Это хорошо. Но тест искусственный и в 2025 служит скорее sanity check адекватности, а не реальной оценки способностей. О том, что для моделей с длинным контекстом пора смотреть дальше обсуждалось и недавно тут. На более реалистичных бенчмарках точность в среднем 30%. Например, авторы везде репортят InfiniteBench. В бенче есть задачи разные категорий, включая разные типа QA, суммаризации, арифметики и поиску кода на контекстах в среднем от 100K токенов. Новый метод обгоняет базовую модель (32% vs 24%) и в среднем лучше других бейзлайнов с поддержкой длинного контекста. На другом более прикладном бенче, LV-Eval результаты такие же. Несмотря на улучшения говорить о большой полезности длинного контекста через такой рецепт рано. Картинка 3.

💬 В комментариях оставил мнение по поводу работы в целом.

#статья

@max_dot_sh
Please open Telegram to view this post
VIEW IN TELEGRAM



tgoop.com/max_dot_sh/80
Create:
Last Update:

Увеличиваем контекстное окно LLM с 128K до 4M: разбор рецепта от 💻

Статья

TL;DR Авторы предлагают двухстадийный пайплайн дообучения Instruct-tuned LLM для увеличения длины контекста. Берут Llama 3.1 8B instruct c контекстным окном 128К и дообучают своим методом до нового окна на 1M, 2M или 4M. Показывают, что модель сохраняет качество на исходных бенчмарках, и становится сильно лучше на long-context задачах. На Needle in a Haystack бенчмарке показывает 100% accuracy на всех видах запросов. Бенчмарк синтетический и перестал быть показательным. На более реалистичных задачах из InfiniteBench, LV-Eval цифры сильно скромнее, не больше 30%, но лучше сравниваемых бейзлайнов. В бейзлайнах другие методы расширения контекста для Llama 3.1 8B.

🔘В чем суть подхода? Берут обученную Llama 3.1 8B instruct. Первая стадия: увеличивают контекстное окно до целевого значения (1M, 2M или 4M) через дообучение (continued pretraining) на корпусе очень длинных документов и экстраполяции RoPE эмбеддингов. Вторая стадия: делают SFT на бленде из разных качественных датасетов. Картинка 1 иллюстрирует пайплайн. Разберем детали ниже.

🔘Как именно увеличивают длину контекстного окна? Все начинается с данных. Детали датасета для continued pretaining не раскрываются. Сэмплируют из проприетарного датасета длинные документы с оверсэмплингом длинных, больше 8K токенов. Получают корпус на 1B токенов. Документы конкатенируют, так, чтобы получить желаемую целевую длину контекста (1M, 2M, или 4M). При конкатенации документы разделяют специальным сепаратором, а не стандартными begin_of_text, end_of_text токенами. Делают ablation study, который показывает, что специальный сепаратор играет важную роль и растит качество. Так же, во время дообучения attention механизм видит всю последовательность (нет cross-document attention маски).

Наконец, используют метод YaRN для модификации расчета RoPE эмбеддингов. Если коротко, то добавляют scaling factor, L’ / L, где L - максимальная поддерживаемая контекстная длина, а L’ - новая целевая длина и модифицируют расчет θ для интерполяции на новую длину.

🔘Что входит в Instruction Tuning? Собрали датасет на 100K насэмплировав примеров из открытых датасетов. Примеры в основном из трех категорий: общие знания (из ShareGPT, GPTeacher, и другие), код (WizardCoder), математика (MathInstruct, MetaMath). Часть ответов для промптов была нагенерирована с помощью GPT-4o. Далее делали SFT. Интересно, что на этой стадии никак не фильтровали данные по длине и не добавляли long context синтетики, большинство примеров < 8K. Тем не менее этого достаточно, чтобы “восстановить” reasoning навыки и instruct способности модели после увеличения контекста в первой стадии.

Авторы отмечают, что в будущем хотят попробовать RL-методы для второй стадии.

🔘Результаты. Так как брали предобученную модель и тюнили ее на длинный контекст, то измерять качество нужно на стандартных бенчмарках (чтобы убедиться, что нет деградации), и на специфичных для длинного контекста (чтобы померить эффективность метода). Метрики на общих бенчах в среднем на уровне базовой Llama 3.1 8B, либо чуть лучше. Картинка 2.

Теперь самое главное. Полезность длинного контекста. Needle In A Hastack тест решает, в отличие от pretrained модели. Это хорошо. Но тест искусственный и в 2025 служит скорее sanity check адекватности, а не реальной оценки способностей. О том, что для моделей с длинным контекстом пора смотреть дальше обсуждалось и недавно тут. На более реалистичных бенчмарках точность в среднем 30%. Например, авторы везде репортят InfiniteBench. В бенче есть задачи разные категорий, включая разные типа QA, суммаризации, арифметики и поиску кода на контекстах в среднем от 100K токенов. Новый метод обгоняет базовую модель (32% vs 24%) и в среднем лучше других бейзлайнов с поддержкой длинного контекста. На другом более прикладном бенче, LV-Eval результаты такие же. Несмотря на улучшения говорить о большой полезности длинного контекста через такой рецепт рано. Картинка 3.

💬 В комментариях оставил мнение по поводу работы в целом.

#статья

@max_dot_sh

BY max.sh






Share with your friend now:
tgoop.com/max_dot_sh/80

View MORE
Open in Telegram


Telegram News

Date: |

Telegram channels enable users to broadcast messages to multiple users simultaneously. Like on social media, users need to subscribe to your channel to get access to your content published by one or more administrators. So far, more than a dozen different members have contributed to the group, posting voice notes of themselves screaming, yelling, groaning, and wailing in various pitches and rhythms. While the character limit is 255, try to fit into 200 characters. This way, users will be able to take in your text fast and efficiently. Reveal the essence of your channel and provide contact information. For example, you can add a bot name, link to your pricing plans, etc. The initiatives announced by Perekopsky include monitoring the content in groups. According to the executive, posts identified as lacking context or as containing false information will be flagged as a potential source of disinformation. The content is then forwarded to Telegram's fact-checking channels for analysis and subsequent publication of verified information. Your posting frequency depends on the topic of your channel. If you have a news channel, it’s OK to publish new content every day (or even every hour). For other industries, stick with 2-3 large posts a week.
from us


Telegram max.sh
FROM American