Неделя 23. Технический спринт
Учиться в приложении: тьютор, задачи с кодом →
Ядро: три mock (два ML coding и итоговый rapid-fire), 10 задач трека C на время · Глубина: пробный онлайн-тест, сессия math, повтор слабых форматов · ≈ 14 ч ядро / 20 ч всё
Цель недели не в том, чтобы выучить новое, а в том, чтобы сделать уже выученное доступным под давлением. Три формата тренируют три разных навыка: rapid-fire тренирует беглость, ML coding тренирует исполнение, дизайн эксперимента тренирует рассуждение. Их нельзя заменить друг другом, поэтому у каждого свой протокол. Правило для всех: без AI, таймер включён, всё записывается.
Из 12 mock-интервью курса восемь уже пройдены в неделях 19–22, по два в неделю; здесь три, последнее в неделе 24. Протоколы всех форматов собраны ниже, недели 19–22 ссылаются на них.
| Тип интервью | Уже было | Нагрузка недели |
|---|---|---|
| ML coding (самый частый) | 3 mock (недели 19, 20, 21) | 2 mock по 45 минут: блок трансформера; k-means или PCA |
| General coding | 10 задач на время из трека C и 1 пробный онлайн-тест на 90 минут | |
| Rapid-fire | 2 сессии (недели 19, 22) | 1 итоговая сессия по 30 вопросов |
| Дизайн эксперимента | 1 сессия (неделя 20) | ещё одна в неделе 24, вместе с разбором чужой статьи |
| Math | 1 сессия на бумаге по треку D | |
| ML system design | 1 сессия (неделя 21, сессия D) | повтор, если по рубрике ниже 6 |
| ML debugging | 1 сессия (неделя 22, сессия E) | повтор, если по рубрике ниже 6 |
Сессия A. Rapid-fire: 30 вопросов за 30 минут
- Вопросы берутся случайной выборкой из раздела rapid-fire банка вопросов и из блоков «Самопроверка» недель 1–22. Порядок случайный: на интервью темы не идут по фазам
- 60 секунд на ответ, жёсткий лимит 2 минуты. Структура ответа: определение одной фразой → механизм или формула → компромисс или «почему». Не уложился? Следующий вопрос
- Запись на диктофон; протокол и оценка по рубрике rapid-fire и шаблону сессии, каждый ответ отмечается ✓ / ~ / ✗
- Промахи делить на три вида: не знаю, знаю, но не вспомнил, сказал неточно. Первые идут в список дыр на воскресенье, вторые в Anki, третьи нужно переформулировать письменно
- Цель к третьей сессии: порог контрольной точки 3 (≥ 20 ✓ и ≤ 3 ✗), ориентир 24 ✓. Почему так: rapid-fire проверяет не глубину, а отсутствие дыр; один провал «что такое KV-кэш» стоит дороже десяти хороших ответов
На пальцах. Вопрос: «Зачем в attention делят на √H?»
Плохо: «Для стабильности, так принято в статье». Нет ни определения, ни механизма, поэтому отметка ✗,
хотя слово «стабильность» не ложное.
Хорошо (около 40 секунд): «Чтобы softmax не насыщался. Скалярное произведение q·k складывается из H слагаемых,
и при единичной дисперсии координат его дисперсия равна H. При H = 64 логиты порядка ±8,
softmax почти one-hot, и градиент через него почти нулевой. Деление на √H возвращает дисперсию к 1.
У больших моделей для того же добавляют QK-norm». Определение, механизм и «почему» уложились в минуту, отметка ✓.
Сессия B. Mock ML coding: 45 минут
- Тайминг: 5 минут на то, чтобы уточнить условие и формы вслух; 25 на код; 10 на проверку на маленьком примере и формах; 5 на сложность и что улучшить
- Задачи: блок трансформера; attention с маской и GQA; beam search; генерация с KV-кэшем; k-means или PCA (Модуль 0, F6)
- Пустой файл, без автодополнения, говорить вслух. Молчание на интервью читается как «застрял», даже если ты думаешь продуктивно
- Застрял на 5 минут? Записать где, упростить задачу (без батча, без маски), довести до работающего и вернуться к полной
- Частые потери баллов: softmax не по той оси, забытая маска, нестабильный softmax,
перепутанные
KиNв GQA, ни одной проверки формы
Сессия C. Дизайн эксперимента: 45 минут
- Шаблон: вопрос → гипотеза и что её опровергнет → тривиальный и сильный бейзлайн → первичная и вторичные метрики → данные и сплиты → контроль шума (сиды, интервалы, McNemar) → абляции → бюджет → что может пойти не так
- Примеры: «Стоит ли переходить с MHA на GQA?», «Помогает ли curriculum по длине?», «Страдает ли рассуждение от int4 сильнее, чем знание фактов?»
- Оценка по рубрике дизайна эксперимента. Самая частая ошибка: начать с метода, а не с того, какой результат опровергнет гипотезу
Сессия D. ML system design: 45 минут
- Тайминг: 8 минут на требования и уточняющие вопросы; 5 на оценку на салфетке; 15 на архитектуру и данные; 10 на оценку качества и serving; 7 на отказы, безопасность и вопросы интервьюера
- Постановка из раздела 8 банка вопросов, но не та, что разбиралась в части 5 недели 21 и в её mock. Партнёр отвечает на уточняющие вопросы по заранее придуманной «легенде»: сколько пользователей, какой бюджет
- Оценка по рубрике ML system design. Самая частая ошибка: через 2 минуты рисовать схему, не выяснив, что важнее: задержка, цена или точность. Вторая по частоте: не сказать, как узнаешь, что система работает
Сессия E. ML debugging: 45 минут
- Партнёр берёт твою рабочую реализацию блока трансформера и вносит 5–6 ошибок из раздела 9 банка вопросов. 30 минут на поиск и починку, 15 на расширение: добавить KV-кэш и проверить совпадение с полным проходом
- Сначала проверки-свидетели, потом чтение кода: формы, причинность, суммы весов внимания, переобучение одного батча. Каждую найденную ошибку назвать вслух вместе с симптомом, который она давала
- Подготовка: в тренажёре есть задача про causal attention. Реши её, потом по очереди сломай в своём решении маску, ось softmax и масштаб и посмотри, какой тест падает и с каким сообщением. Так учишься узнавать ошибку по симптому, а не по строке кода. Потом пройди в тренажёре три задачи «Найди и почини»: блок внимания, обучающий цикл и сэмплер top-k. В каждой код уже написан, и в нём спрятано несколько ошибок
- Оценка по рубрике ML debugging
Разбор недели. В воскресенье заполняется таблица «формат → промахи → причина → действие». Повторяющийся промах означает тему, а не случайность: он возвращается в недели ядра.
Интервью-вопрос недели: «Ты застрял на ML coding. Что делаешь?» На него отвечают не словами, а поведением, поэтому тренируется в каждом mock. Структура: проговорить, где именно затруднение → упростить задачу → проверить упрощённое на маленьком примере → задать уточняющий вопрос → вернуться к полной версии.
Результаты недели
- Могу ответить на 30 случайных вопросов rapid-fire за 30 минут с результатом не хуже 20 ✓ и не больше 3 ✗.
- Могу написать attention с маской и GQA или beam search с пустого файла за 25 минут, проговаривая вслух.
- Могу за 45 минут спроектировать эксперимент по шаблону, начиная с критерия опровержения.
- Могу разложить свои промахи по трём видам и назвать действие для каждого.
- Могу за 45 минут провести ML system design от требований до отказов и обосновать выбор числами.
- Могу найти не меньше 5 из 6 внесённых ошибок в блоке трансформера и назвать симптом каждой.
Самопроверка
- Рассказать за 60 секунд: что такое KV-кэш, сколько он весит и чем его уменьшают.
- Какие проверки ты делаешь в последние 10 минут mock ML coding и в каком порядке?
- Для вопроса «помогает ли curriculum по длине?» какой результат опровергнет гипотезу?
- Какие проверки-свидетели ты пишешь до того, как читать чужой сломанный код?