Forwarded from gonzo-обзоры ML статей
Were RNNs All We Needed?
Leo Feng, Frederick Tung, Mohamed Osama Ahmed, Yoshua Bengio, Hossein Hajimirsadegh
Статья: https://arxiv.org/abs/2410.01201
Продолжение возрождения рекуррентных сетей. На сей раз снова классика (RNN/LSTM/GRU), а не новомодные SSM (которые ещё и не эквивалентны RNN, в смысле находятся в более простом классе сложности, см. https://www.youtube.com/watch?v=4-VXe1yPDjk).
RNN обладают фундаментальными преимуществами в виде требований к памяти. Они линейны (от размера последовательности) при обучении и константны при инференсе. Чего не скажешь про ванильные трансформеры, у которых квадратичная и линейная сложности соответственно. Один только большой минус был у RNN -- обучение не параллелилось. Обучались они последовательно через backpropagate through time (BPTT), что для длинных последовательностей очень медленно. Здесь преимущества трансформеров в виде параллелизации при всех их недостатках относительно сложности оказалось достаточно, чтобы их обучение скейлилось, и вот мы там где мы есть -- трансформеры вытеснили рекуррентные сети из своих экологических ниш и доминируют почти везде.
Работы последних пары лет устраняют этот недостаток RNN, на свет появились LRU, Griffin, RWKV, Mamba и прочие. Всё это современное разнообразие эффективно параллелится с помощью одного и того же алгоритма -- parallel prefix scan, он же parallel prefix sum (https://www.cs.cmu.edu/~guyb/papers/Ble93.pdf).
Авторы текущей работы адаптируют parallel scan для старых добрых LSTM/GRU, устраняя зависимость input, forget и update гейтов от скрытого состояния (H). Заодно и tanh нелинейность тоже убирают (привет, LRU!). Обычные ванильные RNN не рассматривают, ссылаясь на проблемы с затухающими и взрывающимися градиентами (но вспомним LRU от DeepMind, он как раз был вариацией обычной RNN, https://t.me/gonzo_ML/1734).
У LSTM, кстати, тоже было 100500 разных вариантов, например, peephole connections с дополнительной зависимостью гейтов от содержимого ячейки памяти -- помните, у LSTM по факту две переменные состояния, внутреннее состояние ячейки памяти (C, не видно снаружи) и скрытое состояние (H, hidden state, которое снаружи видно). По LSTM, на мой взгляд, есть два фундаментальных источника информации кроме оригинальных статей. Один -- это PhD диссертация Феликса Герса (Felix Gers, http://www.felixgers.de/papers/phd.pdf), который и добавил в архитектуру forget gate (изначально было только два других гейта) + peephole connections. Второй -- PhD диссертация Алекса Грейвса (Alex Graves, https://www.cs.toronto.edu/~graves/phd.pdf), который придумал CTC loss и многомерные RNN. Сила хороших PhD. Ну да ладно.
Авторы получают минималистичные версии LSTM и GRU (minLSTM и minGRU соответственно), которые требуют меньше параметров, параллелятся при обучении и дают хорошее качество. Надо вспомнить, что было в истории много других заходов на рекуррентные сети с быстрым параллельным обучением. Например, QRNN (https://arxiv.org/abs/1611.01576, она более отличается благодаря наличию свёрток) или SRU (https://arxiv.org/abs/1709.02755).
По сути работы авторы посмотрели на оригинальные архитектуры LSTM и GRU и убрали вещи, которые мешали реализовать их обучение через parallel scan.
В GRU убралась зависимость update gate (z) и скрытого состояния (h) от предыдущего значения h. Reset gate ушёл совсем. Затем ушёл tanh при вычислении финального значения h. Теперь нужно O(2*d_h*d_x) параметров вместо O(3*d_h(d_x + d_h)) в оригинальном GRU.
В LSTM также ушла зависимость от предыдущего состяния h в forget и input гейтах, а также в содержимом ячейки памяти c. Из вычисления c также ушёл tanh, и в итоге дропнули output gate и саму ячейку c, осталось только h. minLSTM требует O(3*d_h*d_x) параметров вместо O(4*d_h(d_x + d_h)) в LSTM.
По времени вычисления новые модели minLSTM/minGRU сравнимы с Mamba и, например, на длине последовательности в 512 элементов быстрее оригиналов в LSTM/GRU в 235 и 175 раз. На больших длинах ещё солиднее.
Leo Feng, Frederick Tung, Mohamed Osama Ahmed, Yoshua Bengio, Hossein Hajimirsadegh
Статья: https://arxiv.org/abs/2410.01201
Продолжение возрождения рекуррентных сетей. На сей раз снова классика (RNN/LSTM/GRU), а не новомодные SSM (которые ещё и не эквивалентны RNN, в смысле находятся в более простом классе сложности, см. https://www.youtube.com/watch?v=4-VXe1yPDjk).
RNN обладают фундаментальными преимуществами в виде требований к памяти. Они линейны (от размера последовательности) при обучении и константны при инференсе. Чего не скажешь про ванильные трансформеры, у которых квадратичная и линейная сложности соответственно. Один только большой минус был у RNN -- обучение не параллелилось. Обучались они последовательно через backpropagate through time (BPTT), что для длинных последовательностей очень медленно. Здесь преимущества трансформеров в виде параллелизации при всех их недостатках относительно сложности оказалось достаточно, чтобы их обучение скейлилось, и вот мы там где мы есть -- трансформеры вытеснили рекуррентные сети из своих экологических ниш и доминируют почти везде.
Работы последних пары лет устраняют этот недостаток RNN, на свет появились LRU, Griffin, RWKV, Mamba и прочие. Всё это современное разнообразие эффективно параллелится с помощью одного и того же алгоритма -- parallel prefix scan, он же parallel prefix sum (https://www.cs.cmu.edu/~guyb/papers/Ble93.pdf).
Авторы текущей работы адаптируют parallel scan для старых добрых LSTM/GRU, устраняя зависимость input, forget и update гейтов от скрытого состояния (H). Заодно и tanh нелинейность тоже убирают (привет, LRU!). Обычные ванильные RNN не рассматривают, ссылаясь на проблемы с затухающими и взрывающимися градиентами (но вспомним LRU от DeepMind, он как раз был вариацией обычной RNN, https://t.me/gonzo_ML/1734).
У LSTM, кстати, тоже было 100500 разных вариантов, например, peephole connections с дополнительной зависимостью гейтов от содержимого ячейки памяти -- помните, у LSTM по факту две переменные состояния, внутреннее состояние ячейки памяти (C, не видно снаружи) и скрытое состояние (H, hidden state, которое снаружи видно). По LSTM, на мой взгляд, есть два фундаментальных источника информации кроме оригинальных статей. Один -- это PhD диссертация Феликса Герса (Felix Gers, http://www.felixgers.de/papers/phd.pdf), который и добавил в архитектуру forget gate (изначально было только два других гейта) + peephole connections. Второй -- PhD диссертация Алекса Грейвса (Alex Graves, https://www.cs.toronto.edu/~graves/phd.pdf), который придумал CTC loss и многомерные RNN. Сила хороших PhD. Ну да ладно.
Авторы получают минималистичные версии LSTM и GRU (minLSTM и minGRU соответственно), которые требуют меньше параметров, параллелятся при обучении и дают хорошее качество. Надо вспомнить, что было в истории много других заходов на рекуррентные сети с быстрым параллельным обучением. Например, QRNN (https://arxiv.org/abs/1611.01576, она более отличается благодаря наличию свёрток) или SRU (https://arxiv.org/abs/1709.02755).
По сути работы авторы посмотрели на оригинальные архитектуры LSTM и GRU и убрали вещи, которые мешали реализовать их обучение через parallel scan.
В GRU убралась зависимость update gate (z) и скрытого состояния (h) от предыдущего значения h. Reset gate ушёл совсем. Затем ушёл tanh при вычислении финального значения h. Теперь нужно O(2*d_h*d_x) параметров вместо O(3*d_h(d_x + d_h)) в оригинальном GRU.
В LSTM также ушла зависимость от предыдущего состяния h в forget и input гейтах, а также в содержимом ячейки памяти c. Из вычисления c также ушёл tanh, и в итоге дропнули output gate и саму ячейку c, осталось только h. minLSTM требует O(3*d_h*d_x) параметров вместо O(4*d_h(d_x + d_h)) в LSTM.
По времени вычисления новые модели minLSTM/minGRU сравнимы с Mamba и, например, на длине последовательности в 512 элементов быстрее оригиналов в LSTM/GRU в 235 и 175 раз. На больших длинах ещё солиднее.
Forwarded from Aspiring Data Science (Anatoly Alekseev)
#optimization #guroby #gurobipy_pandas #guroby_ml
Что примечательно, в качестве ограничений оптимизационной модели можно использовать ... регрессоры!
https://www.youtube.com/watch?v=-xXUVM2UJlg
Что примечательно, в качестве ограничений оптимизационной модели можно использовать ... регрессоры!
https://www.youtube.com/watch?v=-xXUVM2UJlg
YouTube
Prescriptive Analytics in the Python Ecosystem with Gurobi [PyCon DE & PyData Berlin 2024]
🔊 Recorded at PyCon DE & PyData Berlin 2024, 24.04.2024
https://2024.pycon.de/program/KCYDM9/
🎓 Watch as Dr. Robert Luce introduces you to the world of prescriptive analytics with Gurobi in Python, enhancing your optimization workflows with mathematical…
https://2024.pycon.de/program/KCYDM9/
🎓 Watch as Dr. Robert Luce introduces you to the world of prescriptive analytics with Gurobi in Python, enhancing your optimization workflows with mathematical…
Forwarded from MISTER SOSISTER ~ CHINESE TIME OF MY LIFE
Люблю такие контринтуитивные но при этом рабочие методы. Всем фантазерам которые строят звездолеты посвящается.
При этом, говоря про звездолеты и компании которые меняют мир, я много об этом думал. Например, почему кто-то питчит плагин для екоммерса, а кто-то ракеты до Марса, хотя ни у того ни у того еще ничего нет.
И мне кажется ключевое здесь track record. Для того чтобы строить большие проекты нужно доказать что вы можете строить маленькие. Даже в венчуре и мире безумных идей есть рациональная прогрессия.
Если вы студент, то мысль что вы сможете построить прибыльную компанию уже достаточно безумна, а вот если вы успешно построили самолет, то тут уже могут дать деньги и на звездолет.
Пет-проекты кажется далеки от того что делает Илон Маск, но они несомненно к этому приближают.
Ребята в комментах недоумевают: Кто будет покупать HEIC to JPG конвертер, если он есть в айфоне, да ещё и бесплатно?
📍 Разгадка вот в чем:
Помните, с чего мы начинаем? Ищем существующий спрос в поиске.
Т.е. это идея продукта была взята не из головы. А на основе цифр по запросам реальных людей.
И тут уже кроется половина разгадки. Если люди это ищут в поиске, значит людей что-то не устраивает в текущих решениях.
📍 А что чаще всего их не устраивает в текущих решениях?
1) Самое банальное. Люди просто не знают о текущих решениях.
2) Текущие решения могут быть для них переусложнены.
Вспомните, как часто вы не можете найти нужную функцию в ОС?
Например, чтобы сделать конвертацию в JPG на айфоне нужно еще догадаться найти это: Фото → Поделиться → Параметры → Наиболее совместимый формат.
Конечно, многие не находят!
И люди идут гуглить и быстро находят наше приложение, заточенное конкретно под эту функцию.
А еще фокус на одной фиче позволил сделать наше приложение просто удобнее:
Например, конвертация работает на компьютере (и некоторым конвертация нужна именно там, а не на мобайле). Также там встроена массовая конвертация файлов и т.д.
И 1-2% американцев платят за такую пользу, потому что при ставке $50/час у некоторых них, проще заплатить $3, чем потратить час на поиск бесплатного (не факт, что хорошего) аналога.
Короче, выбрать одну маленькую фичу, которая есть в ОС, и запустить ее в отдельном продукте — не просто можно. Это капец как нужно! И кстати, это один из наших методов поиска идей)
При этом, говоря про звездолеты и компании которые меняют мир, я много об этом думал. Например, почему кто-то питчит плагин для екоммерса, а кто-то ракеты до Марса, хотя ни у того ни у того еще ничего нет.
И мне кажется ключевое здесь track record. Для того чтобы строить большие проекты нужно доказать что вы можете строить маленькие. Даже в венчуре и мире безумных идей есть рациональная прогрессия.
Если вы студент, то мысль что вы сможете построить прибыльную компанию уже достаточно безумна, а вот если вы успешно построили самолет, то тут уже могут дать деньги и на звездолет.
Пет-проекты кажется далеки от того что делает Илон Маск, но они несомненно к этому приближают.
Forwarded from Тимлид Очевидность | Евгений Антонов
Я принес. Дмитрий Болдырев и групповая динамика
В последнее время видел ссылки на эти видео в нескольких каналах, а тут еще и многоуважаемый подписчик в чатик занес.
Про групповую динамику я в целом знаю и понимаю. Вот эти всякие форминги, шторминги, норминги, перформинги.
Казалось бы, про это можно за 5 минут прочитать статейку, или телеграм-пост. Но такое пятиминутное чтение дает столь же поверхностное понимание, которое и глубины не имеет, и выветрится легко.
У Дмитрия же каждой стадии уделено целое видео. Да еще и с замечательным художественным примером про бригаду электромонтажников в тайге.
Пока вышло только два видео:
1. Про формирование команды https://www.youtube.com/watch?v=4BXv3qYlTYI
2. И про шторминг https://www.youtube.com/watch?v=ebJzCUrjqvQ
Смотрится очень увлекательно, как будто сериал с интересным сюжетом и живыми жизненными персонажами. Заодно много деталей про групповую динамику поглощаешь.
Я посмотрел все два видео за один присест и жду продолжения 🙂
В последнее время видел ссылки на эти видео в нескольких каналах, а тут еще и многоуважаемый подписчик в чатик занес.
Про групповую динамику я в целом знаю и понимаю. Вот эти всякие форминги, шторминги, норминги, перформинги.
Казалось бы, про это можно за 5 минут прочитать статейку, или телеграм-пост. Но такое пятиминутное чтение дает столь же поверхностное понимание, которое и глубины не имеет, и выветрится легко.
У Дмитрия же каждой стадии уделено целое видео. Да еще и с замечательным художественным примером про бригаду электромонтажников в тайге.
Пока вышло только два видео:
1. Про формирование команды https://www.youtube.com/watch?v=4BXv3qYlTYI
2. И про шторминг https://www.youtube.com/watch?v=ebJzCUrjqvQ
Смотрится очень увлекательно, как будто сериал с интересным сюжетом и живыми жизненными персонажами. Заодно много деталей про групповую динамику поглощаешь.
Я посмотрел все два видео за один присест и жду продолжения 🙂
YouTube
Как группа становится командой, часть 1: Формирование группы
00:00:00 - Введение
00:04:20 - Описание кейса
00:11:00 - Общий обзор процесса командообразования
00:18:23 - Возникновение рабочей группы
00:24:35 - Знакомство участников
00:27:26 - Организация и начало совместной работы
00:35:10 - Факторы, влияющие на поведение…
00:04:20 - Описание кейса
00:11:00 - Общий обзор процесса командообразования
00:18:23 - Возникновение рабочей группы
00:24:35 - Знакомство участников
00:27:26 - Организация и начало совместной работы
00:35:10 - Факторы, влияющие на поведение…
Forwarded from Data Engineering / Инженерия данных / Data Engineer / DWH
Автоматизация обеспечения качества кода на языке Python
В первой части статьи обсуждаются концепции качества кода и его важность, во второй — предложено пошаговое руководство по настройке линтинга, форматирования и проверки типов с помощью инструментов, таких как flake8 и Black, что помогает ускорить процессы разработки и избежать ошибок на ранних этапах.
https://habr.com/ru/companies/otus/articles/750214/
В первой части статьи обсуждаются концепции качества кода и его важность, во второй — предложено пошаговое руководство по настройке линтинга, форматирования и проверки типов с помощью инструментов, таких как flake8 и Black, что помогает ускорить процессы разработки и избежать ошибок на ранних этапах.
https://habr.com/ru/companies/otus/articles/750214/
Хабр
Автоматизация обеспечения качества кода на языке Python
Далее в статье я поясню, что я понимаю под термином «качество кода» и какую пользу оно приносит разработчикам. В первой половине статьи я раскрою общие концепции и рабочие процессы, применимые к...
Forwarded from эйай ньюз
This media is not supported in your browser
VIEW IN TELEGRAM
Мы наконец выкатили нашу 30B модель для генерации видео! И я очень рад, что являюсь одним из контрибьютеров в этот грандиозный проект.
Bye-bye SORA. Movie Gen – это новая SOTA в генерации видео по тексту!
Модель генерит 16-секундные видео в 1080p, 16FPS.
Общая длина контекста - 73к видео токенов (256 кадров).
Выкатываем ещё:
- 13B модель для генерации видео одновременно со звуком в 48kHz.
- И ещё тюны для редактирования видео и генерации персонализированных видосов с вашим лицом по заданному фото.
В статье мы описываем много новых штук по части архитектуры, рецептов тренировки больших видео-моделей, параллелизации, увеличения скорости инференса, оценки качества, курирования данных и других трюков. В статье очень много деталей!
Сайт
Блогпост
Подробная статья (92 стр)
Скоро ждите ещё дополнительный пост с разбором.
@ai_newz
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from RU Dataset | Датасеты
Недвижимость
Датасеты от Росреестра
Данные о кадастровой стоимости объектов недвижимости в разрезе территориальной принадлежности
Данные о ценах регистрируемых сделок (по отчуждению) с объектами недвижимости в разрезе территориальной принадлежности
Данные о размере арендной платы за объекты недвижимости в разрезе территориальной принадлежности (в отношении договоров аренды, подлежащих государственной регистрации в соответствии с действующим законодательством) в разрезе территориальной принадлежности
Ссылка (https://files.kadastr.ru/s/RXcEoq2gqfKJRRF)
Демография в России: объединенные панельные данные за 1990-2019 годы
Крупные города России: объединенные данные по основным социально-экономическим показателям за 1985-2019 гг.
Список кадастровых кварталов России на конец 2021 года
Публичная кадастровая карта России
Реформа ЖКХ.
Около 11 миллионов объявлений недвижимости в России за 2021 год
Около 540 тысяч объявлений недвижимости в России за 2018 - 2021 года.
API для доступа к объявлениям с avito.ru
Парсер объявлений недвижимости России
Данные от NextGis
@dataset_ru
Датасеты от Росреестра
Данные о кадастровой стоимости объектов недвижимости в разрезе территориальной принадлежности
Данные о ценах регистрируемых сделок (по отчуждению) с объектами недвижимости в разрезе территориальной принадлежности
Данные о размере арендной платы за объекты недвижимости в разрезе территориальной принадлежности (в отношении договоров аренды, подлежащих государственной регистрации в соответствии с действующим законодательством) в разрезе территориальной принадлежности
Ссылка (https://files.kadastr.ru/s/RXcEoq2gqfKJRRF)
Демография в России: объединенные панельные данные за 1990-2019 годы
Крупные города России: объединенные данные по основным социально-экономическим показателям за 1985-2019 гг.
Список кадастровых кварталов России на конец 2021 года
Публичная кадастровая карта России
Реформа ЖКХ.
Около 11 миллионов объявлений недвижимости в России за 2021 год
Около 540 тысяч объявлений недвижимости в России за 2018 - 2021 года.
API для доступа к объявлениям с avito.ru
Парсер объявлений недвижимости России
Данные от NextGis
@dataset_ru
Forwarded from DevFM
Ведение дел – мой опыт
Часто начинающие тим лиды имеют сложности с тайм-менеджментом. У них появляются новые зоны ответственности, новые задачи, интерапты, о которых они раньше и не слышали, больше общения с людьми. В общем, совершенно новый опыт.
Что уж говорить, и у опытных ребят бывают сложности с тайм-менеджментом, когда наваливается куча всякого.
И мы на 121-встречах обсуждаем эти проблемы, думаем как решить, потому что ситуации в целом типовые, а вот решения могут быть разные.
Одним из рецептов является последовательное и структурированное ведение задач. Результатом встреч с разными ребятами стала эта статья, где я описал метод, который уже давно использую для ведения задач, как рабочих, так и личных.
Полезно всем, у кого есть запрос на понятное и упорядоченное ведение своих дел.
Лайки, конечно же, приветствуются.
#devfm #edu #tools
Часто начинающие тим лиды имеют сложности с тайм-менеджментом. У них появляются новые зоны ответственности, новые задачи, интерапты, о которых они раньше и не слышали, больше общения с людьми. В общем, совершенно новый опыт.
Что уж говорить, и у опытных ребят бывают сложности с тайм-менеджментом, когда наваливается куча всякого.
И мы на 121-встречах обсуждаем эти проблемы, думаем как решить, потому что ситуации в целом типовые, а вот решения могут быть разные.
Одним из рецептов является последовательное и структурированное ведение задач. Результатом встреч с разными ребятами стала эта статья, где я описал метод, который уже давно использую для ведения задач, как рабочих, так и личных.
Полезно всем, у кого есть запрос на понятное и упорядоченное ведение своих дел.
Лайки, конечно же, приветствуются.
#devfm #edu #tools
Хабр
Ведение дел – мой опыт
Хочу поделиться с вами опытом ведения списка дел. Рассказывать буду на примере рабочих задач, но этот же метод я применяю и для повседневных дел. Все советы не привязаны к конкретному инструменту, и...
Forwarded from Nikita Sushko
GitHub
GitHub - NirDiamant/RAG_Techniques: This repository showcases various advanced techniques for Retrieval-Augmented Generation (RAG)…
This repository showcases various advanced techniques for Retrieval-Augmented Generation (RAG) systems. RAG systems combine information retrieval with generative models to provide accurate and cont...