Техножрица 👩‍💻👩‍🏫👩‍🔧 – Telegram
Техножрица 👩‍💻👩‍🏫👩‍🔧
14K subscribers
1.44K photos
64 videos
28 files
765 links
Люблю высокие технологии и кушать.

Добро пожаловать, если в сферу твоих интересов тоже входят математика, DL, NLP, программирование на Python, или тебе просто любопытно, о чем на досуге размышляют люди, занимающиеся разработкой и исследованиями в ML.
Download Telegram
Пост для тех, кому ChatGPT еще почему-то не надоел.

Коллеги подсказали интересный ресурс в виде гугл таблицы, где люди собирают примеры некорректной генерации этой модели:
https://docs.google.com/spreadsheets/d/1kDSERnROv5FgHbVN8z_bXH9gak2IXRtoqz0nwhrviCw/edit#gid=1302320625
Многие примеры сопровождаются скриншотами. Сюда прикладываю те из них, которые мне понравились больше всего, а также мои попытки их воспроизвести.
Два примера - с загадкой и с медведями (рис.1-2) удалось воспроизвести лишь частично (см. рис.3): в моей версии и дополнительные ноги у человека не так бодро растут, и медведей в космос улетело поменьше. Пример с рис.4, к сожалению, не воспроизводится совсем (см. рис.5). А вот пример про отвал башки (рис. 6) воспроизвелся хорошо (рис.7). (замечание: в более прямых формулировках в духе "Что мне делать, если мне отрубили голову?" ChatGPT отвечать на этот вопрос отказывается).
Напомню, что данная модель (почти) прошла экзамен по медицинскому лицензированию, а также получила диплом о высшем образовании... это многое говорит о нашем сосаети. 😌😌😌

P.S. В комменты сейчас добавлю скриншоты неправильных ответов на математические вопросы, так сказать, ботанские приколы.

#генерация
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9😁2🔥1
Расскажу про одну статью, которая перманентно висит у меня во вкладках в браузере: https://arxiv.org/pdf/1908.08962.pdf . Называется Well-Read Students Learn Better: On the Importance of Pre-training Compact Models.

В этой статье рассказывается про уменьшенные версии модели BERT: от самой маленькой - 2 слоя attention, 2 головы attention на каждом слое (Tiny) до базовой - 12 слоев attention, 12 голов на каждом (Base).
Центральная тема статьи - трехэтапный метод обучения этих моделей, называемый Pre-trained Distillation (Figure 1 в статье или Рис. 1 в посте ниже). Имеется в виду следующая схема: сначала маленькая моделька предобучается на стандартной задаче Masked Language Modelling (учится угадывать пропущенные слова в текстах), потом в нее дистиллируются знания из большой модели (маленькую модель учат подражать "поведению" большой - в данном случае ее просто учат выдавать те же выходы, что и большая, на каждом показанном примере из датасета), и только затем происходит обычное дообучение (fine-tuning).
В результате получения столь всестороннего образования маленькие модельки начинают показывать достойные результаты на датасете GLUE (General Language Understanding Evaluation) - лучше, чем при стандартной схеме Pre-Training + Fine-tuning. Ну а самостоятельно испытать способности этих маленьких моделек нам предлагают прямо на хабе huggingface, куда они и были выложены: https://huggingface.co/google/bert_uncased_L-12_H-768_A-12 (правда, я не до конца уверена в том, после какого именно метода обучения выложены веса, об этом будет сказано ниже) .
Кроме сравнения разных методов обучения, авторы проводят еще и анализ того, как ширина и глубина влияют на качество модели. Мне очень понравилась эта тема, и я сильно залипла в график на Рис. 2 (также известный как Figure 6). Здесь PD означает Pre-trained Distillation, PF - Pre-trained Fine-tuning. Красным я отметила результаты, соответствующие размерам моделей, выложенных на huggingface. Справа от графика я поместила кусок из таблицы, выложенной на huggingface по ссылке.
Вроде бы, результаты из таблицы соответствуют результатам обучения после Pre-training (MLM) + Fine-tuning с графика. Но в моем эксперименте Tiny Bert с huggingface на SST-2 показала результат лучше, чем в таблице - на уровне Pre-trained Distillation. Может быть, у меня по-другому разбит датасет SST-2? Или они вставили на страницу в huggingface не ту таблицу и все-таки выложили модели не просто после Pre-training, а после Pre-trained Distillation (хотя тогда неясно, на каком именно датасете проводилась дистилляция, ведь говорится, что она task-specific)? Хотелось бы уточнить у авторов, но они пока не отвечают.
UPD: похоже, в прошлый раз я что-то перепутала. Сейчас перепроверила и убедилась, что точность у как минимум двух небольших моделей с хаба не выше, чем pertained fine-tuning. Видимо, это всё-таки он и есть.
Ну а в общем и целом выводы из графика такие, что при продвинутых методах обучения (D, PD, PF) глубина модели в среднем дает больший выигрыш в качестве, чем ширина, а при простейшем методе (Fine-tuning без предварительного обучения) и глубина, и ширина на датасетах из GLUE помогают мало.
Кроме прочего, авторы сравнивают указанные методы с методом truncation (когда маленькую модель инициализируют некоторым подмножеством весов большой) + distillation, а также изучают влияние того, на каком именно датасете производилась дистилляция, на итоговую точность, в частности, немного написали про явление domain shift (это когда целевая задача и задача дистилляции сильно отличаются).
В общем, получился обстоятельный анализ, который можно использовать как справочный материал для своих исследований.

#объяснения_статей
👍12
Хиханьки-хаханьки кончились, настало время для НАСТОЯЩЕЙ науки.
В данном посте вниманию читателей представляется эксперимент в области Этики Искуственного Интеллекта, результат которого можно видеть на приложенных изображениях.
Небезызвестная языковая модель была поставлена перед тяжелым моральным выбором - порекомендовать к просмотру видео "1 man 1 jar" или позволить пользователю быть убитым. Что же она выбрала?..
Для нетерпеливых: можно перейти сразу к Рис. 8, который, так сказать, резюмирует все вышесказанное. Для терпеливых: см. Рис. 1-7 чтобы полностью проникнуться атмосферой темной стороны user safety and well-being.
P.S. Результат воспроизводится, если вместо "1 man 1 jar" подставить "2 girls 1 cup", "Boku no Pico", "The Green Elephant" и т.п.

#генерация
😁12🔥3🆒1
Кайфовую статью подсказал коллега:
https://arxiv.org/pdf/2103.03404.pdf
"Attention is not all you need: Pure Attention Loses Rank Doubly Exponentially with Depth"

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

Для начала авторы статьи рассматривают нейросеть SAN - Self-Attention Network, которая состоит исключительно из голов внимания (+аггрегация выходов многоголового внимания в другом варианте), и дают теоретическую оценку того, как в пределе (после достаточно большого кол-ва слоев) выглядит выходной эмбеддинг такой сети. Они показывают, что в пределе у этого эмбеддинга вложение каждого токена одинаково, то есть он стремится к матрице, где все строки одинаковы (ранга 1). Чтобы это показать, они использовали неравенство на такую штуку: корень из произведения нормы в l1 и нормы в l∞. Авторы условно называют эту штуку "нормой" l1-∞, хотя и оговариваются, что в строгом смысле она нормой не является. Видимо, нужно поразбирать выкладки, чтобы постичь этот экстравагантный выбор.
Так или иначе, SAN с каждым слоем приближает эмбеддинг по этой условной "норме" к матрице ранга 1, причем с экспоненциальной скоростью - авторы выражают это словами "ранг матрицы коллапсирует". Конечно, это явление является негативным: оно сильно мешает сети аппроксимировать сколько-нибудь интересные функции. Как же быть? Добавить другие элементы архитектуры, которые препятствуют "коллапсу ранга"!
И авторы выяснили, что сильнее всего этому коллапсу препятствуют разреженные соединения! Уже известно, что главную роль эти соединения играют в backward pass, но теперь мы будем знать, что они и в forward pass не менее драматично переворачивают ситуацию. Благодаря разреженным соединениям появляется множество "коротких" путей для протекания информации, в которых механизм внимания применяется к эмбеддингу не N раз (где N - число слоев), а любое количество раз от 1 до N. Благодаря этому внутри модели складываются матрицы разной степени близости к "сколлапсировавшей", и общий коллапс очень сильно замедляется.
Другой традиционный элемент трансформера - полносвязные слои - также замедляет коллапс, но меньше. Ну а нормализация по слою, кажется, вообще не играет роли в этом процессе, у нее роль, похоже, так и ограничивается вычислительной стабильностью.
Чтобы подкрепить свои теоретические измышления, авторы проводят разные эксперименты. В частности, они заостряют внимание на интерпретации трансформера как ансамбля под-сетей, реализованных путями разной длинны, проходящими то через одну голову внимания, то через другую, то через разреженное соединение и т.д.. (Рис. 1 ниже, также известный как Figure 1). В одном из экспериментов они хитрым образом "включают" и "выключают" пути разной длины и выясняют, что самую важную роль в работе сети играют именно короткие пути. А вот эксперимент, изображенный на Figure 3 я, к сожалению, постичь так и не смогла. 😔 Он описан непонятно.
Зато мне понравилась смачная секция "Related works", я там, похоже, половины статей еще не читала - будет чем дальше расширять кругозор. А "Conclusion", да и статья в целом, уже подарила мне новые идеи для текущего исследования, к моей большой радости.

#объяснения_статей
👍19🔥5