AI Для Всех
12.2K subscribers
1.05K photos
133 videos
10 files
1.33K links
Канал, в котором мы говорим про искусственный интеллект простыми словами

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

Иногда пишут в канал: @GingerSpacetail, @innovationitsme
Download Telegram
Подписчики канала каждый раз когда выходит новая большая “foundational” сетка
Посмотрите какая интереснейшая находка! Оказывается Dall-E 2 придумала свой собственный язык.

Мы можем сгенерировать картинку "Два кита разговаривают о еде, с субтитрами". получаем изображение с текстом "Wa ch zod ahakees rea". Используем полученный текст ("Wa ch zod ahakees rea") в качестве промпта и получаем изображения всякой морской еды. По-видимому, киты действительно говорят о еде на языке DALLE-2.

Ещё больше примеров тут. За наводку спасибо Just Links.

Что ж, надеюсь, что на этот язык набросятся какие-нибудь лингвисты и разберут его на молекулы. Человечество давно мечтало попрактиковаться в расшифровке какого-нибудь реально чужого языка (например как в фильме Arrival). Мне кажется это наш шанс 🛸
Кто-то устал от бесконечных статей на архиве и начал собирать ссылки на основные события последних нескольких лет на сайте deep-learning-links.carrd.co. Надеюсь, это послужит вам полезным справочником! Или, по крайней мере, вам понравятся иллюстрации Dall-E.
Awesome-Diffusion

Один из админов нашел репозиторий, достойный вашего внимания, но перед началом стоит чуть поговорить про то, что такое диффузионные модели:

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

Собственно тема интересная и скорее всего вы о ней слышали, когда смотрели на всякие нейрогенерации коих в последнее время довольно много.

Репозиторий представляет собой сборник ссылок на статьи и их реализации, разделённые на самые разные темы(в том числе NLP, Vision, Audio, TS, etc).

Всё оформлено классно, а самое главное - структурированно.

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

Репозиторий
Классная схема на случай, если вы захотите написать приложение на питоне 🐍
AI помог астрономам уточнить научную теорию интерпретации гравитационного микролензирования.

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

Суть его вот в чем. Пусть у нас есть две звезды: Х и Y. Когда звезда X пролетает перед звездой Y, свет от звезды Y становится насыщеннее. Наблюдая за этими двумя звездами с Земли, можно построить кривую изменения насыщенности света от звезды Y во времени. Она будет выглядеть примерно как на второй картинке к посту слева: очень похоже на гауссово распределение. Однако если при этом вокруг звезды X крутится планета, то на некоторых позициях своей орбиты эта планета будет искажать (distort) свет планеты Y, делая ее свет еще в несколько раз ярче (схему эффекта см. на первой картинке к посту) В этом случае на кривой изменения насыщенности будут возникать "спайки": кратковременные всплески насыщенности. Выглядит это примерно так, как показано на второй картинке справа.

Чем же помог AI:
Разные положения и характеристики планет вызывают разные виды спайков и у астрономов есть несколько математических теорий о том, как эти спайки интерпретировать. Однако недавно случилось вот что: ученые из Berkeley обучили AI алгоритм предсказывать характеристики планеты по данным наблюдений. И получили неожиданное: ответы AI-модели немного не сходились с теми, которые ученые получали, пользуясь математическими теориями. Ученые предположили, что астрономы ошиблись и их теории неполны, и что все они на самом деле являются частными случаями одной, более общей теории. Последующие тесты на разных данных разных планет показали, что так оно и есть: новая теория объясняет все полученные астрономами данные гораздо точнее.

Это еще один пример того, как AI помогает людям в лучшем понимании сложных математических конструктов. Если помните, в декабре 21 года я писала пост о том, как AI помог математикам найти неочевидные связи между различными представлениями гиперболических узлов. Эти два примера открытий с помощью AI объединяет то, что здесь AI помогает человеку смотреть шире и глубже. У людей восприятие довольно ограничено: мы не всегда можем охватить всю многомерность и сложность процессов во Вселенной и заметить сложные связи. А вот AI это дается суперлегко: он отлично справляется с тем, чтобы выделять сложные зависимости в данных.

Источник: SciTechDaily
Статья на arxiv
Так, новости. Короче, я защитился (и теперь меня всякие чиновники обязаны называть Dr. Novoselov, если я на этом настою), мы погуляли в Вене, сейчас я в Тель Авиве, сегодня был очень крутой прайд. Думаю ещё пару дней и буду снова писать посты.
Асим Хаим
Интересные статьи и точка
Forwarded from DL in NLP (Vlad Lialin)
Techniques for Training Large Neural Networks
Блогпост от OpenAI с разбором основных способов параллелизации.

Data Parallel (DP) — держать полную копию сети на каждой карточке, обрабатывать несколько батчей параллельно. Проблема в том, что ты можешь упереться в то что даже batch size = 1 перестаёт помещаться в одну карточку.
Pipeline Parallel (PP) — распилить нейросеть послойно (т.е. вертикально) и держать её на разных карточках. При наивной имплементации работает очень неэффективно. Представьте себе что у вас 10 слойная сеть и вы держите по 1 слою на каждой карточке, если вы просто выполняете forward и backward одного батча на них, то в каждый момент времени у вас 9 видеокарт простаивают. Если нарисовать картинку то у вас есть некий "bubble of idle time". Для того, чтобы этого избежать, можно распилить наш минибатч на микробатчи и начать делать forward pass следующего микробатча (MPS) ещё до того как forward текущего микробатча досчитался. Отсюда и название — pipeline parallel (PP).
Tensor Parallel (TP) — альтернативный способ разделения сети на несколько GPU. Если PP разделяет сетку вертикально, то TP делает это горизонтально. То есть ваши тензоры параметров и активаций теперь могут быть попилены на несколько GPU и одно матричное умножение может считаться на нескольких GPU одновременно. Понятно, что такой подход сильно увеличивает требования по скорости коммуникации между GPU, но при эффективной имплементации (и infiniband + nvlink) это не так медленно как кажется.
Mixture of Experts (MoE) — мы уже рассказывали про MoE, идея состоит в том чтобы вместо одного FCN после attention использовать несколько FCN-экспертов (например 128) и использовать только часть из них (например 4) при каждом forward pass. Для того чтобы выбрать эти 4, добавляется специальный router-слой, который по сути считает attention между экспертами и hidden. Так как на каждом проходе используется только малая часть экспертов можно добиться огромного числа параметров в нейросети. Именно это используют все сетки в 1 триллион и более параметров.

Ещё в статье очень вскользь упомянули ZeRo, который имплементирован в DeepSpeed, которы сейчас становится всё более и более популярен во многом благодаря тому что он позволяет тренировать довольно большие модели (вплоть до 10-20B) в почти DataParallel режиме с помощью разделения на несколько GPU стейта оптимизатора (Stage 1) и рассчёта градиентов (Stage 2). Также есть Stage 3, который по сути tensor parallel, да и практически все остальные способы параллелизации.

Кроме этого, все эти методы можно комбинировать. Например BLOOM от BigScience (176B) тренируется с DP=8, PP=12 (MPS 2), TP=4. Для всего этого используется чуть-чуть модифицированный DeepSpeed.

Сам блогпост даёт неплохое введение в методы параллелизации, и там куча ссылок на релевантные статьи и имплементации, но честно ожидал увидеть в нём что-то большее, тк OpenAI все-таки первопроходцы в этой области. В качестве продолжения (или даже вместо) я бы предложил почитать How To Fit a Bigger Model и Model Parallelism от HuggingFace, они тоже делают отличное введение в эти методы и на мой вкус более техничны.
Мои мысли по поводу LaMDA

Для контекста, речь идёт про это нашумевшее интервью. LaMDA - языковая модель, которая умеет создавать чат ботов. Будем считать, что она сама по себе чат бот. Один инженер из Google слишком с ней заигрался и начал разгонять, что LaMDA разумна, а Google хочет замолчать этот факт, что бы сэкономить деньги на этических расследованиях и прочем. Его конечно же уволили, и теперь он скандалит.

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

Мораль сей басни - разумных чат-ботов у нас ещё нету, а вы будьте немного скептичнее.
У одного из самых интересных проектов этого века вышло обновление!

Для контекста: несколько лет назад, группа ученых возглавляемых Михаилом Бронштейном (русский израилетянин, профессор Imperial College London), решила всерьёз заняться расшифровкой речи китов.

И вот, они наконец-то опубликовали дорожную карту проекта (по сути, то же самое, что и на картинке, только подробнее).

Да, хотелось бы уже супер результатов, но публичное обсуждение этой дорожной карты - уже огромный шаг к тому, что бы однажды рассказать китам про кредиты, ипотеки и налоги :)

Статья в Cell

@nn_for_science
Forwarded from Denis Sexy IT 🤖
ИИ опять творит полезности, учёные из Израиля использовали его для обнаружения одного из самых ранних свидетельств использования контролируемого огня человеком ~800 000 лет назад.

Существует теория под названием «гипотеза приготовления пищи», которая утверждает, что использование огня имело решающее значение в эволюции homo sapiens, так как огонь сделал пищу более безопасной для употребления (и позволил варить еду, которую без варки не съешь, типа круп и тп). Увы, было очень сложно найти подтверждение этому факту до недавнего времени, ведь уголь и зола исчезли после стольких лет.

В своём исследовании учёные отправились в экспедицию в Эвронский карьер на севере страны, где в ходе прошлых раскопок находили окаменелых животных и орудия труда периодом от 800 000 до 1 млн. лет, в общем местная «капсула времени».

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

Анализ теплового воздействия 26 кремниевых инструментов показал, что температура некоторых из них превышала 600°C (я загуглил, температура горения дерева от 500°C до 800°C), бивень вымершего слона также имел признаки нагрева.

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

На фото как раз те самые древние орудия.

Меня всегда впечатляют попытки науки заглянуть на тысячи лет в прошлое.

@Denis
AMA: Ask me anything (спроси меня что угодно). Фото @Maracas
Прощай TensorFlow

Google практически официально признал, что TensorFlow безвозвратно проиграл конкуренцию PyTorch. С этого момента все исследования и продукты гугла потихоньку переезжают на JAX.

Уже начали изучать?
Что такое wavelet?

Нашёл хорошую научно-популярную статью про wavelets. Они используются в обработке сигналов, звуков, изображений и многом другом, так что знать про них полезно любому человеку у которого есть компьютер.

📖 Статья
🚀 @SBERLOGABIG online seminar on data science and bioinformatics:
👨‍🔬 Андрей Зиновьев (Institut Curie/Paris Artificial Intelligence Research Institute, France) «Domain Adaptation Principal Component Analysis (DAPCA): новый линейный метод для доменной адаптации»
⌚️ Пятница 24 июня, 19.00 по Москве

Domain adaptation - это возможность применить алгоритм машинного обучения, тренированный на одних данных, к данным полученным из несколько другого распределения (домена). Классические подходы машинного обучения предполагают, что распределения данных на тренировочной выборке и тестовой одинаковы. Однако, это предположение может быть легко нарушено в реальной жизни, когда обучающая выборка отличается от данных, с которыми должна работать система в условиях эксплуатации. Хуже всего то, что новые данные не имеют известных меток. Такие ситуации типичны и приводят к задаче "Domain adaptation", которая стала популярной в последнее время.

Мы предлагаем метод Domain Adaptation Principal Component Analysis (DAPCA), который обобщает метод Supervised Principal Component Analsysis на случай с исходными размеченными и неразмеченными целевыми доменами. DAPCA находит линейное представление данных, которое учитывает дисперсию исходного и целевого доменов, метки в исходном домене и минимизирует различие распределений признаков представления между двумя доменами. DAPCA можно использовать в качестве полезного этапа предварительной обработки данных для дальнейших задач классификации, когда требуется уменьшение размерности, вместо классического PCA.

Мы тестируем DAPCA на стандартных тестах "Domain adaptation" и показываем его полезность для задачи интеграции данных пациентов при анализе молекулярных профилей отдельных клеток (single cell RNA-seq data).

Пакет доступен на гитхабе https://github.com/Mirkes/DAPCA
(есть имплементации на Python и MATLAB).


Ссылка на зум будет доступна на канале: @sberlogabig перед началом доклада - подписывайтесь!
Мы выпустили лекцию про нейронные сети на графах.

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

Лекция 11. Графовые сети
Одна из самых больших публично доступных языковых моделей от Eluther AI GPT-NeoX-20b вышла в открытый доступ через веб-демо!

Веса были доступны и раньше, но не у всех было железо, что бы с ней играться. Ребята договорились с GooseAI, и те предоставили свои сервера для бесплатного доступа. Ура! Open Source и Open Access рулят!

Присылайте в коменты, что у вас получилось

🤖👉 Играть тут
Яндекс выложил в опенсорс языковую модель YaLM на 100 млрд параметров. В статье на Хабре и в английской версии на Медиуме они делятся не только моделью, но и опытом её обучения (а также примерами диалогов с YaLM 100B):

📗 Вот ссылка на Гитхаб. Модель обучалась 60 дней на 1,7 ТБ текстов из интернета, книг и множества других источников с помощью 800 видеокарт A100.
📘 Сейчас это самая большая в мире GPT-подобная нейросеть в свободном доступе как для английского, так и для русского языков. В Яндексе YaLM уже больше года является частью бэкенда Поиска и Алисы.