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

Выпустили новый пост про GPT as MT, теперь про ChatGPT.

https://blog.inten.to/chatgpt-for-translation-surpassing-gpt-3-e8e34f37befb

TL;DR GPT дизраптит машинный перевод, 10x дешевле обычных вендоров, и порой не хуже. А ещё всякие доп.возможности...

Скоро выпустим ещё один, с исследованием на базе GPT-4. Но ChatGPT явно останется интересной опцией благодаря цене.
👍14
PyTorch 2.0 is out!

This next-generation release includes a Stable version of Accelerated Transformers (formerly called Better Transformers); Beta includes torch.compile as the main API for PyTorch 2.0, the scaled_dot_product_attention function as part of torch.nn.functional, the MPS backend, functorch APIs in the torch.func module; and other Beta/Prototype improvements across various inferences, performance and training optimization features on GPUs and CPUs.

https://pytorch.org/blog/pytorch-2.0-release
👍121🤨1
[Stanford] Alpaca: A Strong, Replicable Instruction-Following Model
Rohan Taori, Ishaan Gulrajani, Tianyi Zhang, Yann Dubois, Xuechen Li, Carlos Guestrin, Percy Liang, Tatsunori B. Hashimoto
Статья: https://crfm.stanford.edu/2023/03/13/alpaca.html
Repo: https://github.com/tatsu-lab/stanford_alpaca

Новости полу-опенсорсного мира. С тех пор как полу-опубликовали LLaMA (https://news.1rj.ru/str/gonzo_ML/1324) и она утекла на торренты (https://news.1rj.ru/str/gonzo_ML/1346), с моделью произошло много всего интересного. Её научились квантовать в 4 бита и запускать из плюсов на ноутбуке (https://github.com/ggerganov/llama.cpp), на телефоне Pixel 6 (https://twitter.com/thiteanish/status/1635188333705043969), а Артём Андреенко запихнул её на Raspberry Pi 4 с 4GB RAM (https://twitter.com/miolini/status/1634982361757790209).

В это время исследователи из Стэнфорда взяли LLaMA 7B и затюнили её на instruction-following, полученную модель назвали Alpaca. Инструкции -- это запросы типа "Give me a cooking recipe for the following food.", "Given the name of an exercise, explain how to do it.", "Analyze the sentences below to identify biases." и т.п и соответствующие им ответы.

Датасет из 52k демонстраций следования инструкциям сгенерили через OpenAI GPT-3 (text-davinci-003, то есть обычная GPT-3.5, не ChatGPT или GPT-4) пользуясь подходом Self-Instruct (https://arxiv.org/abs/2212.10560), что есть красивый бутстрап.

Для этого начали со 175 написанных человеком примеров из работы Self-Instruct (https://github.com/yizhongw/self-instruct/blob/main/data/seed_tasks.jsonl). Их использовали как in-context примеры (внутри промптов) для GPT-3 и нагеренили ещё больше инструкций (те самые 52k уникальных инструкций и соответствующих ответов). Данные довольно разнообразны, см. красивую картинку с круговой диаграммой. На это потратили меньше $500 на апишку OpenAI. Так понимаю, с ChatGPT потратили бы вообще $50.

Имея этот датасет из 52k примеров, зафайнтюнили LLaMA через HuggingFace transformers Trainer, пользуясь из коробки техниками типа fully sharded data darallel и mixed precision training. Их начальный запуск файнтюнинга 7B LLaMA модели потребовал порядка трёх часов на 8 GPU A100-80GB, что по нынешним ценам облака стоит меньше $100 (ну на Амазоне чуть больше, https://aws.amazon.com/ec2/instance-types/p4/).

На датасете для оценки показали, что модель демонстрирует поведения похожие на генерального прокурора text-davinci-003, будучи при этом сильно меньше.

Авторы зарелизили код для обучения, данные (те самые 52k примеров) и код для их генерации. Веса обученной модели пока не релизили, но собираются (если авторы LLaMA не будут против). Модель подняли и сделали доступной через демку здесь https://crfm.stanford.edu/alpaca/

Модель оставили “only for academic research” с запретом любого коммерческого использования, потому что, во-первых, LLaMA с такой лицензией и надо её наследовать, во-вторых, данные сгенерированы с помощью модели OpenAI, а их Terms of Service запрещает разработку моделей, конкурирующих с OpenAI, ну и, в-третьих, в безопасность модели сильно не вкладывались, так что тоже стрёмно.

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

LLaMA могла бы официально стать аналогом BERT’а по импакту на индустрию, но не станет из-за своей лицензии и не очень открытости. Может, конечно, станет подпольно (и будет продаваться на дисках на Митинском рынке), а может какой-то новый GPT-J или кто-то иной возьмёт себе этот бэдж. Независимо от этого, уже второй большой ImageNet-moment в NLP произошёл благодаря всем этим свежим GPT, с чем всех и поздравляю.
🔥2411👍9😁1
У Альпаки есть своё интересное независимое развитие. Благодаря подходу LoRA от Microsoft (https://arxiv.org/abs/2106.09685) для низкоранговой оптимизации больших языковых моделей (позволяет получить файнтюненную версию сильно меньшего размера), Альпаку научились воспроизводить на консьюмерском железе, оно требует порядка 5 часов на RTX 4090. Этот проект живёт здесь: https://github.com/tloen/alpaca-lora. Если вам нужен LoRA для своих дел, то есть библиотека loralib от авторов (https://github.com/microsoft/LoRA), а также метод поддерживается в HuggingFace PEFT (State-of-the-art Parameter-Efficient Fine-Tuning, https://github.com/huggingface/peft) наряду с другими интересными методами.

Такие дела. Всё сильно ускорилось, конечно.
🔥172👍1🤔1
This media is not supported in your browser
VIEW IN TELEGRAM
Пятничное чтиво, приуроченное к выходу GPT-4.

"Поэты сорганизовали несколько митингов протеста и потребовали опечатать машину, но никто, кроме них, не обращал внимания на феномен. Редакции газет были даже довольны, поскольку Электрувер, писавший под несколькими тысячами псевдонимов сразу, представлял готовую поэму заданных размеров на любой случай, и эта поэзия, хоть и на заказ, была такого качества, что читатели раскупали газеты нарасхват, а улицы так и пестрели лицами, полными неземного блаженства, мелькали бессознательные улыбки и слышались тихие всхлипывания. Стихи Электрувера знали все; воздух сотрясали хитроумнейшие рифмы, а наиболее впечатлительные натуры, потрясенные специально сконструированными метафорами или ассонансами, даже падали в обморок; но и к этому был подготовлен титан вдохновения: он сразу же вырабатывал соответствующее количество отрезвляющих сонетов."

Если вы это не читали, то вам срочно сюда:

https://www.booksite.ru/fulltext/0/001/005/167/024.htm
🔥5413❤‍🔥2👍2
А вот это вот интересная история. Мы померяли качество перевода с помощью GPT-4 (как недавно делали это для ChatGPT, а ранее для GPT-3).

И на этот раз GPT показала вообще лучший результат для пары en-es, и второй лучший для en-de на general domain. На специальных доменах похуже, но всё равно лучше некоторых движков. Там, конечно, ещё требуется человеческую оценку провести, посмотреть на типы ошибок и оценить, как это влияет на те бизнес-процессы, где её будут использовать, но начало многообещающее.

Это очень интересно, и, возможно, начало большого тектонического сдвига, когда универсальная (не-переводческая) модель бьёт более специализированные переводческие. ChatGPT тоже уже била, но в другом аспекте, в 10 раз меньшей ценой при очень достойном результате. Обе они где-то в районе Парето фронта получаются, можно балансировать.

Весьма круто для моделей, которые "просто предсказывают следующий токен". Хотел дописать "и вообще не обучались на задачу перевода", но поскольку мы не знаем, на каких именно данных обучалась GPT-4, то сказать это не очень можно. Вдруг, обучались.

To be continued...

Пост про результаты: https://blog.inten.to/translating-with-gpt-4-the-latest-the-greatest-561025cb761c
🤯27🔥9👍71👏1
Ещё не пятница, но...

Тестовый пост. Суммаризировали "Электрувер Трурля" на английском через 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