January 31

Национальность: Вышка

Обзор на первую половину 3 курса. Надеюсь, будет интересно, как младшему поколению узнать, что их ждёт, так и тем, кто это прошёл и хочет вспомнить свой третий курс.

Оглавление:

1. Основы глубинного обучения
2. Базы данных
3. Нейронные сети в машинном обучении
4. Разработка безопасного ПО
5. Математические методы анализа данных
6. Летняя практика
7. Ассистентство
8. Итог

Основы глубинного обучения

В простонародье: ОГО

База deep learning. Как всегда суперский курс от Соколова. Сначала разбирались задачи компьютерного зрения (CV), потом NLP, трансформеры. Мне очень нравилось – благодаря ИАДу мне реально дают самые нужные и актуальные знания!

Было 4 ДЗ:
1. PyTorch, базовая нейросеть
2. Сегментация
3. Детекция
4. Трансформер

Последнее ДЗ шло как бонус – его не успели выдать в сроки. Я много времени на него тратил, поэтому генерация у меня получалась, мягко говоря, так себе 🙃

ДЗ были СИЛЬНО сложнее, чем на ОМО (основы машинного обучения). Приходилось по-настоящему думать и общаться с ChatGPT. Зато когда получалось – когда на картинках находились мячи из квиддича, когда метрики преодолевали нужный порог – эти ощущения были просто фантастические!

Из сложного – ожидание обучения моделей (по час-полтора на одни гиперпараметры). Я использовал GPU в Google Colab, который ускоряет все вычисления, но там есть ограничения около 5 часов в день, поэтому приходилось задействовать аж 4 аккаунта, чтобы сделать ДЗ 🙂

Именно на этом курсе, во многом из-за ДЗ, я понял, почему ИАД называют одним из самых сложных майноров. И одновременно – как же круто, что получилось закрыть его на 10.

Наверное, это один из немногих предметов, где ДЗ и КР проверялись, если и не вовремя, то относительно быстро. Конечно, многое зависит от ассистентов и семинариста, но в моём случае всё было хорошо.

КР оказалась на удивление несложной – я готовился к чему-то более "глубокому". Но даже при этом пришлось пострадать, готовясь, разбирая все темы и собирая знания в голове.

Семинары я не смотрел, ни один. Точнее, летом я посмотрел пару записей прошлого года, понял, что особой пользы там для себя не найду, и решил не тратить на них время. Хотя, возможно, на них и было что-то интересное, и я зря их пропустил, потому что позже, готовясь к собеседованиям, смотрел Фила Ульянкина – очень сильный преподаватель.

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

Хотелось бы больше таких курсов.

Это я на Мясницкой

Базы данных

В простонародье: БД

Чилл-курс от Бреймана. Полезный, нужный и в целом интересный. Один из самых лучших именно ПИшных курсов – наряду с алгоритмами и КПО.

Из минусов – Брейман оценивал работы слишком лояльно. У всех за эссе и проекты были десятки, за КР баллы ставились как будто "на глаз", потому что знаю людей, которые набрали больше, чем вообще возможно по количеству выполненных заданий. Для фанатов оценок это, наверное, плюс, но лично мне хотелось бы получать нормальный фидбек, особенно по проекту. Инфляцией оценок компенсируется тем, что автоматом можно набрать не больше 8. Для 10 нужно было идти на экзамен, но там ситуация похожа другие контроли: пришёл, написал что-то – получил максимум.

Но даже при такой системе оценок, знания давались понятно и структурировано. Я бы не сказал, что материал был сложным. Возможно, с другим преподавателем курс был бы не хуже, но Брейман вывозил именно подачей – своими историями и объяснениями. Иногда они были скучноватыми, но чаще хорошими. Отдельный вид искусства – его шутки в чате!

Особенно полезными были семинары у Льва Немировского. Одни из самых "продуктивных и эффективных" (как бы эти прилагательные и ни инфоцыганили занятия 😁) пар. В большинстве случаев семинары состояли либо из объяснения темы с практическим показом, либо из разбора ДЗ – как и зачем его лучше делать.

ДЗ давались каждую неделю, поэтому забить не получалось. Да и в целом они были довольно интересными и покрывали основные возможности БД: нужно было писать SQL-запросики, поднимать и разворачивать базы данных. Были и пару скучных ДЗ, где требовалось просто сделать 20 скриншотов с результатами анализа БД и объяснить их.

На семинарах учитывалось посещение – во время пары надо было отметиться в Google Classroom. Теоретически это можно было обойти, потому что никак не проверялось (по ведомости я посетил все пары, а на деле скипнул одну 🤫 тссс). Похожая ситуация со сдачей ДЗ: учитывалась дата загрузки ссылки на Pull Request в Classroom, хотя коммитить потом никто не запрещал 👀. Немировский на это отвечал, что всё на нашей совести – он верит нам и смотрит на дату загрузки в Classroom.

Самое интересное для меня на курсе – проект! Надо было придумать базу данных на любую тему, спроектировать таблицы и связи между ними, описать функциональные и нефункциональные требования, а также написать приложение. Хотя приложение никак не учитывалось в критериях оценивания и было вроде как необязательным, но я очень хотел это сделать, поэтому за 2 дня быстренько реализовал небольшой микросервис, который по сути содержал лишь CRUD-операции для каждой сущности. Здесь отлично помог Gemini, который по моей реализации одной сущности сгенерировал оставшиеся, в которых по факту менялись лишь переменные и атрибуты.

Также было 4 квиза на Canvas. На каждый квиз давалось по две попытки и засчитывалась лучшая, поэтому сложно было не набрать максимум. Смысла в этих квизах я не видел, особенно с учётом LLM.

И вспомнив нейросети, надо сказать об эссе. Его суть состояла в том, что давалась тема вроде "Преимущества и недостатки использования UUID" и три промпта с вопросами. Цель – пообщаться с нейросетью, используя эти промпты, и сделать обзор, выводы по ответам LLM.

P.S. на деле использовались ещё два промпт "Сгенерируй хорошие промпты" и "Напиши эссе по ответам нейросети" 😁

Курс дал нормальные, структурированные знания по БД, которых мне точно не хватало на собесах в Яндексе осенью.

Атриум

Нейронные сети в машинном обучении

В простонародье: нейросети, нейронки (мне не нравится такое название – вайбы ужаснорежущей "машинки" по отношению к ML)

Для меня самый интересный курс за это полугодие. При выборе КпВ (курс по выбору) из интересных были лишь нейросети и курс от Т-Академии про отказоустойчивость. Всё остальное – либо слишком специфичное по типу iOS, либо абсолютная липа.

Курс вели два физтеховца, которые работают в Авито. Оба выпускники ШАДа, поэтому, как я понял, весь курс построен на шадовской базе – получился такой lite-DL by SHAD. При этом многие темы пересекались с иадовским ОГО, особенно первые пять занятий, поэтому принципиально нового для меня было не так много. Но вот если на ИАДе глубоко закапывались в конкретные темы, так сказать, углублялись в Deep Learning, то здесь курс покрывалася широтой: меньше математики, но больше разнообразных направлений NLP и CV – например, NER и более подробный разбор детекции.

Преподаватели суперские! Одни из самых лучших, если не самые. Во-первых, очень организованно всё, Во-вторых, прекрасно готовились (либо просто знают всё про DL), поэтому пары всегда проходили хорошо, В-третьих, они, особенно Юрий Батраков, всегда так классно одевались, прям олд-мани, аристократы, В-четвёртых, на парах всегда был приятный вайб с забавными шуточками и интересными историями.
Самое обидное – не успели пройти все темы и выдать все ДЗ, хотя пары не отменялись. Кажется, так получилось из-за праздников и каникул.

Однако семинары были не супер – смотрели ноутбук, запускали его и обсуждали. Мне не нравится такой формат, нет ничего практического. Как недавно сказал один однокурсник (не про это, но очень в тему): "Это неправильно, но я не знаю, как правильно". Поэтому я сам не знаю, как стоит вести семинары. Возможно, по этой причине я и не смотрел семинары по ИАДу, в таком формате как будто минимум пользы.

Экзамен проходил в формате коллоквиума, и это очень здорово! Реально один из лучших форматов, сильно прокачиваются знания, даже лишь потому, что приходится готовиться глубже и осознаннее.

P.S. такой формат мне нравится только для реально интересных курсов.

В билете даётся 2 вопроса, на которые пишешь ответ в течение 10 минут, а потом отвечаешь преподу, плюс он задаёт дополнительные вопросы. По факту, из-за большого количества студентов и лишь двух преподавателей всё немного затягивалось, и приходилось долго ждать своей очереди (я сдавал один из первых, поэтому получилось быстро). Забавно, что я пропустил лишь одну лекцию (про GAN), поэтому перед экзаменом усиленно её учил, и она мне попалась!

ДЗ интересные. Стоит отметить, что все ноутбуки с семинаров и ДЗ были написаны на английском. Иногда приходилось пользоваться переводчиком, но было приятно ловить момент, когда читаешь и уже понимаешь смысл без него.
У ДЗ был мягкий дедлайн и жёсткий – после мягкого дедлайна оценка снижалась на 1 балл за каждый день. Также в некоторых заданиях был бонус за лучший скор – тот, кто выбивал максимальный результат модели, получал +0.5, +1 или +1.5 балла. В одном из ДЗ у меня получилось занять первое место 🙂

Было 5 ДЗ:
1. Основы PyTorch
2. Базовая нейросеть
3. Seq2seq, BERT, NERT
4. VAE
5. Face Recognition (бонусное ДЗ)

Кстати, ДЗ здесь были заметно легче, чем на ИАДе.

Курс – 10 из 10.

На 6 этаже в корпусе R

Разработка безопасного ПО

В простонародье: РБПО

Такое ощущение, что после взлома Аэрофлота, кто-то сказал: "Что за быдлокодеры растут, пусть учат безопасность".

В Вышке есть разные номинации, которыми любят гордиться некоторые преподаватели на презентациях курсов, например: "Самый полезный курс для кругозора", "Самый интересный НИС" и в том духе (хотя не всегда понятно, как и кем это определяется; наверное, я чего-то не знаю). Так вот, РБПО вполне мог бы уверенно взять призы в категориях "Самым кринжовый", "Самый бесполезный", "Самый противный курс" и ещё пару десятков аналогичных Оскаров.

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

Самым неприятным были постоянные уничижительные реплики в духе "А гит знаете? А с базами данных работали? А что это за команда в терминале? А, а? Не знаете, не знаете? Так я и думал, быдлокодеры, ничему не учат". Плюс постоянная нецензурная лексика, маты. Это был первый раз, когда я столкнулся с настолько непрофессиональным поведением преподавателя, как будто позвали фаната Зенита чувака с вокзала. Доходило до абсурда: среди студентов сформировались две группы: те, кто не ходил на пары, потому что он постоянно матерится, и те, кто ходил на пары, потому что он постоянно матерится.

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

Семинары у меня вёл Бураков. Как точно однажды высказался в чате однокурсник: "Неадекватность лектора компенсируется адекватностью семинариста". В целом это правда, хотя сами семинары мне тоже не нравились: делать что-то практическое без нормальной теоретической базы – сомнительное удовольствие.

У семинариста было 3 группы – суммарно около ста человек. И у каждого больше 10 ДЗ, то есть ему надо было проверить больше тысячи работ. И соответственно, всё это проверялось абы как за несколько дней до экзамена.

Да и в целом все ДЗ массово гптшились дипсичились (в тот момент у меня не работал ChatGPT, а DeepSeek, на удивление, справлялся даже лучше). Поэтому курс был не по безопасной разработке, а по промпт-инжинирингу и умению адекватно оформлять Pull Request.

Если искать полезное, то наконец-то официально была работа с гитом, а именно с Github: PR, коммиты, ветки, issues, артефакты, CI. В этом плане курс действительно дал практику. Плюс неожиданно полезным оказалось умение писать нормальные промпты. Наверное, из-за похабного отношения к ним в некоторых ДЗ, я упустил свою десятку.

Ещё был экзамен в виде теста в LMS. Писал его с друзьями, сидя в кофейне напротив Казанского собора в Петербурге и попивая какао – все бы экзамены так))

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

Будет смешно, если в следующем году с этим предметом ничего не изменится.

P.S. самый прикол был за день до экзамена, когда лектор напился в каком-то баре с какой-то девушкой (то ли студентка, то ли ещё кто-то, не знаю), а потом в чате курса были всякие фотки и очень непристойные разговорчики, сам Мураками позавидовал бы. Протрезвев, лектор всё удалил. Но интернет всё помнит.

Вход в атриум

Математические методы анализа данных

В простонародье: ММАД

Кажется, это был какой-то прикол. Единственный курс по ML на ПИ для всех, и при этом настолько ужасно организованный. Складывалось ощущение, что преподавателям просто не рассказали, что такое "ведение курса": что пары вообще-то нужно проводить или хотя бы заранее предупреждать, что их не будет. Ну или как минимум отвечать на вопросы в чате, который они же и создали. Хотя бы делать вид, что преподы существуют.

От красной кнопки, мне кажется, удержало лишь то, что пару лекций вёл Виктор Кантор. Его лекции просто фантастические, очень крутые! Хоть для меня после ИАДа там не было ничего нового, но было интересно послушать его объяснения, особенно красивую математику.

Сильно в курс не вникал, потому что был как раз-таки перезачёт ИАДа. Хотя в начале сентября спрашивал у учебки, можно ли перезачесть, мне ответили, что нельзя. А потом лекторша написала, что можно, в итоге всё перезачли, и мне не пришлось страдать от неорганизованности и очередных дедлайнов.

В ДЗ тоже особо не вникал, но из того, что мне показывали, было похоже на иадовский ОМО. Плюс были какие-то тесты на время – 10 вопросов за 5 минут.

Отдельный прикол был с экзаменом. Сначала его собирались проводить в формате коллоквиума на английском (потому что курс официально на английском), потом в виде письменного теста, потом в LMS... В итоге всё решилось за пару дней до экзамена. Но, кажется, проводилось всё же на английском, аргументируясь тем, что официально курс англоязычный. Хотя зачем тогда лекции читались на русском?

Сильного бунта не было, как я понял, потому, что ДЗ лояльно оценивалось и у многих вышли нормальные оценки.

В общем, хотелось бы, чтобы на ПИ машинное обучение всё-таки преподавалось нормально🙏

Летняя практика

Я проходил её в VK Educational Practice. Сразу было понятно, что какая-то ерунда, на деле так и оказалось. Я посмотрел курс, который там давался, выполнил задание (предсказание пола пользователя по логам), все доки оформил, загрузил вовремя.

В итоге мне за это поставили 8. Отл – здорово. Но всё же терять рейтинг из-за этой чуши не хотелось. Нам в канале написали: "Если будут вопросы, то обращаться <почта тётеньки из учебки>". Я написал ей, она ответила, что надо обращаться в центр практик. Я написал в центр практик, которые ответили так (дословно): "Организаторы VK Educational Practice по завершению курса направили нам рекомендуемые оценки за практику по 5-бальной шкале. Таким образом, Ваша предварительная оценка была 5 (по 10-бальной системе это от 8 до 10). Итоговую оценку за практику ставит куратор от ФКН - на ПИ в прошедшем учебном году куратором был Лебедев Сергей Аркадьевич. На основании Ваших отчетных документов и предварительной (рекомендуемой) оценки он выставил Вам итоговую. Если Вы хотите уточнить, почему выставлено именно 8, напишите, пожалуйста, Сергею Аркадьевичу, приложив свои отчетные документы и уточнив, что предварительная оценка была пятерка (от 8 до 10 баллов)." Я написал ему на почту, которая указана в HSE App X. Спросил, почему выставлена такая оценка, если все критерии выполнены, проект сделан отлично (на мой взгляд, с учётом того, что пробовал несколько способов решения, а не тупо одну линейную регрессию), а больше по факту ничего сверх в этом VK Educational Practice сделать нельзя было (либо надо быть гением для этого)? Сегодня конец января, мне до сих пор не ответили))

В общем, вывод можно сделать тот, что если будете брать VK Educational Practice для практики, то, скорее всего, получить выше 8 ничего не сможете.

Все эти письма людям выше я затеял в основном вот почему. Некоторые однокурсники проходили практику в Яндексе. И кому-то поставили 8, а другим 10. Те, кто получил не максимум написали в учебку, им тоже сказали написать кому-то там дальше, но всё сошлось к тому, что "это техническая ошибка, у вас 10, просто в зачётке поставили 8 – исправим". Как так можно было ошибиться??

И такое ощущение, что это сделано ради борьбы с инфляцией оценок – ставим восьмёрки, если возмутятся – таки-да поставим 10 🙄. Хочется открытости всей системы оценивания, хотя бы критериев, а не так, чтобы непонятно, кто и где выставляет оценки, даже не давая фидбек. Было бы хотя б краткое описание, как и почему поставлена такая оценка. Хочется, чтобы ПИ развивался и становился лучше. Надеюсь, большие дяденьки подумают над этим. А не над тем, как давать дисциплинарки за стикеры.

Это я поботал и отдыхаю

Ассистентство

Был ассистентом на курсе "Алгоритмы и структуры данных" на 2 курсе ПИ. В обязанности входило проводить защиты ДЗ, проверять письменные ДЗ и составлять тесты (но почему-то эту задачу почти сразу же убрали).

Защиты мне не нравились. Не умею я их проводить. Всё сводилось к тому, что студенты просто рассказывали решение, а я иногда задавал вопросик. Но в целом там и спрашивать нечего было: просто код, как он работает, какая скорость... Думал, как можно улучшить, может быть, сделать какой-нибудь формат более близкий к собесам или как-то поинтереснее придумывать заранее вопросы. Пока не решил...

После случаев с защитами курсовых, когда комиссия не включала камеры, решил, что я на их месте всегда буду включать их, чтобы сдающий видел, что я хотя бы с ним в одной комнате (в зуме) и пытаюсь вникнуть в решение. Хотелось бы, чтобы студенты тоже включали камеры, привыкали к формату собесов, но... за все время лишь человека 3 включали видео – крутые!

В итоге провёл 113 защит, больше всего задач защитил Кирилл Мендус (9 штук) – красавчик. Было нелегко, самое сложное – заставить себя слушать других и вникать в решение.

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

Иногда, конечно, были мысли, что став ассистом, люди начнут воспринимать тебя не как друга, а как какого-то подсистемного винтика. Никогда не хочется ставить нули, когда что-то сделано, видно, что человек старался, но неправильно, занижать оценки и всё в этом духе. Тем более, когда сам проходил всё это и сталкивался с той стороны. Надеюсь, никому ничего ужасного не сделал 🙏 Если что, всегда пишите, спрашивайте, разберёмся. Да и, если честно, ощущаю себя гораздо лучше в роли негласного помощника пишникам (если так можно выразить и если это действительно так), нежели официальным ассистентом.

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

Считаю некрасивым выпрашивать звания лучшего ассистента, как делают некоторые люди в чатиках, но, если что, сегодня последний день голосования за лучшего ассистента (до 23:59 31 января), поэтому успейте обрадовать своих любимчиков!

Национальность: Вышка

Итог

Если увидите, что я ругаю лишь курсы, по которым у меня не десятка вышла, то это лишь так кажется 😁, это не осознанная меркантильность перцентильность)) Лучшая рецензия, как всегда от Леонида: "Манипулятор преподами через тг-канал".

Получился такой мини-обзорчик на первую половину 3 курса, очень рад, что закрыл всё на отлы, получил действительно полезные знания по ML и базам данных, попробовал себя в роли ассистента и как вишенка на торте – вошёл в топ-10 рейтинга.

Всем хорошего февраля, успешного прохождения контрольной точки по курсачу, поменьше проблем со списыванием и Си, побольше офферов в Яндексы, Т-Банки, Озоны, Авито и – светлая будет полоса!