mipt_project_template_readme
Шаблон репозитория: Проект курса «Методы оптимизации»
МФТИ, весна 2026 | Феанор авто-подготовка 2026-02-26
Лектор: Даниил Меркулов | Дедлайн объявления: лекция #26 (2 марта)
Этот файл содержит:
1. README.md для репозитория студентов (готов к copy-paste)
2. Инструкции по форкингу и настройке
3. Checklist для лектора перед лекцией #26
БЛОК 1: README.md для студентов (копировать в репозиторий)
# [Название проекта]
> **Курс**: Методы оптимизации, МФТИ, весна 2026
> **Команда**: [Имена и группы]
> **Куратор**: [Имя ассистента]
> **Статус**: 🟡 В процессе
> **Последнее обновление**: YYYY-MM-DD
---
## Задача
Чётко сформулируйте задачу оптимизации:
min_{x ∈ ℝⁿ} f(x) subject to g(x) ≤ 0, h(x) = 0
**Контекст**: Одно предложение — зачем эта задача важна / интересна.
**Входные данные**: Описание (размерность, тип, источник).
**Выходные данные**: Что является решением, критерий успеха.
---
## Методология
Какие методы оптимизации вы применяете и почему:
| Метод | Класс задачи | Почему выбран |
|-------|-------------|---------------|
| [Метод 1] | [гладкий/выпуклый/...] | [обоснование] |
| [Метод 2] | [...] | [...] |
---
## Прогресс
### D1 — Постановка (14 мар)
- Формализована задача оптимизации
- Определён baseline
- Выбраны 3 ключевых источника
### D2 — Литобзор + baseline (28 мар)
- Воспроизведён baseline (код в `notebooks/`)
- Написан литобзор (3+ работы)
- Сформулирована гипотеза о возможном улучшении
### D3 — Черновик (11 апр)
- `report.md` заполнен (разделы 1–4)
- Первые результаты vs baseline
- Графики в `notebooks/`
### D4 — Ревизия (25 апр)
- Учтены комментарии peer-feedback
- Методология скорректирована
- Финальные эксперименты запущены
### D5 — Предзащита (9 мая)
- Презентация готова (10 слайдов)
- Ключевой результат сформулирован
### D6 — Финальный отчёт (16 мая)
- `report.md` финальная версия
- Код чистый, README обновлён
- Воспроизводимость проверена
---
## Результаты
> **Обновляйте после каждого эксперимента**
| Метод | Метрика | Значение | Комментарий |
|-------|---------|---------|-------------|
| Baseline | — | — | — |
| [Метод 1] | — | — | — |
---
## Самокритика (обновляйте регулярно)
**Что работает хорошо?**
...
**Что не получается / остаётся неясным?**
...
**Следующий шаг (1–2 конкретных эксперимента)**
1. ...
2. ...
---
## Структура репозитория
project/
├── README.md # этот файл (обновлять каждые 2 нед)
├── report.md # накопительный отчёт
├── notebooks/
│ ├── 01_baseline.ipynb
│ ├── 02_experiments.ipynb
│ └── …
├── src/
│ ├── optimizer.py # ваш оптимизатор
│ ├── data.py
│ └── utils.py
├── tests/
│ └── test_optimizer.py
└── docs/
├── dev_log.md # дневник решений (что попробовали и почему)
└── critiques/ # peer-feedback и самокритики
└── week_N.md
---
## Как запустить
```bash
# Установить зависимости
pip install -r requirements.txt
# Запустить baseline
python src/baseline.py
# Воспроизвести основной эксперимент
python src/main_experiment.py --config configs/main.yaml
# Запустить тесты
pytest tests/
Источники
- Автор, Год, Название — [почему важен]
- Автор, Год, Название — [почему важен]
- …
---
## БЛОК 2: report.md шаблон
```markdown
# Отчёт: [Название проекта]
**Дата**: YYYY-MM-DD | **Версия**: D[1-6]
---
## 1. Постановка задачи
**Оптимизационная задача** (формально):
min_{x} f(x) s.t. …
**Мотивация**: Почему эта задача важна? Где применяется?
**Входные данные**: Размерность, источник, характеристики.
---
## 2. Методология
### 2.1 Baseline
Описание baseline-метода. Почему он является разумной отправной точкой?
### 2.2 Предлагаемые методы
- **Метод 1**: [описание + pseudocode или ссылка]
- **Метод 2**: [...]
### 2.3 Теоретические гарантии (если есть)
> Теорема / леммы из литературы, которые обосновывают выбор метода.
---
## 3. Эксперименты
### 3.1 Настройка
- Данные: ...
- Hardware: ...
- Гиперпараметры: ...
### 3.2 Результаты
| Метод | Метрика 1 | Метрика 2 | Время (с) |
|-------|-----------|-----------|-----------|
| Baseline | | | |
| Метод 1 | | | |
*Рисунок 1: [описание]*
---
## 4. Самокритика
**Сильные стороны текущей версии**:
-
**Слабые стороны / открытые вопросы**:
-
**Следующий шаг**:
1. [Конкретный эксперимент с ожидаемым результатом]
2. [...]
БЛОК 3: dev_log.md шаблон
# Дневник решений
> Записывайте каждый значимый выбор: почему попробовали X, что получилось, что узнали.
---
## [YYYY-MM-DD] [Краткое описание]
**Что попробовали**: ...
**Зачем**: ...
**Результат**: ...
**Вывод / что делать дальше**: ...
---
БЛОК 4: Инструкции для студентов (на лекции #26)
Шаг 1: Форкнуть шаблон
<a href="https://github.com/[ваш-org">https://github.com/[ваш-org</a>]/mipt-optimization-project-template
→ Fork → создать репо opt2026-[название-проекта]
Шаг 2: Добавить куратора
Settings → Collaborators → добавить GitHub username куратора
Шаг 3: Заполнить README
- Название проекта
- Формальная постановка задачи
- Имена команды
Дедлайн D1: 14 марта, 23:59 MSK — push в GitHub = сдал.
БЛОК 5: Чек-лист для лектора перед лекцией #26
- Создать GitHub организацию
mipt-opt-2026(или использовать личный аккаунт) - Загрузить шаблон репозитория (этот файл →
template-repo/README.md) - Добавить ассистентов как collaborators организации
- Подготовить 5-минутный слайд о процессе (структура репо + OODA + дедлайны)
- Объявить темы или дать студентам придумать свои (список тем в mipt_project_schedule.md)
- Создать таблицу распределения студентов по ассистентам
Темы-предложения (на лекции):
1. Operator splitting для обучения нейросетей (=диссер связь 🎯)
2. Adaptive optimizers: Lion/Sophia/Muon vs Adam на NLP
3. Landscape analysis: BatchNorm/LayerNorm и flat minima
4. Federated learning: FedAvg vs локальные методы
5. LLM fine-tuning: LoRA vs full fine-tune через призму оптимизации
6. Structured pruning как задача оптимизации (знакомство: см. @fminxyz посты)
БЛОК 6: GitHub Actions (CI) — опционально
Добавить в .github/workflows/ci.yml:
name: CI
on: [push, pull_request]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with: { python-version: '3.11' }
- run: pip install -r requirements.txt
- run: pytest tests/ -v
- run: python -c "import src; print('Import OK')"
Подготовлено: Феанор (авто-шаблон)
Источники: mipt_project_schedule.md, STAT-4830-project-base reference
Использовать на лекции #26 (2 марта 2026)