Как стать автором
Обновить
11
8
Антон Костин @visualcomments

Пользователь

Отправить сообщение

Как работает multiprocessing в Python под капотом

Уровень сложностиСложный
Время на прочтение12 мин
Количество просмотров11K

Я довольно давно пишу на Python и во многих проектах использовал multiprocessing — пакет стандартной библиотеки языка Python, который предоставляет интерфейс для работы с процессами, очередями, пулами процессов и многими другими удобными инструментами для параллельного программирования. В какой-то момент я понял, что мне не хватает более детального понимания работы этой библиотеки.

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

Читать далее
Всего голосов 17: ↑17 и ↓0+18
Комментарии2

Много-агентное планирование траекторий в децентрализованном режиме: эвристический поиск и обучение с подкреплением

Уровень сложностиСредний
Время на прочтение17 мин
Количество просмотров3.3K

Привет! Меня зовут Константин Яковлев, я научный работник и вот уже более 15 лет я занимаюсь методами планирования траектории. Когда речь идет о том, чтобы построить траекторию для одного агента, то задачу зачастую сводят к поиску пути на графе, а для этого в свою очередь обычно используют алгоритм A* или какие‑то из его многочисленных модификаций. Если же агентов много, они перемещаются в рабочем пространстве одновременно, то задача (внезапно) становится несколько более сложной и применить напрямую A* не получится. Вернее получится, но лишь для небольшого числа агентов (проклятье размерности, куда деваться). Тем не менее для централизованного случая, т. е. для случая, когда есть один (мощный) вычислитель, с которым связаны все агенты и который всё про всех знает, решить задачу много‑агентного планирования можно достаточно эффективно. Можно даже находить оптимальные решения для умеренного количества агентов за относительное приемлемое время (например, порядка 1 секунды на современном десктопном PC для 30–50 агентов).

Если же говорить о децентрализованном случае, т. е. о том случае, когда агентам необходимо действовать индивидуально (например, нет устойчивой связи с центральным контроллером), опираясь лишь на собственные (локальные) наблюдения и опыт, то с хорошими решениями задачи становится гораздо сложнее. Когда я говорю «хорошие решения», я имею в виду прежде всего такие алгоритмы, которые бы давали стройные теоретические гарантии в общем случае. Хотя бы гарантии того, что каждый агент дойдёт (за конечное время) до своей цели. Тем не менее, задача интересная и специалисты из индустрии и академии её пытаются решать.

В этом посте я расскажу о наших свежих наработках в этой области, а именно о гибридном методе, которые сочетает в себе принципы классического эвристического поиска (A*) и обучения с подкреплением (PPO). Метод получился неплохим, превосходящим многие современные аналоги по результатам экспериментов, а соответствующая статья была принята на The 38th AAAI Conference on Artificial Intelligence (пока доступен только препринт). Это одна из топовых академических конференций по искусственному интеллекту, которая в этом (2024) году проходила в Канаде (спойлер: я сам визу получить не успел, но моим коллегам и со‑авторам, кто имел ранее выданные Канадские визы, удалось принять личное участие и достойно представить нашу науку на мировом уровне).

Итак, поехали!
Всего голосов 27: ↑27 и ↓0+27
Комментарии11

Как машинлернеры мерили экспрессию генов от воздействия лекарств

Уровень сложностиСредний
Время на прочтение5 мин
Количество просмотров1.8K

Привет! Меня зовут Дима и я веду канал про соревновательный МЛ. Недавно мы выиграли приз в довольно престижном соревновании и я сделал обзор всех лучших решений

Хочу вам рассказать о Open Problems, где не удалось взять золото, но все равно все очень довольны, ведь мы взяли 13 место и специальные приз жюри, который позволил нам выступить на NeuralIPS.

Начнем с краткого описания соревнования:

Компания-организатор занимается тем, что пытается оптимизировать проведение дорогостоящих экспериментов с препаратами на живых, но отделенных от самих созданий клетках 🧪 (in vitro) 🧪. У клеток много разных типов и препарат лечащий одну клетку мог спокойно убить все клетки другого типа в том же организме. Взяли много таких экспериментов, в том числе контрольные. Можно увидеть на картинке подробности того, как проводился тест

Читать далее
Всего голосов 6: ↑4 и ↓2+5
Комментарии3

Как (быстро) сделать русский локальный ChatGPT

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров40K

Эта история началась в начале марта этого года. ChatGPT тогда был в самом расцвете. Мне в Telegram пришёл Саша Кукушкин, с которым мы знакомы довольно давно. Спросил, не занимаемся ли мы с Сашей Николичем языковыми моделями для русского языка, и как можно нам помочь.

И так вышло, что мы действительно занимались, я пытался собрать набор данных для обучения нормальной базовой модели, rulm, а Саша экспериментировал с существующими русскими базовыми моделями и кустарными инструктивными наборами данных.

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

Читать далее
Всего голосов 70: ↑69 и ↓1+88
Комментарии54

Пять книг про NLP, с которых можно начать

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров15K

Всем привет! Меня зовут Валентин Малых, я — руководитель направления NLP-исследований в MTS AI, вот уже 6 лет я читаю курс по NLP. Он проходит на платформе ODS, а также в нескольких университетах. Каждый раз при запуске курса студенты спрашивают меня про книги, которые можно почитать на тему обработки естественного языка. Поскольку я все время отвечаю одно и то же, появилась идея сделать пост про мой список книг, заодно описав их. 

Читать далее
Всего голосов 13: ↑13 и ↓0+13
Комментарии7

Социалистическое медиа «Диалектик» рассказывает о своих NLP проектах в 2023, публикует датасеты и делится кодом

Уровень сложностиПростой
Время на прочтение15 мин
Количество просмотров6.7K


Почти сразу после публикации поста про систему поиска новостей о трудовых конфликтах в СНГ я познакомился с коллективом проекта «Диалектик». Ребята отмечали важность отслеживания зарубежных забастовок и анализа опыта мирового рабочего движения в отстаивании трудовых прав. Поэтому я начал помогать «Диалектику» своими навыками работы с алгоритмами машинного обучения.


Было решено разработать систему, которая бы автоматически находила новости о зарубежных трудовых конфликтах. Во время разработки этой системы я познакомился с другими техническими проектами «Диалектика», о которых хочу рассказать в этом посте. Почти каждый проект включает в себя анализ данных, поэтому публикуемые в открытый доступ данные и код могут быть полезными Data Science сообществу.

Читать дальше →
Всего голосов 23: ↑20 и ↓3+22
Комментарии3

Как мы в Циан выбирали сервис мониторинга соцсетей

Время на прочтение8 мин
Количество просмотров3.9K

Привет! Меня зовут Полина, я присматриваю за соцсетями в клиентской службе Циан. Три последних года мы мониторили соцсети с помощью одного из старейших сервисов — YouScan. Этой весной YouScan уведомил всех, что уходит с российского рынка. В этой статье расскажу, как мы нашли ему замену среди российских систем.

Читать далее
Всего голосов 8: ↑6 и ↓2+5
Комментарии3

Незадача коммивояжера и жёлтый октябрь

Время на прочтение15 мин
Количество просмотров13K

Главнокоммивояжер Аристарх поглядывал на Пророка, покручивая дубинкой от снежных троллей — ходовым сезонным товаром — 11% отклонение прогноза продаж на 10 дней в среднем (MAPE) впечатлило и, как у нас в чате говорят, зашло в роли baseline. Если он так же хорош, как и их Цукерберг, то сразу в прод — таков был первый порыв. Пророк поглядывал на главнокоммивояжера, прищурив правый глаз. Такой серьезный, в костюме, и верит в то, что инновации апплодисментами встретят и сразу же примут — мысль в голове вертелась, постепенно обретая форму. А Вы в курсе, юноша, скольким коллегам и контрагентам со своими нововведениями немилы станете? Они же Вас невзлюбят сразу, к гадалке не ходи! В общем, порыв жил обычным циклом инноваций.


image


В дисциплине управления проектами стейкхолдерами называют всех, кого проект коснется (а также тех, кто может оказать на него влияние). Люди они разные, со своими интересами, ожиданиями, и чаяниями. Закрыть глаза в надежде, что и проекта не заметят — весьма опрометчиво (вспоминается неприглашенная колдунья). Boston Consulting Group оценивает долю IT проектов, почивших по не-техническим причинам, в 75%. Последние две редакции свода знаний по управлению проектами (PMBOK) выделяют процессы по управлению стейкхолдерами в отдельную область знаний под счастливым номером 13 и настоятельно рекомендуют учитывать связи между ними, центры влияния, а также культуру общения для повышения шансов на успех.


Мы покажем, как оценить стейкхолдеров с помощью машинного обучения. Выделим группы похожих между собой людей и решим задачу кластеризации — сегментации клиентов в терминах маркетинга — в социальных структурах, которые построим из: 1) потоков сообщений и 2) эмоциональной окрашенности текста. Для этого заглянем в переписку, любезно предоставленную г-жей Клинтон, способом, предложенным в журнале Биоинформатика.

Читать дальше →
Всего голосов 61: ↑54 и ↓7+47
Комментарии17

Учиться, учиться, и ещё раз учиться?

Время на прочтение11 мин
Количество просмотров17K

TLDR: крохотные модельки обошли модные графовые нейронки в предсказании свойств молекул.
Код: здесь. Берегите Природу.


image
ФОТО: Андерс Хеллберг для Wikimedia Commons, модель — Грета Тунберг


Необученная графовая свёрточная нейронная сеть [1] (uGCN) со случайной инициализацией весов уже пару лет занимает первое место в моём списке алгоритмов для задач машинного обучения на графах из-за копеечной стоимости, простоты реализации, да вполне очевидной элегантности решения. В то же время, насколько мне известно, никто ещё не не проводил соревнований между этой простой моделью и её старшей сестрой — полноценно обученной графовой свёрточной нейронной сетью (GCN) в режиме обучения с учителем. Вот я сделал.


Мотивация: показать, что uGCN выдаёт качественные представления, которые можно использовать в последующих задачах машинного обучения в индуктивном режиме, когда модели обобщаются к не виденным ранее данным (вдохновлено недавним отчётом [2] о производительности простых моделей в трансдуктивном случае).


Полученные результаты — занимательны. В худшем случае простые модели (uGCN + degree kernel + random forest) показали счёт 54:90 против полноценно обученных GCN, в то время как реалистичный сценарий закончился разгромным реваншем 93:51, указывающим на то, что мы можем позволить себе почти бесплатные эмбеддинги, которые превосходят или показывают результаты на уровне полноценно обученных GCN в задаче предсказания свойств графа (например — эффекта медикаментов: яд или лекарство) за долю стоимости. Простые модели обучались ~10 минут в то время как весь эксперимент продлился ~4 часа. Перейдём же к деталям и разберёмся с тем, что произошло!

Читать дальше →
Всего голосов 29: ↑26 и ↓3+28
Комментарии2

Время, деньги и фасттекст (и при чем здесь бытие)

Время на прочтение2 мин
Количество просмотров1.3K

Пятиминутка философии на Хабре.

Все знают изречение «время — деньги». Но если обратиться к корпусу философских текстов, то такое сочетание для философии не самое привычное. Гораздо чаще время у философов ассоциируется, например, с бытием. Есть даже такая книга, «Бытие и время». Но вдруг нас заинтересует, как же всё-таки время и деньги связаны в философии? Самое время обратиться к глубокому обучению.

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

Попробуем задать ей вопрос о сходстве денег и времени в философии. Но заодно захватим и связку «бытие - время».

Читать далее
Всего голосов 5: ↑3 и ↓2+3
Комментарии0

Теория графов в машинном обучении для самых маленьких

Время на прочтение15 мин
Количество просмотров26K

Сложность представления данных для глубокого обучения растет с каждым днем. Нейронные сети на основе данных в виде графа (Graph Neural Network, GNN) стали одним из прорывов последних лет. Но почему именно графы набирают все большую популярность в машинном обучении?


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

Читать дальше →
Всего голосов 9: ↑8 и ↓1+11
Комментарии3

Визуализация больших графов для самых маленьких

Время на прочтение12 мин
Количество просмотров57K


Что делать, если вам нужно нарисовать граф, но попавшиеся под руку инструменты рисуют какой-то комок волос или вовсе пожирают всю оперативную память и вешают систему? За последние пару лет работы с большими графами (сотни миллионов вершин и рёбер) я испробовал много инструментов и подходов, и почти не находил достойных обзоров. Поэтому теперь пишу такой обзор сам.
Читать дальше →
Всего голосов 95: ↑94 и ↓1+93
Комментарии30

Где и как врубиться в эмбеддинги графов

Время на прочтение30 мин
Количество просмотров32K

Привет, Хабр!


Три года назад на сайте Леонида Жукова я ткнул ссылку на курс Юре Лесковека cs224w Analysis of Networks и теперь мы будем его проходить вместе со всеми желающими в нашем уютном чате в канале #class_cs224w. Cразу же после разминки с открытым курсом машинного обучения, который начнётся через несколько дней.


image


Вопрос: Что там начитывают?
Ответ: Современную математику. Покажем на примере улучшения процесса IT-рекрутинга.


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

Читать дальше →
Всего голосов 48: ↑42 и ↓6+36
Комментарии10

Лекции от Яндекса для тех, кто хочет провести каникулы с пользой. Дискретный анализ и теория вероятностей

Время на прочтение3 мин
Количество просмотров143K
Для тех, кому одного курса на праздники мало и кто хочет больше, продолжаем нашу серию курсов от Школы анализа данных Яндекса. Сегодня подошла очередь курса «Дискретный анализ и теория вероятностей» – даже более фундаментального, чем предыдущий. Но без него нельзя представить ещё большую часть современной обработки данных.

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



Читает курс Андрей Райгородский. Доктор физико-математических наук. Профессор кафедры математической статистики и случайных процессов механико-математического факультета МГУ им. М. В. Ломоносова. Заведующий кафедрой Дискретной математики ФИВТ МФТИ. Профессор и научный руководитель бакалавриата кафедры «Анализ данных» факультета инноваций и высоких технологий МФТИ. Руководитель отдела теоретических и прикладных исследований компании «Яндекс». (Ещё больше можно узнать в статье о нём на Википедии).

Содержание курса и тезисы лекций
Всего голосов 121: ↑115 и ↓6+109
Комментарии21

Визуализация данных для киноманов: скрапим рекомендации фильмов и делаем интерактивный граф

Время на прочтение11 мин
Количество просмотров29K

Однажды я наткнулся на интерактивную карту lastfm и решил обязательно сделать подобный проект для фильмов. Под катом история о том, как собрать данные, построить граф и создать своё интерактивное демо на примере данных с кинопоиска и imdb. Мы рассмотрим фреймворк для скрапинга Scrapy, пробежимся по методам визуализации больших графов и разберёмся с инструментами для интерактивного отображения больших графов в браузере.

Читать дальше →
Всего голосов 67: ↑65 и ↓2+63
Комментарии18

Визуализация комментариев ютуб-каналов международных и локальных touhou-сообществ

Время на прочтение5 мин
Количество просмотров4.9K
Всем привет! Мы развиваем идеи первого поста и продолжаем визуализировать и изучать комментарии на ютубе. На этот раз мы поработаем с глобальными и локальными ютуб-сообществами. Как взаимодействуют комментаторы, которые пишут на разных языках? Собирается ли из множества локальных групп единое глобальное сообщество, или дело сложнее, чем кажется? И причем здесь Touhou Project? Давайте выясним.


Читать дальше →
Всего голосов 25: ↑25 и ↓0+25
Комментарии11

Визуализация комментариев на ютубе: ролики, каналы, жанры, кросс-жанры

Время на прочтение5 мин
Количество просмотров5K
Всем привет! Таннер Стоукс в свое время написал адд-он, переделывающий текст комментариев на ютубе в “herp derp”. Кому-то это сделало жизнь намного лучше. Мы пошли по тому же пути, но немного изменили концепцию. Мы представляем комментарии с ютуба в виде картинок, а точнее графов с вершинами и ребрами. И визуализируем все типы объектов — от роликов и каналов до кросс-жанровых пересечений. Как мы это делаем? Давайте выясним.


Читать дальше →
Всего голосов 14: ↑13 и ↓1+12
Комментарии3

Информация

В рейтинге
686-й
Откуда
Россия
Зарегистрирован
Активность

Специализация

Data Analyst, Web Analyst
Middle
Python
Linux