gonzo-обзоры ML статей – Telegram
gonzo-обзоры ML статей
24.1K subscribers
2.72K photos
2 videos
3 files
1.35K links
Авторы:
Гриша Сапунов, ранее руководитель разработки Яндекс-Новостей, ныне CTO Intento. Области интересов: AI/ML/DL, биоинформатика.
Лёша Тихонов, ранее аналитик в Яндексе, автор Автопоэта, Нейронной Обороны... Области интересов: discrete domain, NLP, RL.
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
7🐳3
Ещё релевантный обзор предшествующей работы на эту же тему
Forwarded from КПД
Deja Vu: Contextual Sparsity for Efficient LLMs at Inference Time
[Статья] [Код]

Гугл выдаст кучу статей с дежавю в названии:

🎉 Do SSL Models Have Déjà Vu? A Case of Unintended Memorization in Self-supervised Learning.
🎉 DejaVu: Conditional Regenerative Learning to Enhance Dense Prediction
🎉 DEJA VU: Continual Model Generalization For Unseen DomainsDeja-Vu: A Glimpse on Radioactive Soft-Error Consequences on Classical and Quantum Computations
🎉 Déjà vu: A Contextualized Temporal Attention Mechanism for Sequential Recommendation
🎉 Déjà Vu: an empirical evaluation of the memorization properties of ConvNets

Так что авторы немного прогадали с оригинальностью названия)

Перейдем же к сути дела.

Введение

Как известно, нейронные сети перепараметризованы, и имеет место значительная избыточность в весах моделей - значительную долю весов можно отбросить без заметной просадки в качестве. На этом свойстве основаны методы прунинга. Тем не менее, чтобы решать широкий круг задач foundation модель должна обладать значительным количеством параметров, чтобы хранить в себе большой обьем знаний. Потому добиться существенного сжатия и ускорения без просадки в качестве крайне затруднительно.

Однако, для конкретного запроса, будь то последовательность или иной тип входа, требуется лишь малая доля аккумулированного в модель знания. Чтобы взять интеграл от функции не требуется быть египтологом или знать всех представителей рода соколиных.
👍111
Forwarded from КПД
Метод

Ускорить время работы сети без просадки в качестве можно не используя часть голов в attention или каналов в feedforward слоях.

Первая часть работы посвящена анализу внутренних представлений внутри сети.
Авторы делают два прямых прохода: на первом определяют каналы и головы с наибольшими значениями активаций, и на втором проходе используют только долю параметров, соответствующую самым большим активациям. Оказывается, что таким образом можно пропустить до 80% голов в Attention и до 95% в MLP слоях без существенного изменения выхода модели. Кроме того, оказывается что в большинстве голов attention размазан равномерно по токенам, и эти головы не выполняют никакой полезной работы.

При определении важных/неважных для конкретного входа параметров описанным выше образом приходится делать один проход с использованием всех параметров, потому толку от него как от козла молока. Можно ли как-то заранее определить нужные каналы?

Авторы рассматриваемой статьи делают следующее: берут обученную языковую модель и поверх нее обучают слои предсказывать, насколько релевантен вход данному каналу ffn / голове трансформера. На инференсе задается доля весов, которую мы хотим использовать, и берутся только измерения с самым высоким предсказанным скором. Выбор нулевых весов зависит от входа (то есть контекста) - потому sparsity носит прилагательное contextual.

Предсказывать важность канала/головы на основе активаций текущего слоя оказывается технически неэффективно, так как определение используемых для данного входа параметров и прогонка через блок должны осуществляться последовательно, что снижает утилизацию железа. Потому предлагается использовать активации с прошлого блока для выбора. Благодаря наличию residual connections активации слабо меняются от блока к блоку, потому активации прошлого блока служат хорошим приближением активаций в текущем блоке, и предиктор можно прогонять параллельно с attention и mlp блоком.
👍10🔥1
Forwarded from КПД
Эксперименты

Авторы валидируют свой подход на больших моделях из семейства OPT (66B, 175B) и Bloom через замеры перплексии на WikiText/C4, и zero-shot бенчмарках из lm-eval-harness. Contextual sparsity в районе 50-60% даже слегка накидывает в качестве, и до 80% не просаживает качестве по сравнению с исходной моделью.

Deja Vu ускоряет генерацию с OPT-175B в 1.8-2x по сравнению с FasterTransformers и 4.8-6x c реализацией трансформера в HuggingFace (сильно неоптимальной) при contextual sparsity 75%

Для Bloom результаты и выводы аналогичные.

Затем авторы смотрят на contextual sparsity с ростом количества одновременно подаваемых последовательностей, и оказывается, что количество каналов/голов с большим значением активаций растет медленнее, чем линейно с размером батча. Причем в первых слоях, активируются одни и те же каналы и головы во всех последовательностях, и различие возникает в более поздних блоках.

Deja Vu можно совместить с другими методами сжатия и ускорения, в частности, квантизацией.

Вывод

С одной стороны логичное и в то же время интересное наблюдение. Интуитивно понятно, что все заложенное знание в foundation модель не требуется для конкретного запроса, но вопрос о том, как эффективно извлекать это знание, не перебирая при этом половину книг в эдакой импровизированной библиотеке. Результаты для OPT выглядят весьма впечатляюще, однако отсутствие подобных экспериментов на более современных и эффективных моделях, пресловутой Llama к примеру, вызывает смутные подозрения. По всей видимости, столь высокая разреженность активаций как-то связана с недообученностью и compute-неоптимальностью моделей. Тем не менее, contextual sparsity - перспективное направление для развития эффективных foundation моделей.
👍161🔥1
“Human Compatible”, Stuart Russell
https://people.eecs.berkeley.edu/~russell/hc.html
#2

Прочитал Рассела, в прошлый раз (https://news.1rj.ru/str/gonzo_ML/1516) рассказывал про первую часть книги, в этот раз напишу про две другие.

Вторая часть посвящена проблемам и опасностям ИИ. Глава про злонамеренное использование, глава про суперинтеллект и отдельная классная глава с разбором типичных возражений и убеждений из дебатов об опасностях ИИ. Хорошая подборка всего, стоит прочитать, если хотите взвешенный и широкий обзор про разного рода риски.

Последняя третья часть содержит основную идею и посвящена подходу к beneficial AI, на который рассчитывает Расселл.

Его идея в том, что классический ML/AI часто смотрит на задачу как на построение машины, оптимизирующей некую objective. С этим подходом есть фундаментальные проблемы, потому что objective очень сложно задать, легко что-то не учесть, она может измениться и так далее. Ну все тут наверное когда-нибудь общались с джином (или джуном) или писали ТЗ, догадываются про сложности 🙂 Когда машина отпущена в свободное плавание, исправить или изменить objective может быть уже нереально. Винер в 1960-е тоже про это писал, см. “Some Moral and Technical Consequences of Automation” (https://www.cs.umd.edu/users/gasarch/BLOGPAPERS/moral.pdf).

Расселл предлагает зайти с другой стороны. 1) Не надо закладывать в машину никаких objectives кроме как “максимизировать выполнение человеческих предпочтений (preferences)”. 2) Машина при этом изначально uncertain относительно этих предпочтений и 3) основным источником информации о предпочтениях должно быть человеческое поведение.

С точки зрения п.1 машина альтруистична, у неё нет никакой ценности в собственном существовании (я так понимаю тут мы не касаемся темы про машины, имеющие сознание, с этим имхо будет всё сложнее и не так). С точки зрения п.2 машина скромна, при непонятностях ожидает помощи и подсказки от человека. С точки зрения п.3 она учится предсказывать человеческие предпочтения, занимается Inverse Reinforcement Learning (IRL, https://thegradient.pub/learning-from-humans-what-is-inverse-reinforcement-learning/) -- пытается понять rewards по поведению. IRL -- тема, совсем не чуждая Расселлу (оказывается ещё и Ыну, https://ai.stanford.edu/~ang/papers/icml00-irl.pdf) и вообще популярная в его родном Беркли (https://people.eecs.berkeley.edu/~pabbeel/cs287-fa12/slides/inverseRL.pdf), но не только там, конечно.

Расселл признаёт, что есть много сложностей: люди разные, их много, они хорошие и плохие, глупые и эмоциональные, ещё и со временем всё может меняться. Совсем готового рецепта у автора нет, но он рассчитывает на лучшее. Расселл ожидает регуляцию, думает что её внедрение будет довольно болезненным процессом, но надеется, что для преодоления сопротивления индустрии не потребуется аналог Чернобыля. Misuse остаётся большой проблемой, от которой мы никуда не денемся (это уже видно на примере киберсека).

Хорошая книжка в общем, рекомендую. Особенно тем, кто будет кричать, что проблем с ИИ быть не может, или кто утверждает, что есть только думеры пугающие всех нереальным сценарием со скрепками.
21👍16🤮3🤡3💩2🔥1💯1🆒1
Увидел этот пост (https://medium.com/@alexey.inkin/advice-to-my-younger-self-and-you-after-20-years-in-programming-a3a2ccc7a942) у Дениса Афанасьева и поделюсь им тоже. Он как бы не очень про ML, но он достаточно универсальный чтобы быть и про него тоже. К тому же сейчас хорошее время чтобы подвести итоги своего года и выработать планы на будущее. С чем-то в посте можно не соглашаться, это up to you. Я надеюсь он станет для кого-то питательным бульоном и поводом, чтобы порефлексировать самостоятельно. Plans are useless, but planning is indispensable.

Пользуясь случаем также скажу пару слов за IEEE и GDE. Обе темы крайне полезные и я настоятельно их рекомендую.

В IEEE я вступил наверное уже лет 20 назад в основном из-за их публикаций и профессиональных журналов (а также спасибо Макконнеллу http://www.symbol.ru/alphabet/449955.html). Они до сих пор высочайшего качества, начиная с универсальных IEEE Spectrum и Computer. ACM Queue и CACM кстати тоже были ничего, но для меня конкретно IEEE как-то больше зашёл. Оттуда я узнавал многие вещи за 3-5 лет до того как они массово доходили не то что до популярной прессы, а вообще до русскоязычной профессиональной среды.

GDE же это прекрасное комьюнити профессионалов, каждый из которых постоянно делает что-то интересное и у кого можно всегда учиться. Там есть прямо мегакрутые люди. В своё время я стал первым и единственным GDE в категории ML в России, и как-то так и не удалось затянуть в эту тему никого больше. А жаль, я пытался :) Сейчас программа на территории России уже не работает, но если вы на других территориях, то я очень рекомендую. Вступайте в рады Фурье! Тут https://developers.google.com/community/experts
16👍8🏆2💩1