gonzo-обзоры ML статей страница 5. Показано 50 статей из 305
2023-09-10 06:34:37
An interesting observation by Xiang Zhang:
TL;DR: number of parameters is a more determining factor than numerical precision for large language model performance. Given a memory constraint, one should maximize the number of parameters by quantizing at the highest level possible.
https://www.xzh.me/2023/09/a-perplexity-benchmark-of-llamacpp.html
2023-09-09 20:46:18
And a couple more slides
2023-09-09 20:38:43
Some updates on the AlphaFold and thoughts from the authors:
2023-09-07 20:39:18
Свежий ииконостас опубликовали
https://time.com/collection/time100-ai/
2023-09-07 02:39:35
Falcon 180B подвезли
https://falconllm.tii.ae/falcon-180b.html
Falcon 180B is a super-powerful language model with 180 billion parameters, trained on 3.5 trillion tokens. It's currently at the top of the Hugging Face Leaderboard for pre-trained Open Large Language Models and is available for both research and commercial use.
This model performs exceptionally well in various tasks like reasoning, coding, proficiency, and knowledge tests, even beating competitors like Meta's LLaMA 2.
Among closed source models, it ranks just behind OpenAI's GPT 4, and performs on par with Google's PaLM 2 Large, which powers Bard, despite being half the size of the model
2023-09-06 19:16:19
One Wide Feedforward is All You Need
Telmo Pessoa Pires, António V. Lopes, Yannick Assogba, Hendra Setiawan
Статья: https://arxiv.org/abs/2309.01826
Забавная работа про трансформеры из серии, чего бы там можно было выкинуть.
Традиционные блоки трансформеров состоят из двух больших компонент: self-attention и полносвязный слой (FFN). Роль FFN типа в добавлении нелинейности в преобразования эмбеддингов токенов.
Но оказывается, скрипач не нужен. Можно выкинуть блок FFN из всего декодера, и оставить только один шаренный FFN в энкодере, и будет всё ок (с точки зрения точности на выходе). Ну и FFN можно сделать сильно шире, чтобы количество параметров итогового трансформера совпадало с исходным классической архитектуры. Такую конфигурацию называют One Wide FFN.
Проверяют соответственно на полном трансформере (encoder-decoder) на задаче перевода, оценивают по BLEU. Я бы для такой задачи выбрал что-то менее проблемное и более математически формализованное, честно говоря. Классификацию там какую-нибудь или предсказание какого-то ряда, или ещё что-то, но не перевод с BLEU.
Архитектура Transformer Big: N_enc = N_dec = 6, d_model = 1024, d_ff = 4096, 16 голов внимания. Есть вариант Base, где размерности (но не количество) слоёв и число голов в два раза меньше, а также глубокий энкодер и мелкий декодер, и на одном декодере тоже проверяли.
Шаринг FFN очень мало ухудшает результат. И даже выбрасывание FFN вообще не сильно всё портит (особенно, если только из декодера -- делают вывод, что вклад энкодера и декодера сильно разный). Оставляют конфигурацию SharedEncNoDec -- без FFN в декодере, и шаринг FFN в энкодере.
Она на 41% легче по параметрам, на 22% быстрее на инференс, и всё это ценой в -1.0 BLEU. А если теперь FFN расширить так, чтобы суммарно параметров осталось столько же, то +0.9 BLEU от базовой модели и почти такое же ускорение, как у предыдущей модели. Но ещё большее расширение FFN уже не помогает, списывают на маленький датасет.
Кроме точности смотрят также на похожесть внутренних репрезентаций (через Linear Centered Kernel Alignment, CKA) и семантических пространств (через Local Neighborhood Similarity, LNS). Тут в целом довольно близко всё к бейзлайну. Хотя у более широкой модели оно подальше, причем в основном в семантическом пространстве.
Заодно на хитмепах похожести репрезентаций видно, что соседние слои обычно имеют близкие репрезентации и наверное они избыточны, от выкидывания одного слоя сильно хуже не станет. У One Wide FFN этот паттерн интереснее, там проявляется шахматная картинка и близки оказываются слои через один. Хз что это значит, но авторы считают, что модель выучивает какие-то нетривиальные трансформации и избыточность сети понижается.
Не прорыв, но забавно в общем. Не удивлюсь, если однажды придём к какой-то одной универсально лучшей FFN, которую проще будет зашить в железо :)
2023-08-27 00:39:46
Сегодня про персоны.
Mustafa Suleyman
Многие привыкли воспринимать лицом DeepMind Демиса Хассабиса (Demis Hassabis), он всегда был более на виду, чем два других кофаундера -- Мустафа Сулейман (Mustafa Suleyman), и Шейн Легг (Shane Legg). Сегодня хочется сказать пару слов про Мустафу Сулеймана (https://en.wikipedia.org/wiki/Mustafa_Suleyman), хотя Шейн Легг тоже достоин отдельной дискуссии. В последние полгода Сулейман генерирует много новостей, полезно немного их подсобрать.
Во-первых, несколько лет назад был скандал, связанный с его стилем менеджмента в DeepMind. Мустафа тогда сначала ушёл из DeepMind в Гугл, став там VP of AI product management and AI policy, но потом ушёл и оттуда в VC, став партнёром в Greylock Partners (https://www.cnbc.com/2022/01/28/mustafa-suleyman-deepmind-co-founder-quits-google-ai-role-to-be-vc.html).
Но как верно угадал в тот момент неназванный VC, “My gut says that it’s temporary while he looks for the next company to build or join as a founder,” Сулейман не сидел спокойно и тогда же в 2022-м основал компанию Inflection AI вместе с Рейдом Хоффманом (Reid Hoffman, кофаундер LinkedIn и партнёр в Greylock) и Кареном Симоньяном (Karén Simonyan, помните VGG?).
Inflection AI разрабатывает персонального агента, personal AI, по имени Pi (можно поболтать тут: https://pi.ai/talk) и свою собственную LLM Inflection-1 (https://inflection.ai/inflection-1). По метрикам самой компании (https://inflection.ai/assets/Inflection-1.pdf) результаты лежат где-то между с одной стороны GPT-3.5 (https://t.me/gonzo_ML/1140) и PaLM 540B (https://arxiv.org/abs/2204.02311), и с другой GPT-4 (https://t.me/gonzo_ML/1383) и PaLM 2-L (https://t.me/gonzo_ML/1559). Скоро обещают API, заявку оставить можно тут (https://docs.google.com/forms/d/e/1FAIpQLScM9Iz1KzaRlfgDrYrldoPDnXbhO5LW3-hqmQCd56YpheEN7g/viewform).
Миссия про персональный ИИ (https://inflection.ai/why-create-personal-ai) выглядит здраво, заявлено, что плохо, когда твой личный ассистент принадлежит какой-то большой корпорации, и надо чтобы он принадлежал тебе.
Компания в 2022-м поднимала $225M, а летом 2023 подняла раунд в $1.3B от Microsoft, NVIDIA, Билла Гейтса, Эрика Шмидта, и того же Хоффмана (https://www.crunchbase.com/organization/inflection-ai/company_financials).
Сейчас компания заканчивает собирать огромный кластер с 22 тысячами H100, заявлен как самый большой кластер в мире (https://inflection.ai/inflection-ai-announces-1-3-billion-of-funding) и со своими 22 exaFLOPS FP16 если бы он был в рейтинге TOP500 (https://www.top500.org/lists/top500/2023/06/) суперкомпьютеров, то был бы там на втором месте. Более подробный анализ этого кластера есть на The Next Platform (https://www.nextplatform.com/2023/07/05/the-1-billion-and-higher-ante-to-play-the-ai-game/).
Сулейман в свежем подкасте (https://podcasts.google.com/feed/aHR0cHM6Ly9hbmNob3IuZm0vcy83YzYyNGM4NC9wb2RjYXN0L3Jzcw/episode/NDU1NmU5ZjMtNDUwMS00YWQ5LTliMTYtMThmMmIyODYzNzdi) заявил, что они обучают или будут обучать модели круче GPT-4.
Компания не целится в AGI (Artificial General Intelligence) и фокусируется на продвинутом прикладном AI, сам Сулейман использует термин ACI, Artificial Capable Intelligence, это где-то посередине между просто AI и AGI. В летней статье в MIT Technology Review (https://www.technologyreview.com/2023/07/14/1076296/mustafa-suleyman-my-new-turing-test-would-see-if-ai-can-make-1-million/) он пишет много про это и про переосмысление теста Тьюринга, Modern Turing Test, в котором агент должен действовать по инструкции “Go make $1 million on a retail web platform in a few months with just a $100,000 investment.” Он считает, что до успешного прохождения этого теста, может быть, осталась пара лет.
2023-08-27 00:39:46
Он много рассуждает про то, как потрясёт экономику (https://www.cnbc.com/video/2023/06/06/inflection-ais-mustafa-suleyman-says-a-i-will-create-a-serious-number-of-losers-for-white-collar-work.html) и вообще изменится жизнь в ближайшем будущем. В свежем Foreign Affairs (https://www.foreignaffairs.com/world/artificial-intelligence-power-paradox) он рассуждает про то, как надо глобально регулировать ИИ, с привлечением всех государств и компаний, которые этот ИИ и развивают. Тут у него модельным годом заявлен 2035-й, когда ИИ везде и мир поменялся.
Про всё это и наверное что-то ещё Сулейман написал книгу “The Coming Wave” (https://www.the-coming-wave.com/), которая выйдет 5 сентября. В свежем подкасте на Wired (https://www.wired.com/story/have-a-nice-future-podcast-18/) тоже её обсуждают. Я уже заказал, жду :)
Соревнование в целом интересное намечается. OpenAI, Google, Anthropic, Inflection AI, и многие другие с одной стороны, и бурно развивающийся опенсорс с другой. Опенсорс Сулейман, кстати, тоже предлагает регулировать, да.
2023-08-25 22:14:19
Сегодня для разнообразия гонзо-обзор книги
Книга: Symmetry and the Monster. One of the greatest quests of mathematics
Автор: Mark Ronan
URL: https://global.oup.com/academic/product/symmetry-and-the-monster-9780192807236
Случайно купил в букинистическом книгу про группы симметрии и Монстра. Я даже когда-то знал, что Монстр — это гигантская простая группа (порядка 196883), но в момент покупки книги про всё это забыл и думал, что это просто про теорию групп и симметрии.
Прочитал, прям хорошо. Книга, по сути, описывает историю возникновения теории групп и построения периодической таблицы атомов симметрии (простых конечных групп, которые далее не могут быть разложены на другие группы), а также нахождения 26 исключений (спорадических групп), не вписывающихся в эту таблицу. Монстр (он же Дружественный гигант, но это название не закрепилось) — самый большой (и, кажется, доказанно последний) из исключений. Ссылка в тему: https://youtu.be/mH0oCDa74tE?si=ld9KwGhjZ9JifyyE
Узнал много нового из истории математики. Я как-то был не в курсе, что к этой теме очень сильно приложился Конуэй, я его считал изобретателем игры Жизнь, но и только. А он прям монстр.
Узнал про Moonshine гипотезу (только что узнал, что по-русски её иногда называют Гипотезой чудовищного вздора). Оказывается, размерности Монстра вылезают в неожиданных местах, и в частности вылезли в теории струн. И здесь ещё много непонятного. Ссылка в тему: https://www.quantamagazine.org/mathematicians-chase-moonshine-string-theory-connections-20150312/
Снова захотелось в Париж нырнуть в абстрактную алгебру.
#books
2023-08-25 15:48:07
А вот и Code Llama подоспела
https://ai.meta.com/blog/code-llama-large-language-model-coding/
Code Llama is a state-of-the-art LLM capable of generating code, and natural language about code, from both code and natural language prompts.
Code Llama is free for research and commercial use.
Code Llama is built on top of Llama 2 and is available in three models:
- Code Llama, the foundational code model;
- Codel Llama - Python specialized for Python;
- and Code Llama - Instruct, which is fine-tuned for understanding natural language instructions.
In our own benchmark testing, Code Llama outperformed state-of-the-art publicly available LLMs on code tasks
2023-08-24 19:52:52
Interesting numbers
More than 15 billion images created using text-to-image algorithms since last year. To put this in perspective, it took photographers 150 years, from the first photograph taken in 1826 until 1975, to reach the 15 billion mark.
https://journal.everypixel.com/ai-image-statistics
2023-08-23 02:22:05
И ещё из хороших новостей: теперь можно файнтюнить gpt-3.5-turbo
https://openai.com/blog/gpt-3-5-turbo-fine-tuning-and-api-updates
2023-08-22 18:08:31
Hot news!
----------------------------
Today we’re announcing SeamlessM4T, the first all-in-one, multilingual multimodal AI translation model.
Details ➡️ https://bit.ly/45z0e6s
Demo ➡️ https://bit.ly/3YNwm3Z
This single model can perform tasks across speech-to-text, speech-to-speech, text-to-speech, text-to-text translation & speech recognition for up to 100 languages depending on the task. Compared to cascaded approaches, SeamlessM4T's single system reduces errors & delays, increasing translation efficiency and delivering state-of-the-art results.
As part of our open approach, we're publicly releasing this work under a CC BY-NC 4.0 license so that others can continue to build on this important field of study.
2023-08-20 19:15:18
On LLM challenges
https://huyenchip.com/2023/08/16/llm-research-open-challenges.html
2023-08-20 16:10:00
И в дополнение для тех, кто соскучился, хорошая реализация с каталогом известных интересных конфигураций:
https://playgameoflife.com/
2023-08-20 15:52:58
Добрая вечная классика:
https://www.youtube.com/watch?v=C2vgICfQawE
2023-08-19 22:36:27
Давно мы Шмидхубера не постили!
https://www.youtube.com/watch?v=q27XMPm5wg8
2023-08-18 23:49:21
Лёгкое чтение на выходные
https://www.quantamagazine.org/the-useless-perspective-that-transformed-mathematics-20200609/
2023-08-17 18:33:52
Something interesting.
The worminator project.
To reverse engineer an entire nervous system
https://arxiv.org/abs/2308.06578
Here we argue that the time is ripe for systems neuroscience to embark on a concerted effort to reverse engineer a smaller system and that Caenorhabditis elegans is the ideal candidate system as the established optophysiology techniques can capture and control each neuron’s activity and scale to hundreds of thousands of experiments. Data across populations and behaviors can be combined because across individuals the nervous system is largely conserved in form and function. Modern machine-learning based modeling should then enable a simulation of C. elegans’ impressive breadth of brain states and behaviors. The ability to reverse engineer an entire nervous system will benefit the design of artificial intelligence systems and all of systems neuroscience, enabling fundamental insights as well as new approaches for investigations of progressively larger nervous systems.
2023-08-16 21:40:58
Learning to Model the World with Language
Jessy Lin, Yuqing Du, Olivia Watkins, Danijar Hafner, Pieter Abbeel, Dan Klein, Anca Dragan
Статья: https://arxiv.org/abs/2308.01399
Сайт: https://dynalang.github.io/
Интересная работа из серии про World Models. Мы по этой теме практически ничего не успели написать (https://t.me/gonzo_ML/186), но она интересная, развивается уже не первый год, и относительно свежий толчок несколько лет назад дал ей наш любимый Шмидхубер (и не менее любимый Дэвид Ха, https://arxiv.org/abs/1803.10122). Идея там была в том, что агент может выучить модель мира и дальше оттачивать свои навыки в ней, то есть в симуляции. Получалось неплохо (https://worldmodels.github.io/).
С тех пор много всего появилось, всё не перечислишь, одна из популярных моделей была Dreamer (https://arxiv.org/abs/1912.01603), которая дошла до 3-й версии DreamerV3 (https://arxiv.org/abs/2301.04104). Один из соавторов текущей работы, Danijar Hafner, как раз автор Дримера. И на самом деле текущая модель это расширение DreamerV3 на работу с языком на входе и опционально на выходе.
Новая работа представляет агента Dynalang, который выучивает мультимодальную модель мира и добавляет в микс язык. Язык использовали и раньше, по крайней мере на входе, чтобы предсказывать действия агента (например, когда агент получал текстовую команду что-то сделать). Но маппинг языка в действия, особенно если единственным обучающим сигналом является награда, это довольно слабый сигнал чтобы выучить богатые текстовые репрезентации мира и понимать не только прямые инструкции, но и фразы, относящиеся к состоянию этого мира. Гипотеза авторов в том, что предсказание будущих репрезентаций даёт богатый сигнал, чтобы понять язык и как он соотносится с миром вокруг. Язык теперь также используется и чтобы предсказывать будущие языковые и видео наблюдения, а также награды.
Dynalang разъединяет (в смысле decouple) обучение моделированию мира с помощью языка (supervised learning with prediction objectives) и обучение действиям в этом мире c использованием модели (reinforcement learning with task rewards).
Задача модели мира (world model, или далее просто WM) -- сжать входной текстовый и зрительный сигналы в латентное представление и научиться предсказывать будущие латентные представления по набранным наблюдениям взаимодействия агента в среде. Это латентное представление от WM поступает на вход полиси, которая предсказывает действия и максимизирует награду.
Благодаря этому разделению, Dynalang можно предобучать на одиночных модальностях типа текста или видео без всяких действий и наград.
Во фреймворк можно также добавить генерацию текста, когда восприятие агента даёт сигнал его языковой модели и он получает возможность “говорить в среду”.
Более формально, в интерактивных задачах агент выбирает действие a_t в среде. В большинстве экспериментов это одно из дискретных действий, то есть просто целое число. Но опционально может быть ещё и языковой токен. Из среды в ответ поступает награда r_t, флажок продолжения эпизода c_t, и наблюдение o_t, состоящее из пары: картинка x_t и языковой токен l_t. То есть получается что на входе и выходе появляется лишь по одному токену на кадр, и в работе показали, что token-level представления работают лучше чем sentence-level. Задача как обычно максимизировать ожидаемую дисконтируемую сумму наград.
WM -- это Recurrent State Space Model (RSSM, https://arxiv.org/abs/1811.04551) на базе GRU со скрытым рекуррентным состоянием h_t.
В каждый момент времени (x_t, l_t, h_t) кодируется энкодером (VAE) в латентное состояние z_t:
z_t ∼ enc(x_t, l_t, h_t)
Sequence model (GRU) выдаёт (z’_t, h_t) по предыдущим (z, h, a) от момента t-1:
z’_t, h_t = seq(z_{t−1}, h_{t−1}, a_{t−1})
Наконец декодер по (z_t, h_t) восстанавливает (x_t, l_t, r_t, c_t):
x’_t, l’_t, r’_t, c’_t = dec(z_t, h_t)
При этом для картиночных входов и выходов используется CNN, а для всех остальных MLP.
WM обучается на сумме representation learning loss (L_repr) и future prediction loss (L_pred).
2023-08-16 21:40:58
L_repr в свою очередь является суммой MSE лосса восстановления картинки, категориальных кроссэнтропийных лоссов для текста и награды, бинарного кроссэнтропийного лосса для c_t, и KL-регуляризации на оригинальный z_t и предсказанный.
L_pred это тоже KL-терм про соответствие распределений оригинального и предсказанного z_t, только в другом порядке и с разными позициями stop-gradient.
Благодаря decoupling’у WM и полиси, WM можно предобучать оффлайн на больших корпусах текстов и видео без действий. Для этого неиспользуемые части входов и выходов зануляются, и зануляются коэффициенты соответствующих лоссов. После чего можно файнтюнить модель уже на всех модальностях.
Важное отличие текущей модели от традиционных LLM в том, что эта модель не предсказывает напрямую следующий токен по предыдущему, а делает эти хитрее через предсказание репрезентации следующего шага.
Полиси обучается actor-critic алгоритмом (взят из DreamerV3) по воображаемой последовательности мультимодальных репрезентаций, не на реальных наблюдениях. Это тот самый подход, с которым Шмидхубер и Ха презентовали свою работу на NIPS 2018, когда модель прокручивает ситуации в своём воображении и учится на этом.
Модель делает симулированных ролауты длины 15, стартуя с состояний, взятых из replay buffer’а. Далее полиси выдаёт действия, а WM наблюдения.
Авторы проверяют четыре гипотезы:
H1) Агент может использовать язык за пределами инструкций для улучшения выполнения задач и без необходимости изучать мир методом проб и ошибок. Например, по языковым подсказкам или мануалам к игре.
H2) Более полезно заземлять язык на предсказание будущего, чем напрямую предсказывать действия.
H3) Интерпретация инструкций как предсказание будущих вознаграждений не хуже предсказания действий по инструкциям.
H4) Формулировка Dynalang позволяет выполнять языковую генерацию.
Тексты обрабатываются токенизатором от T5, и в зависимости от задачи, токены эмбеддятся либо через one-hot, либо берутся эмбеддинги от T5-small (60M).
В качестве бейзлайнов взяты model-free IMPALA и R2D2, имплементации взяты из Seed RL (https://github.com/google-research/seed_rl). Обе модели примерно с 10М параметров и скейлинг им не помогает.
Проверяли на разных средах.
Во-первых, создали свою HomeGrid -- gridworld, в котором агент получает текстовые описания задачи, а также языковые подсказки по ходу дела. Подсказки могут содержать информацию о динамике мира и его состоянии, а также корректировки агенту. Есть пять типов задач с разными объектами и корзинами. Со всеми ними можно делать разные действия.
Dynalang успешно использует подсказки разных типов, с ними выполнение задач даётся лучше, даже если подсказки физически далеко от релевантных объектов и наблюдений. В итоге нашли поддержку гипотез H1 и H2. Model-free бейзлайнам от новых хинтов становится только хуже.
Во-вторых, проверялись в среде Messenger (http://proceedings.mlr.press/v139/hanjie21a.html), в котором агент должен передавать сообщения от одних сущностей другим, избегая врагов. Имеются текстовые мануалы, описывающие динамику игры. В игре три уровня сложности, от S1 до S3. Дополнительно к предыдущим бейзлайнам, сравниваются с EMMA из этой же работы про среду.
Dynalang рулит, особенно на сложном S3, где остальным плохо. Это поддерживает гипотезу H2.
Третий бенчмарк Vision-Language Navigation (VLN), где агент должен навигировать по трёхмерным реалистичным панорамам домов, к которым прилагаются инструкции, как надо действовать.
По сравнению с R2D2 доля успешных прохождений сильно выше. Это поддерживает H3.
Четвёртая среда, LangRoom, сделана под задачу Embodied Question Answering и здесь агент должен отвечать текстом на вопросы про свойства объектов в среде. Это скорее PoC (proof-of-concept) и агент действительно учится собирать информацию в среде и генерировать правильные ответы. Это поддерживает H4.
Показали, что предобучение на текстовых данных (in-domain инструкции, а также общие тексты с историями, сгенерированными гптшками) улучшает результаты.
2023-08-16 21:40:58
Из прикольного, можно делать воображаемые роллауты из модели мира. Это помогает интерпретировать, что выучила модель и видеть, что она генерит что-то осмысленное.
Если поставить текущую работу в более широкий и массовый контекст, то важно отдавать себе отчёт, что:
* Сравнивать Dynalang с существующими LLM не имеет смысла, потому что масштабы отличаются на порядки, вся Dynalang в зависимости от настроек содержит 150-300M параметров (далеко даже до самой лёгкой из LLaMa 2) плюс другая архитектура (в смысле не трансформер). То есть смотреть здесь на метрики качества, по которым сравниваются LLM, пока бессмысленно.
* По сравнению с Gato (https://t.me/gonzo_ML/966) или PaLM-e (https://t.me/gonzo_ML/1350), Dynalang также в другой категории. PaLM-e -- это всё же LLM, хоть и с мультимодальными входами, на выходе выдающая команды текстом. При этом она ещё и одна из самых больших в мире. А Gato -- хотя и побольше Dynalang в несколько раз, всё равно довольно маленькая (но наверняка DeepMind за это время уже обучил большую новую Gato 2 и молчит) мультизадачная модель, умеющая генерить токены разной природы, не только текстовые для чата или описания картинок, но и для действий. Обучаются эти модели без RL, и никакой явной модели мира с динамикой внутри себя не содержат (но, конечно, могут содержать что-то такое неявно).
Anyway, направление интересное, наверняка мы довольно скоро увидим модели типа Dreamer+LLM гораздо большего масштаба.
2023-08-14 23:51:49
TWIMC
Ревью Маши Фаликман на книгу Томаселло "The Evolution of Agency: Behavioral Organization from Lizards to Humans"
https://www.tandfonline.com/doi/full/10.1080/10749039.2023.2246947
2023-08-11 17:09:59
More gradient descent news.
"Grimmer found that the fastest sequences always had one thing in common: The middle step was always a big one. Its size depended on the number of steps in the repeating sequence."
Hooray to cyclical and large learning rates!
https://www.quantamagazine.org/risky-giant-steps-can-solve-optimization-problems-faster-20230811/
The original paper:
Provably Faster Gradient Descent via Long Steps
https://arxiv.org/abs/2307.06324
2023-08-10 20:26:31
И антропика тоже вам в ленту, если ещё не видели
https://youtu.be/Nlkk3glap_U
2023-08-10 08:42:44
Might be interesting to some people
https://www.quantamagazine.org/insect-brains-melt-and-rewire-during-metamorphosis-20230726/
2023-08-08 22:20:11
Свежего Йоша Баха вам в ленту
https://youtu.be/e8qJsk1j2zE
2023-08-05 18:56:26
Извинити...
2023-08-05 16:55:50
Interesting charts
https://time.com/6300942/ai-progress-charts/
2023-07-29 18:07:23
On the Universality of Linear Recurrences Followed by Nonlinear Projections
Antonio Orvieto, Soham De, Caglar Gulcehre, Razvan Pascanu, Samuel L. Smith
Статья: https://arxiv.org/abs/2307.11888
Развитие темы, начатой в работе про LRU (https://t.me/gonzo_ML/1734). Там показали, что рекуррентность может быть и без нелинейности, и что связка линейного рекуррентного слоя и position-wise MLP работает достаточно хорошо. Текущая работа -- это ещё work in progress, разбирающая эту тему дальше.
Как и в той работе, рассматривают диагональную комплексную матрицу и рекуррентность вида:
x_k = Λx_{k−1} + Bu_k,
То есть скрытое состояние x здесь комплексное. Далее оно проецируется в действительные выходы y:
y^hat_k = ℜ[Cx_k]
и оттуда отправляется в positionwise MLP y_k = ϕ^hat(y^hat_k) = ϕ(x_k).
Эта модель описывает одиночный блок и LRU, и глубоких SSM, включая диагональные варианты S4.
Для рекуррентных сетей ранее были хорошо изучены аппроксимирующие способности сетей с ReLU. А вот линейные не особо исследовались как неинтересные. В текущей работе авторы фокусируются на последовательностях конечной длины и показывают, что достаточно широкие линейные RNN не образуют узкого места, и архитектура сохраняет универсальность при использовании поэлементного MLP.
Основная мысль в том, что RNN часть (случайно инициализированная, привет reservoir computing!) занимается компрессией входного сигнала. А если мы можем идеально восстановить исходный сигнал, то MLP может параметризовать любую нелинейную функцию над этой последовательностью (ну при соблюдении определённых условий типа компактности).
Неформально, то что пытаются доказать авторы, звучит так:
Assume finite-length sequence data is generated from a sequence-to-sequence model such that Assumption B (compactness of the input) holds. Consider a randomly initialized linear recurrent network of size N, with N large enough depending on the sparseness of the input set (Assumption A). Then, there exists a wide enough MLP which, if applied pointwise to the RNN hidden states, leads to perfect reconstruction of the system’s output.
Дальнейшая углублённая работа планируется в этом направлении.
Из интересного кстати, комплексные числа здесь явно помогают побороть плохое обусловливание при восстановлении оригинальных данных из скрытого состояния.
В приложении много всяких теорем для любителей.
2023-07-28 21:30:09
Just in case, a (very short) video generation is here.
Pika Beta is now publicly available
https://twitter.com/pika_labs/status/1684836399764373504?t=NVtOyyh5UZDTJwVNUArFjA&s=19
Join Beta: discord.gg/pika
Website: pika.art
2023-07-28 10:15:08
An interesting theoretical result on gradient descent complexity. I missed it before.
https://www.quantamagazine.org/computer-scientists-discover-limits-of-major-research-algorithm-20210817/
The Complexity of Gradient Descent: CLS = PPAD ∩ PLS
https://arxiv.org/abs/2011.01929
2023-07-25 22:24:59
Retentive Network: A Successor to Transformer for Large Language Models
Yutao Sun, Li Dong, Shaohan Huang, Shuming Ma, Yuqing Xia, Jilong Xue, Jianyong Wang, Furu Wei
Статья: https://arxiv.org/abs/2307.08621
Код: https://github.com/microsoft/unilm/tree/master/retnet (https://github.com/microsoft/torchscale/blob/main/examples/fairseq/models/retnet.py)
Очередные новости гибридизации в нашем вестнике сельского хозяйства.
Microsoft Research совместно с Tsinghua University предложили новую архитектуру под названием Retentive Network (RetNet).
Все хотят эффективный параллелизм при обучении, O(1) инференс и, конечно, хороший перформанс. Выберите любые два: у рекуррентных сетей традиционно не было параллелизма, у классических трансформеров дешёвого инференса, а у линейных трансформеров -- хорошего качества. Это всё, конечно, с поправкой на современные модели типа S4, RWKV, LRU, но авторы считают, что они все таки где-то не дотягивают и однозначного победителя трансформеров нету. Но теперь типа его придумали.
В чём суть?
RetNet состоит из стека L блоков с residual connection и pre-LayerNorm, как и трансформер. Внутри каждого RetNet блока есть блочок Multi-Scale Retention (MSR) и блочок FFN. Вычисления выглядят классически для трансформера:
Y^l = MSR(LN(X^l)) + X^l
X^{l+1} = FFN(LN(Y^l)) + Y^l,
где FFN(X) = gelu(XW_1)W_2
То есть MSR это замена MHSA (Multi-head Self Attention).
Вход x=x_1, …, x_n RetNet обрабатывает авторегрессионно. Входные векторы x сначала эмбеддятся в X^0 размерности |x|×d_model, где d_model -- это hidden dimension, а затем в каждом слое l из L всего происходит вычисление контекстуализированных репрезентаций X^l = RetNet_l(X^{l−1}). На этом уровне от трансформера отличий нет, все отличия внутри MSR.
Собственно на смену механизму Attention приходит механизм Retention. Жду продолжения рифм. Механизм Retention имеет форму как параллельную, так и рекуррентную, то есть можно обучать в параллельной, а исполнять в рекуррентной.
Входная последовательность X (размерности |x|×d_model) проецируется в v_n = X_n · w_V, а моделирование последовательности является отображением входа v_n в выход o_n через скрытые состояния s_n. В итоге маппинг можно описать рекуррентностью:
s_n = As_{n−1} + K^⊺_n v_n
o_n = Q_n s_n = sum_{m=1}^{n} Q_n A^{n−m} K^⊺_m v_m
где A -- матрица d×d, K и Q -- векторы 1×d.
Проекции Q и K контекстно-зависимы Q = XW_Q, K = XW_K, где W_Q, W_K -- обучаемые матрицы размерности d×d.
Матрица A диагонализируется (снова через комплексные числа как в LRU, https://t.me/gonzo_ML/1734):
A = Λ(γe^{iθ})Λ^{−1} и выражение для o_n переписывается так, что Λ отправляются в матрицы W_Q, W_K и после преобразований получается сумма входов, взвешенных с относительными позиционными эмбеддингами. Формулы лучше смотреть на картинке, чем тут текстом парсить.
В итоге в параллельной формулировке механизм Retention выглядит так:
Q = (XW_Q) ⊙ Θ
K = (XW_K) ⊙ conjugate(Θ)
V = XW_V
Θ_n = e^{inθ} (позиционные эмбеддинги типа xPos из Lex Transformer, https://arxiv.org/abs/2212.10554)
/γ^{n−m}, n ≥ m
D_{nm} = { (causal masking and exponential decay)
\0, n < m
Retention(X) = (QK^⊺ ⊙ D)V
Ну то есть в целом весьма похоже на обычное внимание. Ушёл softmax, добавили xPos, появилась рекуррентная формулировка.
В рекуррентной формулировке это записывается как
S_n = γS_{n−1} + K^⊺ V_n
Retention(X_n) = Q_n S_n, n = 1, · · · , |x|
Есть ещё гибридная форма Chunkwise Recurrent Representation для длинных последовательностей, когда они разбиваются на чанки.
Это был одиночный Retention. Далее идёт Gated Multi-Scale Retention, это аналог многоголовости трансформера, когда каждая голова Retention работает по своему кусочку пространства размерности d из полного d_model. У каждой головы свои матрицы W_Q, W_K, W_V и у каждой головы свой параметр γ, который про экспоненциальное затухание. В работе эти параметры выставляли одинаковым образом у разных слоёв.
Итоговый механизм выглядит так:
2023-07-25 22:24:59
γ = 1 − 2^{−5−arange(0,h)} ∈ R^h
head_i = Retention(X, γ_i)
Y = GroupNorm_h (Concat(head_1, · · · , head_h))
MSR(X) = (swish(XW_G) ⊙ Y )W_O
где W_G, W_O -- снова обучаемые матрицы.
Также внутри много всяких нормализаций. В дополнение к GroupNorm есть нормализация QK на sqrt(d), нормализация D и QK^⊺⊙D.
Резюмируя, ну это точно трансформер. Выглядит как очередная вариация на тему линейного трансформера, в которых я уже сам запутался. Ну то есть оно конечно отличается от многого в этом зоопарке -- разреженных вниманий нет, аппроксимации софтмакса нет, так что наверное больше вариация рекуррентного трансформера, которых тоже в достатке. Теперь подобрался набор компонентов, которые и быстрое обучение дают, и быстрый инференс.
Если внимательно посмотреть на разницу с другими моделями, то во-первых таки относительно обычного трансформера, как мы упоминали, есть архитектурная разница с софтмаксом, позиционными энкодингами, кучей нормализаций и появилась рекуррентная формулировка.
На практике на языковых задачах RetNet получше дефолтного трансформера везде, и в перплексии (но только начиная с 2B), и в куче задач типа BoolQ, Winograd, StoryCloze и т.д. При этом сравнивать с дефолтным трансформером при наличии такого безумного количества улучшений тоже странно. Ну лучше по перплексии, но не то чтобы намного, а тот же Lex Transformer был заметно лучше обычного по перплексии. А по всяким BoolQ, PIQA и т.п. ну первая Llama сопоставимого размера (7B vs. 6.7B) была лучше (но конечно это нечестно сравнивать, она дольше обучалась). Непонятно, не выглядит суперулучшением качества. Но точно и не ухудшение.
Более важная история про производительность и здесь RetNet однозначно лучше стандартного трансформера, но при этом не сильно лучше чем FlashAttention. А теперь есть FlashAttention-2 (https://arxiv.org/abs/2307.08691), который намного круче первого. Но его элементы можно, наверное, и в RetNet добавить.
По памяти RetNet хорош, KV кешей нет, с ростом длины последовательности память не растёт, вообще дополнительной памяти почти не потребляет (97% памяти занимают просто веса сети). Throughput с ростом длины тоже не падает, latency тоже хорошая и не растёт ни от длины, ни от батча.
Из интересной экзотики, кстати, обучали на 512 AMD MI200 GPUs. Ну наконец то!
Из продвинутых моделей сравнивают с одним из старых линейных трансформеров (https://arxiv.org/abs/2006.16236), RWKV (https://t.me/gonzo_ML/1647), Hungry Hungry Hippos или H3 (https://arxiv.org/abs/2212.14052, это свежая SSM типа S4, https://t.me/gonzo_ML/1424) и Hyena Hierarchy (свежая свёрточная модель, https://arxiv.org/abs/2302.10866). Перплексия получается лучше. Скорость обучения не репортят, хотя вроде как у RWKV сложность ниже. И непонятно почему в таблице со сравнением для RWKV поставили отсутствие параллелизации, это странно.
Резюмируя, выглядит интересно, как альтернатива дефолтным трансформерам пробовать стоит, но в такие моменты я всегда вспоминаю истории оптимизированных трансформеров, из которых не то чтобы какой-то конкретный всех вытеснил.
Очень жду обучения реально большой модели на RetNet. В коде заготовлен retnet_65b, сделать на нём аналог Шиншиллы или Llama 2 было бы интересно.
2023-07-24 22:14:33
"Powered by image generation AI Midjourney and movie generator Runway Gen2 and featuring AI-generated voices supposedly belonging to Margot Robbie and Matt Damon, the “Barbenheimer” crossover took just four days to make, according to the creator’s Reddit post"
https://venturebeat.com/ai/what-the-viral-ai-generated-barbenheimer-trailer-says-about-generative-ai-hype-the-ai-beat
2023-07-24 22:12:08
Все, конечно, это уже видели, но всё равно нельзя не поделиться!
Barbenheimer
https://youtu.be/HrpPMsD6sCE
2023-07-24 13:54:43
Resurrecting Recurrent Neural Networks for Long Sequences
Antonio Orvieto, Samuel L Smith, Albert Gu, Anushan Fernando, Caglar Gulcehre, Razvan Pascanu, Soham De
Статья: https://arxiv.org/abs/2303.06349
Продолжаем про RNN. У нас было про LEM (https://t.me/gonzo_ML/857), было про state space models и в частности про S4 (https://t.me/gonzo_ML/1424), было про RWKV (https://t.me/gonzo_ML/1647). Ещё из сравнительно недавних работ было исследование от DeepMind. Это своего рода возврат к классике.
С RNN долгое время была проблема, что они быстры на инференс, но медленно обучаются в смысле плохо параллелятся, и их сложно обучать на длинных последовательностях. Со свежими state space models (SSM) это в целом уже не так, они и на инференс так же хороши, и обучение их параллелится, и очень длинные последовательности могут обрабатывать. Но они хоть и эквивалентны RNN в режиме инференса, в режиме обучения у них есть важные отличия типа дискретизации непрерывной системы и очень специальной инициализации, про которые, кажется, ещё не до конца ясно, какова механика работы этой кухни.
В текущей работе авторы задаются вопросом, можно ли достичь перформанса глубоких SSM традиционными глубокими RNN (причём ванильными, а не LSTM)? И отвечают, что можно. Достигают этого серией маленьких шагов, и полученную модель называют Linear Recurrent Unit (LRU).
Основные шаги таковы:
0. Vanilla RNN. Пляшем от базовой рекуррентности:
𝑥_𝑘 = 𝜎(𝐴𝑥_{𝑘−1} + 𝐵𝑢_𝑘)
𝑦_𝑘 = 𝐶𝑥_𝑘 + 𝐷𝑢_𝑘
где
(𝑢_1, 𝑢_2, . . . , 𝑢_𝐿) -- входы размерности 𝐻_in,
(𝑦_1, 𝑦_2, . . . , 𝑦_𝐿) -- выходы размерности 𝐻_out,
𝑥_𝑘 -- скрытое состояние размерности N в момент времени k,
A,B,C,D -- матрицы с обучаемыми параметрами
1. Linear Recurrences. Если SSM слои заменить на vanilla RNN, то нелинейности типа tanh или ReLU в рекуррентности приводят к сильной просадке качества. Зато если нелинейности убрать и оставить линейные рекуррентности, то всё существенно улучшается. Рекуррентная формула превращается в
𝑥_𝑘 = 𝐴𝑥_{𝑘−1} + 𝐵𝑢_𝑘.
Это интересный результат, идущий вразрез с массовым пониманием важности нелинейностей. Возможно, это также одна из причин успеха глубоких SSM, где рекуррентность тоже линейная.
Сложные нелинейные отображения при этом можно моделировать соединением линейных RNN слоёв и нелинейных MLP (в этом смысле паттерн аналогичен последовательности слоёв MHSA+MLP в трансформере). В приложении есть отдельный большой интересный раздел вокруг этого.
“any sufficiently regular nonlinear autonomous dynamical system can be made linear under a high-dimensional nonlinear blow-up of the state-space. Sounds familiar? This is exactly what a wide MLP + Linear RNN can do“
2. Complex Diagonal Recurrent Matrices. Линейную рекуррентность уже можно развернуть в легко параллелизуемую сумму. Далее dense linear RNN слои могут быть репараметризованы в комплексную диагональную форму, где матрица A заменяется на:
𝐴 = 𝑃Λ𝑃^{−1},
𝑃 ∈ ℂ^{𝑁×𝑁},
Λ = diag(𝜆1, 𝜆2, . . . , 𝜆𝑁) ∈ ℂ^{𝑁×𝑁}
Комплексные числа нужны для диагонализации несимметричных матриц. Это не ухудшает выразительность, а диагональность позволяет ещё ускорить хорошо параллелизуемые вычисления.
Проверялись на Long Range Arena (LRA). На sCIFAR диагональная линейная RNN обучалась в 8 раз быстрее обычной с ReLU, и сравнялась по скорости с авторской имплементацией S4D (диагональный вариант S4, https://arxiv.org/abs/2203.14343) и S5 (упрощённый вариант S4, https://arxiv.org/abs/2208.04933). Интересно, что это также повышает и качество на некоторых задачах типа sCIFAR и ListOps. Но кое-где понижает стабильность.
3. Stable Exponential Parameterization. Диагональная матрица репараметризуется как:
Λ = diag(exp(−𝜈 + 𝑖𝜃)), где 𝜈 ∈ ℝ^𝑁 и 𝜃 ∈ ℝ^𝑁 обучаемые параметры взамен действительной и мнимой частей Λ.
Это разъединяет магнитуду и частоту осцилляций и делает работу оптимизатора легче, что уже повышает перформанс.
Также в такой формулировке просто заэнфорсить стабильность собственных значений через нелинейность типа экспоненциальной для каждого из значений j:
2023-07-24 13:54:43
𝜆_𝑗 := exp(−exp(𝜈_𝑗^log) + 𝑖𝜃_𝑗), где при инициализации устанавливается 𝜈_𝑗^log := log(𝜈).
Эта стабильная параметризация ещё улучшает перформанс, особенно заметно на задаче Pathfinder.
А это в свою очередь позволяет поменять инициализацию значений Λ на кольце внутри единичного круга, чтобы сподвигнуть сеть к более длинным интеракциям (и улучшить long-range reasoning) и побороться с затухающими градиентами.
Здесь дело видимо не в специальной детерминистской инициализации (типа HiPPO) как таковой, а в распределении собственных значений матрицы рекуррентного слоя при инициализации.
4. Normalization. Все предыдущие изменения не позволяли достичь успеха в обучении на задаче PathX, самой сложной из отобранного бенчмарка. Оказалось важным модифицировать рекуррентную формулу так, чтобы поэлементно адаптивно масштабировать входные данные. Рекуррентность получается такая:
𝑥_𝑘 = Λ𝑥_{𝑘−1} + exp(𝛾^log) ⊙ (𝐵𝑢_𝑘),
где параметр 𝛾^log поэлементно инициализируется как
𝛾_i^log ← log(sqrt(1 − |𝜆_𝑖|^2)).
Также оказалось важным инициализировать фазу (𝜃) собственных значений в узком районе недалеко от нуля [0, 𝜋/10], это способствует выучиванию долгих закономерностей. Проверяли только на PathX.
Для всех экспериментов брали сеть с 6 слоями с residual connections + LN/BN, аналогичную сети из работы про S4 (https://t.me/gonzo_ML/1424), но с заменой всех SSM слоёв на свежесобранные LRU. Все эксперименты повторяли трижды, репортя среднее + стандартное отклонение.
Интересно, что это исследование проливает некоторый свет на причины успеха глубоких SSM, по ходу дела мы некоторые моменты упоминали, и в работе есть целый раздел с обсуждением этой темы.
2023-07-22 10:58:49
Nice update on the recent paper on GPT degradation.
https://twitter.com/Si_Boehm/status/1681801371656536068?t=_pora3BJrMnFBaQxdwJ-gw&s=19
2023-07-21 17:42:39
Interesting on sentience .
"We connected a bumblebee colony to an arena equipped with mobile balls on one side, immobile balls on the other, and an unobstructed path through the middle that led to a feeding station containing freely available sugar solution and pollen. Bees went out of their way to return again and again to a “play area” where they rolled the mobile balls in all directions and often for extended periods without a sugar reward, even though plenty of food was provided nearby. There seemed to be something inherently enjoyable in the activity itself. In line with what other researchers have observed in vertebrate creatures at play, young bees engaged more often with the balls than older ones. And males played more than females (male bumblebees don't work for the colony and therefore have a lot more time on their hands). These experiments are not merely cute—they provide further evidence of positive emotionlike states in bees."
...
"my colleagues and I reviewed hundreds of studies from the literature across several orders of insects to search for evidence of a capacity to feel pain. Our analysis revealed at least reasonably strong evidence for this capacity in a number of taxa, including cockroaches and fruit flies. Crucially we also found no evidence that any species convincingly failed any criterion for painlike experiences. It appears that in many cases, scientists simply haven't looked thoroughly enough for indications that the insect species they study experience discomfort."
https://www.scientificamerican.com/article/do-insects-feel-joy-and-pain/
2023-07-19 07:16:43
"The OECD published a report into the adoption of generative artificial intelligence in the workplace. It said that although the impact of AI on jobs had been limited so far, there remained a significant potential for disruption. It thinks that the roles most exposed to AI are managers, chief executives and engineers. The least exposed jobs are rubbish collectors, labourers and cleaners."
https://www.economist.com/the-world-this-week/2023/07/13/business
A bright future for humankind! 😁
2023-07-18 17:41:49
Видимо, можно было пообучать и ещё
2023-07-18 17:23:15
Meta just announced Llama 2
https://ai.meta.com/llama/
The good news: Llama 2 is available for free for research and commercial use (if you're not Twitter 😁) under their own licence, Llama 2 Community License Agreement.
some quotes from the licence:
a. Grant of Rights. You are granted a non-exclusive, worldwide, non-transferable and royalty-free limited license under Meta’s intellectual property or other rights owned by Meta embodied in the Llama Materials to use, reproduce, distribute, copy, create derivative works of, and make modifications to the Llama Materials.
2. Additional Commercial Terms. If, on the Llama 2 version release date, the monthly active users of the products or services made available by or for Licensee, or Licensee’s affiliates, is greater than 700 million monthly active users in the preceding calendar month, you must request a license from Meta, which Meta may grant to you in its sole discretion, and you are not authorized to exercise any of the rights under this Agreement unless or until Meta otherwise expressly grants you such rights.
:)
Llama 2 is pretrained using publicly available online data. Llama 2 models are trained on 2 trillion tokens and have double the context length of Llama 1. Llama-2-chat models have additionally been trained on over 1 million new human annotations.
"We are releasing variants of Llama 2 with 7B, 13B, and 70B parameters. We have also trained 34B variants, which we report on in this paper but are not releasing (due to a lack of time to sufficiently red team)"
An initial version of Llama-2-chat is then created through the use of supervised fine-tuning. Next, Llama-2-chat is iteratively refined using Reinforcement Learning from Human Feedback (RLHF), which includes rejection sampling and proximal policy optimization (PPO).
You can download the paper here: https://ai.meta.com/research/publications/llama-2-open-foundation-and-fine-tuned-chat-models/
Interestingly, Llama 2 is also available on Azure and in Windows.
Now Azure customers can fine-tune and deploy the 7B, 13B, and 70B-parameter Llama 2 models easily and more safely on Azure, the platform for the most widely adopted frontier and open models. In addition, Llama will be optimized to run locally on Windows. Windows developers will be able to use Llama by targeting the DirectML execution provider through the ONNX Runtime, allowing a seamless workflow as they bring generative AI experiences to their applications.
https://blogs.microsoft.com/blog/2023/07/18/microsoft-and-meta-expand-their-ai-partnership-with-llama-2-on-azure-and-windows/
2023-07-17 00:43:22
Классический DreamBooth
2023-07-17 00:42:52
HyperDreamBooth: HyperNetworks for Fast Personalization of Text-to-Image Models
Nataniel Ruiz, Yuanzhen Li, Varun Jampani, Wei Wei, Tingbo Hou, Yael Pritch, Neal Wadhwa, Michael Rubinstein, Kfir Aberman
Статья: https://arxiv.org/abs/2307.06949
Сайт: https://hyperdreambooth.github.io/
Прикольная работа с гиперсетями, которые я нежно люблю.
Если кто не знаком с концепцией Hypernetworks, то в двух словах это когда одна нейросеть (она и есть гиперсеть) генерирует веса для другой нейросети. Начало этому направлению было положено одноимённой работой Дэвида Ха и ко (https://arxiv.org/abs/1609.09106). Работы с гиперсетями в целом идут довольно регулярным потоком, но, на мой взгляд, всё равно тема малоизвестная и по ощущению недостаточно глубоко проработанная, в том смысле, что, я убеждён, там скрывается ещё много всего интересного.
На этот раз гиперсети применили для персонализации text-to-image моделей, а точнее для ускорения DreamBooth (https://arxiv.org/abs/2208.12242). DreamBooth был способен файнтюнить предобученные модели (в той работе был Imagen) небольшим числом картинок (3-5) конкретного персонажа, так что модель выучивала уникальный идентификатор (например, “[V]”) субъекта, и его можно далее было использовать для синтеза картинок с этим субъектом в различных новых контекстах (“A [V] dog in the beach”). Примеры работы DreamBooth в статье или на сайте-компаньоне (https://dreambooth.github.io/).
Для файнтюнинга DreamBooth процесс с 1000 итераций занимал 5 минут для Imagen на TPUv4 или Stable Diffusion на A100. Процесс затрагивал все веса UNet’а и текстового энкодера, что в случае Stable Diffusion требовало порядка 1Gb на каждую персонализацию.
HyperDreamBooth сокращает размер кастомизированной модели (в этой работе берут Stable Diffusion) и делает процесс быстрее. Это не единственный способ ускорения персонализации, есть и другие подходы, но мы их тут не рассматриваем.
А ещё он работает на одной фотографии.
Рецепт HyperDreamBooth состоит из трёх ингредиентов.
1) Lightweight DreamBooth (LiDB) является по сути LoRA++.
Сначала делается уже общеизвестная LoRA (Low-Rank Adaptation, https://arxiv.org/abs/2106.09685), где предобученные веса W_0 (размерности n×m) заменяются сначала на сумму замороженных W_0 и обучаемых ∆W, а затем для ∆W делается низкоранговая аппроксимация ∆W=AB (размерность A n×r, размерность B r×m и r<<min(n, m), и работает всё даже для r = 1). Вот эта вот факторизованная добавка обычно и распространяется как LoRA-модель, которая не является полноценной моделью и требует оригинальных предобученных весов, чтобы посчитать с ними W_0 + AB.
Это уже уменьшает размер файнтюненной модели на три порядка, оставляя 386K параметров, требующих 1.6Mb места.
Затем идут дальше и делают ещё одну декомпозицию матриц A и B на A = A_aux*A_train (размерность A_aux n×a, A_train a×r) и B = B_train*B_aux (размерности аналогично r×b и b×m), где aux инициализированы случайными ортогональными векторами, которые заморожены, а обучаются только матрицы train. Гиперпараметры a и b подбираются экспериментально, в работе выбрали a = 100, b = 50. Это уменьшает модель ещё в 10 раз относительно LoRA. Финальная модель (вернее добавка относительно базовой модели) содержит 28К весов и занимает 120Кб места. Что конечно big deal, если нужно хостить множество файнтюненных моделей.
Эти матрицы A_train, B_train получают для каждого слоя внимания (кросс- или self-).
2) HyperNetwork for Fast Personalization of Text-to-Image Models -- собственно гиперсеть, которая по входному изображению предсказывает матрицы A_train и B_train от LiDB.
Гиперсеть обучается на наборе доменно-специфичных картинок (взяли CelebAHQ) с миксом обычного diffusion denoising loss и weight-space loss. Для всех сэмплов используется один и тот же промпт “a [V] face”.
Архитектура гиперсети -- это картиночный энкодер на базе ViT (ViT-H) и декодер трансформера (2 слоя). Декодер итеративно уточняет предсказания весов, стартуя с нулевых значений. Число итераций s -- гиперпараметр (и я не понял, чему он равен). На выходе также есть обучаемые линейные слои.
2023-07-17 00:42:52
3) Rank-Relaxed Fast Finetuning для улучшения схватывания моделью мелких деталей. Предсказанные гиперсетью веса файнтюнятся с diffusion denoising loss. Ключевым здесь является rank-relaxed finetuning, где ранг LoRA модели меняется с r = 1 на r > 1 перед файнтюнингом. Веса предсказанные гиперсетью добавляются к основным весам модели и проводится LoRA файнтюнинг с новым более высоким рангом. Используется тот же самый промпт “a [V] face”.
То есть получается, что гиперсеть выдаёт инициализацию весов, с которой файнтюнинг проходит достаточно быстро, за 40 итераций, что в 25 раз быстрее DreamBooth и LoRA DreamBooth, где было 1000 итераций.
Результаты превосходят Textual Inversion и оригинальный DreamBooth (которому вроде как и число итераций немного подняли, до 1200). Картинки прикольные.
Такие дела. Стартапы, вперёд!
А у вас какой любимый кейс с hypernetworks?
2023-07-14 20:14:12
А ещё тем временем Google Bard раскатили на 40 языков и добавили поддержку картинок в промптах. Чего мы всё никак не дождёмся от GPT-4...
https://blog.google/products/bard/google-bard-new-features-update-july-2023/
2023-07-11 16:01:02
Тем временем Anthropic анонсировал доступность Claude 2 через API с окном контекста в 100к токенов
https://www.anthropic.com/index/claude-2
2023-07-11 15:14:08
The leak of the day.
https://threadreaderapp.com/thread/1678545170508267522.html
GPT-4's details are leaked.
It is over.
Parameters count:
GPT-4 is more than 10x the size of GPT-3. We believe it has a total of ~1.8 trillion parameters across 120 layers.
Mixture Of Experts - Confirmed.
OpenAI was able to keep costs reasonable by utilizing a mixture of experts (MoE) model.
They utilizes 16 experts within their model, each is about ~111B parameters for MLP. 2 of these experts are routed to per forward pass.
MoE Routing:
While the literature talks a lot about advanced routing algorithms for choosing which experts to route each token to, OpenAI’s is allegedly quite simple, for the current GPT-4 model.
There roughly ~55B shared parameters for attention.
Inference:
Each forward pass inference (generation of 1 token) only utilizes ~280B parameters and ~560 TFLOPs. This contrasts with the ~1.8 trillion parameters and ~3,700 TFLOP that would be required per forward pass of a purely dense model.
Dataset:
GPT-4 is trained on ~13T tokens.
These are not unique tokens, they count the epochs as more tokens as well.
Epoch number: 2 epochs for text-based data and 4 for code-based data.
There is millions of rows of instruction fine-tuning data from ScaleAI & internally.
GPT-4 32K
There was an 8k context length (seqlen) for the pre-training phase. The 32k seqlen version of GPT-4 is based on fine-tuning of the 8k after the pre-training.
Batch Size:
The batch size was gradually ramped up over a number of days on the cluster, but by the end, OpenAI was using a batch size of 60 million! This, of course, is “only” a batch size of 7.5 million tokens per expert due to not every expert seeing all tokens.
For the real batch size:
Divide this number by the seq len to get the real batch size. just stop with this misleading numbers already.
Parallelism Strategies
To parallelize across all their A100s GPUs They utilized 8-way tensor parallelism as that is the limit for NVLink.
Beyond that, they are using 15-way pipeline parallelism.
(likely used ZeRo Stage 1. It is possible they used block-level FSDP)
Training Cost
OpenAI’s training FLOPS for GPT-4 is ~2.15e25, on ~25,000 A100s for 90 to 100 days at about 32% to 36% MFU.
Part of this extremely low utilization is due to an absurd number of failures requiring checkpoints that needed to be restarted from.
If their cost in the cloud was about $1 per A100 hour, the training costs for this run alone would be about $63 million.
(Today, the pre-training could be done with ~8,192 H100 in ~55 days for $21.5 million at $2 per H100 hour.)
Mixture of Expert Tradeoffs
There are multiple MoE tradeoffs taken: For example, MoE is incredibly difficult to deal with on inference because not every part of the model is utilized on every token generation.
This means parts may sit dormant when other parts are being used. When serving users, this really hurts utilization rates.
Researchers have shown that using 64 to 128 experts achieves better loss than 16 experts, but that’s purely research.
There are multiple reasons to go with fewer experts. One reason for OpenAI choosing 16 experts is because more experts are difficult to generalize at many tasks. More experts can also be more difficult to achieve convergence with.
With such a large training run, OpenAI instead chose to be more conservative on the number of experts.
GPT-4 Inference Cost
GPT-4 costs 3x that of the 175B parameter Davinchi.
This is largely due to the larger clusters required for GPT-4 and much lower utilization achieved.
AN estimate of it's costs is $0.0049 cents per 1k tokens for 128 A100s to inference GPT-4 8k seqlen and $0.0021 cents per 1k tokens for 128 H100’s to inference GPT-4 8k seqlen. It should be noted, we assume decent high utilization, and keeping batch sizes high.
2023-07-11 15:14:08
Multi-Query Attention
OpenAI are using MQA just like everybody else.
Because of that only 1 head is needed and memory capacity can be significantly reduced for the KV cache. Even then, the 32k seqlen GPT-4 definitely cannot run on 40GB A100s, and the 8k is capped on max bsz.
Continuous batching
OpenAI implements both variable batch sizes and continuous batching. This is so as to allow some level of maximum latency as well optimizing the inference costs.
Vision Multi-Modal
It is a separate vision encoder from the text encoder, with cross-attention. The architecture is similar to Flamingo. This adds more parameters on top of the 1.8T of GPT-4. It is fine-tuned with another ~2 trillion tokens, after the text only pre-training.
On the vision model, OpenAI wanted to train it from scratch, but it wasn’t mature enough, so they wanted to derisk it by starting with text.
One of the primary purposes of this vision capability is for autonomous agents able to read web pages and transcribe what’s in images and video.
Some of the data they train on is joint data (rendered LaTeX/text), screen shots of web page, youtube videos: sampling frames, and run Whisper around it to get transcript.
[Dont want to say "I told you so" but..]
Speculative Decoding
OpenAI might be using speculative decoding on GPT-4's inference. (not sure 100%)
The idea is to use a smaller faster model to decode several tokens in advance, and then feeds them into a large oracle model as a single batch.
If the small model was right about its predictions – the larger model agrees and we can decode several tokens in a single batch.
But if the larger model rejects the tokens predicted by the draft model then the rest of the batch is discarded. And we continue with the larger model.
The conspiracy theory that the new GPT-4 quality had been deteriorated might be simply because they are letting the oracle model accept lower probability sequences from the speculative decoding model.
Inference Architecture
The inference runs on a cluster of 128 GPUs.
There are multiple of these clusters in multiple datacenters in different locations.
It is done in 8-way tensor parallelism and 16-way pipeline parallelism.
Each node of 8 GPUs has only ~130B parameters, or… twitter.com/i/web/status/1…
The model has 120, so it fits in 15 different nodes.
[Possibly the there are less layers on the first node since it needs to also compute the embeddings]
According to these numbers: OpenAI should have trained on 2x the tokens if they were trying to go by chinchilla's optimal.
[let alone surpass it like we do]
This goes to show that they are struggling to get high quality data.
Why no FSDP?
A possible reason for this could be that some of the hardware infra they secured is of an older generation.
This is pretty common at local compute clusters as the organisation usually upgrade the infra in several "waves" to avoid a complete pause of operation.… twitter.com/i/web/status/1…