Strategy/projects/files/mipt/mipt_project_template_readme.md
+

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/

Источники

  1. Автор, Год, Название — [почему важен]
  2. Автор, Год, Название — [почему важен]
---

## БЛОК 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)

Choose icon