Введение в искусственный интеллект
331 subscribers
63 photos
2 videos
170 links
Просто об искусственном интеллекте и его возможностях. Помогу разобраться в базовых понятиях и создать собственную нейросеть. Рассказываю, что у ИИ под кожей.
Елена Михалькова
Download Telegram
Интересный факт: при подаче статьи на ICLR Миколов и Ко. получили очень негативные отзывы, но статья все равно прошла. Видимо, воркшоп, который шел только второй год, был такой маленький, что туда приняли почти что всех. Отзывы рецензентов на статью Миколова можно почитать вот здесь.
🗿21
Как работает doc2vec
Этот пост будет непонятно читать, если не знаете, что такое вектор и word2vec. Прочитать про них можно у меня вот тут и тут.

Вектор отдельного слова в алгоритме word2vec имеет одинаковую длину с векторами всех других слов. Поэтому кладем их, как ирисы Фишера, у которых по четыре параметра, в машинный классификатор, запускаем и наблюдаем магию. Но что делать, если ваша задача требует векторизовать целый текст? Тексты-то бывают разной длины. Положим, у вас есть две тысячи твитов, и вы хотите поделить их на негативные и позитивные.
Решение “в лоб” (brute force, "брут форс", грубой силой) это сшить вектора каждого слова в тексте друг с другом в один длинный вектор. Но тогда длина итогового вектора для каждого текста будет зависеть от количества слов в этом тексте. То есть вектора текстов будут иметь разную длину, а машинлернинг классифаер требует одинаковую.
Есть такой вариант решения проблемы: padding (паддинг). Добавляем в вектора рад чисел таким образом, чтобы вектора стали одинаковой длины. Самый простой вариант паддинга: возьмем длину самого длинного вектора текста, и к векторам всех остальных текстов с конца добавим нули, чтобы их длины сравнялись. Получится что-то вроде:
👉 Вектор самого длинного текста: [1 2 3 3 2 1 2 3 1]
🤜 Вектор текста покороче: [1 3 2 2 3 1 0 0 0]. Последние три нуля - это паддинги.
Минус такого метода в том, что паддинги никакой информации о тексте не несут, а алгоритм будет придавать важность тому, какое слово оказалось на какой позиции в тексте. В русском языке с его гибким порядком слов на разных местах в предложении могут оказаться любые части речи и члены предложения.
Другой вариант “в лоб”: сложить вектора всех слов в тексте. Например, для текста из трех слов с векторами [1 2 3], [3 2 1], [2 3 1] результатом будет вектор [6 7 5]. Еще можно взять среднее от суммы. Тогда получится [2 2.3 1.6]. При таком подходе теряется уникальное значение каждого слова. Вот положим пусть самое первое число в векторе выражает что-то вроде “цвет”. Пусть в районе 0 будет “зеленый”, а в районе 3 “красный”. Их сумма (0+3=3) даст нам снова “красный”, а среднее (3/2=1.5) вообще какой-то случайный цвет, оказавшийся в этом диапазоне, например, “оранжевый”. Тут надежда только на те эмбеддинги, у которых чем выше число, тем сильнее проявлена какая-то семантика. К сожалению, вытянуть семантику из эмбеддинга невозможно. Что стоит за числами в матрице word2vec вычислить невозможно. Хотя есть такое направление исследований, и оно делает относительные успехи. Но это тема отдельного поста.
А можно (ух ты, я подобралась к теме поста!) взять прям сам word2vec и модифицировать его так, чтобы он создал вектор целого текста длиною с вектор слова. Как это сделать? Напоминаю, что в word2vec используются пары слов: по левому предсказываем правое. Во время предсказания в нейронной сети уточняются коэффициенты логистической регрессии. Вместе эти коэффициенты образуют матрицу эмбеддингов. Так вот, берем создаем вектор текста с какими-то случайными коэффициентами. А теперь по всему тексту пытаемся предсказать каждое слово, которое в него входит. При этом используем word2vec эмбеддинг этого слова. Т.е. при помощи вектора каждого слова уточняем коэффициенты в векторе всего текста. Кстати, эмбеддинг текста можно не привязывать по длине к эмбеддингам слов.
Когда Томаш Миколов представил миру word2vec, он довольно сразу сообщил о намерении создать doc2vec. Статья вышла по итогам Международной конференции по машинному обучению (ICML - еще одна малочитаемая аббревиатура). Первый автор в статье - вьетнамец Куок Ли. Как-нибудь напишу о нем отдельно.
Кстати, подача статей на ICML-2024 открыта.

#эссеиистика #база
🔥2
Биг Брозер Системы рекомендации ар вотчинг ю

Однажды одна женщина начала получать в одной запрещенной соцсети очень странную рекламу: витамины для беременных, товары для новорожденных и игрушки. Оказалось, она забыла зайти в приложение для отслеживания цикла и отметиться там. Приложение решило, что она беременна, и.. отослало эту инфу в соцсеть, которая закидала ее соответствующей рекламой. Случилось это в ноябре 2019 г.
В другой запрещенной соцсети, которая публикует короткие посты, по этому поводу разгорелся скандал. Где в лицензионном соглашении мы разрешаем приложениям собирать и распространять наши персональные данные? Никто же соглашения не читает! Да их и не возможно читать - они слишком длинные! А если я не на все согласна, то персональные условия я ведь все равно не получу! Придется отказаться от приложения? А если приложение будет собирать данные втихаря? В общем началась большая общественная дискуссия. В 2021 г. в iOS 14.5 появилась фича: можно попросить приложение не отслеживать ваши действия. Т.е. Apple по вашему желанию блокирует запросы от приложения о вашей активности в устройстве. Еще вы, наверно, замечали, как при установке приложений появляются сообщения со списком данных на устройстве, к которым приложение просит доступ - чтобы по лицензионному соглашению не шерудить. И все эти предосторожности не только, чтобы защититься от хацкеров и спецслужб, а еще и скрыться от назойливых систем рекомендации, для которых наше внимание - это лакомый кусочек.
Вот ведь как работает Интернет-маркетинг.. Сначала никому не известный блогер (например я) или предприниматель создает блог или сайт или еще что-нибудь и выкладывает контент. Потом он с грустью обнаруживает, что в Интернете уже лежит слишком много контента, чтобы его кто-то почитал или посмотрел. Зовем одноклассников, одногруппников, семью, друзей, коллег, кота, набираем немного просмотров. Опять втухли. Распечатываем листовки, вешаем объявление в подъезде, скидываем ссылку в чат “Дом обороны: объявления”. Наконец, когда фантазия исчерпается, можно обратиться к ним - скучным, но великим инструментам рекомендации. Они сами, возможно, бесплатно обегут социальные сети в поисках желаемой аудитории. Они предложат вашу рекламу потенциальному покупателю. Выберут вам ролик для просмотра в Ютубе (ура, Ютуб можно называть!), когда вы на платформу зашли, а в поисковую строку ничего не вбили. А если вы начинающий ютубер, то они просто так предложат ваш видос паре сотен случайных людей, чтобы дать вам шанс прославиться.
Как они работают? В основном на ИИ. Вот несколько базовых принципов.
Коллаборативная фильтрация: алгоритм ищет группы людей с похожими интересами (у кого-то кулинария, а у кого-то футбол).
Демографическая фильтрация: по профилю или каким-то другим персональным данным (пол, возраст и т.п.) алгоритм догадывается, что этому человеку интересно (семилетки, например, очень любят видео про Хаги-Ваги и аниматроников).
В анализе социальных сетей строится граф (диаграмма из точек, соединенных линиями), в котором алгоритм может определить группы людей, объединенные, например, локацией (все работают там-то или учатся там-то).
Фольксономия: сами пользователи ставят тэги, оставляют отзывы, геометки и прочую маркировку, которая позволяет сгруппировать товары, контент в комбинацию.

Системы рекомендации вездесущи. Некоторые считают, что они знают о нас больше, чем мы сами. На конференции в НИУ ВШЭ в декабре я узнала, что, благодаря изменениям в Федеральном законе “Об информации, информационных технологиях и о защите информации” (№ 408-ФЗ от 31.07.2023), теперь вместе с сообщением о куках Ozon и иже с ним предупреждают еще и о том, что используют рекомендательные технологии.

#эссеиистика
👍8
Семилетки прочитали мой предыдущий пост и сообщили, что Хаги-ваги и аниматроники уже не в моде. Сейчас у них популярны Скибиди-туалеты (вот недавно появился Астра-туалет, который по прогнозам может победить всех трёх Титанов 🥴), а также Терка (причем она уже года три как держится в трендах). Потерянное поколение 😏
😁11
Трансформеры уже здесь
Чето я всю рабочую неделю делала всякую bureaucracy и потом chill, так что за выхи выложу аж целых три поста. А в понедельник будет объявление о новых активностях (интенсивы и не только) на ближайший семестр. А теперь о…

Вот ведь что такое языковая модель?.. ChatGPT, например, это большая языковая модель плюс функционал чат-бота плюс интерфейс приложения. И ещё есть API, для разработчиков: чтобы без интерфейса обмениваться сообщениями с моделью. Чат-бот - это рамка диалога с пользователем. Она обеспечивает интуитивно понятный формат общения. Например, по ней мы сразу понимаем, что через этого бота можно заказать пиццу, а в этом боте можно вырастить собственную капибару. Интерфейс и API нужны как медиум, форма обмена сообщениями. Остаётся языковая модель.
Так что такое языковая модель? Это программа, которая по введённой строке догадывается, что должно быть дальше. Если я скажу, что люблю макароны с.. и тут резко прервусь, то, скорее всего, вы подумаете: “котлетой”, “курицей”, “сосиской” (а я то думала “пюрешкой” 🍲). Или если спросить человека, сколько сейчас времени, то он ответит что-то типичное в формате “без пятнадцати три”.
Как научить языковую модель предсказывать следующее слово? Кто про эмбеддинги читал, то уже, наверно, предугадал, что можно поступить похожим образом, как в word2vec. Берём корпус, разбираем на пары слов и учим нейросеть предсказывать правое слово по левому. Получилось, нам не нужно даже веса из модели (эмбеддинги) вытаскивать. Есть и другой более простой вариант - цепи Маркова. Берём из корпуса слова по отдельности, а также сочетания из двух и трёх слов подряд (это наши иксы) и берём следующее слово, которое идёт после этих слов и сочетаний (игреки). А затем просто рассчитываем, какой игрек наиболее часто встречается после каждого икса. Так и будет рассчитывать модель свой ответ на наш запрос - будет искать наиболее частое слово, которое встретилось в корпусе, после тех, что она получила в нашем запросе. Причем учитывать она будет максимум три последних слова, если такое сочетание есть среди ее иксов.
Минус такого подхода заключается в том, что в речи мы учитываем гораздо больше параметров, чем последние несколько слов.
Как сделать языковую модель более умной? Во-первых, конечно, пусть она не только три слова до заданного помнит. Пусть помнит много всего и до, и после. Во-вторых, пусть она пропускает какие-то слова, потому что речь варьируется. Важное для понимания слово может стоять где-то недалеко в контексте, например после стоп-слова, знака препинания, междометия типа “эээ”, “аммм”. Трансформер - эта такая архитектура нейронной сети, которая оценивает важность сочетаний в более широком контексте, с пропусками. Для этого в ней есть механизм под названием “внимание” (attention, этЕншн).
Языковые модели на цепях Маркова или word2vec’ах не требуют больших ресурсов. А вот трансформерам, чтобы учесть очень много сочетаний, нужны большие мощности. Обучить трансформер в домашних условиях не получится - требуется много видеокартов (примерно как в криптомайнинге). Поэтому такие модели называют большими(-пребольшими).

#база
👍5
От коллеги пришла предложка: это залипательная визуализация структуры большой языковой модели. Жмякайте "пробел" (синяя клавиша внизу страницы) и наблюдайте магию современной инженерной мысли.
LLM Visualization
https://bbycroft.net/llm
🔥5
Новые имена: Татьяна Шаврина
Вот, собсна, ее блог. Эй, стойте, не жмякайте! Сначала прочитайте мой пост 😁

Итак, Татьяну я лично не встречала (только по почте переписывалась), но знаю как очень активного компьютерного лингвиста с массой крутых и, что важнее, реализованных проектов. Ее история про то, что мы все тоже можем, если захотим. И про то, что мы все тоже можем участвовать в продолжениях этих проектов.
В первый раз я о Татьяне и ее проектах прочитала в блоге на vc.ru. Они с командой из SberDevices создали GPT-3 для русского языка. Это было важным событием, т.к. ещё и полгода не прошло с публикации статьи о том, в чем преимущество и как устроено новое поколение языковых моделей GPT (в ChatGPT, вроде бы, используют GPT-3.5). Судя по комментариям к посту, первая версия была не очень понятливая. Но, учитывая, что аналогов не было, а в научных статьях всегда все излагается довольно путано, это было настоящее событие. Модель доработали. Неслучайно, Сбер - один из самых ИИ-продвинутых российских бизнесов.
В этом же посте упоминается Russian SuperGLUE - ещё один проект Татьяны с ее командой (которая, кстати, называлась AGI NLP; AGI - как Artificial General Intelligence, интеллект, который равен человеческому). А вот пост, анонсировавший Russian SuperGLUE. Кстати, зацените команду на фото. Половина - девчонки. Это прям редкость для подобных проектов. GLUE расшифровывается как General Language Understanding Evaluation. Это коллекция задач на понимание естественного языка, например русского, которые должны решаться при помощи одной и той же программы. То есть разработчику нужно создать, например, языковую модель, которая и на вопросы отвечает, и даёт определение слову по контексту, и делает логический вывод, и ещё несколько разных задач. Коллекцию также называют бенчмарк. Ее цель - выявить, на что уже сейчас способны технологии. В ещё одном бенчмарке, который делала Татьяна, TAPE, есть и предложенная мной задача: автоматический ответ на вопросы интеллектуальных викторин.
Ещё немного о проектах есть вот в этом посте Татьяны.
В общем я это к чему. Участвовать в покорении бенчмарков, тренировать языковые модели, создавать собственные датасеты и задачи вполне реально и без мощностей Сбера. У меня тоже есть вот всяких датасетов - заходите. Может, вам что-то покажется интересным для ресеча - обращайтесь, проконсультирую. А можем и курсовую написать или диплом.

#эссеиистика
3
Старые имена: Грейс Хоппер

Вот ведь что такое “компилятор”?.. До 1952 года программы для компьютеров писали только на машинном коде. Они состояли из таблиц с символами, записанных на перфокарты (например, такое: 18B2:0100 6A 00 68 4B 01 66 83 7E-E0 00 74 05 B8 4C 01 EB). Понять, что там написано, можно было только разобравшись с бинарным кодом и выучив наизусть довольно много инструкций. (Если хотите это сделать сами, то мне понравился вот этот древний тьюториал по машинному коду.) Грейс Хоппер, сотрудница лаборатории в компании “Eckert-Mauchly Computer Corporation”, упростила свою работу с программами тем, что сначала на машинном коде создала несколько базовых программ, например возведение числа в степень, а потом придумала для каждой программы интуитивно понятное название и уже его использовала для более быстрой и компактной записи кода. Так появилась программа-компилятор, которая переводит скрипты (тексты программ) с языка программирования верхнего уровня (где инструкции более-менее интуитивно понятны) в машинный код. И чуть позже на основе этой идеи возник высокоуровневый язык COBOL. У Гугла был дудл на эту тему - так я, собственно, и узнала про Грейс Хоппер. И примерно тут же узнала, что это она изобрела термин “баг” (bug - жук) и “дебаггинг” (устранение ошибок в коде). А первый баг был молью, которая прилипла на перфокарту.
Про Грейс Хоппер много написано и без меня. Мне понравились изложения ее биографии тут и тут. Она была дипломированным математиком. После развода и с началом Второй мировой решила пойти во флот. Ее направили на работу в лабораторию. Сменив за жизнь несколько лабораторий, она дослужилась до чина контр-адмирала младшего ранга. Участвовала даже в Манхэттенском проекте. (Кто тут еще не смотрел “Оппенгеймер”? Бегом искать на лордфилмз. Только не устанавливайте один-икс-бет - это ловушка 🥴)
В общем есть такие истории, про которые думаешь, “Это что, и вправду так было?”. У Грейс Хоппер даже прозвище есть: Amazing Grace. С одной стороны, это слова из христианского гимна. Переводится как “О, благодать”. С другой, amazing означает “удивительная, невероятная”. Таким же открытием для меня когда-то стала история Маргарет Хамильтон. Это математик и программист, которая возглавляла команду, написавшую код для американской миссии по высадке на Луну. То есть буквально на ее (с ее командой) коде летали все эти конструкции, в которых сидели астронавты. Ну и еще одна история, удивившая меня не меньше, это фильм “Скрытые фигуры” про трех афроамериканок, которые реально работали в NASA в 1960-е на значимых должностях. Правда, согласно Википедии, тема расовой сегрегации в фильме была намеренно усилена. Но факты о должностях и проектах - подлинные.
В общем, как много в мире удивительного. Продолжая тему дневного поста: как сделать классный проект по ИИ, даже если ты вообще не выглядишь как типичный айтишник? Рецепт: берешь и делаешь, параллельно получая (само-)образование по айти.

#эссеиистика #чепосмотреть
🫡5
Уважаемые подписчики! Итак, что я планирую на новый семестр.

1⃣ Продолжим интенсивиться по вопросам ИИ.
2⃣ Мы со Славой Косовичем из Smart Games пишем подкаст про ИИ в интеллектуальном спорте. Будет визуально 👀 и аудиально 🎉
3⃣ Слышали ли вы про Open Data Science? Это комьюнити и полностью бесплатная платформа для образования, соревнований и проектов. Попробую открыть хаб в Тюмени. Are you with me?
4⃣ Пора пробудить Кракена провести новый дататон в ТюмГУ - соревнование по анализу данных. О первом можно прочитать здесь.

И да пребудет с нами Скайнет! 🧑‍💻🦾
👍5🥰1👨‍💻1
This media is not supported in your browser
VIEW IN TELEGRAM
💘4
This media is not supported in your browser
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
❤‍🔥3
Ну... про серию подкастов я не уверена, но один будет точно 😎
👍1🫡1
This media is not supported in your browser
VIEW IN TELEGRAM
🔥2
Вот как раз слои текста мы и будем разбирать. Это, кстати, одно из направлений ИИ - вытаскивать логику, которая привела к выдаче конкретного ответа.
😱1
This media is not supported in your browser
VIEW IN TELEGRAM
Ну и напоследок.. Надеюсь, вам понравился Олег 😊
1🥴1
This media is not supported in your browser
VIEW IN TELEGRAM
1🤝1
Ах да, чат-бот, который мы упомянули, можно потыкать вот здесь @iq_utmn_bot . Правда, он недавно переехал на новый сервер, поэтому в нем могут быть технические шоколадки 🤧
👍21