gonzo-обзоры ML статей – Telegram
gonzo-обзоры ML статей
24.1K subscribers
2.72K photos
2 videos
3 files
1.35K links
Авторы:
Гриша Сапунов, ранее руководитель разработки Яндекс-Новостей, ныне CTO Intento. Области интересов: AI/ML/DL, биоинформатика.
Лёша Тихонов, ранее аналитик в Яндексе, автор Автопоэта, Нейронной Обороны... Области интересов: discrete domain, NLP, RL.
Download Telegram
🪆Matryoshka Representation Learning
Aditya Kusupati, Gantavya Bhatt, Aniket Rege, Matthew Wallingford, Aditya Sinha, Vivek Ramanujan, William Howard-Snyder, Kaifeng Chen, Sham Kakade, Prateek Jain, Ali Farhadi
Статья: https://arxiv.org/abs/2205.13147
Код: https://github.com/RAIVNLab/MRL

Работа с NeurIPS 2022, которую я давно хотел разобрать. Лежала у меня среди тысячи открытых вкладок (где ещё уйма интересного, ждущего своего часа), пока я не нарвался на свежую “Matryoshka Diffusion Models” (https://arxiv.org/abs/2310.15111). Но про diffusion models не так интересно, как про репрезентации.

Идея в том, что репрезентации (эмбеддинги) фиксированного размера неоптимальны. Для одних задач могут быть слишком большими (что суммарно приводит к большим затратам при инференсе, который, вообще-то, является основным этапом жизненного цикла модели), для других слишком маленькими (тогда страдает качество, а переобучать уже поздно и/или дорого). Как правило выделить какое-то подпространство в эмбеддингах проблематично, градиентное обучение размазывает информацию по всему вектору. Надо либо обучать отдельные эмбеддинги разных размеров (опухнешь), либо делать какую-то компрессию после обучения.

Собственно вопрос, можно ли придумать какую-то гибкую репрезентацию, которая сможет адаптироваться под разные задачи с разными требованиями по вычислительным ресурсам? Ну вы уже поняли, что можно!

Авторы предлагают подход 🪆Matryoshka Representation Learning (MRL), позволяющий получать такие репрезентации. Идея проста: в эмбеддинге фиксированного размера (d) выделим вложенные друг в друга части (подпространства) размеров d/2, d/4, d/8, … каждая из которых будет хорошим эмбеддингом для своего размера.

Задача в том, чтобы модифицировать процедуру обучения так, чтобы в векторе размерности d первые m измерений содержали общие и переносимые на другие задачи репрезентации.

Работу проводят на supervised мультиклассовой классификации. Берётся ResNet50, который эмбеддит в вектор размерности d = 2048, датасет ImageNet-1K с тысячью классов, и набор вложенных размерностей M = {8, 16, . . . , 1024, 2048}.

Итоговый классификационный лосс для MRL выглядит как сумма отдельных кроссэнтропийных софтмакс лоссов по всем размерностям (с линейным классификатором поверх). Лоссы внутри суммы взвешены с неким коэффициентом важности, c_m, в работе они все были равны единице.

Линейные классификаторы тоже могут быть сделаны с общими весами, так что веса классификатора от маленького эмбеддинга являются подмножеством весов от классификатора для большего эмбеддинга. Это помогает сэкономить память в случае очень больших пространств эмбеддингов. Такой вариант подхода называется Efficient Matryoshka Representation Learning (MRL–E).

Подход проверили на разных задачах.

Для representation learning взяты задачи:
(a) Supervised learning для изображений: ResNet50 на ImageNet-1K и ViT-B/16 на JFT-300M.
(b) Contrastive learning для изображений и языка: ALIGN с ViT-B/16 vision encoder и энкодер BERT на данных ALIGN (https://news.1rj.ru/str/gonzo_ML/679).
(c) Masked language modelling: BERT на English Wikipedia и BooksCorpus.

Лучшие гиперпараметры не подбирали, взяли те, что были у независимо обученных бейзлайнов.

У резнета размер эмбеддинга 2048, у ViT и BERT 768. Лестницы размерностей соответственно следующие: M = {8, 16, 32, 64, 128, 256, 512, 1024, 2048} и M = {12, 24, 48, 96, 192, 384, 768}.

Для сравнения взяты низкоразмерные репрезентации фиксированного размера (FF), уменьшенные через SVD, из slimmable networks и рандомно выбранные фичи из FF максимального размера.

Оценивают качество классификации на ImageNet через linear classification/probe (LP) и 1-nearest neighbour (1-NN). MRL рулит, при малом размере эмбеддинга качество даже чуть выше, чем для фиксированного эмбеддинга такого же размера. И намного лучше и рандомно выбранных фич, и SVD.
🔥36👍162
Для ViT и JFT-300M эксперименты дорогие, это web-scale датасет, здесь обучали только самую большую FF модель. И здесь MRL показывает свою работоспособность. Кроме того, полученные эмбеддинги можно интерполировать, если нужен какой-то промежуточный размер -- точность на таким образом полученных репрезентациях лежит на кривой ровно там, где и можно было бы ожидать.

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

Отдельная тема -- retrieval. Цель -- найти картинки из того же класса, что запрос, используя эмбеддинги. Оценивают по mean Average Precision@10. Эмбеддинги нормализованы и достаются через L2 близость. MRL бьёт бейзлайны, при этом ещё и лучше отдельных FF эмбеддингов. MRL-E чуть похуже.

В сочетании с adaptive retrieval (AR) можно сэкономить кучу места, не храня полные репрезентации. В AR сначала получают шорт-лист (K=200) кандидатов через низкоразмерную репрезентацию (Ds = 16), затем список переранжируют через более высокоразмерную (Dr = 2048) -- это сильно дешевле по вычислениям, чем сразу делать поиск соседей по полному эмбеддингу. AR с указанными выше параметрами настолько же точна, что и выборка по полному эмбеддингу (d = 2048), но в 128 раз более эффективна в теории, и в 14 раз быстрее на практике.

Определить оптимальные значения Ds и Dr может быть непросто, поэтому авторы предлагают подход Funnel Retrieval, где используется каскад последовательно увеличивающихся эмбеддингов. Начинаем с самых малых, затем полученный на каждом этапе список переранжируем более широким эмбеддингом, в два раза сокращая список и в два раза увеличивая размерность каждый раз.

Интересно, какие-нибудь из векторных баз это уже поддерживают? Ash? ;)

По крайней мере есть следующая работа про adaptive approximate nearest neighbour search с использованием матрёшек -- работа побывавшая одновременно и на ICLR 2023 (https://iclr.cc/virtual/2023/13999) и на NeurIPS 2023 (AdANNS, https://arxiv.org/abs/2305.19435) — что, так можно?

На out-of-domain датасетах робастность MRL репрезентаций не хуже обычных. Для retrieval она даже немного повыше. На few-shot learning через nearest class mean тоже хорошо. На новых классах из длинного хвоста даже улучшение.

В целом с увеличением эмбеддинга качество классификации растёт. Но есть некоторое число случаев, когда на малом размере эмбеддинга классификация лучше. Если оценивать качество на супер-классе (когда в разметке есть иерархия), то там не такая сильная просадка на малом размере репрезентации. То есть какую-то иерархию эти эмбеддинги тоже ловят.

Matryoshka Representations можно получить частичным файнтюном уже обученных моделей.

Итого, почти халявный способ улучшения репрезентаций. Было бы интересно обучить эмбеддинговую модель типа text-embedding-ada или тех, что делает Cohere, в такой постановке. Ну и вообще большой простор для улучшений -- отдельные лоссы, поиск весов, специальные структуры для поиска.
🔥18👍81🐳1
This media is not supported in your browser
VIEW IN TELEGRAM
🤨61
Когда сгенерил книгу через ChatGPT...
🥴81😁15👍2❤‍🔥1
The engine powering Grok is Grok-1, our frontier LLM, which we developed over the last four months. Grok-1 has gone through many iterations over this span of time.

After announcing xAI, we trained a prototype LLM (Grok-0) with 33 billion parameters. This early model approaches LLaMA 2 (70B) capabilities on standard LM benchmarks but uses only half of its training resources. In the last two months, we have made significant improvements in reasoning and coding capabilities leading up to Grok-1, a state-of-the-art language model that is significantly more powerful, achieving 63.2% on the HumanEval coding task and 73% on MMLU.

...

At the frontier of deep learning research, reliable infrastructure must be built with the same care as datasets and learning algorithms. To create Grok, we built a custom training and inference stack based on Kubernetes, Rust, and JAX.

https://x.ai
👍13🥱113
In case you didn't have time to watch the keynote (https://www.youtube.com/live/U9mJuUkhUzk?si=9_KjNVsS3x7vxCdP) or read any other summaries, here's a very brief mine.

# GPT-4 Turbo
## 1 context length 
- up to 128k, 300 pages std book

## 2 more control:
- valid JSON mode for output
- multiple function calling + better in following instructions 
- consistent output with the seed param
-logprobs in the API soon

## 3 better world knowledge
- bringing retrieval to the platform
- knowledge cutoff shifted Sep 21 to Apr 23

## 4 new modalities
- dalle 3, gpt-4-turbo with vision, TTS in API
- protect from misuse
- 6 preset voices
- oss whisper v3 in the API soon

## 5 Customization
- fine-tuning for gpt-3.5-16k
- fine-tuning for gpt-4 experimental access program
- custom models for new domain, with tools to adjust different training stages

## 6 higher rate limits
- x2 tokens per minute
- can request further increase in settings

## 7 Lower Pricing 
GPT 4 turbo 
- 3x less for input tokens (1c per 1000 tokens)
- 2x for completion tokens (3c per 1000)
- total 2.75x less for most devs
- starting today 
- speed is also a lot faster

GPT 3.5 turbo 16k
- 0.1c/0.2c (3x/2x) (cheaper than prev 4k model)

old Fine-tuning GPT 3.5 turbo 4k 
- 1.2c/1.6c
new Fine-tuning GPT 3.5 turbo 16k
- 0.3c/0.6c (4x/2.7x)

# Building on the platform 
- Copyright shield for enterprise and API 
- defend customers and pay costs incurred
- remind: don't train on API or ChatGPT enterprise

# ChatGPT news
- now uses GPT-4 turbo by default
- can browse web
- without model clicker

# Agents
- Gradual iterative deployment 
- GPTs -- tailored versions of GPT (instructions, expanded knowledge, actions)
- data is shared only on permission
- build with natural language in GPT Builder
- can upload documents 
- can publish to use, or make it private, or use by link, on create for the company in ChatGPT Enterprise
- Launching GPT Store later this month
- Revenue sharing will be there
- Bringing the same concept to API with Assistants API 

# Assistants API (beta today)
- persistent threads with long time conversation history (threads and messages, managing state)
- retrieval, can read pdf files, RAG 
- code interpreter can generate and run code (Python)
- function calling
- can navigate threads in the console and look inside
👍22🔥6