Перейти к содержанию
С нуля
Программа курса
EN Открыть

Программа обучения: от нуля до Research Scientist / MTS

24 недели. Построена на открытых первоисточниках: Stanford CS336, оригинальных статьях и технических отчётах моделей. Список тем и приоритеты сверялись с публичными конспектами и разбором 57 интервью исследователя из OpenAI (см. «Ресурсы»), плюс навыки, которых там нет, но которые спрашивают на интервью и нужны в работе.

Нагрузка: вся программа занимает 20–25 часов в неделю, около 520 часов за 24 недели. Ядро каждой недели занимает 10–14 часов: если есть только 10–15 часов в неделю, проходи ядро, а глубину отложи на второй проход (маршрут в «Карте программы»). Порядок недель не меняй.

До и после ядра. Перед неделей 1 идёт входная диагностика и Модуль 0 (2–6 недель, только если диагностика показала пробелы). После недели 22 идёт опциональный исследовательский Capstone на 4–6 недель.

У каждой недели в конце два блока. «Результаты недели»: что ты должен уметь сделать. «Самопроверка»: от 3 до 11 вопросов (по числу тем недели), на которые надо ответить вслух без подглядывания. Минута подходит для короткого объяснения, вывод и код требуют больше времени. Для первого прохода обязательны результаты по темам строки «Ядро». Вопросы и результаты по темам «Глубины» отмечай отдельно: они не блокируют следующий шаг, если не нужны его ядру.


Как понять, что материал освоен

На пальцах. Прочитать формулу softmax и узнать её в тесте мало. Возьми логиты [0, 0], получи [0.5, 0.5], затем добавь к обоим 1000: ответ должен сохраниться. Напиши код, проверь это свойство и объясни, почему прямой exp может сломаться. Так теория превращается в навык.

Для каждой темы проходи один цикл: маленький пример → объяснение своими словами → самостоятельное решение → проверка на другом входе → разбор ошибки. Сначала реши без подсказки; после ошибки можно вернуться к объяснению, а на следующий день решить похожую задачу с другими числами.

Неделя ядра закрыта, когда есть три подтверждения:

  1. Понимание: можешь объяснить обязательную идею, её предпосылки и случай, где она не работает.
  2. Действие: есть код, расчёт или эксперимент недели. Тесты проходят, и ты можешь объяснить, какую ошибку ловит каждый из них. Добавь хотя бы один свой пример с известным результатом.
  3. Перенос: решена небольшая новая вариация без подсказки. В фазах экспериментов сохранены исходная точка сравнения, метрика и разбор неудачных случаев. Отрицательный результат тоже полезен.

Оценка тьютора помогает найти пробел, но не заменяет эти подтверждения. Если его замечание противоречит вычислению или первоисточнику, перепроверь пример; не заучивай ответ ради балла. Если застрял, вернись к конкретной предпосылке, а не перечитывай всю неделю.

ЭтапПолезный результатПроверка и путь назад
FoundationМаленькая программа с массивами, производной и разбиением данныхВыходной контроль F1–F6; при проблемах с формами вернуться к F2, с цепным правилом к F5
1–4MLP, backward, оптимизатор и устойчивый лоссЧисленная проверка градиента, уменьшение лосса на малом примере, большие логиты без NaN
5–10Собственная маленькая языковая модельRound-trip токенизатора, отсутствие доступа к будущему, лосс на отложенных данных и примеры генерации
11–14Корректная и измеренная генерацияКэш совпадает с полным проходом; оценки памяти и времени сверены с замером на доступном устройстве
15–18Сравнение изменения модели с исходной версиейРаздельные train/validation/test, одинаковый бюджет, метрика с неопределённостью; без GPU допустим маленький эксперимент
19–22Одна осмысленная архитектурная или продуктовая проверкаСравнение RNN/attention или BM25/RRF, фиксированные данные, разбор ошибок; широта обзора не заменяет эксперимент
23–24Демонстрация навыков и рассказ о своей работеНовый вариант задачи, запись объяснения и разбор по рубрике; таймер после корректности

Указанные часы являются планом, а не измеренной гарантией. Если ядро не помещается в неделю, раздели её на две; не заменяй самостоятельную работу чтением ещё нескольких ссылок. Дополнительный источник открывай под конкретный вопрос, на который основной текст не ответил.


Как устроена неделя

Каждая неделя = 1 тема + 5 параллельных треков, которые идут всю программу насквозь.

ТрекЧтоСколько в неделю
A. ТеорияТема недели: конспект своими словами + вывод формул на бумаге6–8 ч
B. ML-код с нуля1 имплементация недели, без AI-ассистента4–6 ч
C. LeetCode3 задачи в неделю по списку трека C3 ч
D. Математика2 задачи в неделю по треку D2 ч
E. ПовторениеОбъяснение и код уже изученных частей по памяти3 ч

Железное правило: треки B и E пишутся при полностью выключенном AI. Иначе ты переоценишь себя ровно на столько, на сколько опираешься на автодополнение.

Ядро и глубина. Под заголовком каждой недели стоит строка «Ядро: … · Глубина: …» с оценкой времени. Ядро это темы ★-навыков из карты навыков, главный код недели и трек E: без них интервью на RS/MTS не пройти. Глубину можно отложить: блоки «по желанию», разделы 05-ГЛУБИНА, трек D и вторую половину задач трека C. Запись «≈ 11 ч ядро / 21 ч всё» значит: ядро вместе с треком E и одной-двумя задачами трека C займёт около 11 часов, вся неделя со всеми пятью треками около 21.

Ритуал недели:

  • Пн–Чт: теория + код
  • Пт: трек E, воспроизвести уже изученный компонент и объяснить его тесты. Недели 1–4: MLP, backward, оптимизатор и стабильные вычисления; 5–7: токенизатор, нормы и attention. Полный трансформер начинай с недели 8. Сначала корректность, затем скорость.
  • Сб: LeetCode + математика
  • Вс: ретроспектива. Что не понял → в список дыр. 1 час на закрытие одной дыры.

Модуль 0

  • Модуль 0. Фундамент до стартаДля тех, кому нужен фундамент перед неделей 1: входная диагностика и шесть недель F1–F6.

24 недели ядра

Фаза 1. Фундамент

  1. Неделя 1. Нейросети и градиенты
  2. Неделя 2. Backpropagation
  3. Неделя 3. Оптимизаторы и режим обучения
  4. Неделя 4. Теория информации и численная стабильность

Фаза 2. Современный трансформер

  1. Неделя 5. Токенизация
  2. Неделя 6. Архитектура, часть I
  3. Неделя 7. Внимание
  4. Неделя 8. Собрать трансформер целиком
  5. Неделя 9. Бухгалтерия: параметры, FLOPs, память
  6. Неделя 10. Обучение

Фаза 3. Инференс, GPU, масштабирование

  1. Неделя 11. Инференс
  2. Неделя 12. Стратегии сэмплирования
  3. Неделя 13. GPU и FlashAttention
  4. Неделя 14. Scaling laws, точность, параллелизм

Фаза 4. Post-training

  1. Неделя 15. SFT и данные
  2. Неделя 16. RL: от REINFORCE до PPO
  3. Неделя 17. RLHF, GRPO, DPO
  4. Неделя 18. Оценка

Фаза 5. Расширение

  1. Неделя 19. Другие архитектуры: RNN, SSM, MoE
  2. Неделя 20. Мультимодальность и длинный контекст
  3. Неделя 21. Продакшн-LLM: RAG, агенты, оценка
  4. Неделя 22. Инфраструктура и research craft

Фаза 6. Режим интервью

  1. Неделя 23. Технический спринт
  2. Неделя 24. Коммуникация и переговоры

Сквозные метрики прогресса

Отмечай каждую неделю:

  • [ ] Время написания трансформера с нуля (цель: ≤25 мин)
  • [ ] Решено задач LeetCode (цель: 72, то есть весь трек C)
  • [ ] Реализаций с нуля (цель: 24)
  • [ ] Для ключевых статей записаны гипотеза, проверка и ограничение; минимум один вывод воспроизведён. Число просмотренных статей не заменяет понимание.
  • [ ] Карточек Anki в активном повторении
  • [ ] Mock-интервью проведено

Чего в этой программе нет намеренно

  • Классического ML (деревья, SVM) сверх минимума: на интервью на LLM-роли это редкость. Минимум (логистическая регрессия, k-means, PCA, дерево, метрики) есть в Модуле 0, неделя F6
  • Глубокой теории оптимизации: уровень «понимаю, что происходит» достаточен
  • Computer vision за пределами того, что нужно для мультимодальности

Зачем это всё, кроме оффера

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

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

В приложении у недели есть навыки для самооценки, вопросы с проверкой ответа, задачи с кодом на Python и тьютор по материалам курса.

Учиться в приложении: тьютор, задачи с кодом

С нуля
С нуля: курс по LLM

  • Главная
  • Программа курса
  • Приложение
  • Конфиденциальность
  • Условия

Текст курса распространяется по лицензии CC BY-NC-SA 4.0, код nanolm по лицензии Apache-2.0.