AI Для Всех
12.8K subscribers
1.17K photos
152 videos
10 files
1.37K links
Канал, в котором мы говорим про искусственный интеллект простыми словами

Главный редактор и по рекламе: @crimeacs

Иногда пишут в канал: @GingerSpacetail, @innovationitsme
Download Telegram
NeuralHash, которым Apple собралась защищать приватность наших данных на iCloud (читайте подробнее тут) уже реверс инжинернули. На Реддит доступен код и описание.

#news
Program Synthesis with Large Language Models

Авторы используют большие языковые модели для синтеза компьютерных программ, выполнения программ, решения математических задач и диалога с людьми для итеративного уточнения кода.
Модели могут решить 60% и 81% задач по программированию и математике, соответственно.

Оказалось что, большие модели не только решают проблемы, которые не могут решить меньшие модели, но и более надежно решают более простые проблемы, которые меньшие модели решают реже.

В статье разобранны различные аспекты работы с такими кодовыми моделями.

ArXiv

#code #generative #nlp
При этом стоит отметить, что главное достижение этой статье - это датасеты и про "диалог с людьми".
Сама статья во многом пессимистична.
Первое - самые первые примеры написаны неверно

В первой задаче модель очевидным образом затюнилась на тесты. При этом такой код скорее бы всего обычный программист не написал - он в принципе нелогичен.

Во втором же случае программа не написала MergeSort. Это очень грубая поделка под нее, которая на Python будет отжирать много памяти и работать долго в силу тех же slice и append.
Второе - авторы сами явно показывают, что даже на сравнительно простых задачах модель склонна переобучаться на assert.
Например, в задаче удалить первое и последнее вхождения переданного на вход символа не все сгенерированные программы проходят challange test кейсы, если их им не дать на вход.

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


Аналогично, программа не всегда удачно объясняет свое решение (тоже очень простой задачи)

По сути это опять же к тому, что как autocomplete эти модели могуут работать. По сути и обычный autocomplete может вам подсунууть полную отсебятину.
Но шутки про "ща нейросетка заменит программиста" пока еще остаются шутками.
Выпуск свежайших новостей от Яника уже на канале: https://youtu.be/gu5UM99qaVc

P.S.: я знаю что стоит написать значительно более длинную подводку, но common! Это же Яник, просто посмотрите, это супер смешно!!!

#news
Аватарка канала.

Присылайте свои варианты в комменты, если вам не нравится моя. Устроим голосовалку - и лучшую поставим на заставку канала.

Условия: должна быть сгенерирована любой нейросетью, не должна содержать никакой порнографии или запрещенных материалов
WebDataset

WebDataset - это реализация PyTorch Dataset (IterableDataset), обеспечивающая эффективный доступ к наборам данных, хранящимся в POSIX tar архивах, и использующая только последовательный/потоковый доступ к данным. Это дает существенное преимущество в производительности во многих вычислительных средах, и это очень важно для очень крупномасштабного обучения.

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

WebDataset реализует стандартный интерфейс PyTorch IterableDataset и работает с PyTorch DataLoader.

GitHub

#datasets #code #training
#datasets #images
Несколько датасетов для распознавания эмоций по фотографии

1. fer2013

Датасет с черно-белыми фотографиями лиц людей.
Семь возможных эмоций
happy, sad, angry, afraid, surprise, disgust, neutral.
28000 изображений в обучении, 3500 - валидация, 3500 - тест.
Можно использовать для учебных задач, скачивается легко с kaggle.
Там же есть ноутбуки для работы с ним.

2. AffectNet

Очень крупный датасет цветных фотографий, отображающих эмоции. Скачать можно по запросу здесь. Студенты скачать не могут, нужен Lab Manager, Professor or Student Supervisor.

3. EMOTIC

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

26 классов эмоций + 3 "непрерывные" шкалы (позитивность, контроль над ситуацией, заинтересованность)

Датасеты взяты из списка отсюда.
CNN Explainer

Интерактивная визуализация Convolutional Neural Networks, которая позволяет заглянуть на каждый слой и посмотреть что именно происходит с даннными. Помимо интерактивной части, объяснняются все основные элементы. CNN с красивыми и подробными иллюстрациями.

Играть тут (к сожалению работает только с компа, на телефоне очень глючит)

#basics #images #convolutions #XAI
Tesla AI Day

Стрим начнется в 3 часа ночи по Москве. Смотреть тут

#news
Do Vision Transformers See Like Convolutional Neural Networks? (Google AI)

Недавние работы показали, что (Vision) Transformer models (ViT) могут достигать высокой производительности в задачах классификации изображений. В связи с этим возникает главный вопрос: как они эти задачи решают? Действуют ли они подобно сверточным сетям или учат совершенно другие визуальные представления?

Анализируя внутреннюю структуру представления ViTs и CNNs, авторы обнаружили поразительные различия между этими двумя архитектурами, например, ViT имеет более однородное представление во всех слоях. Оказалось, решающую роль играют self-attention, который позволяет рано агрегировать глобальную информацию, и остаточные связи ViT, которые передают признаки от нижних слоев к верхним.

Ещё авторы демонстрируют влияние предварительного обучения и масштаба датасетовна промежуточные признаки и transfer learning, и в заключение обсуждают связи с новыми архитектурами, такими как MLP-Mixer.

ArXiv

#transformer #image #Convolutions #theory
TorchRS

В репозитории реализованы в PyTorch популярные наборы данных и моделей в задачах дистанционного зондирования (обнаружение изменений, сверхразрешение изображений, классификация/сегментация растительного покрова, создание подписей к изображениям, аудиовизуальное распознавание и т.д.) для различных оптических (Sentinel-2, Landsat и т.д.) и радиолокационных датчиков с синтезированной апертурой (SAR) (Sentinel-1).

GitHub

#ScientificML #images #code #datasets
Online Hard Example Mining

Некоторые наборы данных для обнаружения объектов содержат подавляющее число легких примеров и небольшое число трудных примеров. Автоматический отбор этих трудных примеров может сделать обучение более эффективным и результативным. OHEM, или Online Hard Example Mining, - это метод бутстраппинга, который модифицирует SGD для неравномерной выборки сэмплов в зависимости от текущего лосса каждого рассматриваемого сэмпла.

arXiv
GitHub

#basics #detection #segmentation
Просто представьте how cool would that be!
Facebook CodeGen

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

Предоставлен эталонные реализации следующих работ:

DOBF: A Deobfuscation Pre-Training Objective for Programming Languages (2021)

TransCoder: Unsupervised Translation of Programming Languages (2020)

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

GitHub

#code
Consistency Regularization for Variational Auto-Encoders

Вариационные автоэнкодеры (ВАЕ) - мощный подход к self-supervised learning. VAE представляет собой вариационное семейство, параметризованное глубокой нейронной сетью, называемой кодером, которая принимает данные на вход.

Этот кодер VAE обладает нежелательным свойством: он отображает наблюдение и преобразование этого наблюдения в различные латентные представления. Такая "непоследовательность" кодировщика снижает качество изученных представлений.

В данной работе предлагают метод регуляризации для обеспечения согласованности в VAE. Идея заключается в минимизации расхождения Куллбэка-Лейблера (KL) между вариационным распределением при условии наблюдения и вариационным распределением при условии случайного семантически сохраняющего преобразования этого наблюдения. Эта регуляризация применима к любому VAE и более того улучшает любой из них.

arXiv

#SSL #vae #generative
DECORE: Deep Compression with Reinforcement Learning

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

В отличие от других методов, DECORE прост и быстр в обучении, требуя всего несколько часов обучения на 1 GPU. При применении к стандартным сетевым архитектурам на различных наборах данных наш подход достигает сжатия от 11x до 103x на различных архитектурах, сохраняя при этом точность, аналогичную точности исходных больших сетей.

arXiv

#compression #inference #RL
Стоит отметить, что валидируются авторы на сравнительно простых датасетах (CIFAR-10 и CIFAR-100), при этом используемые архитектуры не являются SOTA и даже не близки к ним.

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

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

Идея очень простая и странно, если ее не использовали до этого.

Кода к статье пока нет, потому нельзя проверить гипотезу о том, что такой подход можно использовать для отбора признаков на первом слое.
Родственные такому подходы хотя в плане первого слоя нейросете мною наблюдались (здесь, например. Причем, RL не пригождалось).

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

Авторы не показывают графиков падения качества vs сжатие для других подходов, что не позволяет понять, что конкретно они творят с MorphNet. Возможно, если выкидывать из него веса пока не получишь качество, как у их подхода, сжатие будет и сравнимым.

Опять же, проверить это мешает то, что кода они не выложили.