grokaem себя

Description
A small bunch of things that I encounter during my journey as a young NLP developer: math, DL, ML, python and stories
Advertising
We recommend to visit
Roxman
Roxman
12,852,482 @roxman

Sharing my thoughts, discussing my projects, and traveling the world.

Contact: @borz

Last updated 6 days, 23 hours ago

HAYZON
HAYZON
6,681,080 @hayzonn

💼 How to create capital and increase it using cryptocurrency

👤 𝐅𝐨𝐮𝐧𝐝𝐞𝐫: @Tg_Syprion
🗓 ᴀᴅᴠᴇʀᴛɪsɪɴɢ: @SEO_Fam
⭐️ 𝐎𝐧𝐞 𝐋𝐨𝐯𝐞: @major
🍀 𝐌𝐲 𝐜𝐡𝐚𝐧𝐧𝐞𝐥𝐬: @kriptofo @tonfo
@geekstonmedia

Купить рекламу: https://telega.in/c/hayzonn

Last updated 22 hours ago

Канал для поиска исполнителей для разных задач и организации мини конкурсов

Last updated 1 month, 2 weeks ago

3 months, 1 week ago

Июнь был сложным и сильным месяцем для меня, но и насыщенным на новости почти во всех сферах.

?АУДИО?

  1. Вышла E2 TTS пост, статья. Это не авторегрессионная TTS модель, модель flow-matching-based как self-supervised без добавок и гмо duration model, alignment и тд.
  2. Вышла новая silero пост, гитхаб.
  3. Вышла MARS5 TTS - text to speech, voice clone на основе 5 секунд пост, web, hugging face
  4. DubWise - статья о том, как делать делать перевод под аля lipsink
  5. mHubert на 147 языков веса, папир
  6. У nvidia вышла новая asr canary c переводом. hugging face веса, папир
  7. Вышла AudioSeal watermarking модель, paper
  8. Вышла VALLE-2 tts.
  9. Вышла Stable Audio Open - для генерации аудио.

?NLP?
1. Андрей Карпатый выложил reproduce GPT-2, а в репозитории столько интересного на будущее
2. Илья Гусев выложил отличный обзор о RoPE.
3. Вышел numpy 2.0
4. Маша написала обзор про спекулятивный декодинг
5. Вышла character.ai, про нее в ai ньюз
6. Вышла gemma 2
7. Вышла claude 3.5 sonnet и скажу я вам, что юзала ее я очень активно и по многих задач она помогала лучше gpt-4.

Я забыла 100% много всякого, пишите в комменты.

Также интересно узнать ваше мнение о FOMO (Fear of Missing Out (страх пропустить что-то интересное) ) в сфере новостей. Не чувствуете, что если вы не следили за новостями неделю, вы выпали из игры?

3 months, 2 weeks ago

На обзоре сегодня статья для continual training.

  1. Что такое continual training?
    Это набор подходов, чтобы решить проблему catastrophic forgetting.
  2. Что такое catastrophic forgetting? Это когда модель "забывает" - aka получает качество хуже на старых задачах/доменах после того, как затюнилась на новых.

Примеры: Например, у вас в компании бот, его обучили под все виды акций, наступила черная пятница, вы обучили его на новых сообщениях о черной пятнице, а он забыл об акциях для постоянных клиентов. Это horizontal continuity. Также можно горизонтально забывать информацию, когда вы обучились на general knowledge, перешли в юридический домен и все забыли, чему вас учили в школе.
Подходов для решения forgetting много, но сгрупировать можем как Replay, Regularize, Architecture.
0. Replay - храни какой-то буффер пред. задач и на них тоже делай update при обучении на новых.
1. Regularization - когда у вас есть proxy значение весов и вы используете его как reguralisation term.
2. Architecture aware - LoRA, PEFT, PNN.

Для полного погружения рекомендую вот этот большой обзор.

??????
А теперь статья:
Parameterizing Context: Unleashing the Power of Paramter-Efficient Fine-Tuning and In-context tuning for continual table semantic parsing. NeurIPS 2023. статья
Задача: решать sql запросы.

Подход: teacher-student pipeline.

Teacher:
Использует ICT - in context training, это когда вы взяли новую задачу, затюнились под нее на паре примеров, сохранили веса, для следующей задачи будете использовать именно их (где тут continual? нет тут его). Примеры выбираете с context mining strategy - когда смотрите на все примеры и находили самые близкие между собой или к запросу (4.1.1).

Но если мы просто подгружаем предыдущие веса, почему это называет continual, ведь мы все забудем нахер...

Student:Так и есть, поэтому возьмем student, этот студент будет инициализирован с теми же весами, что и изначально teacher. Но на каждую задачу мы возьмем M токенов и будем тюнить их. На каждую задачу мы инициализируем веса с изначальных, а не с предыдущих. По сути это тоже не continual. А на инференсе мы сначала определим задачу (паттерн запроса), достанем нужные веса для M первых prompt эмбеддингов и все.

По сути вкусно, но на вкус не вкусно. Ведь мы и для учителя, и для ученика не использовали continual approach. Для учителя мы просто сделали почти curriculum training, а для ученика вообще просто под каждую задачу веса сохраняем. Но это неважно. Работает ведь.
Мерить будем на 4 метрики: task accuracy, example accuracy, initial accuracy и memory decay. Где initial accuracy - это качество когда мы не затюнились, а memory decay - как мы теряем последовательно качество при появлении новых задач. Важно не терять memory decay.

Наблюдения:0. Студент помогает и в domain, и в stucture shift.
1. Continual initialization - когда эмбеддинги студента инициализируем последовательно не помогают.
2. Эмбеддинги студента архи важны.
3. Context mixing тоже архи важен.
4. davinci как teacher без тюнинга на задачу с таблица дает качество близкое к затюненному T5.

Итог - важен именно student с его эмбеддингами на каждую задачу.

#grokaem_nlp

3 months, 3 weeks ago

*?Meta выложила кучу всякого для мультимодальности?***линк на новость

1. Генерация музыки по тексту: Meta Joint Audio and Symbolic Conditioning for Temporally Controlled Text-to-Music GenerationКод в ближ время + семплы

2. Watermarking для сгенерированной речи: AudioSealКод + Модель

3. Meta Chameleon - text to image, одна архитектураМодель по запросу

4. LLM - Multi-token prediction, про которую писала в этом постеМодель

3 months, 4 weeks ago

PINOKIO

Бесплатное 1Click big picture приложение, чтобы проверять работу разных новых приложух.

Причины юзать для меня:
- Когда выкатывается что-то новое, не всегда есть space на hf и поиграться с примерами хочется.
- Когда выкатывается новая моделька, я хочу быстро проверить есть ли буст, но я не хочу тратить кучу времени на установку и тд.
- Иногда код всего проекта слишком старый/запутанный/разбросанный/все вместе.

Эти три причины решает PINOKIO - быстрая установка, быстрый запуск, много моделей прочекать, space в дискорде с поддержкой.

Я проверила с ним:
- Face ID generation
- Stable Audio - генерация музыки
- RVC - retrieval based voice conversion

4 months ago

EINOPS
Когда-то давно я писала и тут писала, и тут писала про всякие stack, repeat, cat и тд в pytorch. Единственное, что меня смущало, это что эти моменты всегда прописываются в forward и при обычном обращении к модели я их не увижу. einops предлагает решение с обертками над всеми функциями и при этом явным указанием, что будет меняться.

Например, Rearrange("b c n w -> b n c w") - обычный reshape. И что еще прикольнее, что это не обязательно должны осмысленные слова (пример на фото) и таким образом эти модули reshape, стаков и тд можно запихивать в torch.Sequential.

В поддержке: reshape, reduce, repeat, pack, unpack и тд

Пример:

class MelSpectrogramEncoder(nn.Module): def \_\_init\_\_(self, cfg): super(MelSpectrogramEncoder, self).\_\_init\_\_() self.feature\_extractor = nn.Sequential( nn.Conv2d(cfg["input\_dim"], 32, kernel\_size=(128, 1), stride=1), nn.BatchNorm2d(32), Rearrange("banana car nonsense water \-> banana nonsense car water"), )

MelSpectrogramEncoder(
(feature_extractor): Sequential(
(0): Conv2d(1, 32, kernel_size=(128, 1), stride=(1, 1))
(1): BatchNorm2d(32, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
(2): Rearrange('banana car nonsense water -> banana nonsense car water')
)

link

4 months, 1 week ago
4 months, 1 week ago

Сегодня на обзоре статья, которая возможно вам не особо и нужна. Но давайте сделаем вид будто другие статьи, которые я обозреваю прям сильно вам сдались. Поехали.

MULTILINGUAL TTS: Saeki, T., (2024). Extending Multilingual Speech Synthesis to 100+ Languages without Transcribed Data.
*?Проблема*: на много языков у нас нет текстов. Почему нет текстов? Потому что полевые лингвисты не боги и не могут сделать транскрибацию всех аудио. На много языков у нас нет аудио. Почему? Потому что люди умирают. Вместе с ними умирают и языки линк.

*?Зачем это надо?* Чтобы сохранять культуру и воспитывать клевое поколение, которое умеет говорить на родном языке (не такие как я да)

*?Метод:*По сути мы почти всегда крутимся вокруг одной модальности - это какое-то скрытое представление. Будто то asr или tts, у нас всегда есть encoder и decoder. По сути мы можем сделать так, чтобы это скрытое состояние было похожим и для asr, и для tts. Тогда мы возьмем две модальности: utf-8 tokens + speech. Сделаем 4 блока (картинка внизу):

Speech2Feature
Feature2Text
Text2Feature
Feature2Speech

Главные вопрос, как это тренировать?
*?Стадия 1. Pretrain.*Помните, что мы должны как-то получить классные энкодеры для речи и для текста. Для этого мы обычно тренируемся в self-supervised mode. Для текста возьмем MLM, тут берем unpaired texts из писем бабушки. А для speech encoder возьмем аудио записи от полевых лингвистов и будем обучать с BEST-RQ. Эта метрика то же самое, что и с MLM, но на спектрограмме. Проджектим слайс спектрограммы с random initilized matrix, берем random initialized codebook, прогоняем максированную спетрограмму, считаем лосс как MLM.

*?Стадия 2. Supervised.*И тут мы заинициализируем text encoder, а speech encoder заморозим. Лингвисты херней не страдали, так что у нас есть все таки paired data: speech -> text. Ее и возьмем. Тут мы будем обучать компоненты T2F: text encoder, duration upsampler, feature decoder, vae. Как? Пропускаем аудио через S2F, получаем скрытое клевое z, пропускаем текст через T2F, тоже получаем z. Но стоп! С L1 лосс приближаем их. Но погодите ка, у нас вообще разные модальности. Для стабилити и правильного feature space, мы вставим тут VAE и посчитаем KL divergence, топчик! Прогоняем к F2T, получаем текст. Считаем RNN-T loss.

*?Стадия 3. Но как добавить инфу для unpaired data?*К этому моменту мы только обновились при pretrain на наших unpaired samples. Но таких языков у нас дофига и если мы уже нормально обучили блоки с speech encoder и text encoder, то почему бы их не заюзать? Для unspoken text (то есть просто речь) прогоним через T2F и F2T, посчитаем RNN-T, не сильно заумно. А untranscribed text сделаем transcribed, у нас уже есть S2F блок. По сути можем и whisper взять, но что мы зря учили? А потом прогоним через T2F, сравним скрытые и обновимся.

*?language id:* К этому моменту мы не добавили только language ID and speaker ID. Для них мы возьмем просто их embedding, а также добавим OOV ID для незнакомых языков и спикеров, также будем иногда добавлять их в тренировку, чтобы уменьшить bias комбинаций языков и спикеров.

Таким образом мы получаем систему, которая на инференсе берет текст, семплит с VAE, получает классное скрытое z представление похожее на скрытое для речи. И потом прогоняет через WaveFit, его мы кстати просто на american speech натренировали.

Статья мб и не такая важная, если вы не занимаетесь multilingual tts, но клевая, чтобы подчерпнуть идей для работы с разными модальностями данных.

Моя презентация и заметки в комментариях.

статья
семплы

#grokaem_audio

4 months, 1 week ago

А suno.ai теперь по 4 минуты генерит треки (сначала для этого 3, а потом делаешь extension и склеиваешь)

We recommend to visit
Roxman
Roxman
12,852,482 @roxman

Sharing my thoughts, discussing my projects, and traveling the world.

Contact: @borz

Last updated 6 days, 23 hours ago

HAYZON
HAYZON
6,681,080 @hayzonn

💼 How to create capital and increase it using cryptocurrency

👤 𝐅𝐨𝐮𝐧𝐝𝐞𝐫: @Tg_Syprion
🗓 ᴀᴅᴠᴇʀᴛɪsɪɴɢ: @SEO_Fam
⭐️ 𝐎𝐧𝐞 𝐋𝐨𝐯𝐞: @major
🍀 𝐌𝐲 𝐜𝐡𝐚𝐧𝐧𝐞𝐥𝐬: @kriptofo @tonfo
@geekstonmedia

Купить рекламу: https://telega.in/c/hayzonn

Last updated 22 hours ago

Канал для поиска исполнителей для разных задач и организации мини конкурсов

Last updated 1 month, 2 weeks ago