Tags: #distillation
Title: Distilling Knowledge from Self-SupervisedTeacher by Embedding Graph Alignment
Link: https://arxiv.org/pdf/2211.13264.pdf
Code: https://github.com/yccm/EGA
В задаче Knowledge Distillation (KD) мы хотим передать знания от большой модели учителя к маленькой модели студента. И в основном это реализуется за счет имитации студентом распределения модели учителя. Но! Что если посмотреть на задачу distillation с точки зрения структуры в данных? Мы обучили модель учителя и хотим передать студенту знания об устройстве данных. Объекты классов персидский кот и египетский кот должны быть связаны сильнее чем кошки и машины. И в этой статье авторы предложили сформулировать задачу KD как задачу выравнивания графовых структур данных: у модели студента должна быть такая же структура данных, как и у модели учителя.
Edge matching loss
Как это реализовано? Формируется батч изображений, который обрабатывается студентом и учителем. На выходе мы получаем фичи студента и учителя. Так размерности фичей могут отличаться мы дополнительно применяем линейный слой, чтобы размерности совпадали и получаем эмбеддинги. Затем мы формируем следующую матрицу для студента и для учителя: на (i,j) в этой матрицы находится корреляция Пирсона между эмбеддингами i и j объектов. Это представляет собой матрицу смежности графа. И для того, чтобы матрицы смежности были похожими (графы студента и учителя совпадали), мы добавляем L2 loss между этими матрицами.
Node matching loss
Далее, для того чтобы убедиться, что эмбеддинги студента и учителя выровнены мы добавляем лосс, который строится следующим образом. Мы составляем матрицу N_st, где на (i, j) месте корреляция Пирсона между i эмбеддингом студента и j эмбеддингом учителя. Эта матрица показывает насколько близки эмбеддинги студента и учителя. Она должна быть единичной: эмбеддинги одинаковых объектов совпадают, а между эмебеддингами различных объектов нет связи. Поэтому мы добавляем L2 loss между матрицей N_st и единичной матрицей.
Results
В качестве экспериментов они рассмотрели различные CLIP pretrained модели, которые переносили на несколько вариантов моделей студентов. Почти во всех задачах удалось выбить SOTA. (см. комментарии)
Title: Distilling Knowledge from Self-SupervisedTeacher by Embedding Graph Alignment
Link: https://arxiv.org/pdf/2211.13264.pdf
Code: https://github.com/yccm/EGA
В задаче Knowledge Distillation (KD) мы хотим передать знания от большой модели учителя к маленькой модели студента. И в основном это реализуется за счет имитации студентом распределения модели учителя. Но! Что если посмотреть на задачу distillation с точки зрения структуры в данных? Мы обучили модель учителя и хотим передать студенту знания об устройстве данных. Объекты классов персидский кот и египетский кот должны быть связаны сильнее чем кошки и машины. И в этой статье авторы предложили сформулировать задачу KD как задачу выравнивания графовых структур данных: у модели студента должна быть такая же структура данных, как и у модели учителя.
Edge matching loss
Как это реализовано? Формируется батч изображений, который обрабатывается студентом и учителем. На выходе мы получаем фичи студента и учителя. Так размерности фичей могут отличаться мы дополнительно применяем линейный слой, чтобы размерности совпадали и получаем эмбеддинги. Затем мы формируем следующую матрицу для студента и для учителя: на (i,j) в этой матрицы находится корреляция Пирсона между эмбеддингами i и j объектов. Это представляет собой матрицу смежности графа. И для того, чтобы матрицы смежности были похожими (графы студента и учителя совпадали), мы добавляем L2 loss между этими матрицами.
Node matching loss
Далее, для того чтобы убедиться, что эмбеддинги студента и учителя выровнены мы добавляем лосс, который строится следующим образом. Мы составляем матрицу N_st, где на (i, j) месте корреляция Пирсона между i эмбеддингом студента и j эмбеддингом учителя. Эта матрица показывает насколько близки эмбеддинги студента и учителя. Она должна быть единичной: эмбеддинги одинаковых объектов совпадают, а между эмебеддингами различных объектов нет связи. Поэтому мы добавляем L2 loss между матрицей N_st и единичной матрицей.
Results
В качестве экспериментов они рассмотрели различные CLIP pretrained модели, которые переносили на несколько вариантов моделей студентов. Почти во всех задачах удалось выбить SOTA. (см. комментарии)
GitHub
GitHub - yccm/EGA: PyTorch Implementation on Paper [BMVC2022] Distilling Knowledge from Self-Supervised Teacher by Embedding Graph…
PyTorch Implementation on Paper [BMVC2022] Distilling Knowledge from Self-Supervised Teacher by Embedding Graph Alignment - yccm/EGA
👍5
🏷 Tags: #meta_learning #bayesian_inference
📄 Title: TabPFN: A Transformer that solves small tabular classification problems in a second & Transformers Can Do Bayesian Inference
🎥 Video: https://www.youtube.com/watch?v=XnngBWe2WYE
💻 Code: https://github.com/automl/TabPFN
Transformers Can Do Bayesian Inference (PFN)
🥱 TLDR: Байесовский вывод можно заменить одним проходом трансформера.
Мотивацией этой работы стала похожесть few-shot learning и bayesian inference:
- В задаче Few-shot learning мы хотим научиться хорошо решать задачи на различных датасетах за малое число примеров. Поэтому при обучении мы сэмплируем датасет c новой задачей и оптимизируем p(y|x, D).
- Для внедрение приорных знаний о наших датасетах p(t) и данных D в модель мы можем воспользоваться bayesian inference.
$$p(y|x, D) \propto \int p(y|x,t) p(D | t) p(t) dt$$
Однако мы не можем посчитать данный интеграл. Поэтому авторы предложили использовать трансформер Prior-Fitted network (PFN). На вход трансформера подаётся train датасет (объекты + разметка) + объекты, на которых мы хотим получить предсказание. Трансформер же тут используется из-за свойства permutation invariance (порядок входа данных не важен). Чтобы на тестовых объектов не было зависимости друг друга attention на этих объектах считается только с train объектами.
❗️NB: PFN очень похож на prompt engineering.
На вход мы подаем набор решенных примеров <2 + 2; 4>, <3 + 2; 5>; и просим решить новый пример <1 + 3>. Но различие в том, что вместо использования уже готового текстового prior от языковой модели, мы выучиваем этот приор с нуля.
---
TabPFN
🥱 TLDR: PFN можно эффективно применять как метод AutoML.
Одна из основных проблем табличных данных, которая мешает deep learning полноценно ворваться в эту область это отсутствие переносимости моделей. Если мы меняем датасет, на котором хотим учиться, то модель приходится учить с нуля. А PFN как раз и решает эту проблему!
Как это всё обучается?
1) Мы сэмплируем датасет и набор тестовых примеров с помощью Bayesian Neural Network (BNN) и Structural Causal Model (SCM).
2) Подаём на вход токенизированный датасет и токены тестовых примеров
3) Считаем лосс на тестовых объектах
4) Обновляем веса TabPFN.
📊 Результат
Выученная модель достигаем SOT качества в среднем по 67 датасетах из OpenML. При этом, что модель не требует обучения под заданный датасет
🤔 Выводы
+ Плюс данного подхода, что он даёт сопоставимое качество с AutoML за минимальное время (один проход нейронной сети) и потенциально может заменить весь цикл обучения моделей (подбор гиперпараметров, ...).
- Но минус очевидный это scalability. Мы не сможем засунуть огромный табличный датасет в трансформер. (Не говоря уже о ImageNet и текстовых корпусах). И вопрос: получится у авторов решить эту проблему?
📄 Title: TabPFN: A Transformer that solves small tabular classification problems in a second & Transformers Can Do Bayesian Inference
🎥 Video: https://www.youtube.com/watch?v=XnngBWe2WYE
💻 Code: https://github.com/automl/TabPFN
Transformers Can Do Bayesian Inference (PFN)
🥱 TLDR: Байесовский вывод можно заменить одним проходом трансформера.
Мотивацией этой работы стала похожесть few-shot learning и bayesian inference:
- В задаче Few-shot learning мы хотим научиться хорошо решать задачи на различных датасетах за малое число примеров. Поэтому при обучении мы сэмплируем датасет c новой задачей и оптимизируем p(y|x, D).
- Для внедрение приорных знаний о наших датасетах p(t) и данных D в модель мы можем воспользоваться bayesian inference.
$$p(y|x, D) \propto \int p(y|x,t) p(D | t) p(t) dt$$
Однако мы не можем посчитать данный интеграл. Поэтому авторы предложили использовать трансформер Prior-Fitted network (PFN). На вход трансформера подаётся train датасет (объекты + разметка) + объекты, на которых мы хотим получить предсказание. Трансформер же тут используется из-за свойства permutation invariance (порядок входа данных не важен). Чтобы на тестовых объектов не было зависимости друг друга attention на этих объектах считается только с train объектами.
❗️NB: PFN очень похож на prompt engineering.
На вход мы подаем набор решенных примеров <2 + 2; 4>, <3 + 2; 5>; и просим решить новый пример <1 + 3>. Но различие в том, что вместо использования уже готового текстового prior от языковой модели, мы выучиваем этот приор с нуля.
---
TabPFN
🥱 TLDR: PFN можно эффективно применять как метод AutoML.
Одна из основных проблем табличных данных, которая мешает deep learning полноценно ворваться в эту область это отсутствие переносимости моделей. Если мы меняем датасет, на котором хотим учиться, то модель приходится учить с нуля. А PFN как раз и решает эту проблему!
Как это всё обучается?
1) Мы сэмплируем датасет и набор тестовых примеров с помощью Bayesian Neural Network (BNN) и Structural Causal Model (SCM).
2) Подаём на вход токенизированный датасет и токены тестовых примеров
3) Считаем лосс на тестовых объектах
4) Обновляем веса TabPFN.
📊 Результат
Выученная модель достигаем SOT качества в среднем по 67 датасетах из OpenML. При этом, что модель не требует обучения под заданный датасет
🤔 Выводы
+ Плюс данного подхода, что он даёт сопоставимое качество с AutoML за минимальное время (один проход нейронной сети) и потенциально может заменить весь цикл обучения моделей (подбор гиперпараметров, ...).
- Но минус очевидный это scalability. Мы не сможем засунуть огромный табличный датасет в трансформер. (Не говоря уже о ImageNet и текстовых корпусах). И вопрос: получится у авторов решить эту проблему?
YouTube
Samuel Mueller | "PFNs: Use neural networks for 100x faster Bayesian predictions"
Title: Prior-data Fitted Networks (PFNs): Use neural networks for 100x faster Bayesian predictions
Bayesian methods can be expensive and complicated to approximate with e.g. MCMC or VI. PFNs are a new, cheap and simple method to accurately approximate Bayesian…
Bayesian methods can be expensive and complicated to approximate with e.g. MCMC or VI. PFNs are a new, cheap and simple method to accurately approximate Bayesian…
🤯7👍5
🏷 Tags: #representation_learning
📄 Title: Semi-Supervised and Unsupervised Deep Visual Learning
🥱 TLDR: Содержательный обзор по методам semi-supervised/unsupervised learning.
Мотивация
Когда речь заходит о прикладных задачах, то получить большой датасет размеченных данных трудно, но напарсить большой датасет неразмеченных данных более простая задача.
В этом сеттинге возникают следующие вопросы:
- Как совместить при обучении размеченные и неразмеченные данные? Semi-supervised learning
- Чему учиться на неразмеченных данных? Unsupervised learning
В этой части поговорим про semi-supervised learning.
Semi-supervised learning:
Основная мотивация к совмещению в обучении размеченных и неразмеченных данных, выражается в следующих предположениях о данных:
- Smoothness assumption. Объекты, находящиеся рядом друг с другом, скорее всего имеют тот же класс.
- Manifold assumption (или cluster assumption). Из всего пространства можно выделить подпространства, на которых лежат объекты только одного класса.
- Structure assumption: Структура в пространстве объектов должна сохраняться в embedding space. К примеру, соседние кадры в видео близки в исходном пространстве, значит, должны быть близки в embedding space.
- Low-density separation assumption. Разделяющая поверхность между классами проходит в зонах низкой плотности. Объекты разных классов достаточно разрознены между собой.
Соответственно, подходы по обучению выстроены так, чтобы реализовать эти предположений:
- Consistency regularization. Создаем аугментацию представления входного объекта. Далее просто добавляем регуляризацию на близость аугментированного представления к исходному представлению. Это могут быть различные повороты исходного изображения, изменения весов сети и т.д.
- Self-training. Добавляем разметку на неразмеченные данные. Это может быть реализовано неявно - через минимизацию энтропии предсказаний; или явно через co-training (обучения двух моделей на предсказаниях друг друга) или дистилляцию.
- Graph-based regularization. Схоже с двумя предыдущими пунктами - мы хотим передать свойство близости объектов. Но, в отличие от двух методов мы делаем это напрямую на всём датасете, а не локально.
- Deep Generative models. Применяется VAE или GAN, для того чтобы научиться генерировать данные. Затем, подмешивается информация о классах. В GAN добавляется класс fake изображений. В VAE добавляется информация о классе подмешивается как скрытая переменная.
- Self-supervised learning. Тут классические подходы: SimCLR, MoCo и так далее. В основном эти методы работают с неразмеченными данными, но информацию о разметке можно добавить через генерацию позитивных пар для объектов одинакового класса.
📨 P.S.
- В следующей части будет рассказано про unsupervised подходы из этой же статьи.
🔗 Link: https://arxiv.org/pdf/2208.11296.pdf
📄 Title: Semi-Supervised and Unsupervised Deep Visual Learning
🥱 TLDR: Содержательный обзор по методам semi-supervised/unsupervised learning.
Мотивация
Когда речь заходит о прикладных задачах, то получить большой датасет размеченных данных трудно, но напарсить большой датасет неразмеченных данных более простая задача.
В этом сеттинге возникают следующие вопросы:
- Как совместить при обучении размеченные и неразмеченные данные? Semi-supervised learning
- Чему учиться на неразмеченных данных? Unsupervised learning
В этой части поговорим про semi-supervised learning.
Semi-supervised learning:
Основная мотивация к совмещению в обучении размеченных и неразмеченных данных, выражается в следующих предположениях о данных:
- Smoothness assumption. Объекты, находящиеся рядом друг с другом, скорее всего имеют тот же класс.
- Manifold assumption (или cluster assumption). Из всего пространства можно выделить подпространства, на которых лежат объекты только одного класса.
- Structure assumption: Структура в пространстве объектов должна сохраняться в embedding space. К примеру, соседние кадры в видео близки в исходном пространстве, значит, должны быть близки в embedding space.
- Low-density separation assumption. Разделяющая поверхность между классами проходит в зонах низкой плотности. Объекты разных классов достаточно разрознены между собой.
Соответственно, подходы по обучению выстроены так, чтобы реализовать эти предположений:
- Consistency regularization. Создаем аугментацию представления входного объекта. Далее просто добавляем регуляризацию на близость аугментированного представления к исходному представлению. Это могут быть различные повороты исходного изображения, изменения весов сети и т.д.
- Self-training. Добавляем разметку на неразмеченные данные. Это может быть реализовано неявно - через минимизацию энтропии предсказаний; или явно через co-training (обучения двух моделей на предсказаниях друг друга) или дистилляцию.
- Graph-based regularization. Схоже с двумя предыдущими пунктами - мы хотим передать свойство близости объектов. Но, в отличие от двух методов мы делаем это напрямую на всём датасете, а не локально.
- Deep Generative models. Применяется VAE или GAN, для того чтобы научиться генерировать данные. Затем, подмешивается информация о классах. В GAN добавляется класс fake изображений. В VAE добавляется информация о классе подмешивается как скрытая переменная.
- Self-supervised learning. Тут классические подходы: SimCLR, MoCo и так далее. В основном эти методы работают с неразмеченными данными, но информацию о разметке можно добавить через генерацию позитивных пар для объектов одинакового класса.
📨 P.S.
- В следующей части будет рассказано про unsupervised подходы из этой же статьи.
🔗 Link: https://arxiv.org/pdf/2208.11296.pdf
🔥6❤3
🏷 Tags: #representation_learning
📄 Title: Semi-Supervised and Unsupervised Deep Visual Learning (part 2)
🥱 TLDR: Содержательный обзор по методам semi-supervised/unsupervised learning.
Unsupervised learning:
Существует три основных подхода по unsupervised learning: pretext, discriminative, generative.
Pretext tasks.
Pixel-wise pretext tasks. В этом случае оригинальное изображение изменяется (переводится в черно-белое или удаляются пиксели), и модель обучается восстанавливать оригинальное изображение из измененного. Одним из основых примеров это Masked Autoencoder, который решает задачу восстановления удаленных пикселей.
Instance-wise pretext tasks. В этом случае над оригинальным изображением строятся суррогатные задачи: предскажи на сколько повернуто изображение из нарезанных патчей изображения восстанови исходный порядок
Discriminative или Self-Supervised learning.
Instance discrimination. Обучаем discriminative представления с помощью внедрения различных инвариантностей относительно аугментаций (поворотов, изменения яркости и т.д.). В основном реализуется при помощи contrastive learning, где модель учится отображать исходную и аугментированную версию объекта в одну точку.
Deep clustering. Информация о принадлежности к кластерам используется для разметка для обучения. Deep clustering подходы различаются в основном в методах кластеризации (иерархическая, агломеративная) и в зависимости от того, когда происходит кластеризация:
- Offline clustering. Разметка генерируется заранее, а затем модель учится на эти предсказания.
- Online clustering. Разметка параметризуется обучаемой сеткой либо параметризуются centroids / prototypes классов
Generative
Используем генеративную модель. Это может быть encoder из VAE либо дискриминатор из GAN. Все просто)
Applications
Semantic segmentation / Object Detection. В этих случаях создание разметки занимает долгое время (1.5 часа для сегментации и 42 секунды для детекции). Поэтому использование большого объема неразмеченных данных максимально эффективно на этих задачах.
Domain Adaptation. В задаче domain adaptation домены на которых, обучается модель и на которых она будет тестироваться отличаются. Поэтому создание предобученного представления за счёт обучения на определенной задаче с большой вероятностью приведет к переобучению под определенный домен. Unsupervised learning, напротив, может использоваться как обучения представления без привязки к какому-то конкретному домену, потому что выучиваются базовые принципы (близость объектов одного класса, инвариантности), которые универсальны на всех доменах.
Дальнейшее развитие и вопросы.
Open Set. В классической постановке SSL считается, что все классы уже даны. Но бывают ситуации, когда это не так. В этом случае качество модели проседает из-за наличия OOD samples. Основная идея в этом случае детектировать такие объекты и давать низкий вес.
Incremental Learning. В случае когда все данные недоступны сразу, а постепенно подаются в модель, то применяются техники из Incremental learning, когда модель учат сохранять качество на предыдущих недоступных данных.
Multi-modality. Сейчас уже создано огромное число моделей, который обучаются на нескольких модальностях (в основном. текст и изображения / аудио и видео), поэтому вопрос создания представлений, которые могут в две модальности актуален)
📨 P.S. Рекомендую следующие обзоры, если интересно более глубокое погружение в тему:
- https://habr.com/ru/post/704710/
- https://lilianweng.github.io/posts/2019-11-10-self-supervised/
🔗 Link: https://arxiv.org/pdf/2208.11296.pdf
📄 Title: Semi-Supervised and Unsupervised Deep Visual Learning (part 2)
🥱 TLDR: Содержательный обзор по методам semi-supervised/unsupervised learning.
Unsupervised learning:
Существует три основных подхода по unsupervised learning: pretext, discriminative, generative.
Pretext tasks.
Pixel-wise pretext tasks. В этом случае оригинальное изображение изменяется (переводится в черно-белое или удаляются пиксели), и модель обучается восстанавливать оригинальное изображение из измененного. Одним из основых примеров это Masked Autoencoder, который решает задачу восстановления удаленных пикселей.
Instance-wise pretext tasks. В этом случае над оригинальным изображением строятся суррогатные задачи: предскажи на сколько повернуто изображение из нарезанных патчей изображения восстанови исходный порядок
Discriminative или Self-Supervised learning.
Instance discrimination. Обучаем discriminative представления с помощью внедрения различных инвариантностей относительно аугментаций (поворотов, изменения яркости и т.д.). В основном реализуется при помощи contrastive learning, где модель учится отображать исходную и аугментированную версию объекта в одну точку.
Deep clustering. Информация о принадлежности к кластерам используется для разметка для обучения. Deep clustering подходы различаются в основном в методах кластеризации (иерархическая, агломеративная) и в зависимости от того, когда происходит кластеризация:
- Offline clustering. Разметка генерируется заранее, а затем модель учится на эти предсказания.
- Online clustering. Разметка параметризуется обучаемой сеткой либо параметризуются centroids / prototypes классов
Generative
Используем генеративную модель. Это может быть encoder из VAE либо дискриминатор из GAN. Все просто)
Applications
Semantic segmentation / Object Detection. В этих случаях создание разметки занимает долгое время (1.5 часа для сегментации и 42 секунды для детекции). Поэтому использование большого объема неразмеченных данных максимально эффективно на этих задачах.
Domain Adaptation. В задаче domain adaptation домены на которых, обучается модель и на которых она будет тестироваться отличаются. Поэтому создание предобученного представления за счёт обучения на определенной задаче с большой вероятностью приведет к переобучению под определенный домен. Unsupervised learning, напротив, может использоваться как обучения представления без привязки к какому-то конкретному домену, потому что выучиваются базовые принципы (близость объектов одного класса, инвариантности), которые универсальны на всех доменах.
Дальнейшее развитие и вопросы.
Open Set. В классической постановке SSL считается, что все классы уже даны. Но бывают ситуации, когда это не так. В этом случае качество модели проседает из-за наличия OOD samples. Основная идея в этом случае детектировать такие объекты и давать низкий вес.
Incremental Learning. В случае когда все данные недоступны сразу, а постепенно подаются в модель, то применяются техники из Incremental learning, когда модель учат сохранять качество на предыдущих недоступных данных.
Multi-modality. Сейчас уже создано огромное число моделей, который обучаются на нескольких модальностях (в основном. текст и изображения / аудио и видео), поэтому вопрос создания представлений, которые могут в две модальности актуален)
📨 P.S. Рекомендую следующие обзоры, если интересно более глубокое погружение в тему:
- https://habr.com/ru/post/704710/
- https://lilianweng.github.io/posts/2019-11-10-self-supervised/
🔗 Link: https://arxiv.org/pdf/2208.11296.pdf
Хабр
Self-Supervised Learning. Проблематика и постановка задачи
В последнее 2-3 года в обучении нейросеток всё больше набирает обороты self-supervised подход. Это мощный инструмент, который позволяет использовать огромные массивы данных, при этом не требуя...
👍4🔥1
Интересный для меня анонс:
В пятницу в 18:00 я буду беседовать с моим другом Димой Гущиным, очень интересный и захватывающим человеком на его канале @cozyandpeaceful. Будем обсуждать искусственный интеллект (языковые модели), креативность, преподавание. Буду рад видеть вас там!
В пятницу в 18:00 я буду беседовать с моим другом Димой Гущиным, очень интересный и захватывающим человеком на его канале @cozyandpeaceful. Будем обсуждать искусственный интеллект (языковые модели), креативность, преподавание. Буду рад видеть вас там!
👍5🔥1
Media is too big
VIEW IN TELEGRAM
Запись разговора с Димой Гущиным о искусственном интеллекте. Много всего не успели обсудить, поэтому ждите следующий разговор!)
👍3❤1
This media is not supported in your browser
VIEW IN TELEGRAM
Всем привет! 😎
Мне понравился формат общения с гостями, в котором через обычный разговор можно погрузиться в новую тему и узнать много нового.
Поэтому представляю предстоящий разговор с моим другом Ильёй Башаровым. Илья - эксперт в области 3D deep learning, который, начав с классического CV, шаг шагом перешел в 3D, и имеет богатый реализации как исследовательских, так и прикладных проектов. Вместе с ним мы обсудим:
1⃣ Применение технологии 3D на практике
2⃣ Из чего состоит NeRF
3⃣ Последние прорывные работы в области 3D reconstruction
Эфир будет проходить в воскресенье в 20:00 (по Москве) в этом канале. Присоединяйтесь!😎
Мне понравился формат общения с гостями, в котором через обычный разговор можно погрузиться в новую тему и узнать много нового.
Поэтому представляю предстоящий разговор с моим другом Ильёй Башаровым. Илья - эксперт в области 3D deep learning, который, начав с классического CV, шаг шагом перешел в 3D, и имеет богатый реализации как исследовательских, так и прикладных проектов. Вместе с ним мы обсудим:
1⃣ Применение технологии 3D на практике
2⃣ Из чего состоит NeRF
3⃣ Последние прорывные работы в области 3D reconstruction
Эфир будет проходить в воскресенье в 20:00 (по Москве) в этом канале. Присоединяйтесь!
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥12👍7
Начинаем эфир! Присоединяейтесь 😎
Please open Telegram to view this post
VIEW IN TELEGRAM
Всем привет! 👋
Выкладываю запись воскресного эфира! Таймкоды к видео:
0:00 Вступление и представление гостя
2:47 Бизнес кейс применения 3D reconstruction - онлайн просмотр комнат
5:38 Задача 3D reconstruction
12:57 Что такое NeRF?
15:31 Задачи, которые можно решать, используя NeRF
18:38 Теория фотографирования. Pinhole Camera
23:30 Fourier Features и их важность в использовании NeRF
28:56 Теория NeRF
32:41 Проблемы NeRF
34:50 DS-NeRF: регуляризация на глубину
38:26 Mip-NeRF: решение multiscale problem
42:11 NeRV: редактируемый NeRF
46:43 NeRF--: NeRF без известных поз
53:04 Бонус - создание 3D модели чак-чака
😎
Выкладываю запись воскресного эфира! Таймкоды к видео:
0:00 Вступление и представление гостя
2:47 Бизнес кейс применения 3D reconstruction - онлайн просмотр комнат
5:38 Задача 3D reconstruction
12:57 Что такое NeRF?
15:31 Задачи, которые можно решать, используя NeRF
18:38 Теория фотографирования. Pinhole Camera
23:30 Fourier Features и их важность в использовании NeRF
28:56 Теория NeRF
32:41 Проблемы NeRF
34:50 DS-NeRF: регуляризация на глубину
38:26 Mip-NeRF: решение multiscale problem
42:11 NeRV: редактируемый NeRF
46:43 NeRF--: NeRF без известных поз
53:04 Бонус - создание 3D модели чак-чака
Приятного просмотра! Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Разговор о 3D моделях
Телеграм: https://www.tgoop.com/awesome_dl
Таймкоды:
0:00 Вступление и представление гостя
2:47 Бизнес кейс применения 3D reconstruction - онлайн просмотр комнат
5:38 Задача 3D reconstruction
12:57 Что такое NeRF?
15:31 Задачи, которые можно решать, используя NeRF…
Таймкоды:
0:00 Вступление и представление гостя
2:47 Бизнес кейс применения 3D reconstruction - онлайн просмотр комнат
5:38 Задача 3D reconstruction
12:57 Что такое NeRF?
15:31 Задачи, которые можно решать, используя NeRF…
🔥13❤🔥2👍2
Всем привет! 👋
2 июня c 19:50-20:20 я буду выступать на ODS DataFest в АльфаБанке. Буду рассказывать о направлении, которым занимаюсь уже почти 4 месяца - применение языковых моделей к различным модальностям. Тема огненная и очень перспективная (например, работы Visual ChatGPT и VisProg). Поэтому очень рекомендую к прослушиванию :)
Буду рад пересечься с теми, кто будет очно. Если не будет возможности присутствовать очно, то можно подключиться к онлайн трансляции или посмотреть в записи.
2 июня c 19:50-20:20 я буду выступать на ODS DataFest в АльфаБанке. Буду рассказывать о направлении, которым занимаюсь уже почти 4 месяца - применение языковых моделей к различным модальностям. Тема огненная и очень перспективная (например, работы Visual ChatGPT и VisProg). Поэтому очень рекомендую к прослушиванию :)
Буду рад пересечься с теми, кто будет очно. Если не будет возможности присутствовать очно, то можно подключиться к онлайн трансляции или посмотреть в записи.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🔥3
Всем привет! 👋
Выступаю в 19:55 на ODS с рассказом)
Подключайтесь!
https://www.youtube.com/live/6razMkDfEHc?feature=share
Выступаю в 19:55 на ODS с рассказом)
Подключайтесь!
https://www.youtube.com/live/6razMkDfEHc?feature=share
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
Data Fest 2023, день 14: офлайн в Москве 2 июня
Начинаем заключительный викенд Data Fest 2023!
Сегодня вас ждёт программа и из онлайна, и с живой площадки в гостях у Альфа-Банка в Москве:
— с 11:30 до 15:00 доклады секции Ужасы Медицинских данных в spatial.chat
— с 15:00 до 20:30 программа из Альфа-Банка…
Сегодня вас ждёт программа и из онлайна, и с живой площадки в гостях у Альфа-Банка в Москве:
— с 11:30 до 15:00 доклады секции Ужасы Медицинских данных в spatial.chat
— с 15:00 до 20:30 программа из Альфа-Банка…
🔥5❤🔥1
Обработка чисел в языковых моделях
Давно известна проблема с тем, что языковые модели плохо умеют работать с числами. Они плохо умеют решать арифметические задачи: придумывают ненужные вычисления, неправильно проводят вычисления. Простой пример, показывающий насколько плохи дела, языковая модель при умножении шестизначных чисел справляется в <20% случаев.
Почему так происходит?
Числа для языковых моделей это просто токены. Посмотрим как обучаются языковые модели, на задачу Masked Language Modelling и Causal Language Modelling.
"Привет, я Андрей! Мне
На месте токена
Как решить эту проблему?
Есть четыре основных трюка, которые решают эту проблему.
1️⃣ Добавить больше токенов, где числа играют более активную роль.
Если наша модель плоха в арифметических задачах, то давайте дообучим её на датасетах математических данных. Так поступили в работе Minerva от Google, где они дообучили PaLM-540B. Или недавняя статья от OpenAI "Let’s Verify Step by Step". Как глобальное решение совсем не подходит, но если нужно закрыть определенную проблему, то подойдет.
2️⃣ Научить модель взаимодействовать с калькулятором.
Если модели не умеют выполнять простые математические операции, то может проще научить её пользоваться калькулятором. В работе Toolformer авторы предложили как при помощи in-context learning научить модель работать с API вызовами, на котором можно доучить языковую модель. Также можно попросить модель генерировать исполняемый код, как в работе ViperGPT, куда добавить арифметические операции не составляет труда.
3️⃣ Создать отдельные эмбеддинги для чисел.
Кажется, что все, что не придумать уже сделано и люди уже пытались создать эмбеддинги для чисел. Идея в том, что предсказания токенов текста и чисел концептуально различные задачи. Поэтому правдоподобие можно разбить на две части. Если следующий токен скорее всего текстовый, то используем стандартную схему обучения. Однако, если следующий токен скорее всего численный, то тут можно решать задачу регрессии на предсказание числа. На этой идее и базируется статья NumGPT. Еще можно отметить работу DICE, где эмбеддинги чисел строились так, чтобы косинусное расстояние между ними отражало реальное расстояние на численной прямой.
🤔 Вывод:
Проблема с предсказанием чисел имеет долгую историю, которая не разрешится в ближайшем будущем, потому что числа слишком концептуально отличаются от текста и без дополнительных инструментов в виде: API вызовов калькулятора и отдельных численных моделей или дообучение на математический датасет не обойтись
🏷Tags: #llm #numerical
Давно известна проблема с тем, что языковые модели плохо умеют работать с числами. Они плохо умеют решать арифметические задачи: придумывают ненужные вычисления, неправильно проводят вычисления. Простой пример, показывающий насколько плохи дела, языковая модель при умножении шестизначных чисел справляется в <20% случаев.
Почему так происходит?
Числа для языковых моделей это просто токены. Посмотрим как обучаются языковые модели, на задачу Masked Language Modelling и Causal Language Modelling.
"Привет, я Андрей! Мне
[MASK]лет". Я уже [MASK] лет интересуюсь областью искусственного интеллекта.На месте токена
[MASK] можно в целом ожидать любой численный токен и для человека такие предложения будут неотличимых от реальных. В этом и проблема - во многих случаях модель при генерации понимает, что тут должно быть число, но не знает какое точно. Поэтому она в среднем выучивает, что эмбеддинги чисел достаточно близки и контекст мало на них влияет. Как решить эту проблему?
Есть четыре основных трюка, которые решают эту проблему.
Если наша модель плоха в арифметических задачах, то давайте дообучим её на датасетах математических данных. Так поступили в работе Minerva от Google, где они дообучили PaLM-540B. Или недавняя статья от OpenAI "Let’s Verify Step by Step". Как глобальное решение совсем не подходит, но если нужно закрыть определенную проблему, то подойдет.
Если модели не умеют выполнять простые математические операции, то может проще научить её пользоваться калькулятором. В работе Toolformer авторы предложили как при помощи in-context learning научить модель работать с API вызовами, на котором можно доучить языковую модель. Также можно попросить модель генерировать исполняемый код, как в работе ViperGPT, куда добавить арифметические операции не составляет труда.
Кажется, что все, что не придумать уже сделано и люди уже пытались создать эмбеддинги для чисел. Идея в том, что предсказания токенов текста и чисел концептуально различные задачи. Поэтому правдоподобие можно разбить на две части. Если следующий токен скорее всего текстовый, то используем стандартную схему обучения. Однако, если следующий токен скорее всего численный, то тут можно решать задачу регрессии на предсказание числа. На этой идее и базируется статья NumGPT. Еще можно отметить работу DICE, где эмбеддинги чисел строились так, чтобы косинусное расстояние между ними отражало реальное расстояние на численной прямой.
🤔 Вывод:
Проблема с предсказанием чисел имеет долгую историю, которая не разрешится в ближайшем будущем, потому что числа слишком концептуально отличаются от текста и без дополнительных инструментов в виде: API вызовов калькулятора и отдельных численных моделей или дообучение на математический датасет не обойтись
🏷Tags: #llm #numerical
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🔥2
Forwarded from КПД
No Train No Gain: Revisiting Efficient Training
Algorithms For Transformer-based Language Models
[Статья][Код]
С течением времени запрос на обучение языковых моделях, основанных на Трансформерах, растет быстрее, чем имеющиеся в распоряжении вычислительные ресурсы. Потому и возникает запрос на эффективное обучение моделей.
Коллективный разум DL-сообщества предложил великое множество стратегий ускорения обучения: модификации процедуры обучения с использованием только части слоев, использованием части данных и алгоритмами отпимизации.
Каждая статья заявляет в той или иной форме, что предложенный метод эффективнее базового решения. Но что означает эффективнее? Ответ на этот вопрос не столь тривиален.
Сравнение эффективности алгоритмов
Количество шагов алгоритмов может быть плохим показателем - так как время одного шага может существенно различаться между алгоритмами. Алгоритм делающий в два раза меньше шагов, но с пятикратной стоимостью шага не слишком полезен.
Время работы зависит от используемой конфигурации вычислительных ресурсов.
Число операций с плавающей точкой зачастую не отражает специфику реализации математических операций на железе, время доступа к памяти, накладные расходы на коммуникацию….
Потому авторы предлагают использовать относительное время работы, привязанное к конкретному железу. Для некоторой конфигурации (видеокарты, CPU, ОЗУ) фиксируется вычислительный бюджет, и при запуске на другом сервере надо замерить отношение работы алгоритма к исходной конфигурации и с поправкой на этот фактор проводить все замеры. Т.е если новый сервер в 2 раза быстрее - то эксперимент должен быть в два раза короче.
Algorithms For Transformer-based Language Models
[Статья][Код]
С течением времени запрос на обучение языковых моделях, основанных на Трансформерах, растет быстрее, чем имеющиеся в распоряжении вычислительные ресурсы. Потому и возникает запрос на эффективное обучение моделей.
Коллективный разум DL-сообщества предложил великое множество стратегий ускорения обучения: модификации процедуры обучения с использованием только части слоев, использованием части данных и алгоритмами отпимизации.
Каждая статья заявляет в той или иной форме, что предложенный метод эффективнее базового решения. Но что означает эффективнее? Ответ на этот вопрос не столь тривиален.
Сравнение эффективности алгоритмов
Количество шагов алгоритмов может быть плохим показателем - так как время одного шага может существенно различаться между алгоритмами. Алгоритм делающий в два раза меньше шагов, но с пятикратной стоимостью шага не слишком полезен.
Время работы зависит от используемой конфигурации вычислительных ресурсов.
Число операций с плавающей точкой зачастую не отражает специфику реализации математических операций на железе, время доступа к памяти, накладные расходы на коммуникацию….
Потому авторы предлагают использовать относительное время работы, привязанное к конкретному железу. Для некоторой конфигурации (видеокарты, CPU, ОЗУ) фиксируется вычислительный бюджет, и при запуске на другом сервере надо замерить отношение работы алгоритма к исходной конфигурации и с поправкой на этот фактор проводить все замеры. Т.е если новый сервер в 2 раза быстрее - то эксперимент должен быть в два раза короче.
🔥1
Forwarded from КПД
Архитектурные модификации
Layer stacking
Обучаем меньшую модель некоторое число шагов, а затем дублируем слои и обучаем далее уже вдвое большую модель.
Предполагаемый выигрыш за счет того, что меньшая модель делает большее число шагов при фиксированном размере.
Layer dropping
В архитектурах с residual connections в целях регуляризации иногда пропускают вычисления части слоев (например MHA или FeedForward block). Кроме того, сия процедура дает некоторую экономию в количестве вычислений. Обыкновенно в начале обучения
вероятность пропуска слоя равна нулю и с течением времени растет до некоторого максимального значения. Кроме того, вероятность растет от входа модели, к ее выходу (согласно народной мудрости в начале обучаются универсальные и общие представления, а ближе к выходу более специфичные).
Отбор данных
Selective backprop
На обратном проходе градиенты считаются только по примерам с наибольшим значением функции потерь. На прямом проходе считается лосс, а на обратном сэмплируются примеры отранжированные по недавней истории функции потерь.
RHO Loss
Предложенная в работе метод уменьшает вес примеров с большими значениями train лосса, так как они скорее всего соотвествуют шумным или некорректно размеченным данным.
Оптимизаторы
Lion
В качестве альтернативы общеупотребимому Adam-у в начале этого года был предложен отпимизатор Lion, найденный с помощью reinforcement learning. Теоретических гарантий на его превосходство нет, но в ряде работ утверждается, что он немного накидывает по сравнению с Adam. При этом сам алгоритм достаточно прост.
Sophia
Все новое - это хорошо забытое старое, как известно. Sophia - по существу тот же Adam, но использующий другой способ оценки кривизны для preconditioning. В исходной работе использовались две формулировки - через Hutchinson estimator и Gauss-Newton-Bartlett. В экспериментах здесь используется вторая, так как ее реализация была опубликована (и работала немного лучше в cтатье по Sophia).
Layer stacking
Обучаем меньшую модель некоторое число шагов, а затем дублируем слои и обучаем далее уже вдвое большую модель.
Предполагаемый выигрыш за счет того, что меньшая модель делает большее число шагов при фиксированном размере.
Layer dropping
В архитектурах с residual connections в целях регуляризации иногда пропускают вычисления части слоев (например MHA или FeedForward block). Кроме того, сия процедура дает некоторую экономию в количестве вычислений. Обыкновенно в начале обучения
вероятность пропуска слоя равна нулю и с течением времени растет до некоторого максимального значения. Кроме того, вероятность растет от входа модели, к ее выходу (согласно народной мудрости в начале обучаются универсальные и общие представления, а ближе к выходу более специфичные).
Отбор данных
Selective backprop
На обратном проходе градиенты считаются только по примерам с наибольшим значением функции потерь. На прямом проходе считается лосс, а на обратном сэмплируются примеры отранжированные по недавней истории функции потерь.
RHO Loss
Предложенная в работе метод уменьшает вес примеров с большими значениями train лосса, так как они скорее всего соотвествуют шумным или некорректно размеченным данным.
Оптимизаторы
Lion
В качестве альтернативы общеупотребимому Adam-у в начале этого года был предложен отпимизатор Lion, найденный с помощью reinforcement learning. Теоретических гарантий на его превосходство нет, но в ряде работ утверждается, что он немного накидывает по сравнению с Adam. При этом сам алгоритм достаточно прост.
Sophia
Все новое - это хорошо забытое старое, как известно. Sophia - по существу тот же Adam, но использующий другой способ оценки кривизны для preconditioning. В исходной работе использовались две формулировки - через Hutchinson estimator и Gauss-Newton-Bartlett. В экспериментах здесь используется вторая, так как ее реализация была опубликована (и работала немного лучше в cтатье по Sophia).
Forwarded from КПД
Эксперименты
Для сравнения различных методик эффективного обучения авторы берут BERT и T5 модели, обучают на задачи MLM и span-corrupting MLM, соответственно. Для предобучения используется C4. Для каждого метода параметры подстраиваются на основе некоторой сетки.
Алгоритмы сравниваются на вычислительных бюджетах в 6,12,24 часов на одной RTX 3090 (A100 для Т5).
Для оценки качества модели BERT валидируют результат файтьюнинга BERT на задачах из GLUE/SuperGLUE бенчмарков. Кроме того, оценивается качество работы MLM на валидации для BERT и T5. И для T5 модель проверяют на Super Natural Instructions.
Как оказалось, ни один из перечисленных методов оптимизации процедуры обучения не дают стабильного выигрыша по сравнению со стандартной процедуро обучения (Adam без наворотов).
На коротких отрезках - 6-12 часов некоторый профит имеет место от Layer stacking, практически исчезающий при более длительном обучении. Остальные алгоритмы из рассмотренных не дают выигрыша против бейзлайна ни при каких бюджетах обучения. Методы отбора данных при заданном ограничении на время работают хуже и на MLM и на GLUE.
Новомодные отпимизаторы (Lion и T5) сходятся хуже по времени со сравнению с baseline.
Итоги
Результат данной статьи в очередной раз подтверждает важность аккуратность аккуратного и честного сравнения методов друг с другом. Статьи по Deep Learning выходят все чаще и чаще, потому спрос на ‘санитаров’ леса будет только расти с течением времени.
Наука на то и наука, что фальсифицируема.
Для сравнения различных методик эффективного обучения авторы берут BERT и T5 модели, обучают на задачи MLM и span-corrupting MLM, соответственно. Для предобучения используется C4. Для каждого метода параметры подстраиваются на основе некоторой сетки.
Алгоритмы сравниваются на вычислительных бюджетах в 6,12,24 часов на одной RTX 3090 (A100 для Т5).
Для оценки качества модели BERT валидируют результат файтьюнинга BERT на задачах из GLUE/SuperGLUE бенчмарков. Кроме того, оценивается качество работы MLM на валидации для BERT и T5. И для T5 модель проверяют на Super Natural Instructions.
Как оказалось, ни один из перечисленных методов оптимизации процедуры обучения не дают стабильного выигрыша по сравнению со стандартной процедуро обучения (Adam без наворотов).
На коротких отрезках - 6-12 часов некоторый профит имеет место от Layer stacking, практически исчезающий при более длительном обучении. Остальные алгоритмы из рассмотренных не дают выигрыша против бейзлайна ни при каких бюджетах обучения. Методы отбора данных при заданном ограничении на время работают хуже и на MLM и на GLUE.
Новомодные отпимизаторы (Lion и T5) сходятся хуже по времени со сравнению с baseline.
Итоги
Результат данной статьи в очередной раз подтверждает важность аккуратность аккуратного и честного сравнения методов друг с другом. Статьи по Deep Learning выходят все чаще и чаще, потому спрос на ‘санитаров’ леса будет только расти с течением времени.
Наука на то и наука, что фальсифицируема.
👍3❤1
Tags: #robotics #llm #reinforcement_learning
Title: Machine Learning in Robotics: a Brief Overview (Part 1)
TLDR: Вступительный пост к серии постов на тему применения машинного обучения, и, в частности, больших языковых моделей в задачах роботехники.
Недавно, я познакомился с областью робототехники и увидел в ней большой потенциал для искусственного интеллекта (для меня робот, выполняющий все бытовые обязанности предел мечтаний). Поэтому мне самому стало интересно погрузиться в эту тему и познакомить вас с ней. Поэтому я обратился к аспиранту Сколтеха Тимуру Ахтямову с просьбой рассказать о применении машинного обучения в этой области. Он согласился и поэтому вас ждёт увлекательная серия постов, посвященная ML в роботехнике.
———
Думаю, многие из тех, кто внимательно следит за миром искусственного интеллекта, заметили возросший интерес ряда крупных игроков, таких как Google (в лице DeepMind и Google Robotics), Meta и других корпораций, к применению LLM-ок и мультимодальных моделей в области робототехники, что, как мне кажется, привлекло к ней внимание многих ребят из "чистого" ML. В связи с этим в грядущей серии постов хотелось бы с одной стороны рассказать о том, какие проблемы решает машинное обучение в робототехнике, какую роль здесь играют языковые модели и почему их применение потенциально может привести к революции в индустрии, а с другой стороны сформировать некий хотя бы поверхностное введение в роботехнику для МЛ-ребят, не имевших опыта с работы с "околожелезячными" задачами.
Title: Machine Learning in Robotics: a Brief Overview (Part 1)
TLDR: Вступительный пост к серии постов на тему применения машинного обучения, и, в частности, больших языковых моделей в задачах роботехники.
Недавно, я познакомился с областью робототехники и увидел в ней большой потенциал для искусственного интеллекта (для меня робот, выполняющий все бытовые обязанности предел мечтаний). Поэтому мне самому стало интересно погрузиться в эту тему и познакомить вас с ней. Поэтому я обратился к аспиранту Сколтеха Тимуру Ахтямову с просьбой рассказать о применении машинного обучения в этой области. Он согласился и поэтому вас ждёт увлекательная серия постов, посвященная ML в роботехнике.
———
Думаю, многие из тех, кто внимательно следит за миром искусственного интеллекта, заметили возросший интерес ряда крупных игроков, таких как Google (в лице DeepMind и Google Robotics), Meta и других корпораций, к применению LLM-ок и мультимодальных моделей в области робототехники, что, как мне кажется, привлекло к ней внимание многих ребят из "чистого" ML. В связи с этим в грядущей серии постов хотелось бы с одной стороны рассказать о том, какие проблемы решает машинное обучение в робототехнике, какую роль здесь играют языковые модели и почему их применение потенциально может привести к революции в индустрии, а с другой стороны сформировать некий хотя бы поверхностное введение в роботехнику для МЛ-ребят, не имевших опыта с работы с "околожелезячными" задачами.
Telegram
Timur Akhtyamov
🔥3❤1👍1
