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

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

Иногда пишут в канал: @GingerSpacetail, @innovationitsme
Download Telegram
Forwarded from TechSparks
В каждой шутке есть доля не только шутки ;))
Наконец выложили в открытый доступ прекрасный проект «Балабоба»: в нем нейросеть Яндекса из семейства YaLM не просто продолжает заданное вами начала текста — но и окрашивает его в выбранный стиль.
Как всегда с хорошими генеративными текстами — иногда уморительно, иногда тревожно.
«Этот пост не целиком написан нейросетью, хотя: - частично он является правдой.
- я старался подбирать факты, чтобы пост был интересен.
Поэтому я буду благодарен за комментарии и ваши вопросы по теме.
PS: Я не являюсь автором этих слов.»
Играйтесь, друзья, пока игрушка свежа ;))

https://yandex.ru/lab/yalm
Мы с ребятами из EleutherAI зарелизили text-to-image сетку CogView на колаб.

Prompt можно писать на любом языке (он под капотом переводится на китайский все равно)

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

Один популярный пример выглядит так: возьмём квадрат на плоскости и впишем в него круг. Ясно, что круг закроет большую часть площади квадрата. Дальше, возьмём куб и впишем в него шар. Опять же, шар займёт большую часть объёма куба. Но вот в четырёхмерном случае гиперсфера займёт меньше трети объёма гиперкуба, а при дальнейшем повышении размерности отношение их объёмов сходится к нулю. При этом евклидово расстояние от центра n-мерного куба до любого из его 2^n углов растёт как sqrt(n), т.е. неограниченно; а основной объём пространства (т.е., например, основная часть равномерно случайно взятых точек) внутри такого куба оказывается на расстоянии от центра с матожиданием sqrt(n/3) и с убывающей к нулю дисперсией. Короче, n-мерный куб — это очень странное место, с кучей углов и пустым центром.

Другой пример — гипотеза Борсука о возможности разбиения n-мерного тела диаметром 1 на n+1 тел диаметром меньше 1. Она доказана для n<=3 и опровергнута для n>=64. Посредине — томящая неизвестность.

Всё это обычно выглядит как игры разума, не отягощённого бытовыми мелочами, однако бум нейросетей принес нам популярность всяких многомерных эмбеддингов и представлений — слов, текстов или картинок, и там такие пакости случаются регулярно. Недавно, в одной из задач мне пришлось столкнуться с такой штукой:

Возьмём, скажем, 100-мерное пространство и выберем в нём равномерно случайно из единичного гиперкуба 42 точки. Пронумеруем их в некотором случайном, но фиксированном порядке, от 1 до 42. Какова вероятность, что в нашем пространстве найдётся такая ось, в проекции на которую наши точки выстроятся в нужном порядке? Ответ: больше 99%. Кому интересно, можете посмотреть мой скрипт на питоне, которым это эмпирически можно проверить (работает довольно долго, решает системы линейных неравенств, пересекая полупространства для каждой пары точек).
Интересная статья (и код) от Яндекса про DL с табличными данными.

GitHub

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

Medium

#metrics
Хорошая статья.

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

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

Второй подход из статьи - про мультимодальность, а именно - использовать сразу несколько типов данных, в случае их сетки - текстовые описания и картинки. Подход интересный, тоже можно рассказать. Например - передавать вместе с фотографией список симптомов/анализы.
К сожалению, для мед данных тут будет нюанс, что без transfer learning мы точно переобучимся на такое - данных мало и инфа о пациенте поможет нейросетке просто заучивать пациентов. А если делать transfer, то не факт, что предобученеые на данных преимущественно другого рода сетки будут хорошо работать.
Еще один минус - даже на словах из статьи видно, что чтобы получить выигрыш от модальности им пришлось очень много "химичить". Не факт, что в рамках небольшего коллектива это возможно

Еще статья хороша для вводных примеров - используется много разного, что позволяет склеивать разные темы

#classification #images
Ну и продолжение в источнике
Biological structure and function emerge from scaling unsupervised learning to 250 million protein sequences
Alexander Rives, Joshua Meier, View ORCID ProfileTom Sercu, Siddharth Goyal, Zeming Lin, Jason Liu, Demi Guo, Myle Ott, C. Lawrence Zitnick, Jerry Ma, and Rob Fergus
Статья: https://www.pnas.org/content/118/15/e2016239118
Модель: https://github.com/facebookresearch/esm

Чего мы всё про NLP, да про NLP, давайте про биологию. Там уже тоже как и в NLP пару лет назад происходит свой “ImageNet moment”, который я бы скорее назвал “BERT moment”, ибо как раз NLP сильнее на него повлиял. Да и DeepMind вот-вот уже обещает заопенсорсить свой AlphaFold2 (https://t.co/uP7uzgGMSf), так что самое время. Вот недавно в PNAS вышла статья по уже древнему препринту.

Идея классическая: давайте возьмём все белковые последовательности (для незнакомых с биологией, белки состоят из последовательности аминокислот, здесь их 20 стандартных и 5 нестандартных) и обучим языковую модель по типу BERT’а (энкодер трансформера, восстанавливающий замаскированные токены — конкретные аминокислоты, лосс обычный MLM). Прелесть такого обучения, что оно целиком self-supervised, то есть не требует никаких размеченных данных и выучивает закономерности, наблюдаемые в самих данных. И как полагается возьмём всего побольше — трансформер поглубже, датасет побольше.

Датасет это 250M последовательностей из UniParc (UniProt Archive содержит большинство опубликованных в мире последовательносей, https://www.uniprot.org/help/uniparc), которые суммарно состоят из 86B аминокислот (ну то есть как бы 86Гб текста). Из него набирают три разных датасета, 1) low-diversity UR100 (последовательности UniRef100 получены кластеризацией идентичных последовательностей из UniParc), 2) high-diversity sparse UR50/S (репрезентативные последовательности кластеров из UniRef50, который кластеризован по 50% sequence identity), и 3) high-diversity dense UR50/D (делается равномерная выборка по кластерам из UniRef50). Для оценки модели рандомно спрятаны 10% кластеров из UniRef50 и все последовательности этих кластеров не участвуют в обучении.

Моделей в итоге обучено несколько разных (6, 12, 34 слоя), и дополнительно самая глубокая (в 652.4М параметров) потом ещё оптимизирована по своим гиперпараметрам, она называется ESM-1b.

Главный интерес в этом, выучит ли модель чисто из данных одиночных последовательностей (но зато в огромном количестве) какие-то полезные биологически релевантные фичи. И она выучивает!

Модель работает в режиме аналогичном BERT’у, на вход подаются последовательности аминокислот, где каждый токен — это отдельная аминокислота, на выходе получаются эмбеддинги этих аминокислот, которые можно использовать для разных задач. Ну и поскольку мы знаем, что рандомные эмбеддинги тоже неплохо работают, сравниваются эмбеддинги до обучения и после.

Структура пространства неплохо отражает биохимические свойства отдельных аминокислот — ароматические, гидрофобные, заряженные и т.п. образуют отдельные кластеры.

Можно получить эмбеддинги для целого белка — например, усреднив эмбеддинги всех аминокислот (хотя по идее <cls> токен в модели вроде как тоже есть). Ортологичные (с общим происхождением у разных видов) группы белков при этом кластеризуются. По расстоянию в пространстве эмбеддингов также неплохо определяются дальние гомологи. Плюс для позиций, которые совпали бы после множественного выравнивания, эмбеддинги после обучения оказываются сильно более близкими. То есть модель неявно выучивает и что-то про выравнивание (в обучении никакого выравнивания не было, работа идёт на индивидуальных последовательностях).

Отдельный пул задач про предсказание вторичной (спирали, листы и т.п.) и третичной структуры (контактов между аминокислотами в цепочке белка). Проверяют это традиционными методами: выучивают линейные проекции фич или строят глубокую сетку поверх них, и далее решают задачи предсказания вторичной структуры (по восьми классам) или вероятность контакта для любых пар аминокислот. Неплохо работает, не хуже более классических альтернатив.
AI Для Всех
Biological structure and function emerge from scaling unsupervised learning to 250 million protein sequences Alexander Rives, Joshua Meier, View ORCID ProfileTom Sercu, Siddharth Goyal, Zeming Lin, Jason Liu, Demi Guo, Myle Ott, C. Lawrence Zitnick, Jerry…
как верно заметили мои коллеги, к сожалению, практическое применение статьи - 0. Она не может побить даже HMM, в которых параметров в разы меньше. Потому в "примеры в биологии" включать не стоит. Но можно - как область-где-еще-не-смогли-но-может-быть-вы-сможете
Большая статья о том как учить GAN.

По сути конечно многое из этого только в индивидуальных случаях работает, но все же

#gan #training