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
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
Я пока не понял, для чего именно это нужно (https://news.1rj.ru/str/gonzo_ML?boost), но если у вас есть идеи как этим улучшить канал, то присылайте ваши идеи вместе с бустами.

Всех с Наступающим Новым годом! Желаю всем мира, счастья и здоровья!
👍125🥱5
😁3011👍4🤣1
[GFlowNets]: Flow Network based Generative Models for Non-Iterative Diverse Candidate Generation
Emmanuel Bengio, Moksh Jain, Maksym Korablyov, Doina Precup, Yoshua Bengio
Статья: https://arxiv.org/abs/2106.04399
Код: https://github.com/GFNOrg/gflownet
Пост: https://yoshuabengio.org/2022/03/05/generative-flow-networks/
Короткое саммари от соавтора: https://folinoid.com/w/gflownet/

Давно хотелось написать про GFlowNets, или Generative Flow Networks, работу в соавторстве Йошуа Бенжио, про которую он крайне тепло отзывается и считает важным новым направлением исследований. По словам Бенжио, среди прочих крутых вещей, работа открывает дорогу к созданию system 2 inductive biases (https://www.microsoft.com/en-us/research/video/gflownets-and-system-2-deep-learning/).

В этом посте в основном про основополагающую работу с NeurIPS 2021. К текущему моменту есть развития, например, “GFlowNet Foundations” (https://arxiv.org/abs/2111.09266), “Multi-Objective GFlowNets” (https://arxiv.org/abs/2210.12765), “A theory of continuous generative flow networks” (https://arxiv.org/abs/2301.12594) и многое другое, особенно в прикладной части с применением к задачам разных областей и особенно для биологии (например, https://arxiv.org/abs/2203.04115).

GFlowNets (GFN) -- генеративные сети, как следует из названия, в которых генеративный процесс представлен транспортной сетью, flow network. Оригинальная работа посвящена генерации молекулярных графов, но в целом GFN годятся для сэмплинга различных комбинаторных объектов.

Цель -- не получить единственную последовательность действий с максимальным reward, а сделать выборку из распределения траекторий, чья вероятность пропорциональна вознаграждению. Или, другими словами, преобразовать заданную функцию вознаграждения в генеративную policy, сэмплирующую с вероятностью пропорциональной вознаграждению. Это может быть полезно в задачах, где много мод и важна часть про exploration (как раз пример из drug discovery). В одной из последующих работ GFN называют diversity-seeking reinforcement learning algorithms.

Подход GFlowNets работает с сетью, в узлах которой находятся состояния, а выходящие из них рёбра соответствуют детерминированным переходам в результате выбранных действий. Поток в этой сети даёт вероятность действия в текущем состоянии. GFlowNet это именно сеть, не дерево -- разные пути могут приводить к одним и тем же состояниям.

MDP (Markov Decision Process) на сети, где все листья являются терминальными состояниями с вознаграждением, представляется в виде транспортной сети, которая описывается направленным ациклическим графом (DAG). Используется эпизодический RL, где вознаграждение получается лишь в конце эпизода, а везде в процессе он равен нулю. У сети один исток и стоки по числу листьев, вытекающий поток равен вознаграждению в листе, входящий поток -- сумма всех выходных. Общий поток через сеть в каждом узле должен удовлетворять условию, что входной поток в узел равен выходному потоку из него. Касательно полиси, вероятность действия a из состояния s, π(a|s), равна отношению потока из состояния s по ребру a, F(s, a), к общему потоку из состояния s, F(s).

Для реальных задач задать сеть явно нереально (например, для молекул может потребоваться 10^16 узлов), поэтому мы аппроксимируем поток через каждый узел нейросетью (например, графовой или трансформером), это аналогично переходу RL → Deep RL. В сеть подаётся описание состояния, на выходе получается набор скаляров, соответствующий следующим состояниям.
12👍11🔥2
Objective (или лосс) для траектории τ навеян уравнениями Беллмана для temporal-difference (TD) алгоритмов, это сумма, в которой потоки по рёбрам траектории из текущих состояний с плюсом, а терминальные вознаграждения следующих состояний и потоки из них с минусом. Для борьбы разными масштабами потоков (на входных узлах он большой, на выходных маленький), в flow matching objective используются логарифмы потоков. Минимизация этой objective и даёт правильные потоки с нужными нам свойствами, позволяющими сэмплить из полиси. Возможны также и другие objectives, например, detailed balance (https://arxiv.org/abs/2111.09266) и trajectory balance (https://arxiv.org/abs/2201.13259) из более поздних работ.

Если я правильно понял, с этим лоссом осуществляется шаг градиентного спуска (в целом SGD, конкретно здесь Adam) с четырьмя траекториями в минибатче. Обучение GFlowNet идёт бутстрапом -- сэмплим траектории (можно текущим полиси, тогда это on-policy обучение, а можно другими полиси и вообще иными средствами для исследования пространства, в том числе поднимая данные из базы данных, тогда это всё off-policy), получаем для них reward, считаем лосс и обновляем текущую полиси (градиентным спуском).

В случае молекул была задача сгенерировать множество маленьких молекул с высоким reward (который определялся через прокси-модель). Описывающий молекулу граф является последовательностью аддитивных редактирований, где на каждом шаге агент выбирает один из 72 предопределённых блоков для добавления, а также атом, к которому тот будет добавлен. Есть дополнительное действие для остановки редактирования. Эта последовательность редактирований даёт DAG MDP. Для прокси использовалась Message Passing Neural Network (MPNN, https://arxiv.org/abs/1704.01212) с GRU внутри, которой подавался граф атомов; для предсказателя потока — MPNN с графом блоков. GFN сработал хорошо и нашёл больше разнообразных кандидатов чем бейзлайны с MCMC (MARS) и RL (PPO).

Ссылки в тему:
* В ноябре 2023 в Mila прошёл GFlowNet Workshop (https://www.gflownet.org/), видео материалы выложены: https://www.youtube.com/watch?v=H2w-TrAzrBA&list=PLvSH07QabjqZRKKuq92HN7zXqUIDk6Nyx.
* Есть большой туториал: http://yoshuabengio.org/gflownet-tutorial и Colab https://colab.research.google.com/drive/1fUMwgu2OhYpQagpzU5mhe9_Esib3Q2VR.
* Подборка ресурсов по теме: https://www.gflownet.org/resources.html
* Кроме кода к статье есть библиотеки для работы с GFlowNets, например, gflownet (https://github.com/recursionpharma/gflownet) от Recursion и частично тех же авторов, включая Бенжио младшего; и torchgfn (https://github.com/GFNOrg/torchgfn) с участием Бенжио старшего.


В принципе, кажется, GFlowNets могут быть интересным вариантом для (до)обучения LLM. Даже как минимум одна свежая работа на эту тему уже есть: “Amortizing intractable inference in large language models” (https://arxiv.org/abs/2310.04363), в которой ими делают файнтюнинг.
👍6🔥2🤔1
This media is not supported in your browser
VIEW IN TELEGRAM
❤‍🔥26💯6👍2
"Извинити"
😁185🍾35🍓6🔥4👍3
Приготовьтесь к запуску GPT Store на следующей неделе!

https://techcrunch.com/2024/01/04/openais-app-store-for-gpts-will-launch-next-week/

"GPTs effectively democratize generative AI app creation — at least for apps that use OpenAI’s family of models. In fact, GPTs could kill consultancies whose business models revolve around building what are essentially GPTs for customers."
13🤔5👍3
[Singapore] TinyLlama: An Open-Source Small Language Model
Peiyuan Zhang, Guangtao Zeng, Tianduo Wang, Wei Lu
Статья:https://arxiv.org/abs/2401.02385
Код: https://github.com/jzhang38/TinyLlama

В полку SLM (Small Language Models) прибыло! TinyLlama — это моделька размера 1.1B, обученная на 3T токенов! Для сравнения намного большую 70B Шиншиллу (https://news.1rj.ru/str/gonzo_ML/1216) обучали на меньшем датасете в 1.4T токенов. По рецептам Шиншиллы оптимальное обучение для 1B модели было бы на 20B токенов (https://news.1rj.ru/str/gonzo_ML/1223), а тут 3T, почувствуйте разницу! Кажется, это в первый раз для настолько малой модели.

Из других SLM за последнее время были, например, Phi 1 и 1.5 с 1.3B (https://news.1rj.ru/str/gonzo_ML/1871), Phi 2 c 2.7B (https://news.1rj.ru/str/gonzo_ML/2173) или Gemini Nano с 1.8B и 3.2B (https://news.1rj.ru/str/gonzo_ML/2117).

Это интересное направление, потому что в целом все бегут за большими размерами, и ниша малых моделей недоисследована, а с учётом важности инференса они не менее важны. При этом давно уже есть наблюдения, что можно пообучать модель сильно за пределами compute optimal рецептов Шиншиллы, и это продолжает приносить плоды.

Архитектура классическая, декодер трансформера по рецепту Llama 2 с её же токенизатором. Данные собрали из SlimPajama (почищенный вариант RedPajama) и Starcoderdata, суммарно 950B токенов, так что обучали примерно 3 эпохи. Сэмплили датасеты в пропорции 7:3.

При этом задействовали разные продвинутые штуки и взяли RoPE энкодинги, RMSNorm pre-norm, SwiGLU, grouped-query attention.

Для скейлинга и ускорения задействовали Fully Sharded Data Parallel (FSDP) из Пайторча, свежий Flash Attention 2, заменили fused SwiGLU из xFormers на оригинальный и сэкономили памяти (это, кстати, для меня удивительно, мои первые ожидания, что fused реализация должна быть лучше) -- это позволило уместить модель в 40Gb памяти.

В итоге на A100-40G получили training throughput в 24,000 токенов в секунду. Для обучения на 300B токенов TinyLlama-1.1B требуется 3,456 A100 GPU-часов, в то время как у Pythia эта цифра равна 4,830 и у MPT’s вообще 7,920 часов.

Использовали для обучения Lit-GPT (https://github.com/Lightning-AI/lit-gpt, базируется на nanoGPT). AdamW, cosine learning rate, warmup, gradient clipping.

Обучалось 90 дней на 16 A100-40G GPU. По ценам AWS на p4d (https://aws.amazon.com/ec2/instance-types/p4/) это было бы примерно $140k между прочим.

Результат хорошо бьёт бейзлайны в лице OPT-1.3B, Pythia-1.0B и Pythia-1.4B. На MMLU правда хуже. С увеличением вычислительного бюджета перформанс продолжает расти, не понял только почему он более шумным становится.

Кажется, работа -- верх открытости. Весь код обучения, промежуточные чекпойнты, все детали обучения доступны.

Респект!
👍40🔥147