Всем привет! Мы в лаборатории анализа информационных ресурсов НИВЦ МГУ проводим исследования по адаптации LLM на русский язык под рабочим названием ruadapt. Год назад я уже писал в этом чате о наших экспериментах с адаптацией LLaMa-2 (Impact of Tokenization on LLaMa Russian Adaptation), теперь же у нас есть новые наработки, которыми я хочу с вами поделиться.
Вот уже год как открытые LLM взяли курс на мультиязычность, однако все мы наблюдаем две старые проблемы: (1) замедление генерации на неанглийских промптах и (2) внезапные китайские иероглифы. А все потому, что словарь модели хоть и стал больше, русских слов в нем почти не прибавилось и как было по 3 русских символа на токен так и осталось (qwen2.5 - 2.5, mistral-nemo - 3.0, llama-3 - 3.0, gemma - 3.2). Как результат мы не только тратим на русские слова раза в 2 больше токенов чем на английские (отсюда и замедление), но также оказываемся неспособны полноценно выделять смыслы этих токенов на фоне других (привет 嗨).
В качестве лекарства в нашей работе Impact of Tokenization on LLaMa Russian Adaptation мы предложили просто заменять словарь токенизации, входные и выходные эмбеддинги на адаптированные под русский язык. Год назад это хорошо сработало и даже смогли превзойти исходное качество LLaMA на Russian Supeglue и side-by-side тестах (со всеми ускорениями и экономией контекста).
Но как и все экспериментальные препараты методы наш имел ряд побочных эффектов:
1. Во-первых, из-за полной замены токенизации страдали исходные англоязычные знания модели,
2. Во-вторых, несмотря на то, что на выходе мы получаем более качественную базовую модель с точки зрения русского языка, чтобы получить сравнимую с популярными инструктивными версиями моделей требуется произвести сопоставимые процедуры инстракт-тюнинга, при том, что не все подходы воспроизводимы, так как не всегда открыты инструктивные датасеты (у llama-3 он состоял из 10 миллионов примеров)
Вот мы и решили посмотреть, а можно ли как-то совместить наши ruadapt базовые модели и исходные инструктивные версии (например, модель openchat-3.5 является инструктивной версией модели mistral-7b-v0.1). Мы выяснили следующее:
1. Даже просто заменив матрицы эмбеддингов у инструктивных версий моделей на новые ruadapt версии, модель не перестает работать, хотя и существенно теряет в качестве
2. Если вспомнить линал и посчитать траекторию (проекцию) от весов базы к весам инстракта, то можно откорректировать наши ruadapt эмбедды для лучшей состыковки со слоями инстракта. Этот подход и был нами реализован и назван как Learned Embedding Propagation (LEP).
3. Если этого мало, то после LEP можно произвести дополнительные шаги калибровки и/или инстракт тюнинга, по сути, аналогично любым методам, которые применяются над инстрактами (например, saiga или новый Vikhr)
Таким образом мы создали новое поколение ruadapt моделей: они имеют лучшую токенизацию, по сравнению с исходной моделью и не теряют в качестве, а по ряду бенчмарков даже превосходят качество исходных версий моделей. Первая в списке таких моделей идет RuadaptQwen-3B. Это адаптированная на русский язык модель qwen2.5_3B, к которой была применена описанная процедура. После LEP был произведено несколько этапов инстракт-тюнинга на основе кода проекта saiga. Токенизатор собрали с учетом специализации на русский и сохранения способностей на английском (i.e. 4.0 символа на русский токен), так что ускорение генерации русскоязычного текста до 60%.
На известном бенче Vikhrmodels/arenahardlb наш RuadaptQwen-3B набрал 66 очков , обходя при этом большинство моделей размером в 7-8 миллиардов параметров (и это мы ещё не применили секретную технику "тюна на тесте" 🤡). Это не говорит о том, что модель действительно лучше 7-8 миллиардных моделей, но по крайней мере с точки зрения данной арены не уступает им, имея при этом всего 3 миллиарда параметров.
Welcome попробовать нашу новую модель, будем рады полезному фидбеку, особенно по сравнению данной модели с ее исходным эквивалентом Qwen/Qwen2.5-3B-Instruct :)
https://huggingface.co/RefalMachine/ruadapt_qwen2.5_3B_ext_u48_instruct_v4
#чтивонаночь
Очень логичная работа от фб - Spirit lm
Давайте возьмем vq токены, будем их смешивать с текстовыми и все поедет. Собственно один из проектов на стажировке в Vikhrmodels ровно про тоже самое, но к сожалению мы запаздали с релизом. А жаль!
Меряют местами непонятно что и непонятно как, бенчей asr и tts нема
Почитать работу meta
В ByteDance стажёр обиделся и два месяца саботировал тренировочные раны соседней команды, причём весьма изощрёнными методами:
➖ Загружал чекпоинты с бекдором, через который проносил скрипт, который рандомно убивал джобы на ноде (ckpt - это pickle файл, они могут содержать произвольный код на питоне)
➖ Специально добавлял баги в форк PyTorch, который запускался на кластере
➖ Портил чекпоинты, чтобы результаты экспериментов не сходились
При всём этом он участвовал в митингах, где пытались отловить проблему, слушал, как коллеги пытаются решить её, и на основе услышанного придумывал новые способы саботажа. В итоге поймали по логам, но два месяца и усилия почти 30 человек пропали впустую. А у вас что-то такое было?
П.с. кроме шуток, мощный чел оказался.
@ai_newz
мне безумно нравится что cs bro думают что могут оценивать прогресс в чем то в чем они не эксперты и их будут слушать
Читать полностью…В Суно присунули image2music и video2music!
Мы привыкли, что на вход текстовые промпты, ну и может быть аудио референс.
Суно решили заигрывать с мемасной аудиторией и новыми нормальными зумерами.
Типа озвучь свой мемас.
С точки зрения монетизации и стартапности - очень нарядный шаг.
Но если вы в музыку, то тут ничего нового.
Но зато у Суно будет больше денег. И лучше качество на итоге.
Какашка на торте.
Только иос-приложение.
Только в Штатах. Даже в Канаде не работает.
Твиттор Суно разрывается от возмущенных индусов.
Суно отшучиваются "усе будет скоро".
Ну и старую школу учили, что монтируем видео под музику, а не музику под видео.
Вот вам плейлист озвученых мемасов
https://suno.com/song/377d0638-ca5f-4f97-b452-7b8c9d32fe6d
@cgevent
☕️ Дмитрий Мезенцев, руководитель службы разработки Поиска рассказывает, как в Яндексе сочетаются атмосфера стартапа и бигтеха и за что он любит продуктовую разработку.
А если после прочтения вам захочется работать с нами — откликайтесь на вакансию!
➡️ Бэкенд-разработчик в команду поисковых сценариев
#чтивонаночь
MLE-BENCH@openai
Собственно идея такая: давайте будем агентом решать kaggle соревки старые пока llm не решит)
- 75 соревнований
- 1 карта
Ллама 405б ожидаемо оказалась слегка похуже, o1 preview лучше других(хотя интересно построить compute кривые)
Ожидаемо от увелечения числа попыток качество растет log_рифмически.
папир
Кстати согласно этой кривой MJ v7 должна уметь ещё лучше фоловить промпты и управлять мелкими деталями (ну там какие пальцы согнуты, цвет ресниц и тд. Скейлинг же экспоненциальный)
Читать полностью…DL это наука, да я учёный, да что вы мне сделаете, зачем вам дилдо, ой да ладно я же пошутил...
Читать полностью…#чтивонаночь
Janus: Decoupling Visual Encoding for Unified
Multimodal Understanding and Generation
Собственно идея не новая - давайте учить текстовый трансформер на комбинированной мультимодалке - на входе будет clip+adapter, на выходе vq токены(через них генерируем и представляем картинки)
В отличие от прошлых работ тут модель не претренется с нуля, стартует с LLM чекпоинта
Те sequence на которо учится наша модель выглядит примерно так:
<bos>text<image_adapter tokens>text<image generation tokens(vq)>
Модель ожидаемо лучше 10кратно больших хамеленово и прочих мультимодальных претренов и по качеству чуть хуже sdxl с поправкой на чуть лучший промтинг
папир
VLM в Нейро
Сегодня у нас большое обновление в Поиске. В том числе, команда VLM тоже приняла в нём участие!
Написали с коллегами пост на хабр про то, как мы затаскивали VLM в Нейро (писал про релиз здесь). В этот раз мы немного раскрыли подробности про то, как работает Нейро, где и зачем потребовалась там мультимодальность. Припорошили немножечко теорией про VLM.
Больше ни слова в посте, приятного прочтения поста!
#чтивонаночь собственно год назад это было инновацией(DIT, captioning, куча инструкт синты) А теперь это индустриальный стандарт разработки t2i, sd3 - такой же концептуально
Все видео модели концептуально не сильно отличаются - DIT, T5, синтетик кэпшены, куча возни с данными.
Собственно ex авторы PixArt ушли в Nvidia и сделали Sana - очень маленькую и очень бодрую(на бумаге) модель
Из интересного
- VAE теперь сжимает не х8 а х32(те нативно генерит 4к картинки)
- 1s на картинку локально на laptop GPU
- Linear DIT, по сути выкинули ATTN и махнули на 3x3 свертки
- Gemma вместо T5, что вообще очень нестандартно
рассуждать про перфоманс без собственных тестов, а главное FT я не готов, 600м dit это все еще очень мало, возможно у модели есть нюансы.
В любом случае любопытная работа, ознакомьтесь
paper
Oh, sweet child
Мне безумно нравится что вчерашние веб3 каналы стали резко про ai + eacc писать
От 500к год
@
Без пеработок
@
В долине
Блин, не я не могу перестать ржать, это очень забавно
Круче только экспоненциальный рост систем
Вложи 100, получи 10 это же почти экспонента почти, да? Не логарифм же?
Шо пацаны, вращаем и масштабируем!
Сейчас самый популярный метод позиционного кодирования в LLM’ках и не только — это RoPE. Но глубокому исследованию влияния параметров RoPE на поведение и свойства итоговой модели уделяется довольно мало внимания.
В статье “Scaling Laws of RoPE-based Extrapolation” ребята исследовали влияние выбора параметра rope base на поведение модели при разном размере контекста.
А еще:
📌 Ввели концепцию critical dimension, которая чуть-чуть приводит в порядок теорию про адаптацию RoPE для Train Short Test Long сценариев.
📌 Пофлексили тем, что “we achieve extrapolation up to 1 million context length within only 16K training length on LLaMA2 7B and 13B” — но есть нюанс 🙃
Основные интересные моменты:
- Маленькие rope base из коробки ведут к лучшей устойчивости к длинам контекста, которых не было в трейне, но при этом работают хуже на длинах, которые были в трейне.
- Есть понятный способ вычислить оптимальные rope base, если хочется сделать его маленьким.
- Большие rope base неустойчивы к длинам контекста, которых не было в трейне, но при этом работают лучше на длинах, которые были в трейне.
- Есть понятный способ вычислить оптимальный rope base, если хочется сделать его большим. Для этого нужно знать, на какой максимальной длине сиквенсов будет учиться модель, и на какой максимальной длине сиквенсов она будет работать на тесте.
- Пусть есть вектор размерности d для репрезентации какого-то query или key внутри башки атеншена. Тогда будет существовать d_extra, и во время претрейна позиционная информация в измерениях d_i ≤ d_extra будет полностью выучена, а в измерениях d_i > d_extra будет выучена не полностью и потребует дальнейших упражнений с адаптацией.
Meanwhile random Chinese student
https://pyramid-flow.github.io/
https://huggingface.co/rain1011/pyramid-flow-sd3