Telegram Web
Не пора ли начинать рассказ про DL в NLP с attention

Я все чаще ловлю себя на мысли, что привычная последовательность знакомства с нейросетями для NLP в курсах (RNN, потом LSTM, потом seq2seq, потом attention, и только затем transformer) уже не выглядит актуально. В проде и в открытых моделях сегодня везде трансформерные архитектуры. При этом кажется ничего не мешает сразу давать центральную идею attention и уже от нее строить всю тему сеток в NLP.

Логика рассказа получается довольно простая. У нас есть запрос, ключи и значения. Мы учимся понимать по запросу, на что в контексте стоит смотреть. Меряем близость запроса к каждому ключу, нормируем веса, собираем контекст как взвешенную сумму векторов по токенам. Так одно слово может опереться на те кусочки текста, которые сейчас важны, и не тянуть за собой целиком всю цепочку скрытых состояний. Многоголовость добавляет несколько независимых взглядов на тот же контекст. Отсюда же понятно место для параллелизма и ускорения обучения.

Если начинать с такого рассказа (ну, конечно, на лекции уже с формулами и примерами), студент с первого дня знакомства с NLP начинает с механизма, лежащего в основе современных моделей. Он видит, как именно текст «смотрит сам на себя», и как это знание затем упаковывается в блоки модели.

Рассказ про seq2seq тоже можно сразу избавить от наследия RNNок. Есть энкодер, который читает вход и делает из него удобное представление. Есть декодер, который порционно генерирует выход и каждый раз смотрит на то, что уже написал, и на то, что закодировал энкодер. Перекрестный attention служит мостом между входом и выходом, а позиционные эмбеддинги отвечают за порядок, поэтому мы не теряем структуру последовательности, даже без рекуррентного вида архитектуры.

В таком изложении можно сразу слегка «подзабить» на проблемы длинных зависимостей и затухающих градиентов. Достаточно заметить, что внимание может прыгнуть на нужное место в тексте, хоть в самое начало. И сразу понятно, почему обучение и инференс параллелятся на уровне токенов в энкодере, и где параллелизация ограничена в декодере. Мы сразу изучаем предмет в рамках сегодняшней практики и сразу видим, как эта схема ложится на прикладные задачи: машинный перевод, чат-боты, суммаризацию и т.д.

Дальше уже как обычно рассказ разветвляется на два направления (по принципу какую часть от трансформера оставляем - энкодер или декодер). Transformer-encoder и семейство BERT учатся понимать текст, маскируя кусочки входа и восстанавливая их, обучая в итоге плотное векторное представление, которое хорошо работает для поиска, классификации, извлечения фактов и многих задач понимания языка. Transformer-decoder и семейство GPT учатся продолжать текст. Т.е. если нужно кодировать смысл эмбеддингом и искать, можем брать энкодерные модели, если нужно писать, объяснять, суммаризовать, вести диалог - берем декодер. И кажется от устранения RNN и LSTM из общего рассказа мы ничего не потеряли, кроме, быть может, «развития интуиции в DL», «понимания важности проблемы затухающих градиентов» и гордости за «знание базы».

Так что думаете, уже пора убирать RNN и LSTM из курсов DL? :)

У меня есть ощущение, что морально многим еще сложно на это решиться. Но набрасывать на эту тему уже пора, а то так и будем всякое старье рассказывать десятилетиями (как SVM или наивного Байеса). И вообще есть мнение, что история машинного обучения это интересный предмет, но вполне тянет на отдельный курс, дабы не таскать с собой по курсам всякое старое барахло вечно.
💯46👍208🤔5👎3
Пост для тех, кто ещё не решился

Если вам нравится перспектива работать в ML, но кажется, что уже поздно или “всем места заняты”, то мой ответ — нет, всё только начинается.

И если вы хотите найти своё место в этой быстрорастущей индустрии, то пора бы определяться. С этим вам поможет канал 8БИТ.

В нем редакция Журнала Яндекс Образования просто и понятно объясняют, как работают нейросети, алгоритмы и инженерные системы — без лишней мистики и с любовью к своему делу. Меня зацепили эти посты:

5 существующих гаджетов из «Футурамы»
Промптинг по методу Memento
Как нейросети улучшают поиск

Команда показывает, из чего реально делаются технологии, и как даже школьные или студенческие проекты могут перерасти в большие истории.

Если вы на стадии “присматриваюсь”, — зайдите туда. Почитайте пару постов. Возможно, поймёте, что технологии — не отдельный мир для избранных, а просто инструмент, которым стоит научиться пользоваться.
🤡20👍15👎52
State Space Models: кратко о чем там речь

В комментариях к посту про RNN и трансформеры в курсах DL и NLP зашла речь про State Space Models, и мне захотелось поговорить об этом подходе подробнее. Что это такое SSM, почему вокруг них столько разговоров, где они уже работают, и правда ли это “конкуренты трансформерам”, а не очередной виток моды.

Если совсем в общих чертах, SSM - это способ описать последовательность через скрытое состояние, которое эволюционирует во времени, а наблюдение получается из этого состояния. В непрерывном времени это красивое уравнение состояния, а в дискретном возможна как рекуррентная форма, так и сверточная форма с ядром, которое можно посчитать заранее и применить ко всей последовательности.

В модели S4 (Structured State Space Sequence Model) идею довели до более-менее юзабельного состояния: подобрали такую параметризацию, чтобы и устойчивость была, и длинные зависимости улавливались, и всё считалось быстро. На длинных последовательностях S4 в своё время стал эталоном, потому что сумел соединить теорию со скоростью и разумным расходом памяти. Получилось это сделать как раз благодаря записи модели в форме глобальной свертки. Подробнее - в оригинале: https://arxiv.org/abs/2111.00396

Дальше идея эволюции скрытого состояния получила развитие через добавление селективности - параметры начали зависеть от входа, а модель учиться, что хранить, а что забывать по ходу чтения текста. Так появилась Mamba: рекуррентный проход (в S4 селективности не было как раз в том числе чтобы "упаковать" все в глобальную свертку), но с аппаратно дружелюбным параллельным алгоритмом, учитывающим, что где лучше в GPU хранить и как быстрее считать. При этом в оригинале архитектура не использует attention и MLP блоки, хотя гибридные версии позднее тоже появились. Mamba показывала линейное по длине время, высокую пропускную способность на инференсе и приличную точность на языковых, аудио и геномных задачах. Оригинал статьи можно полистать тут: https://arxiv.org/abs/2312.00752

Есть и эмпирические исследования на больших настроенных моделях, где Mamba и Mamba-2 сравнивают лоб в лоб с трансформерами на тех же данных - и там уже видно, где SSM выигрывают по скорости и памяти, а где ещё уступают по качеству при равном масштабе. Прочитать целиком можно по ссылке: https://arxiv.org/abs/2406.07887 , а краткие выводы я приведу ниже.

Скорость и память на инференсе: асимптотика по длине последовательности лучше, как следствие выше пропускная способность, требующаяся память тоже меньше, что особенно ощутимо на длинных контекстах. Кратное ускорение относительно чистого трансформера.

🎯Приемлемое качество работы в стандартных задачах: чистые SSM часто сопоставимы с трансформерами, а Mamba-2-Hybrid стабильно лучше трансформера на всех стандартных бенчмарках из статьи

📚Длинный контекст при разумной цене: в приведенных в статье экспериментах гибрид сохраняет или превосходит качество трансформера на 23 задачах при лучшей эффективности.

При этом в некоторых менее стандартных задачах SSM проигрывают, особенно в требующих поиска “иголки в стоге сена” и иных кейсах, где нужно адресно вспоминать фрагменты из очень длинного контекста. В частности, тяжело дается бенчмарк Phonebook (с вопросами в духе "какой в точности номер у Боба?" по данным синтетического телефонного справочника), а также MMLU (Massive Multitask Language Understanding) - набор вопросов из ~57 предметных областей (STEM, гуманитарные, соцнауки, профессиональные дисциплины) с множественным выбором.

Однако для начала все равно выглядит очень здорово, а это мы только на статью аж от лета 2024 года посмотрели, больше года прошло. В следующем посте мы продолжим тему и поговорим о более свежих публикациях и применениях.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2815
Субботний оффтоп

Если вы задумали или даже только мечтаете сделать что-то на ваш взгляд очень классное, но не видите вокруг одобрения затеи (особенно от крутых знакомых из числа успешных корпоративных менеджеров), а еще забыли или не видели этот шедевр - вдохновляйтесь :)

https://youtu.be/F_jMbmu4Di0?si=fW76evTAVidq_M7o
😁16🔥10🤡43❤‍🔥1
Игра, в которой программируешь робота-фермера

Недавно друг, знакомящийся с программированием, стримил, как играет в Farmer was replaced - игру, где нужно на почти Python программировать дрона-фермера, который сажает растения, поливает, удобряет и собирает урожай. Кто помнит "веселую ферму" в ВК - вот это примерно оно, только для всех действий пишешь код.

Мне стало интересно самому посмотреть на игру поближе, и это правда оказалось очень здорово. С одной стороны, возможности языка открываются постепенно и снабжаются понятными объяснениями. С другой стороны, это не было профанацией, когда соединение квадратиков выдается за обучение программированию. Так что очень рекомендую тем, кто только знакомится с программированием (и взрослым, и детям).

Ну а самое приятное - это было интересно и весело, даже когда умеешь программировать, и вот почему:

👷‍♂️ Игра дает приятную ностальгию по чувству «я у мамы инженер». Вы же не будете даже в игрушке писать код так, будто вам по нему проходить код-ревью? Будете? Ну ладно-ладно, а я поговнокодил вдоволь (не как на скриншоте из Steam, но тоже у внутреннего ревьюера миллион вопросиков). Чем это приятно? Тем, что возвращает дух инженерного авантюризма из детства: «я это сделал, оно работает, где-то я по пути набажил, но работает всё равно приемлемо, потом перепишу». Такой раздолбайский подход, который на работе как правило был бы непозволительной роскошью и заявкой на вылет, в игре добавляет веселья.

👨‍💻 Когда у тебя на экране на поле N x N в реальном времени показывается анимация как робот выполняет написанный тобой код, это создает неведомую до сих пор мотивацию оптимизировать код. Одно дело - когда ты сдаешь задачу на leetcode и не проходишь по времени или когда в проде нужно уложиться в X миллисекунд на инференс, чтобы не портить пользовательский опыт. Совсем другое - ждать блин пока вам покажет анимацию всех действий робота 😬 И игра придумана именно так, чтобы были легальные алгоритмические способы срезать углы - вырастить тыквы побольше, эффективнее собирать подсолнухи и т.д.

📈 Можно с детства понимать, что квадрат растет быстрее линейной функции, но когда с ростом размера фермы разница между сложностью решений становится настолько наглядна, что то, что было приемлемым решением полчаса назад, теперь становится невыносимо медленным, задумываешься о многом. И о том, как здорово, что знаешь, как оптимизировать. И о том, зачем в IT компаниях на собеседованиях спрашивают алгоритмы, которые потом требуются раз в три года. В комментах на Steam разумеется есть жалобы на то, что «игра быстро превращается просто в долгое ожидание исполнения кода» от тех, кто про алгоритмы и сложность не слышал. И ведь что интересно: людям не приходит в голову погуглить про оптимизацию решений. Кто не знаком с самой концепцией, и правда не знает, что искать. Поневоле наводит на мысли, что ваш потенциал в любом начинании сильно зависит от уровня знаний как у вас, так и у партнеров и коллег, о том, что на свете бывает. Есть те люди, кто может оптимизировать процесс в разы или вообще на порядки, а есть те, кто будет говорить, что работать просто надо больше и делать однотипные операции изо дня в день.

🐍 В игре все не ограничивается фермерством и ближе к концу дерева технологий открываются лабиринты и игра в змейку, тоже с исполнением роботом написанного вами кода. А для самых рьяных автоматизаторов можно написать код не только выполняющий задачи, но и самостоятельно открывающий дерево технологий и проходящий игру.

В общем, я прекрасно провел вечер, процесс игры одновременно и медитативный, и забавный и поучительный. Поделитесь в комментариях другими играми, которые вызвали у вас похожие чувства :) Кажется, что жанр игр с образовательным флером хоронить рано, и это прекрасно ❤️
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥229👍5🤔2💯1
На чем фокусироваться компании, чтобы инвестиции в genAI окупались? Как не утонуть в AI-пилотах? А понять, что AI-трансформация состоялась?

Ответы на эти вопросы можно урывками найти по разным экспертным tg-каналам или на конференциях. Спасибо ребятам из Just AI, которые собрали свой опыт работы с корпорациями по части внедрения genAI в классную экспертную статью.

- Как сформулировать зрелую AI-цель? Снизить нагрузку на колл-центр, подключить LLM к CRM – это незрелая цель.

- Как выстроить систему управления AI? Ведь традиционный подход, при котором одна команда отвечает одновременно и за ИИ-проекты, и за другие направления, уже нэффективен.

- Как выбирать кейсы для реализации? Основные критерии: есть потенциал к масштабированию, дадут максимальный эффект для бизнеса, дорогостоящие в реализации

- Как измерять результат?

- 4 признака, что AI-трансформация состоялась.

Кстати, эксперт отдельно отметил тренд на внедрение мультиагентных систем. Тем, кто уже созрел для автоматизации процессов с помощью AI-агентов, отлично подойдет платформа для разработки Just AI Agent Platform.
Реклама. Erid 2W5zFJM8yKN
4🤡4
2025/10/27 16:51:46
Back to Top
HTML Embed Code: