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
Во-вторых, AGI потенциально долгоживущ. Агенты могут не зависеть от железа, копироваться без ошибок на новые носители, и быть потенциально бессмертными. И люди могут разными способами расширить влияние своих ценностей на будущее: создать AGI агентов, действующих от их имени и с близко выравненными целями; вообще цели могут быть захардкожены; кроме того люди потенциально могут научиться делать “upload” путём сканирования мозга и дальнейшей эмуляции на компьютере. Тема про бессмертие где-то содержательно очень сильно связана со всем этим, и lock-in может быть побочным эффектом этой темы. Многие правители, авторитарные и тоталитарные режимы активно копали в эту сторону, и при удачном для них раскладе мог бы случиться lock-in на их ценности, а также концентрация власти. [У меня, кстати, в отличие от Миши Батина, пока нет для себя чёткого ответа на вопрос, почему технологии бессмертия не усилят возможные диктатуры -- я опасаюсь, что усилят. То же самое с AI/AGI. И в этом смысле тру специалист по AGI (или скорее уже команда, потому что сложно в одну голову это всё вместить) в моём понимании кроме технических скиллов должен хорошо владеть историей, экономикой, политикой, биологией и разными их поддисциплинами] AGI может привести к сильному перераспределению власти и при плохом раскладе привести к локу на плохие для многих ценности.

При этом есть ещё и отдельный риск, что AI может взять себе контроль. Это не обязательно должно приводить к вымиранию человечества (всех шимпанзе или муравьёв люди таки не истребили, может быть будем существовать аналогично). Цивилизация вполне может продолжиться, может даже на миллиарды лет, и открытый вопрос, насколько она будет хороша или плоха. Вопрос, чья это будет цивилизация. В любом случае будут какие-то интеллектуальные существа, и плохо, если они окажутся в мире с залоченными плохими ценностями. Лучше если бы ценности будущего были open-minded, экуменическими и поощряли exploration в морали.

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

Сколько ещё до AGI вопрос открытый. Известно, что экспоненциальный прогресс сложно ухватить и понять, даже если тренды на виду. Тем более сложно с сверхэкспоненциальным прогрессом. Есть много разных оценок, от немалого шанса через 10-15 лет, до следующего века. Автор считает, что не стоит опускаться ниже 10% шанса в течение следующих 50 лет, а это вполне реальный шанс получить крайне серьёзные изменения и одну из самых важных разработок в человеческой истории при нашей жизни.

Такие дела. Книга любопытная, буду читать дальше. Огромная библиография (https://whatweowethefuture.com/bibliography/) и комментарии (https://whatweowethefuture.com/notes/), интересные supplementary (https://whatweowethefuture.com/supplementary-materials/).

#books #AGI #longevity #longtermism
👍24🔥15🤔4🥴21
The 5th chapter of my book, "JAX in Action," is ready and available in MEAP! It is the chapter about compilation.

http://mng.bz/nN4a

The chapter covers:
🗺- Just-in-Time (JIT) compilation
🔬- JIT internals: jaxpr, the JAX intermediate language
⚡️- XLA, Google’s Accelerated Linear Algebra compiler, and HLO, High Level Operations Intermediate Representation
💪- MLIR, Multi-Level Intermediate Representation, and MHLO
- The recently appeared Ahead-of-Time (AOT) compilation
🚧- JIT limitations

P.S. Your feedback is welcome! The previous four chapters are adjusted based on your feedback and will be updated soon.
🔥26👍5😁1
"One secret to success was Zlokapa, a waifish orchestra kid who joined Spiropulu’s research group as a Caltech undergrad. A gifted programmer, Zlokapa mapped the particle interactions of the SYK model onto the connections between neurons of a neural network, and trained the system to delete as many network connections as possible while preserving a key wormhole signature. The procedure reduced the number of four-way interactions from hundreds down to five."
👍13
[Google UL2R] Transcending Scaling Laws with 0.1% Extra Compute
Yi Tay, Jason Wei, Hyung Won Chung, Vinh Q. Tran, David R. So, Siamak Shakeri, Xavier Garcia, Huaixiu Steven Zheng, Jinfeng Rao, Aakanksha Chowdhery, Denny Zhou, Donald Metzler, Slav Petrov, Neil Houlsby, Quoc V. Le, Mostafa Dehghani
Статья: https://arxiv.org/abs/2210.11399
Пост в блоге: https://ai.googleblog.com/2022/11/better-language-models-without-massive.html

Продолжение темы про UL2 (https://news.1rj.ru/str/gonzo_ML/1113).

Идея простая, давайте продолжим обучение обычной языковой каузальной модели, но с UL2 objective. Это будет стоить 0.1-1% FLOPs от оригинальной модели, и не будет требовать новых датасетов. Новый метод назовём UL2R или UL2Restore.

Берём оригинальную модель PaLM (только декодер, обучается через PrefixLM, https://arxiv.org/abs/2204.02311), уже обученный checkpoint, и тот же самый датасет, на котором её обучали.

Берём стандартные 7 denoiser’ов из UL2. Дальше правда оказывается, что достаточно микса 50% PrefixLM (S-denoiser), 25% Long (extreme) span corruption (X-denoiser), 25% regular span corruption (R-denoiser).

Дообучаем оригинальную 540B PaLM на 20к шагов с батчем 32. Это примерно 1.3B доп.токенов и 0.16% доп.вычислений. Обучается с cosine learning rate decay schedule, где learning rate отжигается с 10E−4 до 10E−6 (низкий постоянный learning rate даёт аналогичный результат).

Эта новая модель называется U-PaLM 540B, на её дообучение уходит 5 дней на 512 TPUv4 чипах. Это примерно $200k в ценах on-demand.

Результаты интересные.

Во-первых, качество существенно растёт при очень малой цене дообучения. Либо вы раза в два быстрее (чем если бы продолжали обучать оригинальную модель) получаете нужное качество, либо достигаете существенно более высокого качества при заданном вычислительном бюджете. Попутно давая новые SoTA в тех местах, где у PaLM были SoTA и раньше.

Во-вторых, U-PaLM даёт emergent abilities (https://news.1rj.ru/str/gonzo_ML/1031) на более мелких масштабах.

В работе много анализа по разным типам задач, но общее место в том, что заметный прогресс за небольшую цену есть практически везде.

Ещё из интересного то, что очень небольшое дообучение языковой модели PaLM в режиме UL2R с новыми objectives про denoising даёт модели возможности по in-filling’у, то есть открывает возможность решения нового класса задач, к которому оригинальная модель не была готова.

Также поведением модели становится можно управлять с помощью специальных токенов режима, использовавшихся в UL2: [NLU], [NLG] и [S2S]. Это влияет на выход модели.

В общем теперь у нас есть простой эффективный способ улучшения качества имеющихся моделей, которые с нуля заново уже так просто не обучишь. Интересно, конечно, как U-PaLM показал бы себя относительно PaLM целиком обученного с помощью UL2.

Интересно также, использовалось ли что-то подобное в последних моделях семейства GPT-3.5 (https://beta.openai.com/docs/model-index-for-researchers/models-referred-to-as-gpt-3-5), включая ChatGPT, и аналогов, а также секретной GPT-4, или их тоже можно улучшить и дальше.

В целом кейс с UL2R хорошо подсвечивает субоптимальность стандартных подходов к обучению языковых моделей.
👍18
Not a paper, but a very cool stuff!

Roman Vershynin, professor of mathematics at the University of California, Irvine, and the author of the well-known book "High dimensional probability. An introduction with applications in Data Science" has just published materials from his course on the same topic!

The book itself is freely available on the internet (https://www.math.uci.edu/~rvershyn/papers/HDP-book/HDP-book.pdf), yet I myself have two hard copies of it :)

Now the videos and lecture notes from the course that was run remotely at Kyiv National University this fall during the bombing are published: https://www.math.uci.edu/~rvershyn/teaching/hdp/hdp.html
🔥32👍13🙏3
GPT-3, InstructGPT, GPT-3.5, ChatGPT, GPT-4, …

Генеративный AI за этот год сильно удивил. Прогресс с изображениями колоссальный (мы писали про это тут и тут). За это время и Midjourney существенно прокачался, и StableDiffusion постоянно обновляется, ещё и Lensa появилась и добавила теме массовости и популярности. Мне лично особенно нравится движуха с генерением кадров из известных фильмов, которые могли бы быть сняты другим режиссёром или в другой культуре (ну вот типа Звёздных Войн Акиры Куросавы). С текстом, похоже, тоже прямо сейчас случается ещё один качественный переход.

Нынешний фаворит — ChatGPT, продолжатель ветки GPT-3 в её текущей версии GPT-3.5 с добавлением RL по аналогии с более ранним InstructGPT.

Генерит прям хорошо, и не только на английском. Весьма достойно и на русском, и не только на человеческом, а, например, на питоне. И более ранние версии уже могли выдавать годное качество (у нас самих есть пример генерации продуктового анонса, где один был написан человеком за немалые деньги и долгое объяснение, а другой сгенерён одной из не самых последних уже GPT-3, и у текста ИИ CTR был в 37 раз выше человеческого), но новая ChatGPT прям приятно удивила (отдельно также ждём когда откроют GPT-4). Недавно один человек с помощью ChatGPT и Midjourney за выходные детскую книжку написал сгенерил и опубликовал на Амазоне. Ещё из свежего интересного есть иерархическая генерация театральных постановок на примере Dramatron’а от DeepMind.

Что интересно, кроме создания контента свежая модель по сути может в некоторых случаях заменять поисковик. Понятны места, где оно ещё косячит.

Во-первых, конечно, модель может безбожно врать. С поисковиками тоже так было и есть, особенно когда индексируются некачественные сайты или мешают злонамеренные акторы. Для GPT контролем источников уже не обойдёшься, придётся, например, воротить отдельные модели, определяющие качество ответа или применять иные способы фактчекинга и постобработки. Для детектирования токсичности и подобных вещей уже есть готовые API, например, от Гугла и OpenAI, а для определения недостоверности, неправильности, и в более широком смысле качества ответа, видимо, будет что-то похожее на новом уровне.

Во-вторых, модель может просто чего-то не знать, либо потому что какая-то специальная область, откуда в обучение ничего не добавляли (или добавляли мало), либо потому что с момента обучения уже что-то поменялось (президентом стал другой, научное открытие только сделали и т.п.). Для этого класса проблем также есть хороший заход — это retrieval-based модели типа WebGPT, которая по факту пользуется текстовым браузером. За последний год было уже несколько крутых результатов, когда модель может чуть ли не поиск Гуглом делать и инкорпорировать его результаты в свой ответ, и следующую радикально лучшую версию GPT, пусть будет SearchGPT, я бы ожидал на этой технологии.

Поисковая сессия по сути может стать ещё больше диалогом с системой. Сейчас приходится это на специальном языке запросов описывать, у которого вообще своя грамматика, а будет совсем естественно. Вспоминается старая байка про историю из поисковых запросов, где автор последовательно уточнял, что ему нужно, завершив всё фразой c “рефераты блять не предлагать”.
🔥28👍64
Кроме поиска и генерации текста есть также интересное движение в сторону совершения действий (actions). WebGPT уже в общем была моделью с действиями, но есть куда всё это дело расширять. Трансформер типа ACT-1 это вполне себе дальнейший возможный шаг. Будет не только искать в вебе, а и разные операции выполнять, в том же Экселе, например, а там и в апишки ходить (ChatGPT уже умеет генерировать код для дергания некоторых апишек).

Слияние Codex, ChatGPT и WebGPT не за горами, на StackOverflow скоро будете ходить уже не вы :) Сейчас там в моменте в обратную сторону проблема — ввели временный запрет на написание ответов через ChatGPT. Следят за чистотой датасета ;)

Это всё не какое-то далёкое будущее. Я удивлюсь, если этого не произойдет в следующем году. Более далёкое будущее — это отдельная интересная тема.

Дизрапшн идёт, стартапов можно ожидать много, разные полезные продукты прямо просятся, и VC явно темой интересуются. Пост Бессемера я уже приводил, вот ещё хороший пост от Секвойи, и a16z тоже пишут. Мы с Флинтом тоже недавно написали чуток.

Вливайтесь в ряды Фурье, короче!
👍18🔥9
[DeepMind AlphaTensor] Discovering faster matrix multiplication algorithms with reinforcement learning
Alhussein Fawzi, Matej Balog, Aja Huang, Thomas Hubert, Bernardino Romera-Paredes, Mohammadamin Barekatain, Alexander Novikov, Francisco J. R. Ruiz, Julian Schrittwieser, Grzegorz Swirszcz, David Silver, Demis Hassabis & Pushmeet Kohli
Статья: https://www.nature.com/articles/s41586-022-05172-4
Пост: https://www.deepmind.com/blog/discovering-novel-algorithms-with-alphatensor
Код: https://github.com/deepmind/alphatensor (только найденные алгоритмы и сопутствующее)

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

В этот раз подход AlphaGo (точнее его вариант Sampled AlphaZero для пространств действий высокой размерности, https://proceedings.mlr.press/v139/hubert21a) применили к задаче нахождения эффективного алгоритма для перемножения матриц.

Перемножение матриц везде вокруг. Без него никуда в компьютерной графике, обработке сигналов, научных вычислениях. Почти любой векторизованный алгоритм использует какое-то перемножение матриц. Злые языки также утверждают, что весь современный ИИ — это перемножение матриц. Наверное, эти кучки атомов просто завидуют. Получается, ускорение алгоритмов для перемножения матриц ускоряет всё вокруг.

Классический ручной алгоритм перемножения матриц, как его учат в школе-институте, прямолинейный и неэффективный, его сложность O(n^3) операций умножения, а в типовых процессорах это более дорогая операция, чем сложение. Для матриц 2x2 это соответственно 8 умножений. В 1969-м году Штрассен показал, что этот алгоритм неоптимален и предложил алгоритм с 7 умножениями. С тех пор понеслось, и учёные пытаются подобраться к квадратичному алгоритму, текущая SoTA O(n^2.37286) (https://www.quantamagazine.org/mathematicians-inch-closer-to-matrix-multiplication-goal-20210323/). Перебрать все возможные алгоритмы нереально, пространство огромно, поэтому поиск нужно делать по-умному.

Интересна репрезентация проблемы. Задача перемножения матриц заданной размерности сводится к тензорам особого вида (matrix multiplication tensor или Strassen’s tensor), которые могут описывать любую билинейную операцию (то есть бинарную операцию, линейную по каждому из аргументов), каковым перемножение матриц и является.

Кстати, хорошая статья “Tensors in computations” (https://www.stat.uchicago.edu/~lekheng/work/acta.pdf) про тензоры есть в предпоследнем Acta Numerica (https://www.cambridge.org/core/journals/acta-numerica). Там вообще хорошие статьи регулярно, следите за ними. В том же номере 2021 года (https://www.cambridge.org/core/journals/acta-numerica/volume/6A0DA33B45D0E5A6BABD1EF331B5E4F0), кстати, есть и известная статья Михаила Белкина, да и много другого интересного.

Тензор, описывающий произведение любых матриц n×n имеет размерность n^2 × n^2 × n^2 и содержит {0, 1}. Этот тензор описывает какие элементы из входных матриц брать, и куда писать результат. Например, для операции c1 = a1*b1 + a2*b3, где ai, bi, ci — элементы квадратных матриц A, B и C, элементы которых пронумерованы от единицы до макс.индекса слева-направо и сверху-вниз, в единицу выставляются элементы тензора с индексами (a1, b1, c1) и (a2, b3, c1).

Когда есть такой тензор, то его можно декомпозировать в сумму R outer products векторов (тензоров ранга 1) u,v,w, и каждая декомпозиция будет очередным рецептом, как именно выполнить умножение матриц, а число термов в этой сумме, R, будет числом операций умножения в данном рецепте. Таким образом, задача поиска алгоритма перемножения матриц сводится к задаче поиска по декомпозициям соответствующего тензора.
👍19🔥8😁1🤯1
Задача поиска формулируется как игра с одним игроком под названием TensorGame. Состояние игры описывается тензором, который изначально равен тензору матричного умножения, который мы хотим разложить. На каждом шаге игры игрок выбирает очередной триплет векторов u,v,w и вычитает из тензора состояния их внешнее произведение. Цель — достичь нулевого тензора за минимальное число шагов (операций умножения). Если это получилось, то последовательность шагов и определяет алгоритм с гарантированной корректностью получения результата. Если не получилось, то в игре есть ограничение на максимальное число шагов. За каждый новый шаг агент по имени AlphaTensor получает штраф -1, а за ненулевой тензор в конце ещё и дополнительный штраф. Целевая функция здесь может быть разной, можно оптимизировать количество операций, скорость под конкретное железо, энергопотребление, память, да что придумаете.

Вектора u,v,w ограничены набором коэффициентов  {−2, −1, 0, 1, 2}, это позволяет избавиться от проблем конечной точности чисел с плавающей точкой. Агент может работать в стандартной арифметике или модулярной, обучается сразу на обеих, это даёт положительный трансфер. Также агент обучается сразу на нескольких целевых тензорах, это тоже помогает.

Как и в AlphaGo, AlphaTensor использует нейросетку для того, чтобы направлять MCTS (Monte-Carlo Tree Search). Сеть принимает входное состояние (текущий тензор), и выдаёт policy и value. Полиси даёт распределение по возможным действиям (u,v,w), и поскольку множество потенциальных действий на каждом шаге огромно, действия из него сэмплятся, а не перечисляются (это собственно и есть Sampled AlphaZero, от него AlphaTensor немного отличается в месте получения value из распределения returns, здесь это не среднее, а так называемое risk-seeking value; и ещё в некоторых деталях). Value даёт оценку распределения cumulative reward от текущего состояния (собственно это distributional RL через quantile regression distributional loss), это моделирует убеждения агента относительно ранга декомпозиции. MCTS возвращает для текущего состояния улучшенное распределение вероятностей следующих шагов, оно используется для обновления весов policy-части сети через KL loss. Оконченные игры с высоким скором используются как фидбек для обучения сети. Кроме них также используются синтетические демонстрации.

Сеть это трансформер с общим стволом и отдельными головами для полиси и value.

На вход сети список тензоров и скаляров, описывающий текущее состояние игры. Текущий трёхмерный тензор состояния неизменного размера и дополняется нулями до максимального 25 × 25 × 25. Также подаются последние h действий (обычно h=7). В скалярах содержится текущий момент времени t. Трансформер оперирует тремя grids размером S×S, которые проецируются из оригинальных S×S×S тензоров, каждый grid представляет два из трёх измерений этого тензора. К ним подмешиваются скаляры через проекцию. Дальше применяется axial attention (https://arxiv.org/abs/1912.12180). Policy head тоже трансформер, value head — MLP.

Важные компоненты, улучшающие результат ванильного агента AlphaZero:

- Собственно трансформер с inductive biases, подходящими для тензорных входов, и генерализованный вариант axial attention.

- Синтетические примеры. Разложение тензора задача NP-сложная (https://arxiv.org/abs/0911.1393), но можно зайти с обратной стороны и легко нагенерить рандомных u,v,r и по ним сконструировать тензоры, это даст датасет пар <тензор, разложение>. Таких пар нагенерили 5M. Сеть дальше можно обучить на миксе supervised loss и RL loss.
👍13