cookie

We use cookies to improve your browsing experience. By clicking «Accept all», you agree to the use of cookies.

avatar

grokaem себя

A small bunch of things that I encounter during my journey as a young NLP developer: math, DL, ML, python and stories

Show more
Advertising posts
1 907
Subscribers
No data24 hours
+37 days
+3830 days

Data loading in progress...

Subscriber growth rate

Data loading in progress...

Better & Faster Language Models via Multi-token prediction Только ленивый не восхитился статей с multi-token на линкедине, быстренько разберемся в чем соль. 0️⃣ Помните, мы говорили про speculative decoding? папир Его можно делать как self, то есть когда вы предсказываете несколько токенов сразу -> blockwise parallel decoding. Это когда вы параллельно предсказываете следующие токены, но используете только один контекст. То есть для генерации 10-ого слова у вас есть 9 предыдущих, для генерации 11-ого слова у вас также есть 9 предыдущих, для генерации 12-ого тоже только 9. И так вы считаете в параллель. Но если мы можем предсказывать без ближайшего контекста, то почему мы не можем также тренировать? 1️⃣ Почему это может быть выгодно? Мы можем генерить быстрее. Вроде бы этого достаточно, но! Нужно же качество чтобы все снова сравнивали с мозгом, так увеличение до 4 токенов для маленьких помогает в задаче induction (предсказать токен-пару), улучшает метрики для algorithmic reasoning и лечит кукуху. 2️⃣Как это сделать? Авторы предлагают шарить несколько частей: общий trasformer truck и unembedding matrix (впервые видела, чтобы так называли...). Что не шарим? N-голов, каждая из голов отвечает за следующую x+n позицию, но каждой голове известен один и тот же контекст. Собственно почему бы не перестать делать несколько n прогонов? Так и делают, после прохода через shared truck, мы идем по головам и собственно считаем лоссы, как прошлись посчитали предыдущий лосс с shared truck'a. Картинка в комментариях 3️⃣А разве раньше уже не показали, что это неверный подход? Да, как раз авторы показывают, что такой кейс появляется только с usefullness only on scale. Так показатели повышаются только с увеличением модели от 3B. (Figure 3) 4️⃣Почему это может работать? Одно из объяснений - это lookahead reinforces choice points, то есть для предсказания сложного токена мы увидим цепочку n раз, а не 1. Например, сложно предсказать 5 токен. Раньше мы видели его как 4 токен -> 5 токен. А теперь с предсказанием по 3 токена мы увидим его в 2 -> 5, 3 -> 5, 4 -> 5. Там еще формул накидали за information-theoretical argument, но кажется смысл тот же. папир #grokaem_nlp
Show all...
11🤯 4🔥 3👍 2
🏵АПРЕЛЬ 2024🏵 предупреждение - я не читаю все и я не читаю все новости SPEECH: - Вышел релиз у Assemby AI на 12.5M данных для asr, playground - Прошел ICASSP, было довольно много интересных статей, наверное надо дойти до нормального обзора. Одна из последних Noise masking attacks в asr. - Прошел семинар по удалению шума от вшэ, советую анонсы этого канала, классные. И сам семинар был хороший, у ребят есть также свой канал с лекциями - Вышла flash speech, 20x по инференсу для TTS - Денис выложил RuNorm - нормализатор русского текста для TTS (сокращения, числа и тд). Подробнее и потестить тут - *Обновился* комон войс с validated 124 languages NLP: - Новый дроп Mixtral 8*22B (262GB, bruh) - У AIRI вышел обзор их статьи про пространство языковых моделей - У 3Blue1Brown вышло видео с объяснение attention, экстетика you know - Вышла LLAMA 3 посты, которые лучше прочитать, но мне понравились: - обзор статьи с not all tokens are what we need - еще одна статья, подкрепляющая мысль о том, что dataset is important и фильтрация от предобученной модели - это круто - пост с перепроверкой фактов модели, по сути то, чего не хватает LLM и мне в частности - перепроверить всю инфу, а для этого нужно прочесать весь интернет. Пайплайн классный с автономными фактами, есть возможная модификация с связью фактов с друг другом (do we need graphs?) - обновился справочник по PEFT
Show all...
22👍 2
оукей, пост про мозг должен был быть, да? И нельзя сказать, что я прям вот сильно лох педальный, я тщетно искала нормальную статью на обзор. Например, на linkedin наткнулась на одно ссылка: Neosensory develops wearable devices that empower people with new senses. —— Идея в том, что для многих "стал плохо слышать" - это не про то, что надо громкость прибавить. А скорее про "не могу понять, что ты говоришь". Разница большая. То есть нам не нужен усилитель - нам надо разобрать только определенные звуки (например, женский или детский голос с более высокими частотами) —— Смысл: алгоритм, который фильтрует background noise, достает установленные target phonemes (s, t, z, k). Каждая из фонем дает импульс на браслете. Таким образом мы как будто заполняем то, что не услышали маленькой вибрацией, но эта вибрация у нас на руке, а не в ушной раковине. 🤳🏻 —— Что сделали? А вот хер знает что. Соединили LibriSpeech и LibriSpeech augmented - записи с микрофона на браслете. И про модель скромно сказали: "neural network model that used a real-time temporal convolutional network structure optimized for real-time speech recognition." Скорее всего спектрограмма + маленькая cnn. Занимательно. Latency у них получилось в 10 milliseconds. —— Через 6 неделек носки браслета встретили участников и провели *барабанная дробь* опрос 🫡. Ну и показали, что да - люди стали лучше слышать, как неожиданно и приятно.🎁 Но камон эффект плацебо никто не отменял, плюс участникам заплатили. Ну и что прям вот ты скажешь компании, которая тебе заплатила, что устройство 0 benefit дает? Конечно, адаптивность мозга на замену сигнала с слухового нерва на кожу - это классно, но как-то proof of concept хромает. —— Но так как мне было стремно выкладывать только это, вот вам подборка каких-то ссылок: - пост c статьями по связи GPT like и EEG - ardEEG на ардуино - началось соревнование по декодированию eeg, ребята из the last neural cell будут участвовать - нашла канал Нейроинтерфейсы, интересные посты и с новостями, и с статьями
Show all...
9👍 4🔥 2💩 1
n
Show all...
Вернемся к истокам. Один из любимых типов задач для меня - это two pointers. Очень давно нашла список с типовыми задачами для этого типа задач и все ждала момента, чтобы выложить его сюда, а что ждать? 🤞🏻All two pointers tasks список 🤞🏻 Список разбит на подтипы, например, sorted arrays или substrings. Для себя я держу в голове задачи на пойтеры как либо: быстрый и медленный пойнтер, либо start и end (да, я не люблю право и лево): 1. Both ends - задача, как раз тот случай с началом и концом. Например, задача с водой в контейнере - двигаем пойнтеры с той стороны, что меньше, так как максимум воды будет только тогда, когда у нас стенки будут высокими. 2. Slow and fast pointer - задача, где у нас есть медленный пойнтер и быстрый, быстрому нужно что-то найти (какое-то условие) и тогда будет двигаться медленный. Часто мы можем заинициализировать медленный вне цикла, а по array двигаться быстрым. Например, задача на удаление дубликатов, когда дубли мы должны отодвинуть назад, что по сути означает - ставь на место медленного первый попавшийся уникальный быстрый. 3. Pointers on 2 arrays - задача, где два пойтера с одного конца, но для разных arrays. Например, задача, где нужно смержить две последовательности. Интересно, что ее легче решать не с начала последовательности, а с конца. И второй подтип этого вида - это задачи, где мы сначала находим в большой array место сплита, а потом мержим. И у меня к вам 3 вопроса: - Не хотите в комментах или отдельными постами обсудить эти задачи? 🥸 - Мб есть еще какой-то тип? - Какой из типов вы считаете похожим и иногда идентичным sliding window?
Show all...
👍 23 1
Mixture of Depths (MoD) paper Уже в парочке каналов написали про новую статью, го и мы пройдемся. 🪀basic idea behind - нечего считать attention на всех слоях на всех токенах, если можно не считать🪀MoD - это как MOE, только используем не mutliple experts, а одного, которого можем скипнуть (skip connection)! 🪀pipeline: На каждом слое self-attention выбираем k токенов для обновления. Эмбеддинги только этих токенов будут участвовать в подсчете и обновляться, так как это self-attention, внимание для обновления других эмбеддингов будет также только от этих k. Этот подход относится к conditional computation - использовать compute только когда надо. Иначе можно делать early exiting или использовать адаптеры, чтобы находить skip блоки. 🪀Что нужно от нас: - выставить capacity - количество токенов для topk - делать causal lm - выбор topk это non casual операция, почему? Потому что используются все токены. Одно из решений для router - штуки, которая и выбирает токены - базово заменить softmax на sigmoid. А именно - мы добавляем либо auxiliary задачу, либо auxiliary loss, который будет пытаться выучиться сам на нужную подзадачу. Для нас эта задача - понять, что токен должен быть в top k без мам пап и других токенов, то есть через сигмойду. Хорошее объяснение по таймкоду. 🪀Важные штуки: - граф подсчета не динамический, то есть мы заранее выставили k - worst case scenario - в gradient path подключаются веса router, как раз те, по которым мы выбрали k токенов (p. 7) - лучше сработал вариант вставки MOD каждые два слоя с доступом только к 12.5% токенов, то есть пред слой видел все 🪀Глоссарий: - FLOP - floating point operations per second. FLOP будет уменьшаться квадратично, если T - исходное кол-о, attention FLOP T'2, возьмем половину токенов для обновления T/2, attention будет (T/2)'2 или 0.25 FLOP intense - Iso-FLOP - количество компьюта для подсчета в FLOP, чтобы натренировать модель Круто, когда isoFLOP остается таким же, но мы при этом увеличиваем кол-о параметров. Это как раз наш кейс. 🪀Что с этим всем можно делать дальше? Ну тут понеслась душа в рай, и long term memory tokens можем сделать, и какие-то только как keys использовать, и вместо identity function придумать разные под каждый кейс. —— Ну и мы тут не просто так собрались, представим, что вы на собесе и сказали, что недавно прочитали эту статью и вам в ответку прилетает вопрос: почему не используют top p? Ваши действия в комментариях.
Show all...
👍 8 4 1
Вышла Parler TTS демо (веса, код, промпт) Помните пост про генерацию TTS с заданными параметрами и, может быть, помните пост про MusicGen. Это вот все от них пошло. 🐢Для чего можно юзать? 🐢 - прогнать по параметрам исходную речь, прогнать сгенерированную - сравнить - прогнать на весь датасет - отфильтровать странные семплы Выкатили код и демо. Сказать честно, демо хорошее на чирипукнутых, а вот на мой промт: "A female speaker with a very high-pitched voice, the speech is very fast. The speaker is sad. She even cries." получила какую-то веселую девушку с нормальными даже низким питчем. Сейчас доступно только пару параметров (pitch, snr, speaker rate, reverbation).
Show all...
5👍 4🔥 4
Март был сложным месяцем, что было сохранено у меня в закладках? Многое пропустила, пишите в комментах что)) МАРТ 2024 🎏NLP🎏 - вышла моделька T5 для русского, окно в 512, но summary Big мне понравилось - интересный блок про модель Based аля замену transformer - пара советов для улучшения rag - статья от Яндекса о том, как они summary делали. Пожалуй, из всего, что делает Яндекс - эта штука меня поразила больше всех, так как на хакатоне делали похожую штуку. И тут самая главная вещь (барабанная дробь) - размеченные данные, что как обычно выигрыш. Много интересных трюков и инвайтов. - кофаундер hugging face выложил длинный и интересный блок по LLM - от нетфликса прилетела статья почему cosine similarity плох 🎏Speech🎏 - вышла voice engine - генерим текст по семплу аудио, весов нет - громко по всем каналам прогремела suno ai, я вот в чатике better data community написала об этом, хайпа не было, сидите в чатиках, похайпуем. Уже пошли посты про промтинг, а мне интересно на каких промтах они вообще обучались - вышла voice craft - с ней мы можем редачить речь и делать zero shot tts 🎏Рандомные🎏 - канал Рената Алимбекова, много про собесы, решения задачек и тд, клево для начинающих - хороший cheet sheet вспомнить базу и повесить на стенку
Show all...
20👍 6🏆 1
#grokaem_thoughts Рандомные штуки я пишу в чатах, но кажется многие можно постить и сюда, думала даже про отдельный чатик, но пока нет, буду мусорить - скажите)) Мне нравятся видео компании Skyeng, сама курсы у них не брала, но видосики смотрю часто и много. Сегодня вечером вышло новое видео, и ребята сделали ассистента, который анализирует ваш уровень. Можно ожидать, что придется тыкать кнопочки, но нет: НУЖНО ГОВОРИТЬ и ВАМ БУДУТ ОТВЕЧАТЬ! 🙉 Что круто? 0. Она говорит. Голос робота, но он не бесит, довольно приятный. 1. Она поддерживает контекст. Про хобби в самом начале разговора я ответила, что увлекаюсь NLP и в конце она выдала: Клево, что получилось пообщаться с людьми, которые занимаются таким как я. В КОНЦЕ ДИАЛОГА она помнит, чем я занимаюсь. У меня семья до сих пор не все запомнила.... Также задает наводящие вопросы с отсылками на твой ответ. 2. Она хорошо распознает речь. После можно посмотреть, что ты там наболтал и вроде бы все так)) 3. В конце дают аналитику всего уровня и аспектов, где ты слабачка. У меня в этот раз это fluency, надо пройти не после работы и тренировки.... 4. Показывают не только уровень, но и Thing to improve - фразы, которые ты хреново сказал и показывают, как надо было. Крутые ребята в Skyeng! Я бы действительно болтала с такой учительницей. Проверить уровень
Show all...
🔥 30👍 3
Попрыгав по статье о EEG, эффектом википедии я дошла до Towards Voice Reconstruction from EEG during Imagined Speech. NeuroTalk - неинвазивно читаем сигналы мозга и переводим сразу в речь, даже не в текст!!! (да это же круто!👍🏻) Система не End-to-end: 1. Generator 2. Discriminator 3. Vocoder - HiFi-GAN 4. ASR - HuBERT Соответственно и лоссов у нас 3: reconstruction, GAN, CTC. _____ Теперь кратко пайплайн: Задача - сигнал EEG сделать аудио сигналом реальной речи. EEG -> mel spec -> wav. На этапе с mel spec мы понимаем, что это какой-то генератор. - А какой именно должна быть эта mel spec? - Такой же как и у реальной речи. - Что это? - GAN. С части генератора берем reconstructed mel spec, считаем reconstruction loss в сравнении с mel spec, где человек говорит. Прокидываем эти две спектрограмки в discriminator и просим сказать, где сгенерированная melspec, а где та, где человек говорит (spoken EEG/melspec). Снова считаем лосс уже GAN. С reconstruct melspec делаем vocoder, получаем wav, ее в asr -> получаем текст и сравниваем с текстом, который представлял человек. Теперь, когда вы прочитали и закрыли скорее всего пост - вопросы: 0️⃣ Как так нужно пройтись по EEG сигналу, чтобы его восстановить? Embedding space становится из 5000 time * 64 channels -> 104-feature * 16-time с помощью CSP (common spatial pattern). Про них тут кратко "These eigenvectors (spatial filters) project the EEG signals into a new space where the classes are optimally separated in terms of variance. In other words, the resulting spatial filters are basically a set of weights that can be applied to the EEG data to obtain a new set of spatially filtered data that emphasizes the differences between the two classes." По сути переносим обученными CSP filters наши значения EEG в новый space при этом пытаясь их разделить. 1️⃣Генератор с attention? Попридержи коней, Conv и GRU. С мотивацией на time axis и sequence features используется GRU на выходы по Conv1d. Потом делают upscale с transposed Conv (transposed conv для upscale reminder) слоями. 2️⃣Мы учили на мелспектрограммах речи, которая говорится, а подавали eeg как люди представляют речь. Ок ли это? Ну камон, а как ты будешь подавать спектрограмму, если человек молчит? Делаем Domain Adaptation, он на самом деле клевый, потому что молчание - золото, нет шума от артикуляции и вибраций. Адаптируем домен двумя степами: 1) шарим csp filters между spoken и imagined EEG 2) делаем transfer learning с обученной модели на именно говорящие EEG И тут интересный момент 🧊 CSP weights они натренировали именно на imagined EEG, а потом инферили на spoken, хотя в теории все лучше было бы делать на spoken. Таким образом latent space of spoken speech приближают к imagined. Также добавляют, что это позволяет именно речь отразить, а не артикуляцию и всякие шумы. Задротский комментарий: в статье написано, что делили на 5 фолдов, но нет информации удаляли ли спикеров теста из трейна. Возможно этого не было, а это можно считать test leakage. ______ Что получилось в итоге? Супер-пупер все вкусно декодируется для слов, которые были при тренировке. Не так все хорошо для новых. Но нужно учитывать, что и учили на 6 людях, у каждого 12 фраз. Работает и славно. Короче - пайплайн классный, больше людей и все точно будет офигенно, как пел Паша Воля. статья семплы
Show all...
🔥 15👍 6❤‍🔥 3🎉 2 1