Что-то про AI Research и AI образование от Танечки Сотрудничество/предложения: @atmyre
Есть одна вещь в исследованиях вокруг модели CLIP, которую я пока хоть убей не понимаю. Давайте вам расскажу, может, поможете мне понять, в чем я не права.
Осенью я как-то ковыряла CLIP, и наткнулась на сразу кучку статей по очень странной, казалось бы, теме: prompt tuning for visual-language models. Идея этих статей следующая:
Смотрите, вот есть CLIP. Напомню, что это две нейросети — text encoder и image encoder. Эти нейросети переводят текст и изображения в общее пространство эмбеддингов. То есть, если есть картинка и ее текст-описание, то эмбеддинг картинки, полученный из image encoder, будет близок по косинусному расстоянию к эмбеддингу текста, полученному из text encoder. А если текст картинке не соответствует, то эмбеддинги текста и картинки будут по косинусному расстоянию далеки.
Так вот, с помощью CLIP можно решать задачу классификации картинок в zero-shot режиме, т.е. вообще без дообучения. Берем тестовый датасет картинок и названия их классов ('fish', 'dog', ...). Прогоняем названия классов через text encoder, получаем эмбеддинги классов. Далее для каждой картинки получаем ее эмбеддинг из image encoder и сравниваем его по косинусному расстоянию со всеми эмбеддингами классов. Тот класс, для которого косинусное расстояние вышло наименьшим, и будет ответом для картинки.
Таким макаром набирается, скажем, 0.65 accuracy на валидации ImageNet. А дальше возникает следующая идея: давайте придумаем, как получать более хорошие эмбеддинги классов, чтобы zero-shot accuracy стал еще выше. Например, хорошо работает идея с добавлением к названиям классов префикса 'a photo of'. Т.е. если получить эмбеддинги классов в виде 'a photo of <class_name>', то с такими эмбеддингами zero-shot acc станет на пару процентов выше.
И дальше начинаются танцы с бубнами вокруг темы "какой бы придумать префикс еще получше". Пишутся статьи вида "давайте использовать несколько разных префиксов и потом усреднять эмбеддинги классов, полученные с помощью этих префиксов", "давайте нагенерим кучу вариантов префиксов и каким-то хитрым алгоритмом выберем их них n лучших" и т.п. Вот пример подобной недавней статьи, первый ее автор из Кембриджа.
А дальше еще веселее. Возникает идея: а давайте не просто подбирать разные префиксы и их смешивать, давайте учить псевдо-префикс. Т.е. берем n "псевдо-эмбеддингов слов", берем эмбеддинг названия класса, конкатенируем их и получаем эмбеддинг промпта вида <псевдо-слово_1, ..., псевдо-слово_n, class_name>. На небольшой части трейн сета ImageNet учим эти n псевдо-эмбеддингов слов так, чтобы zero-shot результат классификации картинок ImageNet с помощью этих псевдо-эмбеддингов был как можно выше.
Так вот, к чему я это все. А к тому, что, мне кажется, что сама идея тюнинга промптом для CLIP совершенно не имеет смысла.
Объясню мысль в следующем посте ⬇️
Помните, писала пост про десять AI-предсказаний Forbes на 2024 год? Там шестой пункт — про то, что "появятся архитектуры-альтернативы трансформерам". И одним из главных претендентов на архитектуру-убийцу трансформера там была названа Mamba.
Так вот, еще с того момента, как писала тот пост, хотела эту Мамбу заботать, но никак руки не доходили. Но вчера у нас в универ был reading group, который был посвящен как раз Мамбе. Хочу сказать, что reading group действительно помог быстро и понять общую идею модели. Так что собирайтесь в reading club'ы, это круто и полезно)
Но прямо сейчас я пост/статейку про Mamba писать все равно еще не готова, мне нужно понять еще несколько нюансов и заботать статьи, на которых Mamba основана. Пока напишу несколько основных мыслей и тезисов по ней. Поправьте меня, если я вдруг где-то не права.
Начем с того, что Mamba — это не какая-то супер-новая архитектура, которая отличается от всего, что мы видели, и которая взяла и перевернула мир. Mamba основана на State Space Models (SSM) — архитектуре, которая была предложена аж в 1960-х. SSM хорошо подходят для работы с непрерывными типами данных, такими, как аудио.
Главные преимущества SSM:
— количество времени и пямяти, которые требуют SSM во время обучения и инференса, растет линейно относительно длины входной последовательности. Если обучить SSM на задачу языкового моделирования, то модель будет тратить константное количество времени и памяти на каждый шаг генерации;
— SSM легко поддерживают огромный размер контекста, до 1 миллиона токенов.
Это все звучит хорошо. Но для дискретных модальностей, таких, как текст, до сих пор успешно применить SMM не удавалось. То есть, условно, не получалось достичь того, чтобы SMM имела сравнимое с транфсормерами качество на задаче языкового моделирования, не требуя при этом сильно больше времени на inference. Главным препятствием тут было то, что механизм стандартных SSM не позволяет модели выделять из входной последовательности отдельные части информации, которые важны для текущего инпута. А это — очень важное умение для LLM. А те модификации SSM, которые так делать умеют, сразу сильно теряют в скорости.
Авторы Mamba предложили пару модификаций в архитектуру современной SSM, которые и позволили Mamba наделать шуму в обществе и стать, как часто пишут, "угрозой для трансформеров". На задаче языкового моделирования Mamba достигает уровня GPT-NeoX, имея в два раза меньше обучаемых параметров. Более того, скорость инференса у Mamba тоже сильно лучше: она достигает улучшения в 5 раз по сравнению с трансформерами — это просто огромный прорыв для SMM. Конечно, это всего лишь сравнение с GPT-NeoX на нескольких бенчмарках, большой Mamba-based LLM типа GPT-4 еще нет и в помине. Но, на первый взгляд, результаты выглядят очень круто.
Но что же такое эта ваша Mamba? Если оочень кратко, то Mamba — это SSM + MLP блок Трансформера + пара трюков для ускорения модели. По архитектуру Mamba я, надеюсь, позже напишу более подробный пост или статью. А вот в трюках для ускорения становится интересно: они основаны не на архитектурных решениях, а на работе с процессором (т.е. они hardware-aware). На основе знаний о нюансах работы частей GPU, авторы предлагают хранить и обрабатывать тензоры, возникающие в процессе работы SSM, в разных частях GPU. Это сильно ускоряет процесс. Большего я тут пока сказать не могу, потому что практически ничего в устройствах hardware не понимаю (хотя моя мама была инженером-наладчиком ЭВМ, вот это ирония))
Вот как-то так. Надо еще сказать, что больше всего шуму Mamba пока что наводит не в мире NLP/LLM, а в медицине. В этом домене есть данные, представленные в виде последовательностей (геномы), и изображений огромного размера (всякие сканы тканей), поэтому у исследователей есть мысль, что Mamba сможет тут реально помочь. А в NLP то ли очень сильная инерция (мы по уши увязли в трансформерах), то ли у SSM есть серьезные ограничения, которых я пока не понимаю. А может, кто-то уже и ведет работу над SSM-LLM, и мы скоро об этом узнаем)
📃Статья Mamba
Всем привет! У меня классная новость: в субботу, 16 марта, в 13:00 МСК на YouTube-канале DLS состоится живая открытая лекция от компании Pinely. Приглашаю вас всех тоже!
Тема: Применение машинного обучения на финансовых рынках: вызовы и перспективы.
На лекции обсудим, какие сложности встречаются в задаче оценке справедливой цены, почему использование даже хорошо изученных методов может приводить к неожиданным результатам, и как исследователям помогает математика в анализе и решении этих проблем. Будут конкретные примеры подобных сложностей, их математическая формулировка и возможные решения.
Спикеры:
Павел Швечиков - Team Lead RL в Pinely
Михаил Мосягин - ML Researcher в Pinely
Алексей Пономарев - Developer в Pinely
На лекции можно будет задать любые вопросы спикерам. Ссылка на подключение будет перед началом вебинара. Запись также будет.
Приходите!
А вот и кульминация нашей деятельности DLS последних недель — мы наконец запустили регистрацию на первую олимпиаду Deep Learning School по машинному и глубокому обучению! И я вас на эту олимпиаду приглашаю 🙃
Подробнее про олимпиаду:
▫️На олимпиаде два трека: школьники и студенты+. В школьном треке могут принять участие ученики старших классов общеобразовательных школ, гимназий и лицеев. Трек “студенты+” рассчитан на студентов вузов и молодых специалистов в области глубокого обучения. Иначе говоря, в треке "студенты+" могут участвовать вообще все желающие;
▫️Олимпиада проходит в 2 этапа: отборочный и финальный. Даты отборочного этапа — 8-11 марта, на решение задач тут отводится 24 часа. Финальный этап состоится 30 марта, здесь на решение всех задач будет 6 часов. Олимпиада проходит полностью в онлайн-режиме. Участие в олимпиаде индивидуальное;
▫️В каждом из треков будут несколько теоретических и практических задач на темы, связанные с ML/DL. В теоретических задачах нужно будет отправить правильный ответ в проверяющую систему. В практических задачах нужно будет построить модель машинного обучения для решения задач по темам классического ML, CV и NLP;
▫️ Участники, занявшие первые три места в каждом треке, получат призы. Школьники, занявшие призовые места, получат баллы ИД для поступления в бакалавриат ФПМИ МФТИ. А победители и призёры студенческого трека — баллы ИД для поступления в магистратуру ФПМИ МФТИ.
Приглашаем зарегистрироваться до 23:59 МСК 9 марта. 8 марта в 6:00 по МСК уже можно будет начать решать отборочные задание.
Ссылки ⬇️
Регистрация
Телеграм-канал с новостями олимпиады. Там же можно задать любые вопросы по олимпиаде.
Буду рада, если вы придете поучаствовать и позовете с собой друзей! Это очень нас поддержит, так как мы проводим олимпиаду в первый раз)
^ DLS — это то, что в последнее время занимает у меня много времени и сил. Мы там улучшаем программы обеих частей, записываем новые лекции (вот прям щас я в Москве и завтра поеду на Физтех записывать несколько лекций). Обновили полностью сайт (зацените новый дизайн). А еще организуем олимпиаду DLS по ИИ. Олимпиаду мы делаем с нуля в первый раз, поэтому там очень много веселого откапывается по пути 🫠
Короче, дел полно, и они не заканчиваются. С какой-то стороны мне DLS кажется моим мини-edtech-стартапом, только бумажной волокиты на мне меньше, чем могло бы быть, если бы это была отдельная школа, не связанная с МФТИ. А в остальном мы с еще парой человек всем занимаемся сами.
Как-нибудь напишу об этом опыте посты. Ну и сюда, в канал, тоже в ближайшее время начну писать посты, уже даже соскучилась. А вы пока приходите на новый поток DLS, и друзей зовите =)
10 предсказаний Fobes для сферы AI в 2023 году, часть 2. Первая часть тут.
#ai_inside
6. Архитектура, альтернативная трансформеру, получит значимое распространение
В последнее время Transformer — это база многих известных моделей. Это "архитектура по умолчанию", которая доминирует на рынке моделей. Но ничто не вечно, и когда-то, скорее всего, Transformer будет заменен чем-то более эффективным.
Что может прийти на смену трансформеру? Например, какая-нибудь модель, сложность которой относительно длины входящей последовательности растет не квадратично, как у Трансформеров, а суб-квадратично. Это было было намного эффективнее.
Разработкой таких моделей, например, занимается лаба профессора Chris Ré в Стенфорде. Вот, например, несколько их работ на эту тему — S4, Monarch Mixer, Hyena. А еще недавно выпустили статью про модель Mamba, которая, говорят, наделала шуму в AI research коммьюнити. Надо будет почитать и написать посты по этим моделям, что ли)
В общем, Forbes предсказывают, что в 2024 году Трансформеры не уйдут полностью (слишком глубоко сидят), но появится что-то, что создаст им конкуренцию.
7. Стратегические инвестиции поставщиков облачных услуг в стартапы в области AI и связанные с ними последствия для бухгалтерского учета будут оспорены регулирующими органами.
Тут какой-то замут с хитрыми схемами инвестиций компаний в AI-стартапы. Forbes считают, что лавочку в 2024 году постараются прикрыть, и это отразится на объеме инвестиций в AI. Подробнее лучше почитать в Forbes, я боюсь, что неправильно это пойму и напишу бред.
8. Отношения Microsoft и OpenAI начнут ухудшаться.
В Forbes считают, что цели Microsoft и OpenAI не всецело совпадают, и что в 2024 году в партнерстве этих двух компаний начнут проявляться проблемы. Например, так как OpenAI стремится наращивать свой корпоративный бизнес, в какой-то момент OpenAI станет прямым конкурентом Microsoft. Или вот еще что: Microsoft инвестирует в разработки небольших LLM-ок внутри своей компании. Одна из причин — крутить для клиентов большие модельки от OpenAI типа GPT-4 — довольно дорого. А дальше можно подумать о проблемах AI safety, regu;ation и т.п., которые точно начнут возникать. Как обе компании будут с ними справляться?
В целом, Forbes считают, что в 2024 году мы увидим первые признаки разногласий между двумя партнерами.
9. Часть ажиотажа и стадного инстинкта, которые в 2023 году перешли от криптовалюты к AI, вернутся к криптовалюте в 2024 году.
Говорят, что крипта — это циклическая индустрия, и у нее периодически бывают взлеты и падения. А сейчас она еще подросла в цене. Многие сегодняшние "только в AI" инвесторы в прошлом точно так же инвестировали "только в крипту", и Forbes ожидают заворота этого витка от AI в сторону крипты. Интересно, посмотрим)
10. По крайней мере один суд США постановит, что модели генеративного ИИ, обученные в Интернете, представляют собой нарушение авторских прав. Дело дойдет до Верховного суда США.
Ну тут все понятно. По подобным новостям становится понятно, что каких-то судебных разбирательств ожидать точно стоит. Посмотрим, чем закончится история с авторскими правами на трейн дата.
Ого, какой интересный сегодня день: день рождения ChatGPT (ему годик) и этого канала (а ему уже три!)
В честь дз принято дарить подарки — и у меня есть небольшой =) Скоро на YouTube DLS будет интересная открытая лекция, и я вас туда приглашаю! Подробнее, о чем и когда будет лекция, напишу на днях сюда.
🎉 — поздравить ChatGPT (я обязательно ему все передам)
🍾 — поздравить канал
И большое спасибо, что читаете! 🧡
Еще в тему нашей недавней статьи про Artificial Text Boundary Detection: скоро стартует конкурс SemEval-2024 по детекции сгенерированных текстов. Конкурс привязан к воркшопу ACL 2023 Workshop SemEval.
В этом году у конкурса три трека:
- Трек А: бинарная классификация текстов на реальный/сгенерированный;
- Трек B: многоклассовая классификация текстов. Нужно понять, чем был сгенерирован текст: человеком или одной из N моделей;
- Трек С: ровно та задача, которую мы решаем в статье. Дан текст, и нужно понять, с какого мента заканчивается реальный текст и начинается сгенерированный.
Данные для всех треков лежат тут. Обещали выложить страницу соревнования до 20 ноября, но что-то пока что я ее не вижу. Ну, скоро точно должна быть.
Что я тут хотела сказать: этот конкурс — еще один признак того, что задача, которую мы решаем в статье имеет смысл)
Ну и если говорить о конкурсах по детекции текстов, то на Kaggle тоже сейчас идет один. Там даже за лучшие решения денег дают. Правда, если зайти в leaderboard, то можно очень удивиться — там уже 0.96 ROC AUC получили. Мои коллеги на это сказали, что там есть сильный лик в данных. Состоит он в том, что для всех текстов, и тренировочных, и тестовых, известен промпт, с помощью которого текст сгенерировали. Принимая это во внимание, у меня возникает вопрос: а че ROC AUC еще не 1-то?
Если знаете еще какие-то контесты по таким задачам (или по детекции сгенеренных картинок), делитесь в комментариях.
Последнюю неделю все только и говорят, что о Семе Альтмане и его приключениях в OpenAI. Все-все новости я пересказывать не буду, их за меня освещали уже много кто. Если хотите вникнуть в то, что произошло, можно в Сиолошной читать этот пост и далее.
Но что я пишу-то тогда: сегодня появились интересные слухи по поводу того, что стало причиной конфликта. Уже несколько дней назад издания писали, что причиной могло быть письмо сотрудников OpenAI к совету директоров компании. В нем они якобы писали, что недавно в компании произошел очередной прорыв на пути к AGI, и выражали опасение, что это "может угрожать человечеству".
Но что это был за прорыв? Никто точно не знает (и не знает, был ли он вообще), но один из вариантов отсылает к этой недавней статье OpenAI. Давайте разберемся, в чем идея статьи:
Работа эта посвящена обучению LLM решению задач по математике. То есть, модель получает на вход условие задачи, и должна сгенерировать ее решение. Обычно при обучении таких моделей с помощью RL reward считается один раз, в конце генерации решения. Условно: "все решение говно" или "все решение правильное". И неважно, была ли ошибка в генерации решения сделана в самом начале и повлекла за собой неверное рассуждение а дальнейшем, или же до самого конца решение было верным, а ошибка была в последнем выводе.
Авторы статьи предлагают сделать простую модификацию: давайте оценивать не только все сгенерированное решение в целом, но и каждый его шаг. Таким образом можно будет при обучении посылать более осмысленные сигналы в модель, которые будут точно говорить ей, в каком месте что-то пошло не так. Для оценивания каждого шага решения модели-генератора обучается отдельная модель-оценщик (в принципе, как и в стандартном сеттинге при оценке всего решения целиком).
Во время инференса же будем делать так: попросим обученную модель-генератор сгенерировать кучу (скажем, 1000) решений для данной задачи. Потом возьмем модель-оценщик и попросим из этой тысячи решений выбрать самое "верное" с ее точки зрения. Если посчитать accuracy на тестовых данных (процент правильных полученных решений на тестовой выборке с помощью такого алгоритма), то скор получается сильно выше, чем если учить модель обычным способом, когда reward считается только в конце генерации.
Надо сказать, что статья эта называется "Let's Verify Step-by-Step". Это отсылает к известному трюку промт-инжениринга для ChatGPT, который позволяет получить более правильные ответы ChatGPT на сложных задачах. Состоял он в том, что если попросить ChatGPT решить каку-то задачу и добавить в запрос фразу "Let's think step-by-step", то модель начнет выдавать в среднем более верные решения. Здесь в статье идея действительно похожа — мы теперь оцениваем решение модели step-by-step, а не один раз в конце, как раньше.
А еще тут у меня возникла такая мысль: идея инференса очень похожа на задачу P vs NP. Смотрите: найти правильное решение — сложно, но довольно просто проверить его на правильность. Поэтому давайте мы не будем стараться получить идеальный генератор решения, который с первого раза генерит все правильно, а будем использовать брутфорс (генерацию кучи вариантов решений) и верификатор.
Вот такие пироги. В целом, мне идея кажется очень простой и очевидной. А еще, как заметили в комментариях, статья вышла аж в мае, а шумиха началась только сейчас. Так что если и есть связь шумихи с этой статьей, то там должно было произойти что-то еще (например, новое улучшение, которое и вызвало ажиотаж). А может, связи между этой статьей и недавними событиями и вовсе нет ¯\_(ツ)_/¯
И еще к посту выше. Хинтон об идее аналоговых "смертных" моделей и способах их обучения думал уже давно. И одна из идей, которая у него родилась из этих размышлений — алгоритм обучения сети Forward-Forward. Это идея того, как обучать нейросеть с помощью двух forward-pass'ов вместо использования backward pass. При этом точный вид forward pass знать не нужно. Т.е. это потенциально та идея, которую можно было бы применить к "смертным" моделям, описанным выше.
По статье о Forward-Forward у Хинтона есть доклад на конференции в Морокко: Learning Deep Neural Networks. Там в начале тоже есть небольшой рассках про мотивацию исследовать что-то кроме backpropagation. А еще там есть часть про GLOM: идею Хинтона о том, как сделать CV-модель, имеющую понимание структурной иерархии объектов. Я эту идею упоминала в своей статье на Хабре про структурное мышление и ИИ.
Также про эти две вещи (смертные модели и Forward-Forward алгоритм) есть два хороших поста (этот и пост ниже) в канале gonzo-обзоры ML статей. Там я и нашла ссылку на лекцию Хинтона в Морокко.
💬 Вступайте в сообщество MLOps-инженеров в Telegram. Там публикуем дайджесты, обсуждаем новые инструменты и технологии.
#промо
В сообществе вы найдете:
▫️ Новости индустрии production ML;
▫️ Полезные статьи, инструменты и технологии;
▫️ Опыт коллег и лучшие практики.
Присоединяйтесь, чтобы получать новые знания от практиков MLOps и дата-аналитики: /channel/+HF7-7UsKD5M2OTVi
Реклама ООО «Селектел» 2VtzqvLXnKi
Иллюстрация к NaViT. Тут очень хорошо понято, как это все работает
Читать полностью…Example Packing в LLM
Для ускорения обучения transformer-based LLM часто используется такой трюк как example packing. В этом посте кратко расскажу, что это за трюк и в чем его польза.
Пусть мы учим LLM на задачу классификации предложений. Любой элемент данных (т.е. предложение), которое LLM принимает на вход, должно быть одной и той же длины. Поэтому обычно выбирается некоторая максимальная длина предложения max_len, и предложения из датасета длиннее max_len обрезаются до max_len, а предложения меньшей длины дополняются в конце специальным токеном <PAD> до max_len. И каждый батч при обучении LLM имеет размер (batch_size, max_len).
Очень часто, однако, в текстовых датасетах встречается довольно мало длинных предложений и очень много коротких. И при формировании батча большинство предложений имеют много токенов <PAD> в правой части. Кажется, что это — довольно неэффективное расходование вычислительных ресурсов, и можно было бы поступить как-то умнее.
Как-то умнее — это, как раз, example packing. Идея тут такая: давайте при формировании батчей будем соединять несколько коротких предложений в одно длинное. Например, если max_len=30, то возьмем три предложения длины 10, 5 и 13, соединим в одно длины 28, и в конце дополним двумя токенами <PAD>. И формируем батч из таких "запакованых" предложений.
Чтобы это работало, нужны еще два небольших изменения в input и output модели. Если мы решаем задачу классификации, мы хотим, чтобы LLM выдавала отдельный ответ на каждый элемент в "запакованной" последовательности. Обычно у нас на выходе LLM один выделенный CLS токен (обычно это первый или последний токен текста), и на основе эмбеддинга CLS токена LLM выдает распределение вероятностей на классы. Теперь давайте сделаем вот что: во-первых, выберем значение max_seq_per_pack, т.е. максимальное количество предложений, которые мы можем "запаковать" в одну последовательность. И теперь у нас будет не один, а max_seq_per_pack CLS токенов. Например, пусть это будут последние max_seq_per_pack токенов. И на основе их эмбеддингов на последнем слое LLM мы и будем считать max_seq_per_pack распределений вероятности на классы, один на каждое из возможных предложений внутри элемента батча.
А еще надо дать LLM возможность понять, где внутри одного запакованного элемента находятся токены первого предложения, где — второго, где — третьего и т.п. Дать ей это понять нужно затем, чтобы self-attention для токена одного предложения не мог "смотреть" на токены из других предложений. Для этого вместе с входной последовательностью в LLM подается маска внимания (attention mask). Выглядеть она может примерно так:
packed_sequence: Мама мыла раму Я люблю дождь <PAD> <PAD>
attention_mask: 1 1 1 2 2 2 0 0
Т.е. в маске внимания указано, какой токен принадлежит какому предложению. Это используется внутри self-attention, чтобы корректно считать матрицы внимания.
Ну и, надо сказать, чем хорош этот трюк с example packing. Вспомним, что в Transformer-based LLM обрабатывают все элементы поданной на вход последовательности параллельно. Используя example packing, мы добиваемся, что несколько элементов данных теперь могут быть обработаны параллельно. Так можно получить хороший буст по времени обучения и инференса модели: аж в 6-9 раз. Такой сильный прирост обусловлен тем, что в текстовых датасетах чаще всего большинство предложений — короткие, и их "запаковывание" очень сильно уменьшает время, за которое можно сделать одну эпоху обучения.
И пара последних замечаний:
- Существуют разные алгоритмы того, как выбирать элементы датасета для запаковывания в одну последовательность. Это прям целая наука;
- Example Packing можно использовать далеко не только для задачи классификации текстов, но и для многих других. Просто формат получения ответа из LLM нужно будет поменять чуть по-другому.
Подробнее почитать про example packing можно вот в этой статье. Статья очень хорошая: тема разобрана тщательно, понятным языком, с картинками, видео и кодом.
Небольшая задачка по предобработке признаков в ML.
Раньше я иногда вела семинары по feature engineering в классическом ML, и для них моим любимым датасетом были данные вот с этого соревнования (реальное соревнование, проводилось много лет назад). Тут по информации о клиенте банка нужно было предсказать, возьмет ли клиент потребительский кредит у нашего банка, или выберет другой. Информация о клиенте включала стандартные поля вида "пол", "возраст", "уровень дохода" и т.п. Разумеется, в доступе на boosters.pro был только train set, но я просто делила его на train-test для занятия и соревы на каггле для учеников.
Нравился мне этот датасет тем, что в нем признаки очень разного рода, и на них можно было показать много разных вариантов предобработки и нюансов. При этом в целом признаков не очень много, что позволяет легко на данные смотреть и с быстро с ними работать, не перегружая мозг (не то что стандартный датасет house prices, от которого у новичков немного ужас).
Так вот. Есть в этом датасете признак "living_region". В этом признаке словами был написан регион РФ, в котором живет клиент. Например,
"Башкортостан респ."
"Чувашия"
"Москва гор."
Мало того, что признак был грязный — один и тот же регион мог быть записан по-разному ("Москва" или "Москва гор."), так в нем было еще и очень много значений (80+, как регионов РФ). Вставал вопрос, как этот признак предобработать. Одна из простых идей — скриптом привести все имена регионов в один формат и бахнуть бинаризацию категориального признака. В этом случае из-за того, что некоторые регионы встречались в выборке нечасто, возникало два рода ситуаций:
- какой-то бинарный признак (т.е. какой-то регион) встречался в тренировочной части выборки, и не встречался в тестовой части;
- какой-то бинарный признак (т.е. какой-то регион) встречался в тестовой части выборки, и не встречался в тренировочной части;
Понятно, что в обоих случаях модель из sklearn, обученная на train части, не сможет сделать предсказание на тестовой части (тупо кол-во столбцов в данных разное). Вопрос: что в таком случае правильно делать?
Т.е. вопрос в следующем: что правильно делать, если:
- в тестовой части данных оказался признак, которого нет в тренировочной?
- в тестовой части данных не оказалось признака, который есть в тренировочной?
P.S. Связанный интересный вопрос — как вообще лучше предобрабатывать признак "регион" в данных =)
Ну и раз уж мы заговорили о теме детекции сгенерированного контента, то с текстами дела обстоят так же плохо. Детектить их супер сложно. Сейчас не существует подхода, который бы давал приемлемое качество детекции.
Я текстами не занимаюсь, но ими занимается Юра, автор канала New Yorko Times. У него было несколько постов по этой теме:
- Доклад автора на DataFest-2023 про детекцию сгенерированного научного контента;
- Даже OpenAI не может сделать нормальный детектор;
- Важность задачи детекции фейкового научного контента. Индустрия paper mills. Можно почитать хотя бы ради того, чтобы ужаснуться, как в "научной среде" торгуют авторством статей;
- Факап на соревновании по детекции сгенерированного контента;
- Обратная задача: генерация фейковых текстов, которые для детекторов выглядят настоящими;
- Обзор детекторов фейкового текста.
(Юра, завел бы ты хэштег для fake_text_detection, ато постов накопилось)
А еще Лаида занимается текстами. И у нее есть научные статьи по детекции сгенерированного текста на основе исследования матриц внимания BERT-подобных моделей. Полгодика назад она писала об одной такой статье пост у себя на канале.
Если я что-то пропустила, может быть, авторы этих каналов придут в комментарии и что-то добавят. А в целом, я бы советовала прочитать эти посты хотя бы затем, чтобы ясно понять, насколько эта задача сложна. И в следующий раз, когда появится супер-стартап, заявляющий, что "мы детектируем фейковые тексты с точностью 99%", вы такому стартапу деньги не давали)
Со мной тут поделились ссылкой на стартап, который делает "одежду против распознавания лиц"🤡
Штаны или футболка с кислотными принтами обойдутся в $300+. Заявляется следующее:
"People wearing the Manifesto Collection are not recognized as "persons" by the AI.
The system recognizes dogs, zebras, giraffes, or small-knitted people inside the fabric."
"Whenever we participate in an event, we set up a real-time recognition system showing how our garments work"
Ссылка на лекцию: https://www.youtube.com/live/JN0_RZt2pHM?feature=shared
Подключайтесь!
Как и писала выше, делаем мы эту олимпиаду в первый раз, и весь процесс оказался не таким простым. Вот эта картинка прекрасно отражает мое состояние после запуска 🫠
А сейчас мне за неделю надо накатать статью на ECCV-2024 (дедлайн подачи 8 марта). Как выложу статью, обязательно напишу тут, о чем она. Ну и backlog тем, о которых хочется написать посты в канал, уже довольно большой стал...
Всем привет! Я помню, что еще в декабре я обещала позвать вас на открытую лекцию по одной из тем ML на канале DLS, но, к сожалению, все немного задержалось. Но есть и хорошие новости: мы сейчас согласуем сразу несколько классных открытых лекций на классные темы. Обязательно позову вас тут!
А пока наших лекций нет, приглашаю вас на открытую лекцию от знакомых из DeepSchool.
Тема — «Ускорение нейросетей на практике». Спикер — Саша Гончаренко, СТО стартапа enot.ai.
Время — завтра, 20 февраля, 18:00 МСК.
На лекции будет:
- как ускорить MobileNet v2 при помощи прунинга и квантования;
- как сильно не просесть в качестве при помощи дистилляции и подбора параметров;
- какие сложности могут встретиться и как их решать.
И скажу сразу, на всякий случай: на лекции ребята также собираются представить программу своего курса, связанного с темой лекции.
Зарегистрироваться можно по ссылке. Также к лекции ребята дарят туториал по использованию ONNX Runtime, TensorRT и OpenVino.
Мы открыли набор на весенний семестр Deep Learning School!
DLschool — это школа при ФПМИ МФТИ, где мы учим нейронным сетям с самых азов до продвинутого уровня. Полный курс состоит из двух частей, каждая из которых длится полгода.
- Первая часть посвящена введению в нейросети и компьютерному зрению. Начинаем с основ машинного обучения и нейросетей, переходим к CNN для обработки картинок, заканчиваем переносом стиля изображений и ГАНами.
- Вторая часть полностью посвящена обработке естественного языка (NLP) и обработке звука. Эту часть мы полностью недано переделали, улучшили лекции/семинары и добавили новые темы (GPT, RLHF и другое).
Сейчас идет набор на оба потока обучения — часть 1 (введение в DL + CV) и часть 2 (NLP).
Особенность нашей школы в том, что мы даем много практики (теория при этом тоже есть, разумеется, и немало). Вам предстоит много практических домашних заданий и самостоятельный итоговый проект в конце семестра. По окончании обучения вы точно получите нужные практические навыки работы с нейросетями. Больше информации об организации курса и программы обучения можно найти тут.
Преподаватели школы — ведущие специалисты российских и зарубежных IT-компаний и научные сотрудники исследовательских лабораторий. Среди них — я (Таня), буду вести у вас несколько лекций в обеих частях курса.
Школа бесплатная. Полностью онлайн: учиться можно из любой точки мира, где есть интернет. Занятия проходят раз в неделю — лекция, семинар и домашнее задание. Обучение проходит на платформе Stepik. Берем всех, отбора нет.
❗️Для первой чати курса также есть возможность приобрести дополнительный пакет, в который входит индивидуальная поддержка от менторов и преподавателей в прохождении курса, а также дополнительные вебинары. Подробнее о нем читайте на нашем сайте.
Регистрация продлится до 17 февраля. Старт обучения на первой части — 10 февраля, на второй — 17 февраля. Чтобы зарегистрироваться на курс, оставьте заявку на нашем сайте. После этого вам на почту придет письмо со ссылками на курс на Степике, на канал и чат в Телеграме (письмо может идти 15-20 минут).
Ссылки:
Наш сайт
Подробная программа и оргинформация обоих частей курса
Ответы на часто задаваемые вопросы (F.A.Q)
Наш YouTube (тут видео всех лекций и семинаров школы, а также открытые лекции и интервью)
Наша группа VK
🧡 Поддержать нашу школу на Boosty
Если остались вопросы, пишите нам на почту (dlphystech@gmail.com) или в комментарии под этим постом.
И ждем вас в чатике курса в новом семестре! =)
C наступившим Новым Годом всех! Желаю всем профессиональных успехов, и пусть AI вас не заменит, но будет вам помогать =)
И, по традиции, первый пост в новом году — о предсказаниях кастельно развития AI на 2024 год.
#ai_inside
Каждый год Forbes делает 10 предсказаний в сфере AI на следующий год. Список за 2023 год можно найти тут, а вот по этой ссылке можно почитать ретроспективу: что оказалось правдой, а что нет. Forbes считают, что оказались правы в 8/10 случаев — лучше, чем в прошлом году! А вот я в том году оказалась ох как не права относительно выхода GPT-4...😅
Давайте же теперь посмотрим, что Forbes предрекают нам на год 2024) В этом году тут довольно интересно получилось.
Итак, 10 predictions и мои мысли относительно них:
1. Nvidia резко активизирует свои усилия, чтобы стать поставщиком облачных услуг.
Мысль тут вот какая: большинство клиентов, использующих Nvidia GPU, не платят деньги напрямую Nvidia. Они используют эти GPU через облачные сервисы Amazon, Google Cloud и подобные. При этом все эти компании понимают, насколько большую цену сейчас имеют чипы, и активно занимаются разработкой своих. То есть, становятся конкурентами Nvidia. Поэтому для Nvidia логично было бы создать свою облачную платформу для продажи GPU-часов, чтобы не зависеть от посредников и не быть в пролете, если эти посредники откажутся от чипов Nvidia в пользу своих. Вообще, компания уже начала реализовывать идею — они запустили сервис DGX Cloud. Forbes предсказывают, что это Nvidia будет дальше активно развивать это направление.
2. Stability AI закроется.
Причины такого предсказания просты:
- уход многих ключевых сотрудников из компании;
- уход ключевых инвесторов из совета директоров из-за разногласий с CEO Эмадом;
- проваленная попытка поднять раунд инвестиций в 2023 году
Собственно, Forbes считают, что Stability AI не сможет поднять новых инвестиций или даже найти покупателя, и закроется.
3. Термины «большая языковая модель» и «LLM» станут менее распространенными.
Тут имеется в виду вот что: в последнее время эти две фразы используются как синоним "крутой AI-модели". Ну, потому что GPT-3 и GPT-4, самые крутые и известные в широком кругу модели, — это LLM-ки. Но, предсказывают Forbes, в этом году начнут появляться мультимодальные мощные модели, а также foundation models в других областях — робототехнике, биологиии т.п. И вместе с этим будет меняться и наша речь — мы перейдем от "cool AI == LLM" к другим обозначениям.
4. Самые продвинутые закрытые модели будут по-прежнему значительно превосходить самые продвинутые открытые модели.
Все мы видим, как компании вроде Meta или Google делают все более крутые модели, и все меньше нам о них рассказывают. При этом расцветает open source, и по качеству открытые модельки где-то даже догоняют закрытые. Поэтому многим кажется, что open source вот-вот полностью догонит closed source.
Но Forbes в это не верят — они считают, что open source сильно отстает как по времени, так и по ресурсам. GPT-4 вышел в начале 23 года, а open-source аналога все еще нет. За это время внутри OpenAI, скорее всего, ушли уже очень далеко вперед. Плюс, у компаний вроде Microsoft, Meta, Google есть куча денег, которые они вкладывают в развитие моделек. Open source такой кучей денег похвастаться не может.
5. Ряд компаний из списка Fortune 500 создадут новую должность в высшем руководстве: "Chief AI Officer"
Тут Forbes проводят аналогию с ситуацией десятилетней давности, когда популярным стал cloud computing, и компании создавали новую должность "Chief Cloud Officers". Создание должности "Chief AI Officer" поможет компаниям как бы заявить, что их намерения в разработке AI-решений достаточно серьезны.
Продолжение в следующем посте⬇️
Этика и искусственный интеллект
#промо
В какие сферы нельзя допускать искусственный интеллект, а где он может стать отличным помощником?
Спикеры конференции Yet another Conference on Education от Яндекса уверены, что разрешение спорных вопросов, психологические проблемы и ситуации, где важно личное мнение, — вот три сферы в образовании, в которые ИИ не должен вмешиваться.
А вот в чём нейросети могут быть полезны, так это в создании уникальных образовательных курсов на основе обобщенных знаний, а ещё в качестве коуча во время выбора профессии.
Еще среди тем конференции:
❶ Наука о данных и проблема мотивации. В чем связь?
❷ Можно ли управлять университетами с помощью больших данных?
❸ Перестанут ли учиться школьники, если будут повсеместно использовать GPT?
❹ Чем студентов привлекает образование в региональных IT-хабах и учат ли там ML и DL
❺ Опыт взаимодействия художника, писателя и AI-тренера с ИИ
➡️ Если вы хотите узнать больше о том, что еще важно во взаимодействии с искусственным интеллектом, смотрите запись конференции бесплатно на официальном сайте.
Игорь (автор Сиолошной) в своем последнем посте еще замечает вот что: OpenAI не так давно заявили, что компания занимается разработкой модели для научных исследований. Короче, хотят заменить research scientist'ов LLM-рисерчером. И вот эта статья с LLM-кой, которая умеет решать задачи по математике — это один шажочек в этом направлении. Очень интересно, насколько "умной" удастся сделать этого LLM-рисерчера, и удастся ли действительно с его помощью уменьшить необходимость в умненьких кожаных PhD.
Вот меня в последний год несколько раз спрашивали вопросы типа "кого первым заменит ИИ" и "стоит ли бояться потерять работу", а теперь вот говорят, что хотят заменить меня😂
Всем привет! Как вы поняли, в последний месяц я снова закопалась в делах и пыталась понять, как нормально жить эту жизнь (спойлер: поняла не особо). За это время, конечно, произошло много всего (чего стоит один Сэм Альтман и еще 700+ человек в OpenAI, которые прямо сейчас снимаются в увлекательном сериале про ИИ и бизнес). Но я тут начну не с таких громких новостей, а с чего-то поменьше. Например, расскажу про препринт статьи, в которой я стала соавтором =)
В начале осени я проходила мимо Лаиды и ее коллег, которые пытались решать задачу детекции сгенерированных текстов. Постановка задачи необычная: это не просто задача бинарной классификации типа "этот текст реальный", "этот текст сгенерированный". Задача ставится так: есть текст из 10 предложений. Известно, что начало текста (1+ предложений) написано человеком. Но, начиная с какого-то предложения, текст может стать сгенерированным. Задача простая: по тексту определить номер предложения, с которого начинается генерация. Проще говоря, на этом можно поставить задачу классификации на 10 классов: с какого номера предложения начинается сгенерированный текст.
Задача имеет отношение к реальности: многие люди пишут для ChatGPT начало текста и просят его дописать. Так что многие тексты получаются не полностью сгенерированными, но частично. И полезно было бы иметь детекторы, которые могли бы определять место, где текст перестает быть написанным от руки.
Задача усложняется тем, что тексты разделены на несколько доменов по жанру (газетные статьи/рецепты блюд/...). И можно учить модель на текстах одного домена и проверять на текстах другого. Это важно, т.к. хочется в идеале получить детектор, который мог бы детектить фейковые тексты любого жанра.
В завершение описания задачи надо сказать, что задача новая. В такой постановке задачи практически нет работ. Поэтому наша работа в статье состоит главным образом в том, чтобы исследовать эту задачу, попробовав на ней модели разного вида.
Итак. Проходя мимо коллег, я заметила, что у них были несколько идей решения этой задачи. Среди них:
- бейзлайн: LogReg/GradBoost на средней длине слов в предложении. Было замечено, что часто распределение длин предложений, сгенерированных LLM, отличается от того, что пишут люди. Этот бейзлайн дает ~20% acc in-domain и ~10% acc out-of-domain (по сути, случайное угадывание)
- лучшая модель — RoBERTa, дообученная в supervised режиме на эту задачу. Она дает 45-55% acc in-domain и 13-31% acc out-of domain. То есть, довольно сильно переобучается;
- были и еще другие методы, которые показывали результаты между двумя описанными выше. О них можно подробнее почитать в статье.
Так вот. Проходя мимо этого всего у меня возник вопрос: почему не попробовать очевидный подход с log likelihood?
Идея такая: берем LLM. Например, GPT-2. Для каждого префикса текста считаем распределение вероятности на следующий токен. Считаем log likelihood реального токена текста на основе этого распределения. Ожидается, что фейковый текст будет для GPT-2 казаться более "естественным", потому что его генерировали модели похожего устройства. То есть, ожидается, что там, где текст переходит от реального к сгенерированному, будет резкий скачок в log likelihood.
Идея модели тогда может быть такая: считаем log likelihood для каждого токена каждого предложения. Затем для каждого предложения усредняем log likelihood его токенов. В итоге каждый текст начинает представляться массивом чисел длины 10. На этом всем обучаем что-нибудь простое (GB/LogReg) на задачу классификации на 10 классов.
И это работает: дает 30-40% acc in-domain и 20-35% acc out-of-domain (причем 20% — это на оч плохом домене). То есть, в in-domain ведет себя похуже Роберты, но зато показывает лучшую переносимость между доменами. И если посмотреть на коэффициенты Logreg, то можно заметить, что LogReg действительно учится искать "скачок" в log likelihood, и на этом основывает свое решение.
Вот так. Статья вот. Текст, правда, очень сырой, и мы будем его сильно править перед подачей на конфы. Ну и у меня еще пара идей появились, которые я тут хочу попробовать.
Помните, рассказывала, как я в Кембридже на Хинтона ходила? Наконец выложили запись доклада, она вот. Доклад реально интересный с необычными мыслями, посмотреть рекомендую. Еще там очень интересная (я бы даже сказала, веселая) часть в конце с ответами на вопросы. Где-то даже слово "коммунизм" промелькнуло 🌝
А тут скажу еще вот что. В тех постах выше я рассказывала о той части этой лекции, которая касается опасности AGI. Но там была еще другая часть, первая. Касалась она аналогового железа и mortal computation. Эта идея вот про что (по крайней мере, как ее поняла я): смотрите, современные AI-модели не привязаны к конкретному железу (например, к одному компьютеру). Одну и ту же модель можно запустить на разных устройствах, и мы точно знаем, как эта модель устроена и работает. Можно сказать, что AI-модели "бессмертны": если даже сломать сервер, модельку можно будет перенести и запустить на другом серваке.
А что если отказаться от принципа бессмертия моделей? Что если подумать о том, чтобы создавать AI-агентов, которые были бы неотделимы от своего "железа"? Которые в процессе обучения могли бы учиться использовать свойства своего железа по-максимуму и даже подстраивать его под свои задачи?
Такой подход потенциально может дать два важных преимущества:
1. Модели подобного рода могли бы потреблять гораздо меньше энергии для работы. Например, возможно, мы могли бы использовать что-то типа аналоговых компьютеров;
2. Возможно, мы могли бы придумать, как "выращивать" железо с разными архитектурами и свойствами под решение определенных задач. Т.е. процесс обучения модели будет сводиться не просто к подбору численных значений фиксированных параметров, но и к подбору самой архитектуры.
Но тут возникает проблема: алгоритм обучения моделей backpropagation для такого не подойдет. Причины такие:
1. Он очень энергозатратный;
2. Для backpropagation нужно знать точное устройство модели и вид ее forward pass. А если мы добиваемся пункта два выше (учимся выращивать железо), то точный вид функции, которую будет выражать модель, нам будет неизвестен.
Короче, есть мотивация подумать о других способах обучения моделей. Которые подошли бы и "смертным" моделям. А дополнительной мотивацией еще может служить то, что человеческий мозг, по всей видимости, ничего похожего на backprop не делает. То есть, точно можно придумать что-то еще и для AI.
Так вот. Первая часть Кембриджской лекции была как раз про эту идею отказа от "бессмертия" моделей. А конкретнее, переходы в лекции были такими:
- описание идеи "смертных" моделей;
- идея, как можно такие модели учить без backprop;
- а что если у нас есть куча "смертных" моделей: как заставить их взаимодействовать и делиться знаниями друг с другом?
- дистилляция — хороший способ делиться знаниями с моделью, но в современных моделях (включая LLM) она сейчас используется неэффективно;
- что если куча LLM-like моделей получали бы знания из реального мира, а не из интернета, и делились ими друг с другом;
- How AI can take control и далее то, о чем я писала в прошлых постах.
Вот так вот от идеи аналоговых компов мы пришли к "AI захватит мир🙃"
Напоследок снова скажу: посмотреть лекцию советую. Это может хорошо помочь посмотреть на привычный AI с немного другой стороны. После этого точно появляется, над чем подумать.
📽Ссылка на лекцию
Как вы, наверное, знаете, тг-каналы теперь могут постить сториз. Но для этого нужно, чтобы подписчики дали тг-каналу свои голоса. Я пару дней думала, нужны ли мне сториз, и придумала вот что: буду в них постить новости/статьи/приколы, которые не вошли в посты.
Так вот, если не жаль, подарить каналу голоса можно тут: /channel/dl_stories?boost
Буду благодарна 🌝
UPD: первая есть, спасибо! =)
NaViT: как адаптировать example packing для Vision Transformer, чтобы научиться обрабатывать картинки произвольных размеров.
Обычно что CNN, что ViT обучают на картинках одного размера. Для этого все картинки в датасете приводят к одному размеру либо с помощью resize, либо с помощью добавления padding к картинкам маленького размера. Первый вариант ухудшает общее качество работы сети, а второй очень неэффективный.
Конечно, люди уже давно думали над тем, как бы эффективно научить модельки работать с картинками разных размеров. Из идей — FlexiViT и Pix2Struct. А недавно ребята из DeepMind придумали новую идею: они адаптировали example packing из LLM для Vision Transformer, что позволило ViT обрабатывать картинки разных размеров, и при увеличить эффективность обучения (т.е. подход требует меньше итераций обучения для получения того же качества, что оригинальный ViT)
Идея, собственно, как и у example packing в LLM: фиксируем длину инпута (кол-во патчей) и максимальное кол-во картинок max_seq_per_pack, которое можем соединить в одну последовательность. При обучении сэмплируем картинки разного размера, делим их на патчи (при этом каждую картинку можно делить на разное кол-во патчей), запаковываем патчи картинок в последовательности, дополняем при необходимости замаскированным токенами а-ля <PAD>, подаем в модель. Точно так же, как в LLM, заставляем self-attention для каждого патча смотреть только на патчи из той же картинки. И NaViT для классификации картинок выдает max_seq_per_pack CLS эмбеддингов — по одному на каждую потенциальную картинку в input.
И еще несколько замечаний к NaViT:
- При обучении и инференсе NaViT можно подавать модели на вход одну и ту же картинку, приведенную к разным размерам (256x256, 1024x300, etc). Семплирование размернов картинок при обучении повышает качество модели.
- Чтобы NaViT мог работать с картинками разных размеров (включая такие размеры, которые не были в тренировосных данных), нужно чуть поменять создание positinal embeddings для патчей картинок. Авторы предлагают факторизованные positinal embeddings, отдельно по высоте и ширине картинки. Подробнее об этом в разделе 2.1 статьи.
- В NaViT авторы использовали такой трюк как variable token dropping, который тоже повышает эффективность обучения. Подробнее про подход можно прочитать в статье про Flip
Вот так. При обучении NaViT достигает качества ванильного ViT в 4 раза быстрее. Это, по сути, тот же эффект, что дает example packing в LLM. Также NaViT показывает эффективность в сеттинге, где ViT сначала предобучают на low-res картинках, а потом дообучают на high-res. Тут NaViT требует меньшее количество примеров для дообучения для достижения того же качества, что и ViT.
📃Статья
Больше года назад написала вот этот пост про Kaedim — стартап, который предлагал "AI-тулзу" для генерации 3D-моделей по рисунку пользователя за считанные минуты. Писала, что есть основательные подозрения, что внутри тулзы — совсем не AI, а тупо реальные люди сидят рендерят 3D-модели.
И вот прямо на днях вышло расследование от 404 Media про этот Kaedim. Tl;Dr такой: есть все основания полагать, что там реальные люди рисуют модельки, а AI там нет (ну или прям почти нет). Поинты такие:
- Источники, близкие к разработкам компании, говорят, что AI там очень плох. Условно вместо 3D-дерева получается непонятное облако;
- Kaedim нанимает 3D-художников по всему миру. Среди условий — умение в течение 15 минут сгенерировать приемлемую 3D-модель объекта по скетчу. В компании ответили на это так: видите ли, эти люди — quality control engineers, которые "докручивают то, что выдала AI-модель, до идеального состояния перед выдачей пользователю" и "дают фидбек о AI-инженерам для развития AI-модели". Тут надо посмотреть в пункт 1: говорят, модель там вообще не способна выдать что-то, что достаточно "докрутить" и о чем можно дать фидбек;
- Модельку свою Kaedim не показывает совсем. Не показывают даже примеры ее сырых генераций, объясняя тем, что "they showcase sensitive IP information about our ML approach" (не совсем даже понимаю, что это значит);
- После появления всех этих слухов и вопросов компания немного изменила текст лендинга своей тулзы. Сначала там было AI-generated, и труд людей не упоминался совсем. Сейчас там написано, что группа художников улучшает итоговый результат модели перед выдачей.
Вот так. Стоит пользование Kaedim, к слову, $150 за 10 моделей. А судя по найденным описаниями вакансий, художникам платили $1-4 за каждую работу ಠ_ಠ
Если честно, когда я увидела эту статью, меня больше всего удивило то, что Kaedim вообще до сих пор существует. Неужели они надеются допилить свою AI-модельку до нормального состояния, а потом показать, что типа "ну вот так оно и работало"?
P.S. За время существования Kaedim один из его основателей успел побывать в списке Forbes 30 Under 30. Тут невольно вспоминаются слова, что попадание в этот список хорошо коррелирует с наличием уголовного дела 🌝
В Яндекс Лицее открыт набор на годовые программы обучения.
#промо
Яндекс Лицей — это годовые курсы по программированию для школьников 8‒11-х классов и студентов ссузов 1-2-х курсов. Среди направлений обучения — программы по Python, Go, разработке игр, Machine Learning, Django, анализу данных и Big Data. Можно выбрать офлайн- или онлайн-форму обучения.
На курсах — интенсивное погружение в IT, работа над групповыми проектами и много общения с единомышленниками. Очень много практики. Преподаватели — опытные профи, которые работают с ИИ, обучают голосовых помощников, пишут код и руководят командами разработчиков. Курсы заложат твердый фундамент для будущей учебы в ВУЗе или работы в IT-компании.
Обучение бесплатное. Нужно только успешно пройти вступительные испытания.
Более подробная информация о Лицее и поступлении — по ссылке. Ждем вас!
У DeepMind две новости:
1. В Vertex AI’s Model Garden (гугловая клауд-платформа для работы с модельками через API) добавили три новые модели: PaLM 2, Codey и Imagen. Мне тут интересен Imagen, т.к. это когда-то была SOTA text-to-image моделькой, доступ к которой Гугл не выдавал никому, даже рисерчерам (я проверяла). А теперь вот, наконец, можно будет играться с Imagen по API хотя бы. Правда, пока это будет доступно только ограниченному кругу людей.
2. Вместе с Imagen Гугл выкатывает тулзу SynthID для добавления скрытых watermark'ов на сгенерированные картинки. SynthID состоит из двух моделей — одна для добавления watermark на картинку, вторая для ее детекции на входной картинке.
Заявляется, что:
- watermark не виден вооруженным глазом и не влияет на качество изображения. Т.е. watermark — это небольшое контролируемое изменение некоторых пикселей изображения. Такое, что вторая нейросеть-детектор может по входящей картинке распознать, что она была изменена именно этим способом;
- watermark устойчив к несильным изменениям картинки (добавление шума/сжатие, т.е. все то, что происходит с картинками в интернете);
- нейросеть-детектор способна распознать watermark, даже если только часть картинки была сгенерирована Imagen;
- watermark можно будет добавлять к свом картинкам по желанию.
Статьи по SynthID не выкатили. Интересно, выкатят ли вообще. Но мне было бы очень интересно почитать, как именно устроена тулза. Правда, если выкатят статью, появятся тулзы, как эту штуку обойти ¯\_(ツ)_/¯
Ну и напомню по теме: добавление скрытых watermarks на сгенерированные картинки и обучение сетей для их детекции — это ответвление задачи fake images detection. Сама по себе задача детекции сгенеренных картинок (без всяких вотермарков) довольно сложна. Если интересно, вот тут я писала обзор подходов к ее решению.