Курсы ШАДа
В течение семестра каждый учащийся должен успешно пройти как минимум три курса. Например, если в основной программе их два, то необходимо выбрать какой-нибудь из спецкурсов
Курс предназначен для изучения алгоритмов для работы с большими данными.
Традиционные курсы по алгоритмам, несмотря на акцент на эффективности и практичности, обычно исходят из того, что обрабатываемые данные достаточно малы, чтобы поместиться в оперативную память компьютера, которая представляется одним большим массивом ячеек с одинаковым временем доступа к любой из них.
В реальных приложениях такая модель малоприменима: во‑первых, часто требуется обрабатывать данные на внешнем носителе (обычно — на жёстком диске); во‑вторых, повсеместное использование многоуровневых систем кэширования делает время исполнения алгоритма менее предсказуемым. Поскольку память не является гомогенной средой, хороший алгоритм должен обращать внимание на правильное с точки зрения локальности расположение данных.
Программа:
Курс знакомит с базовыми алгоритмическими приёмами и структурами данных. Системные знания фундаментальных основ компьютерных наук важны для понимания работы библиотек, алгоритмов и языков программирования.
Он состоит из трёх частей:
Программа:
Курс охватывает основные синтаксические конструкции языка и структуры данных, основы ООП, а также базовые библиотеки Python для анализа данных и визуализации
Программа:
Курс посвящён изучению аналитики двустороннего маркетплейса. В современной экономике крупнейшие корпорации — такие как Alibaba, Amazon, Uber, Yandex, Airbnb, Baidu — создают платформы (маркетплейсы), где могут встретиться участники с двух сторон рынка: продавцы и покупатели на Alibaba и Amazon, водители и пассажиры на Uber и Yandex Taxi, арендодатели и арендаторы на Airbnb. Курс раскрывает основные вопросы, встающие перед такими платформами, и технологии, позволяющие их решить. На примерах из реальной практики (Яндекс Такси) демонстрируется применение современных методов анализа эффективности работы подобных платформ
Программа:
Курс предназначен для изучения архитектуры компьютера и операционных систем.
При разработке высоконагруженных систем важно учитывать окружение выполнения кода — например, в компаниях типа Яндекса это сервера с многоядерными процессорами x86 под Linux. Понимание работы процессора и ОС помогает разобраться в особенностях функционирования реального кода.
Курс охватывает теоретические и практические вопросы построения ОС: концепции и алгоритмы, взаимодействие с аппаратурой, виртуальную память, многозадачность и многопоточность, синхронизацию, блочные устройства, файловые системы и т. д.
Практические задания выполняются на учебной ОС Nikka с использованием языка Rust (глубоких знаний языка не требуется)
Программа:
СУБД позволяют разработчикам не думать о том, как хранить данные на диске и как их искать, как обеспечить конкурентный доступ сразу многим пользователям, как оптимально воспользоваться ресурсами — всё это реализовано через интерфейс языка запросов (обычно диалекта SQL). Однако для построения высоконагруженных систем важно понимать, как работает СУБД и почему запросы выполняются за определённое время. Кроме того, есть специалисты, которые сами создают СУБД. В курсе разберём внутреннее устройство СУБД: хранение данных, выполнение запросов и реализацию транзакций. В Яндексе есть команды, разрабатывающие СУБД или схожие решения: Postgres, ClickHouse, YDB и YT. Курс в первую очередь предназначен для тех, кто хочет присоединиться к этим командам, а также будет полезен специалистам, работающим с хранилищами данных с доступом в реальном времени. От слушателей ожидается знание алгоритмов во внешней памяти, многопоточного программирования и распределённых систем, а также владение языком программирования C++
Программа:
Курс нацелен на освоение т.н. байесовского подхода к теории вероятностей как одного из последовательных способов математических рассуждений в условиях неопределённости. В байесовском подходе вероятность интерпретируется как мера незнания, а не как объективная случайность. Простые правила оперирования с вероятностью, такие как формула полной вероятности и формула Байеса, позволяют проводить рассуждения в условиях неопределённости. В этом смысле байесовский подход к теории вероятностей можно рассматривать как обобщение классической булевой логики.
Целью курса также является освоение студентами основных способов применения байесовского подхода при решении задач машинного обучения. Байесовский подход позволяет эффективно учитывать различные предпочтения пользователя при построении решающих правил прогноза. Кроме того, он позволяет решать задачи выбора структурных параметров модели. В частности, здесь удаётся решать без комбинаторного перебора задачи селекции признаков, выбора числа кластеров в данных, размерности редуцированного пространства при уменьшении размерности, значений коэффициентов регуляризации и проч.
Предполагается, что в результате освоения курса студенты будут способны строить комплексные вероятностные модели, учитывающие структуру прикладной задачи машинного обучения, выводить необходимые формулы для решения задач обучения и вывода в рамках построенных вероятностных моделей, а также эффективно реализовывать данные модели
Программа:
Программа курса посвящена освоению основ безопасности информационных систем. Курс поможет слушателям погрузиться в сферу информационной безопасности и получить базовые навыки для начинающего специалиста в ИБ, а также понять, как безопасность и стабильность обеспечивают доступность серверных приложений, конфиденциальность и целостность данных в серверной инфраструктуре и на пользовательских устройствах
Программа:
Курс рассчитан на тех, кто не учился лингвистике, но хочет узнать о разнообразии языков мира, о том, как устроен человеческий язык, и о том, что в нём пока плохо поддаётся автоматической обработке. В рамках курса предусматривается решение олимпиадных лингвистических задач разных типов (самодостаточных и не совсем).
Курс «Введение в лингвистику» предназначен для тех, кто не изучал лингвистику, но хочет узнать о разнообразии языков мира, устройстве человеческого языка и аспектах, плохо поддающихся автоматической обработке. В рамках курса решаются олимпиадные лингвистические задачи разных типов (самодостаточные и не совсем)
Программа:
Курс посвящён базовым криптографическим алгоритмам и схемам — основе прикладных криптопротоколов и систем. Рассматриваются блочные шифры, хэш‑функции, режимы шифрования, схемы выработки кодов аутентификации сообщений и другие симметричные криптографические алгоритмы, а также принципы их строения и решаемые с их помощью задачи.
Особенность курса — акцент на фундаментальных криптографических идеях, лежащих в основе схем и требований к ним, а не на реализации и перечислении аббревиатур (SHA1, MD5, AES и т. п.). Освещаются идеи современного криптографического анализа и принципы построения надёжной криптографической инфраструктуры
Программа:
В курсе рассматриваются методы оптимизации и теория, необходимая для обоснования их корректности. Сначала акцент делается на выпуклых задачах: они позволяют моделировать множество реальных задач и гарантируют их эффективное решение. Затем внимание переключается на методы и подходы для решения задач оптимизации в процессе обучения нейросетей. Также обсуждаются нюансы, связанные со сжатием предобученных моделей, их ускорением и повышением эффективности использования с точки зрения методов оптимизации
Программа:
Курс посвящён современным генеративным моделям (в основном — в приложении к компьютерному зрению).
Изучаются следующие типы генеративных моделей:
Особое внимание уделяется свойствам различных классов генеративных моделей, их взаимосвязям, теоретическим предпосылкам и методам оценки качества.
Цель курса — познакомиться с широко используемыми передовыми методами глубокого обучения.
Курс сопровождается практическими заданиями, которые позволяют понять принципы работы рассматриваемых моделей
Программа:
Курс посвящён современным нейросетевым методам в компьютерном зрении и в компьютерной графике. Студенты изучат основы построения и обучения нейронных сетей, современные свёрточные и трансформерные архитектуры и их применение к задачам детекции объектов, сегментации изображений, обучению представлений, переносу обучения (transfer learning) и интерпретации моделей. Кроме того, в курсе рассматриваются нейросетевые методы для генерации изображений, включая GAN, вариационные автоэнкодеры и диффузионные модели. Дополнительно изучаются подходы к генерации новых видов 3D-сцен, основанные как на явной модели сцены, восстановленной нейросетевыми методами, так и с помощью нейронных рендереров
Программа:
Во многих приложениях машинного обучения можно столкнуться с данными, в которых известны связи между объектами: пользователи социальных сетей связаны через подписки, сайты в интернете — через ссылки, научные публикации — через цитирования, пользователи маркетплейсов и товары — через покупки, атомы молекул — через химические связи. Такие данные можно представить в виде графов. Машинное обучение на данных с графовой структурой (graph machine learning) — область, которая очень активно развивается в последние несколько лет.
Курс посвящён задачам машинного обучения с графами и методам работы с такими данными — от классических подходов до современных графовых нейронных сетей. Рассмотренные методы применяют для:
Программа:
Курс посвящён методам и алгоритмам компьютерного зрения — извлечению информации из изображений и видео. Он даёт введение в область компьютерного зрения и охватывает все ключевые задачи. Для большинства задач рассматриваются современные нейросетевые модели: свёрточные и трансформеры.
По каждой задаче разбираются: постановка, метрики оценки качества, актуальные датасеты и основные идеи современных алгоритмов решения. Акцент сделан на наиболее современных методах, применяемых в практических и исследовательских задачах. Курс носит преимущественно практический характер: лекции сопровождаются лабораторными и домашними работами, позволяющими применить большинство рассматриваемых методов на практике. Работы выполняются на языке Python с использованием различных библиотек
Программа:
Курс — первая часть годовой программы по машинному обучению. В течение семестра слушатели пройдут путь от фундаментальных понятий и простейших методов (k‑ближайшие соседи, линейная регрессия) до мощных методов градиентного бустинга (XGBoost, CatBoost, LightGBM), введения в глубокое обучение и байесовского подхода.
Цель курса — глубокое погружение в принципы работы ключевых методов и их математические основы (МНК, градиентный спуск, регуляризация, статистические свойства). Освоение принципов построения и опыта применения таких моделей позволит самостоятельно понимать механизмы функционирования более сложных современных моделей и методов работы с данными, обнаруживать пути улучшения существующих методов и адаптировать методы машинного обучения для решения нестандартных задач.
Слушатели освоят весь пайплайн ML‑проекта, научатся работать с популярными инструментами (Scikit‑learn, PyTorch), разбираться в особенностях разных моделей (деревья, леса, бустинг, нейросети) и понимать, как оценивать и улучшать их качество. В программе — широкий спектр задач: регрессия, классификация, кластеризация, а также первое знакомство с компьютерным зрением и обработкой естественного языка.
Курс требует активного участия. Программа насыщенная, темп обучения высокий: предстоит быстро разбирать сложные концепции с фокусом на понимание того, как и почему работают методы ML, а не только на их использование. Работа предстоит серьёзная, но результативная
Программа:
На семинаре знакомятся с предметной областью, обсуждают текущую научную работу слушателей, критикуют и генерируют новые идеи. На тематические семинары приглашают внешних экспертов
Курс могут сдавать только магистранты программ «Современные компьютерные науки» НИУ ВШЭ и «Анализ данных» МФТИ, записаться слушателем — любой студент. В роли слушателя можно расширить научный кругозор и тренировать внимательность, знакомясь с интересными и свежими работами в области data science. В роли докладчика — глубоко разобраться в научной статье и прокачать навыки публичных выступлений, готовя и проводя презентацию для опытной аудитории. Участие в семинаре даёт возможность профессионально расти
Темы курса зависят от выбранных для разбора студентами статей
В рамках курса рассматривается C++ — мощный язык с богатым наследием. Курс посвящён современному подмножеству языка — Modern C++ (стандарты 11, 14, 17, 20). Особое внимание уделяется инструментам и библиотекам, не входящим в состав языка, но необходимым для создания крупных и сложных проектов
Программа:
Курс затрагивает набор продвинутых тем по разработке на C++ и предназначен для тех, кто хочет углубиться в различные аспекты языка
Программа:
В рамках курса изучаются: обработка и хранение больших объёмов данных на наборе машин, распределённые алгоритмы и общие идеи построения распределённых сервисов. Рекомендуемый пререквизит: понимание принципов многопоточного программирования
Программа:
Данный курс направлен на изучение сбора и разметки данных для машинного обучения.
Для обучения ML‑моделей часто требуется подготовить обучающий датасет — данные с разметкой, правильными ответами. Когда речь идёт про учебный проект или пет‑проект, об этом не всегда приходится задумываться. Но если речь идёт о работе в production‑сервисе, где есть свой поток данных, необходимо понимать, где взять размеченные данные.
Например, предположим, что речь идёт о Яндекс Лавке и необходимости обучить модель правильно классифицировать запросы пользователей из техподдержки. Без разметки конкретных запросов, которые поступают в Лавку, не обойтись.
В рамках курса будут рассмотрены следующие вопросы:
Слушатели курса научатся организовывать процесс разметки данных для обучения ML — как с использованием ML, так и с привлечением краудсорсинга. Будут разобраны production‑кейсы о сборе разметки для генеративных моделей, компьютерного зрения и голосовых технологий в Яндексе. В качестве последнего домашнего задания участники соберутся в команды и обучат модель машинного обучения с помощью собранной разметки.
Из практических инструментов будут освоены:
Программа:
Курс углублённо изучает основы теории вероятностей и математической статистики — от аксиоматического построения вероятностного пространства до предельных теорем и марковских процессов, включая свойства случайных величин, распределений, моментов, характеристических функций, условной вероятности и совместных распределений. Сочетает теорию с практическими примерами и применением к задачам моделирования и анализа данных
Программа:
Курс посвящён изучению теории игр. В математике игрой называется стратегическое взаимодействие сторон — например, людей, животных, фирм, стран. Теория игр пытается предсказать исход такого взаимодействия. Её задача — найти стратегию, позволяющую игроку достичь наилучшего результата с учётом того, что исход игры зависит не только от его действий, но и от действий оппонентов. Основной подход к «решению» игр предложил американский математик Джон Нэш, получивший в 1994 году Нобелевскую премию по экономике. В рамках курса изучаются основные понятия теории игр, разбираются игровые модели и задачи из разных областей знаний (экономика, биология, политология), которые теория игр помогает решить
Программа:
Курс направлен на изучение теории информации. В науке не существует единого подхода к определению понятия информации: в разных областях оно трактуется по‑разному. Существуют понятие информации по Хартли, энтропия Шеннона, Колмогоровская сложность и коммуникационная сложность — каждое отражает некоторую грань интуитивного понятия информации. В рамках курса рассматриваются эти понятия и их применение в решении различных задач
Программа:
Теория информации, возникшая как формальная теория связи, всё чаще применяется в криптографии, биологии, квантовых вычислениях и машинном обучении. В последнем случае она претендует на роль «теории всего», описывая с единых позиций классические задачи машинного обучения: отбор признаков, классификацию, регрессию, обучение без учителя, генеративное моделирование и др. Теоретико‑информационные подходы также используют для исследования малоизученных явлений в глубоком обучении — хорошей обобщающей способности глубоких нейросетей, гроккинга, роли проекционных голов в контрастивных методах и т. д. Курс посвящён изучению основных теоретико‑информационных величин, полезных для задач машинного обучения, и их ключевым приложениям
Программа:
Курс посвящён изучению языка Python. Он широкий и разносторонний, не привязан к одной специализации: лекторы разных направлений рассказывают о выбранной технологии через призму своего опыта. Курс практичный — весь разбираемый материал пригодится в дальнейшей работе: темы разъясняются на простых примерах и на примерах из рабочих процессов. Он также интенсивный: подавляющая часть лекционного материала отрабатывается в домашних заданиях
Программа:
Курс предназначен для изучения языка Rust — молодого системного языка программирования, созданного с учётом опыта C и C++.
В развитии языка участвуют крупные ИТ‑компании (Google, Amazon, Microsoft, Huawei и др.), входящие в Rust Foundation.
Rust сочетает выразительность Python, безопасность Java и быстродействие C. По сравнению с C++ он безопаснее и не допускает undefined behavior без потери производительности. В отличие от Go, предотвращает гонки и нежелательные захваты переменных, а также отличается более высокой производительностью за счёт отсутствия runtime. Это достигается благодаря системе владения объектами и отслеживания их времени жизни — она выявляет баги, связанные с небезопасной работой с памятью, на этапе компиляции.
По результатам ежегодных опросов Stack Overflow, Rust — самый любимый язык разработчиков последние восемь лет подряд. Вероятность того, что вы его полюбите, — больше 80%!
Программа:
Курс посвящён изучению современных методов работы с геоданными и их применению в задачах машинного обучения. Слушатели научатся обрабатывать и визуализировать геоданные, решать прикладные задачи оптимизации и прогнозирования с использованием специализированных библиотек Python. В рамках курса рассматриваются реальные кейсы из области логистики, транспорта и геоаналитики: от оптимального размещения объектов и предсказания адресов назначения поездок до анализа спутниковых снимков и построения геоэмбеддингов. Особое внимание уделяется специфичным реализациям моделей машинного обучения для работы с пространственными данными
Программа:
Курс посвящён обработке естественного языка (NLP) — области ИИ, позволяющей строить модели для работы с текстом: от базовых задач понимания и классификации до решений на основе больших языковых моделей. Слушатели познакомятся с ключевыми задачами NLP и типовыми пайплайнами работы с текстовыми данными. Рассматривается база классического NLP, но основной фокус — на современных SOTA‑подходах и практиках вокруг LLM: их применении, адаптации и улучшении под реальные данные и продукты. Курс сочетает теорию и практику для уверенного использования актуальных инструментов NLP в прикладных задачах
Программа:
Обучение на курсе нацелено на оперативное выявление и прогнозирование сбоев из‑за узких мест и нехватки ресурсов в эффективных сервисах.
В рамках курса изучим:
Полученные на курсе знания помогут создавать и поддерживать высоконадёжные сервисы, оптимизировать внедрение и повышать культуру непрерывного улучшения в командах
Программа:
Курс даёт базовые математические понятия и методы для решения задач трёхмерного компьютерного зрения — ключевой технологии для робототехники, беспилотного транспорта, автоматизации производства, дополненной и расширенной реальности, вычислительной фотографии и создания 3‑мерного контента для компьютерной графики
Программа:
Курс посвящён изучению A/B‑тестирования.
В разных областях возникают вопросы такого типа:
На первый вопрос можно ответить, посчитав различные метрики качества, о которых рассказывают в курсах. Однако такие метрики не всегда хорошо отражают поведение и привычки пользователей. A/B‑тестирование позволяет оценить, действительно ли предполагаемые изменения улучшат опыт пользователей.
Несколько занятий курса посвящено методам Causal Inference (анализа причинно‑следственных связей). Эти методы широко применяют для оценки эффектов, когда невозможно провести честное A/B‑тестирование, а также в более широких задачах — например, в uplift‑моделировании. Кроме того, методы CI используют в CV, NLP и генеративном моделировании. Некоторые современные методы CI, которые рассматриваются в рамках курса, основаны на нейросетевых моделях
Программа:
Курс знакомит слушателей с базовыми алгоритмическими приёмами и структурами данных, важными для понимания работы библиотек, алгоритмов и языков программирования. Вторая часть посвящена строковым алгоритмам, индексным структурам данных, детерминированным и недетерминированным алгоритмам, а также потоковым алгоритмам
Программа:
Курс охватывает основные синтаксические конструкции языка и структуры данных, основы ООП, а также базовые библиотеки Python для анализа данных и визуализации
Программа:
Вторая часть курса по базам данных — более глубокое погружение в устройство современных СУБД. Будут разобраны актуальные для разработчиков темы с особым акцентом на оптимизацию SQL‑запросов. На последних занятиях изучается устройство нескольких реальных современных систем, а также представляется информация о системах, разрабатываемых командой преподавателей курса
Программа:
Курс является продолжением курса первого семестра. Он посвящён асимметричной криптографии и криптографическим протоколам: схемам шифрования с открытым ключом, схемам электронной подписи, протоколам согласования ключей.
Особое внимание уделяется протоколам аутентифицированной выработки общего ключа и защиты канала связи, в т. ч. базовому криптографическому протоколу современного интернета — TLS. Также рассматриваются проблемы доверия к открытым ключам, инфраструктура открытых ключей PKI и методы защищённого хранения закрытых ключей.
Заключительные лекции посвящены новым направлениям в криптографии: квантовой криптографии, системам дистанционного электронного голосования (ДЭГ) и блокчейну
Программа:
Lean — это активно развивающаяся система доказательств и язык программирования. Ключевая практическая ценность — возможность формально задать спецификацию программы в виде теоремы и строго доказать её. Такой подход обеспечивает намного большие гарантии корректности по сравнению с традиционным тестированием и используется в областях, где цена ошибки особенно велика. На курсе мы изучим Lean и как язык программирования, и как систему доказательств, а также освоим основные методы верификации программ. По завершении курса студенты смогут свободно читать современные работы по верификации. Курс состоит из трёх основных и двух продвинутых блоков. Каждый блок занимает около трёх недель
Программа:
Опционально:
Курс посвящён изучению вычислений на графических процессорах при помощи C++/CUDA.
Сегодня устройства, на которых выполняются вычисления, разнообразны — от мобильных гаджетов до суперкомпьютеров, от часов до автопилота Tesla. При этом требования к ним различаются: в одних случаях критична скорость обработки данных (HFT), в других — энергопотребление (Neuralink), в третьих — удобство программирования (например, при обучении ML‑моделей).
Графические процессоры (GPU) обеспечивают компромисс между энергоэффективностью и лёгкостью программирования, поэтому они широко применяются в машинном обучении, компьютерной графике, биоинформатике и других областях
Программа:
Часть 1. Модель разделяемой памяти:
Часть 2. Модель передачи сообщений:
В курсе подробно изучаются современные генеративные парадигмы в компьютерном зрении. Основной фокус сделан на диффузионных моделях: их теоретических интерпретациях, а также передовых методах обучения и сэмплирования, обеспечивающих высокое качество и скорость генерации. Отдельное внимание уделяется гибридным генеративным моделям на основе диффузии, которые сегодня широко применяются в продуктовых сервисах для генерации изображений и видео. Также разбираются последние достижения в авторегрессионной генерации изображений и их взаимосвязь с диффузионными моделями. В конце курса рассматриваются актуальные решения для мультимодальной и 3D‑генерации
Программа:
Этот курс является продолжением курса по архитектуре компьютера и операционных систем, который читается в осеннем семестре. В рамках курса продолжается разработка учебной операционной системы Nikka
Программа:
Курс является продолжением курса теории игр. В первой половине изучаются дополнительные главы теории игр, не затронутые в основном курсе:
Во второй половине курса рассматривается теория аукционов и дизайн механизмов:
Программа:
Курс посвящён изучению комбинаторной оптимизации. Его цель — познакомить слушателей с типичными классами задач оптимизации, в которых множество допустимых решений имеет явно выраженную «комбинаторную» природу, и эффективными способами их решения. Множество подобных задач возникает, например, в теории графов (паросочетания, пути, упаковки, покрытия, раскраски и т. д.).
В рамках курса акцент сделан не только на чисто комбинаторных методах, но и на применении теории линейного и целочисленного программирования. Ключевыми станут понятия линейной двойственности и различные свойства целочисленности линейных программ (тотальная унимодулярность и тотальная двойственная целочисленность) — наряду со стандартными оптимизационными инструментами (симплекс‑метод, метод эллипсоидов, метод внутренней точки). Это позволит единообразно описать широкий класс комбинаторных задач, решаемых за полиномиальное время.
Кроме точных алгоритмов (находящих искомый оптимум за полиномиальное время), рассматриваются приближённые методы решения задач, для которых быстрое нахождение точного решения, по‑видимому, невозможно. В этом помогут линейные релаксации: они позволяют эффективно строить приближённые решения с гарантированной погрешностью.
На семинарах разбираются методы решения комбинаторных (как правило, NP‑трудных) задач на практике: метод ветвей и границ, метод локального поиска, а также методы решения с использованием солверов для линейных программ. От слушателей ожидаются базовые знания линейной алгебры и знакомство с основными терминами теории графов. Также будет полезна алгоритмическая подготовка на уровне базового курса по алгоритмам и структурам данных
Программа:
Курс посвящён изучению работы компьютерных сетей и возможных проблем при их эксплуатации: принципов работы сети на уровне машины, дата‑центра и интернета, способов обеспечения отказоустойчивости и надёжности канала сети, а также использования утилит для диагностики сетевых проблем
Программа:
Курс посвящён изучению конкретной математики. В курсе будут обсуждаться:
Программа:
Курс — вторая часть годового курса. В первой части («Машинное обучение, часть 1») рассмотрены задачи и современные подходы машинного обучения, начато знакомство с методами глубокого обучения и нейросетями.
Во второй части углубляются темы Deep Learning: трансформеры, генеративные модели, обучение с подкреплением, интерпретация, инструменты разработки, расширяется спектр доменов (графы, временные ряды). Курс завершается практико‑ориентированным соревнованием
Программа:
Курс посвящён основам прикладной статистики и включает такие темы, как:
Программа:
В курсе анализируются подходы, применяемые в мультимодальных моделях. Сначала рассматривается высокоуровневая классификация, основанная на методах смешивания модальностей входных данных. Подробно разбираются ключевые подходы и фундаментальные архитектуры: Flamingo, LLaVA, Qwen‑VL, способствующие пониманию более сложных модальностей. Затем изучаются модели для обработки видео, звука, модальности action и 3D‑понимания (LLaVA‑3D, SpatialRGPT). Особое внимание уделяется интеграции генерации данных в мультимодальные LLM
Программа:
Курс могут сдавать только магистранты программ «Современные компьютерные науки» НИУ ВШЭ и «Анализ данных» МФТИ, записаться слушателем — любой студент. В роли слушателя можно расширить научный кругозор и тренировать внимательность, знакомясь с интересными и свежими работами в области data science. В роли докладчика — глубоко разобраться в научной статье и прокачать навыки публичных выступлений, готовя и проводя презентацию для опытной аудитории. Участие в семинаре даёт возможность профессионально расти
Темы курса зависят от выбранных для разбора студентами статей
Курс посвящён методам обучения с подкреплением (Reinforcement Learning, RL) — подходу машинного обучения, позволяющему создавать программы, способные самостоятельно принимать решения для достижения оптимальных результатов.
В рамках курса изучаются основные принципы RL: взаимодействие агента с окружающей средой, формирование стратегии на основе вознаграждений и методы оптимизации политики. Особое внимание уделяется практическому применению RL для решения задач.
Обучение агентов оптимальному поведению в окружении происходит через взаимодействие с ним путём проб и ошибок — аналогично тому, как учатся люди. Под агентом могут пониматься различные сущности: от игрока в компьютерную игру до сложного робота, от биржевого трейдера до текстового ассистента, помогающего пользователю
Программа:
В рамках курса рассматривается C++ — мощный язык с богатым наследием. Курс посвящён современному подмножеству языка — Modern C++ (стандарты 11, 14, 17, 20). Особое внимание уделяется инструментам и библиотекам, не входящим в состав языка, но необходимым для создания крупных и сложных проектов
Программа:
Математическая статистика — раздел математики, занимающийся описанием и анализом данных для построения вероятностных моделей явлений, породивших эти данные. Промежуточное положение между реальными наблюдениями и абстрактными вероятностными моделями делает её основным инструментом решения прикладных задач, в которых неопределённость интерпретируется как случайность.
Цель курса — научить мыслить о задачах анализа данных в терминах моделей, генерирующих данные, похожие на реальные. В рамках курса рассматриваются виды вероятностных моделей, способы проверки их качества, методы получения ответов на прикладные вопросы с их помощью, а также определение границ их применимости.
Практические занятия проводятся на Python с использованием Jupyter Notebook и модулей numpy, scipy, pandas, matplotlib. Практические задания и домашние работы размещаются в курсе на платформе Stepik
Программа
Курс посвящён изучению алгоритмов рекомендательных систем, которые помогают пользователям находить релевантный контент в условиях информационного изобилия. В рамках курса рассматриваются как классические методы (матричные факторизации, ранжирование), так и современные нейросетевые подходы, а также способы их практического применения и запуска в продакшн. Кроме того, представлены реальные кейсы использования рекомендательных систем в сервисах Яндекса и других компаний и кратко освещена инфраструктура вокруг этих систем
Программа
Курс предназначен для изучения речевых технологий. В мире, где голосовые ассистенты становятся всё более привычной частью повседневной жизни, голосовой ввод присутствует в большинстве приложений, а алгоритмы шумоподавления активно используются во время звонков. Появляются всё более современные решения для параллельного перевода и генерации речи. В курсе рассматриваются компоненты этих технологий и принципы их работы.
Авторы курса — сотрудники Яндекса, разрабатывающие речевые приложения. О каждой технологии рассказывает специалист, работающий с ней. Курс ориентирован на практические навыки, необходимые для работы, и проводится людьми с реальным опытом внедрения технологий в продукты.
Программа курса охватывает темы, связанные с обработкой звука и естественной речью: биометрию, распознавание, синтез, шумоподавление
Программа:
Курс охватывает основные понятия и методы статистического анализа данных: параметрические и непараметрические модели, интервальное оценивание, проверку статистических гипотез, основы регрессионного и корреляционного анализа, вопросы анализа причинности и непараметрического сглаживания.
Анализ данных с временно́й зависимостью представлен в рамках теории случайных процессов и моделей временных рядов (включая авторегрессионные модели и модели скользящих средних).
Особое внимание уделяется постановке статистических задач, интерпретации результатов и ограничениям применяемых методов
Программа:
Курс посвящён одному из самых актуальных направлений современного машинного обучения — методам, лежащим в основе генеративного ИИ. В программе — теория и практика: от базовых идей и классических методов (смеси Гауссовых распределений, вариационные автокодировщики, нормализационные потоки) к ключевым подходам современного генеративного ИИ (YandexART, YandexGPT, ChatGPT, Midjourney, Kandinsky и др.): диффузионным моделям, flow matching, GAN и авторегрессионным моделям. Рассматриваются принципы работы, внутреннее устройство и ограничения методов. Студенты получат прочную математическую основу, научатся читать и понимать современные статьи, закрепят знания на практике
Программа:
Курс знакомит слушателей с функциональными языками программирования и техниками написания программ на этих языках. Рассматриваются отличия функционального подхода к программированию от традиционного императивного, сравниваются их сильные и слабые стороны.
Курс разделён на теоретическую и практическую части. В теоретической части слушатели знакомятся с синтаксисом и семантикой лямбда-исчисления в бестиповом и просто типизированном вариантах. Обсуждается устройство систем типов функциональных языков, в том числе алгоритм вывода типов Хиндли — Милнера.
Практическая часть курса ориентирована на изучение языка программирования Haskell. Студенты знакомятся с ленивой и энергичной версиями операционной семантики, алгебраическими типами данных и их использованием для реализации механизма сопоставления с образцом. При изучении системы типов языка Haskell будут обсуждаться параметрический и специальный полиморфизм и, в частности, механизм классов типов, в том числе многопараметрических.
Подробно рассматриваются основные классы типов из стандартной библиотеки Haskell, в том числе полугруппы и моноиды с одной стороны, и функторы, аппликативные функторы и монады с другой. Также обсуждаются различные стратегии свёртки и обхода списков, деревьев и обобщение этих стратегий в классах типов Foldable и Traversable.
Слушатели приобретут навык программирования с использованием стандартных монад: будут рассмотрены проблемы ввода-вывода в чистых языках и их решение с помощью монады IO, а также работа с изменяемым состоянием с помощью монады State и родственных ей монад. Изучение трансформеров монад познакомит студентов с решением проблемы композиции монадических эффектов
Программа:
Курс посвящён вычислительной эффективности в современном машинном обучении, особенно в контексте больших языковых моделей (LLM). В нём рассматриваются методы оптимизации, учитывающие особенности аппаратного обеспечения: программирование GPU-кернелов, квантизация, прунинг, компиляция моделей, а также автоматизированный подбор архитектур и гиперпараметров. Студенты получают практические навыки через профилирование, низкоуровневое программирование (Triton) и реализацию итогового проекта
Программа:
Курс предназначен для изучения эффективных систем глубинного обучения. За последние несколько лет глубинное обучение надёжно закрепилось как инструмент для решения массы практических задач, в которых важны как быстрое время итерации эксперимента, так и высокая производительность моделей на этапе применения. Deep Learning — активно растущая область, однако уже сейчас неосторожно поставленные эксперименты могут длиться неделями, нагружая серверы с сильно пониженной эффективностью.
Большее понимание устройства фреймворков, их взаимодействия с аппаратной частью компьютера, а также знание актуальных подходов к оптимизации работы с нейросетями и организации работы с ML‑моделями в целом позволяют рациональнее использовать имеющиеся ресурсы и быстрее получать результаты, порой почти без изменения кода.
В отличие от большинства курсов по глубинному обучению, акцент сделан не на повторении сведений о рекуррентных сетях и дропауте, а на практических аспектах обучения и применения нейросетей, которые обычно оставляют за рамками образовательных программ.
Курс охватывает следующие темы:
На семинарах демонстрируется использование популярных библиотек и инструментов для эффективного DL. Домашние задания позволяют освоить оптимизацию различных компонентов обучения и преобразование готовой модели в несложный сервис
Программа:
Курс знакомит с основами языка Go и учит применять их на практике. Go похож на C — небольшой, со схожим синтаксисом и статической типизацией, но заимствует идеи из других языков, избегая усложняющих элементов. В курсе рассматриваются: стандартная библиотека, инструменты языка (профайлер, race‑детектор, пакетный менеджер и т. д.) и concurrency. Упор — на практическое применение и решение задач
Программа:
Курс посвящён соединению фундаментальных основ робототехники (кинематика, динамика, управление, восприятие, планирование) с современным ИИ (imitation learning, RL, foundation models/VLA) и инженерной реальностью (симуляция, ROS2, датасеты/бенчмарки, ограничения железа).
Ключевые этапы:
Программа:
Курс охватывает ключевые аспекты многопоточного программирования и работы с конкурентными структурами данных: механизмы переключения контекста, планирование потоков и файберов, когерентность кешей и модели памяти.
Студенты изучат:
Программа включает теоретические основы и практические примеры работы concurrency в современных системах
Программа:
Часть 1. Модель разделяемой памяти:
Часть 2. Модель передачи сообщений:
The cornerstone problem of supervised learning is generalization: why does a model trained on a finite subset perform reasonable on a full data distribution? Classical generalization bounds fail to answer this question as they rely on various concepts of model class complexity which is typically way too large for neural nets. In fact, within neural nets, poorly performing models do exist but are rarely found by gradient descent. This raises the question of implicit bias of a learning algorithm. This bias is difficult characterize due to high complexity of the learning dynamics, but partial answers are known in the following two orthogonal scenarios. The first is linear nets, i.e. networks with no activation functions. The second is NTK limit, in which the network becomes equivalent to a kernel method. This equivalence appears as the model width (i.e. the number of neurons in each hidden layer) grows infinitely under specific, non-standard, parameterization. Other parameterizations lead to different infinite-width limits. The infinite-width behavior of a wide class of neural networks could be covered within a concept of Tensor Programs. In the present course, we cover classical uniform, as well as more modern PAC-Bayesian, generalization bounds, we study the implicit bias of gradient descent for linear networks, and discuss various scenarios of infinite-width behavior of neural nets. If there is time left, we also discuss several aspects of loss landscape; in particular, we prove absence of non-global minima in some scenarios
Программа:
Курс посвящён беспилотным автомобилям — одному из главных технологических вызовов последних десятилетий. В нём рассматриваются основные компоненты беспилотного автомобиля, задачи их создания и методы решения этих задач. На первой лекции представлен обзор текущего состояния индустрии беспилотных автомобилей, её крупных участников и достигнутых ими результатов в разработке беспилотников
Программа: