gonzo-обзоры ML статей – Telegram
gonzo-обзоры ML статей
24.1K subscribers
2.72K photos
2 videos
3 files
1.34K links
Авторы:
Гриша Сапунов, ранее руководитель разработки Яндекс-Новостей, ныне CTO Intento. Области интересов: AI/ML/DL, биоинформатика.
Лёша Тихонов, ранее аналитик в Яндексе, автор Автопоэта, Нейронной Обороны... Области интересов: discrete domain, NLP, RL.
Download Telegram
Ещё не пятница, но...

Тестовый пост. Суммаризировали "Электрувер Трурля" на английском через GPT-4, а потом развернули обратно в рассказ через GPT-4 и Bard.

Ну, местами забавно.

Заодно попробовал substack.

https://gonzoml.substack.com/p/the-generative-cyberiad
👍15😁5
Подборка на почитать в выходные

1. Билл Гейтс про новую технологическую революцию и начало эры AI (https://www.gatesnotes.com/The-Age-of-AI-Has-Begun). Странно, правда, что первой революцией он назвал GUI, второй AI, а про Интернет умолчал. Но мы же помним, как он в какой-то момент быстро туда побежал догонять и перегонять Netscape.

2. Microsoft поделился своими наблюдениями по исследованию интеллекта GPT-4 в статье “Sparks of Artificial General Intelligence: Early experiments with GPT-4” (https://arxiv.org/abs/2303.12712).

3. Большая статья про то, что гонка за AI началась, но её стоит остановить (https://www.vox.com/the-highlight/23621198/artificial-intelligence-chatgpt-openai-existential-risk-china-ai-safety-technology).

4. Jaron Lanier про AI и вообще (https://www.theguardian.com/technology/2023/mar/23/tech-guru-jaron-lanier-the-danger-isnt-that-ai-destroys-us-its-that-it-drives-us-insane).

5. LLM -- это новые CPU, но вот Intel ли OpenAI… (https://every.to/divinations/llms-are-the-new-cpus).

6. Харари про то, что нам нельзя продуть "If We Don’t Master A.I., It Will Master Us" (https://webcache.googleusercontent.com/search?q=cache:hIN9AmrxIuMJ:https://www.nytimes.com/2023/03/24/opinion/yuval-harari-ai-chatgpt.amp.html&cd=1&hl=en&ct=clnk&gl=id)
👍17🔥61
🆒20😁6👍2🔥2🤣1
[S4] Efficiently Modeling Long Sequences with Structured State Spaces
Albert Gu, Karan Goel, Christopher Ré
Статья: https://arxiv.org/abs/2111.00396

Давно мы не писали про RNN, последний раз, кажется, это было про LEM (https://news.1rj.ru/str/gonzo_ML/857). Тогда также хотелось написать про State Space Models (SSM) и их ярких представителей в лице HiPPO и S4, но началась война и стало не до этого. Тема важная, хочется к ней таки вернуться.

Работа про S4 была принята на мою любимую конференцию ICLR в 2022 году и получила там Outstanding Paper Honorable Mentions (https://blog.iclr.cc/2022/04/20/announcing-the-iclr-2022-outstanding-paper-award-recipients/).

Есть большая проблема с моделированием длинных последовательностей. Длинные, это типа 10к элементов и больше. Ныне рулящие трансформеры по-прежнему испытывают с этим проблемы, в первую очередь благодаря квадратичной сложности механизма внимания (правда, есть куча неквадратичных механизмов, про многие из которых мы писали, например, https://news.1rj.ru/str/gonzo_ML/404 и далее по ссылкам).

На эту тему есть бенчмарк Long Range Arena (LRA, https://paperswithcode.com/sota/long-range-modeling-on-lra), где рулят в целом не трансформеры (но лидером там всё же теперь свежий скорее-трансформер одноголовый Mega, https://arxiv.org/abs/2209.10655).

Было много заходов на решение проблемы моделирования реально длинных последовательностей, и один из свежих это как раз state space model (SSM).

SSM описывается уравнениями:
x′(t)=Ax(t)+Bu(t)
y(t)=Cx(t)+Du(t)
​где u(t) -- входной сигнал, x(t) -- n-мерное латентное представление, y(t) выходной сигнал, а A,B,C и D -- обучаемые матрицы.

В работе D считается равным нулю, потому что это аналог skip-connection и его легко вычислить.

На практике такая модель работает плохо, потому что решение такой ODE ведёт к экспоненциальной функции со всеми знакомыми по RNN прелестями в виде vanishing/exploding gradients.

Фреймворк HiPPO с NeurIPS 2020 (https://arxiv.org/abs/2008.07669) предлагает специальный класс матриц A, позволяющих лучше запоминать историю входных данных. Самая важная матрица этого класса, называемая HiPPO Matrix, выглядит так:

/ (2n + 1)^1/2 * (2k + 1)^1/2 if n > k
A_nk = − { n + 1 if n = k
\ 0 if n < k

Замена в SSM случайной матрицы A на эту приводит к улучшению результата на sequential MNIST с 60% to 98%.

Это было непрерывное описание, а чтобы применить его к дискретным входам, SSM надо дискретизировать с шагом Δ и входной сигнал будет сэмплиться с этим шагом. Для этого используется билинейный метод, заменяющий матрицу A на её аппроксимацию

x_k = Ax_k−1 + Bu_k
y_k = Cx_k

A = (I − ∆/2 · A)^−1 * (I + ∆/2 · A)
B = (I − ∆/2 · A)^ −1 * ∆B
C = C.

Уравнения состояния теперь рекуррентная формула с x_k по типу RNN, а сам x_k может рассматриваться как скрытое состояние с матрицей перехода A.

И есть ещё отдельный хак, что такую рекуррентную формулу можно развернуть и заменить на свёртку (с ядром K) размером в длину последовательности, но эту формулу я тут приводить не буду, потому что текстом она выглядит не очень. Такое можно быстро считать на современном железе.

Боттлнек discrete-time SSM в том, что надо многократно умножать на матрицу A.

Текущая работа предлагает расширение и улучшение SSM под названием Structured State Spaces (S4). Предлагается новая параметризация, где матрица A (которая HiPPO) раскладывается в сумму низкорангового и нормального (https://en.wikipedia.org/wiki/Normal_matrix) терма, Normal Plus Low-Rank (NPLR).

В дополнение к этому применяются ещё несколько техник: truncated SSM generating function + Cauchy kernel + применение Woodbury identity + подсчёт спектра ядра свёртки через truncated generating function + обратное БПФ, за подробностями и доказательствами вэлкам в статью. Доказывается, что у всех HiPPO матриц есть NPLR представление, и что свёрточный фильтр SSM можно вычислить за O(N + L) операций и памяти (и это главный технический контрибьюшн статьи).
👍226🕊1
Дефолтный S4 работает на одной входной и выходной чиселке, а в реальности для DNN обычно нужны многомерные векторы. Чтобы поддержать работу не с одной фичей, а со множеством (H штук), делается H независимых копий S4, а H фичей замешиваются через position-wise linear layer (то есть, так понимаю, для каждой фичи свой такой слой, смотрящий на все остальные фичи). Это также похоже на depthwise-separable convolutions, а вся глубокая (многослойная) S4 близка к depthwise-separable CNN с глобальным ядром свёртки.

По дефолту также преобразование линейное, но добавление нелинейных преобразований между слоями делает всю глубокую SSM нелинейной.

Полученную S4 сравнивают с LSSL (Linear State-Space Layer, те же авторы, https://arxiv.org/abs/2110.13985) и S4 многократно лучше, и c эффективными трансформерами (сравнима с Performer или Linear Transformer).

На LRA на момент публикации порвала с дюжину разных эффективных трансформеров. Стандартный неэффективный тоже (хотя он по качеству неплох, но по скорости и памяти ужасен). С момента первой публикации статью ещё проапдейтили и ещё улучшили результаты S4.

Среди прочего S4 решил задачу Path-X, которую до него не решали. В этой задаче надо определять, соединены ли две точки путём на картинке 128x128, что приводит после разворачивания картинки к последовательности длины 16384. В свёртках при этом выучиваются какие-то интересные паттерны с “пониманием” двумерных данных.

Также проверялись на подмножестве задач SC10 из Speech Commands dataset. Фич хитрых при этом не использовали, работали с raw speech длины 16k и достигли 98.3% accuracy и побили методы использующие MFCC фичи.

Среди других задач был бенчмарк WikiText-103, там рулили трансформеры, и S4 их не обогнала, но зато при замене self-attention на S4 разница в perplexity получается всего 0.8, а скорость инференса при этом в 60 раз выше. Сейчас в моменте, кстати, на этом бенчмарке лидер H3 от этих же авторов или “Hungry Hungry Hippos: Towards Language Modeling with State Space Models” (https://arxiv.org/abs/2212.14052), принятая на ICLR 2023.

На задачах предсказания временных рядов сравнивались с Informer (специальный трансформер для time-series, про него тоже так и не успел написать, но может быть …) и другими бейзлайнами. S4 рулит вообще.

Провели интересные абляции, показали, что инициализация HiPPO очень важна, сильно бьёт гауссовую и по скорости обучения, и по финальному качеству.

В общем, среди SSM сейчас полно очень сильных представителей, тема достойна широкого внимания.

Другие ссылки в тему:
- “The Annotated S4” с кодом на JAX: https://srush.github.io/annotated-s4/
- Рассказ от одного из авторов: https://www.youtube.com/watch?v=EvQ3ncuriCM
- Ещё один разбор с фокусом на JAX: https://www.youtube.com/watch?v=GqwhkbrWDOI
- Код с имплементациями разных SSSM: https://github.com/HazyResearch/state-spaces
👍142🔥2