Написание научных статей

Статьи по ML для NeurIPS/ICML/ICLR: от замысла к подаче.

Метаданные навыка

ИсточникВстроенный (установлен по умолчанию)
Путьskills/research/research-paper-writing
Версия1.1.0
АвторOrchestra Research
ЛицензияMIT
Зависимостиsemanticscholar, arxiv, habanero, requests, scipy, numpy, matplotlib, SciencePlots
Платформыlinux, macos
ТегиResearch, Paper Writing, Experiments, ML, AI, NeurIPS, ICML, ICLR, ACL, AAAI, COLM, LaTeX, Citations, Statistical Analysis
Связанные навыкиarxiv, ml-paper-writing, subagent-driven-development, plan

Справочник: полный SKILL.md

инфо

Ниже приведено полное определение навыка, которое Hermes загружает при его срабатывании. Именно это агент видит в качестве инструкций, когда навык активен.

Конвейер написания научных статей

Сквозной конвейер для подготовки готовых к публикации статей по ML/AI, нацеленных на NeurIPS, ICML, ICLR, ACL, AAAI и COLM. Навык охватывает весь жизненный цикл исследования: дизайн эксперимента, его проведение, мониторинг, анализ, написание статьи, рецензирование, доработку и подачу.

Это не линейный конвейер — это итеративный цикл. Результаты запускают новые эксперименты. Рецензии запускают новый анализ. Агент должен справляться с такими петлями обратной связи.

┌─────────────────────────────────────────────────────────────┐
│                    RESEARCH PAPER PIPELINE                  │
│                                                             │
│  Phase 0: Project Setup ──► Phase 1: Literature Review      │
│       │                          │                          │
│       ▼                          ▼                          │
│  Phase 2: Experiment     Phase 5: Paper Drafting ◄──┐      │
│       Design                     │                   │      │
│       │                          ▼                   │      │
│       ▼                    Phase 6: Self-Review      │      │
│  Phase 3: Execution &           & Revision ──────────┘      │
│       Monitoring                 │                          │
│       │                          ▼                          │
│       ▼                    Phase 7: Submission               │
│  Phase 4: Analysis ─────► (feeds back to Phase 2 or 5)     │
│                                                             │
└─────────────────────────────────────────────────────────────┘

Когда использовать этот навык

Используйте навык, когда вы:

  • Начинаете новую статью на основе готовой кодовой базы или идеи
  • Проектируете и запускаете эксперименты для подкрепления утверждений статьи
  • Пишете или дорабатываете любой раздел статьи
  • Готовитесь к подаче на конкретную конференцию или воркшоп
  • Отвечаете на рецензии дополнительными экспериментами или правками
  • Переводите статью из одного конференциального формата в другой
  • Пишете не-эмпирические статьи — теоретические, обзорные, бенчмарковые или позиционные (см. Типы статей за пределами эмпирического ML)
  • Проектируете оценку с участием людей для исследований по NLP, HCI или alignment
  • Готовите материалы после принятия — постеры, доклады, релизы кода

Базовая философия

  1. Действуйте на опережение. Сдавайте готовые черновики, а не вопросы. Учёные заняты — дайте им что-то конкретное, на что можно отреагировать, а потом итерируйте.
  2. Никогда не выдумывайте цитаты. У сгенерированных ИИ ссылок частота ошибок около 40%. Всегда получайте их программно. Непроверяемые цитаты помечайте как [CITATION NEEDED].
  3. Статья — это история, а не набор экспериментов. Каждой статье нужен один чёткий вклад, сформулированный в одном предложении. Если так не получается — статья не готова.
  4. Эксперименты служат утверждениям. Каждый эксперимент должен явно указывать, какое утверждение он подкрепляет. Не запускайте эксперименты, не связанные с нарративом статьи.
  5. Коммитьте рано, коммитьте часто. Каждый завершённый пакет экспериментов, каждое обновление черновика — коммит с осмысленным сообщением. Лог git и есть история экспериментов.

Проактивность и сотрудничество

По умолчанию: действуйте на опережение. Сначала черновик, потом вопросы вместе с ним.

Уровень уверенностиДействие
Высокий (понятный репозиторий, очевидный вклад)Напишите полный черновик, сдайте, итерируйте по фидбэку
Средний (есть неоднозначности)Напишите черновик с пометками о неясностях, продолжайте
Низкий (крупные неизвестные)Задайте 1-2 точечных вопроса через clarify, затем пишите черновик
РазделПисать самостоятельно?Пометка к черновику
АннотацияДа”Сформулировал вклад как X — поправьте при необходимости”
ВведениеДа”Сделал акцент на проблеме Y — поправьте, если не так”
МетодыДа”Включил детали A, B, C — добавьте недостающее”
ЭкспериментыДа”Выделил результаты 1, 2, 3 — переставьте при необходимости”
Обзор литературыДа”Процитировал работы X, Y, Z — добавьте, что я упустил”

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


Фаза 0: Настройка проекта

Цель: подготовить рабочее пространство, понять уже сделанное, определить вклад.

Шаг 0.1: Изучите репозиторий

# Understand project structure
ls -la
find . -name "*.py" | head -30
find . -name "*.md" -o -name "*.txt" | xargs grep -l -i "result\|conclusion\|finding"

Ищите:

  • README.md — обзор проекта и утверждения
  • results/, outputs/, experiments/ — уже полученные результаты
  • configs/ — настройки экспериментов
  • файлы .bib — имеющиеся цитаты
  • черновые документы или заметки

Шаг 0.2: Организуйте рабочее пространство

Заведите единообразную структуру рабочего пространства:

workspace/
  paper/               # LaTeX source, figures, compiled PDFs
  experiments/         # Experiment runner scripts
  code/                # Core method implementation
  results/             # Raw experiment results (auto-generated)
  tasks/               # Task/benchmark definitions
  human_eval/          # Human evaluation materials (if needed)

Шаг 0.3: Настройте контроль версий

git init  # if not already
git remote add origin <repo-url>
git checkout -b paper-draft  # or main

Дисциплина git: каждый завершённый пакет экспериментов коммитится с осмысленным сообщением. Пример:

Add Monte Carlo constrained results (5 runs, Sonnet 4.6, policy memo task)
Add Haiku baseline comparison: autoreason vs refinement baselines at cheap model tier

Шаг 0.4: Определите вклад

Прежде чем что-либо писать, чётко сформулируйте:

  • Что: какую единственную вещь вносит эта статья?
  • Почему: какие данные это подкрепляют?
  • И что с того: почему это должно волновать читателей?

Предложите учёному: “Насколько я понимаю, основной вклад таков: [одно предложение]. Главные результаты показывают [Y]. Это та формулировка, которая вам нужна?”

Шаг 0.5: Составьте список TODO

С помощью инструмента todo создайте структурированный план проекта:

Research Paper TODO:
- [ ] Define one-sentence contribution
- [ ] Literature review (related work + baselines)
- [ ] Design core experiments
- [ ] Run experiments
- [ ] Analyze results
- [ ] Write first draft
- [ ] Self-review (simulate reviewers)
- [ ] Revise based on review
- [ ] Submission prep

Обновляйте его по ходу всего проекта. Он служит постоянным состоянием между сессиями.

Шаг 0.6: Оцените бюджет вычислений

Перед запуском экспериментов прикиньте суммарные затраты и время:

Compute Budget Checklist:
- [ ] API costs: (model price per token) × (estimated tokens per run) × (number of runs)
- [ ] GPU hours: (time per experiment) × (number of experiments) × (number of seeds)
- [ ] Human evaluation costs: (annotators) × (hours) × (hourly rate)
- [ ] Total budget ceiling and contingency (add 30-50% for reruns)

Отслеживайте фактический расход по мере работы:

# Simple cost tracker pattern
import json, os
from datetime import datetime

COST_LOG = "results/cost_log.jsonl"

def log_cost(experiment: str, model: str, input_tokens: int, output_tokens: int, cost_usd: float):
    entry = {
        "timestamp": datetime.now().isoformat(),
        "experiment": experiment,
        "model": model,
        "input_tokens": input_tokens,
        "output_tokens": output_tokens,
        "cost_usd": cost_usd,
    }
    with open(COST_LOG, "a") as f:
        f.write(json.dumps(entry) + "\n")

Когда бюджет ограничен: запускайте пилотные эксперименты (1-2 seed-а, подмножество задач), прежде чем заказывать полные прогоны. Для отладки конвейеров берите дешёвые модели, а на финальные прогоны переключайтесь на целевые.

Шаг 0.7: Координация нескольких авторов

У большинства статей от 3 до 10 авторов. Договоритесь о рабочих процессах заранее:

ПроцессИнструментКогда использовать
OverleafВ браузереНесколько авторов правят одновременно, опыта с git нет
Git + LaTeXgit с .gitignore для вспомогательных файловТехнические команды, нужны рецензии по веткам
Overleaf + Git syncOverleaf premiumЛучшее из двух — живая совместная работа с историей версий

Владение разделами: закрепите за каждым разделом одного ведущего автора. Остальные комментируют, но не правят напрямую. Так не будет конфликтов слияния и разнобоя в стиле.

Author Coordination Checklist:
- [ ] Agree on section ownership (who writes what)
- [ ] Set up shared workspace (Overleaf or git repo)
- [ ] Establish notation conventions (before anyone writes)
- [ ] Schedule internal review rounds (not just at the end)
- [ ] Designate one person for final formatting pass
- [ ] Agree on figure style (colors, fonts, sizes) before creating figures

Соглашения по LaTeX, о которых стоит договориться сразу:

  • макрос \method{} для единообразного именования метода
  • стиль цитирования: когда \citet{}, когда \citep{}
  • математическая нотация: строчные жирные для векторов, заглавные жирные для матриц и т.д.
  • британское или американское написание

Фаза 1: Обзор литературы

Цель: найти связанные работы, определить базовые методы, собрать цитаты.

Шаг 1.1: Определите опорные статьи

Отталкивайтесь от статей, уже упомянутых в кодовой базе:

# Via terminal:
grep -r "arxiv\|doi\|cite" --include="*.md" --include="*.bib" --include="*.py"
find . -name "*.bib"

Шаг 1.2: Поиск связанных работ

Загрузите навык arxiv для структурированного поиска статей: skill_view("arxiv"). Он даёт доступ к поиску через arXiv REST API, графам цитирования Semantic Scholar, профилям авторов и генерации BibTeX.

Используйте web_search для широкого поиска, web_extract для получения конкретных статей:

# Via web_search:
web_search("[main technique] + [application domain] site:arxiv.org")
web_search("[baseline method] comparison ICML NeurIPS 2024")

# Via web_extract (for specific papers):
web_extract("https://arxiv.org/abs/2303.17651")

Дополнительные поисковые запросы, которые стоит попробовать:

Search queries:
- "[main technique] + [application domain]"
- "[baseline method] comparison"
- "[problem name] state-of-the-art"
- Author names from existing citations

Рекомендуется: установите Exa MCP для академического поиска в реальном времени:

claude mcp add exa -- npx -y mcp-remote "https://mcp.exa.ai/mcp"

Шаг 1.2b: Углубите поиск (сначала вширь, потом вглубь)

Плоский поиск (один раунд запросов) обычно пропускает важные связанные работы. Применяйте итеративную схему вширь-затем-вглубь, вдохновлённую конвейерами глубоких исследований:

Iterative Literature Search:

Round 1 (Breadth): 4-6 parallel queries covering different angles
  - "[method] + [domain]"
  - "[problem name] state-of-the-art 2024 2025"
  - "[baseline method] comparison"
  - "[alternative approach] vs [your approach]"
  → Collect papers, extract key concepts and terminology

Round 2 (Depth): Generate follow-up queries from Round 1 learnings
  - New terminology discovered in Round 1 papers
  - Papers cited by the most relevant Round 1 results
  - Contradictory findings that need investigation
  → Collect papers, identify remaining gaps

Round 3 (Targeted): Fill specific gaps
  - Missing baselines identified in Rounds 1-2
  - Concurrent work (last 6 months, same problem)
  - Key negative results or failed approaches
  → Stop when new queries return mostly papers you've already seen

Когда останавливаться: если раунд возвращает >80% статей, уже бывших в вашей коллекции, поиск насыщен. Обычно хватает 2-3 раундов. Для обзорных статей закладывайте 4-5 раундов.

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

Шаг 1.3: Проверяйте каждую цитату

НИКОГДА не генерируйте BibTeX по памяти. ВСЕГДА получайте его программно.

Для каждой цитаты проходите обязательный процесс из 5 шагов:

Citation Verification (MANDATORY per citation):
1. SEARCH → Query Semantic Scholar or Exa MCP with specific keywords
2. VERIFY → Confirm paper exists in 2+ sources (Semantic Scholar + arXiv/CrossRef)
3. RETRIEVE → Get BibTeX via DOI content negotiation (programmatically, not from memory)
4. VALIDATE → Confirm the claim you're citing actually appears in the paper
5. ADD → Add verified BibTeX to bibliography
If ANY step fails → mark as [CITATION NEEDED], inform scientist
# Fetch BibTeX via DOI
import requests

def doi_to_bibtex(doi: str) -> str:
    response = requests.get(
        f"https://doi.org/{doi}",
        headers={"Accept": "application/x-bibtex"}
    )
    response.raise_for_status()
    return response.text

Если проверить цитату не удаётся:

\cite{PLACEHOLDER_author2024_verify_this}  % TODO: Verify this citation exists

Всегда сообщайте учёному: “Я пометил [X] цитат как заглушки, требующие проверки.”

Полную документацию по API и весь класс CitationManager см. в references/citation-workflow.md.

Шаг 1.4: Структурируйте обзор литературы

Группируйте статьи по методологии, а не по принципу «одна статья — один абзац»:

Хорошо: “Одно из направлений опирается на предположение X [refs], тогда как мы используем предположение Y, потому что…” Плохо: “Smith et al. предложили X. Jones et al. предложили Y. Мы объединяем оба.”


Фаза 2: Дизайн экспериментов

Цель: спроектировать эксперименты, прямо подкрепляющие утверждения статьи. Каждый эксперимент должен отвечать на конкретный вопрос.

Шаг 2.1: Сопоставьте утверждения и эксперименты

Составьте явное сопоставление:

УтверждениеЭкспериментОжидаемое подтверждение
”Наш метод обходит базовые методы”Основное сравнение (Таблица 1)Доля побед, статистическая значимость
”Эффект сильнее у слабых моделей”Исследование масштабирования моделейМонотонно растущая кривая улучшения
”Для сходимости нужны ограничения области”С ограничениями против без нихСравнение скорости сходимости

Правило: если эксперимент не сопоставляется ни с одним утверждением — не запускайте его.

Шаг 2.2: Подберите базовые методы

Сильные baseline-ы — то, что отличает принятые статьи от отклонённых. Рецензенты спросят: “А сравнили ли они с X?”

Стандартные категории базовых методов:

  • Наивный baseline: простейший возможный подход
  • Сильный baseline: лучший известный существующий метод
  • Аблационные baseline-ы: ваш метод без одного компонента
  • Baseline-ы с равным compute: тот же бюджет вычислений, иное распределение

Шаг 2.3: Определите протокол оценки

До запуска чего бы то ни было задайте:

  • Метрики: что вы измеряете, символы направления (больше/меньше — лучше)
  • Агрегация: как результаты сводятся по прогонам и задачам
  • Статистические тесты: какие тесты подтвердят значимость
  • Размеры выборок: сколько прогонов, задач, проблем

Шаг 2.4: Напишите скрипты экспериментов

Следуйте этим паттернам из работающих исследовательских конвейеров:

Инкрементальное сохранение — сохраняйте результаты после каждого шага, чтобы восстановиться после сбоя:

# Save after each problem/task
result_path = f"results/{task}/{strategy}/result.json"
if os.path.exists(result_path):
    continue  # Skip already-completed work
# ... run experiment ...
with open(result_path, 'w') as f:
    json.dump(result, f, indent=2)

Сохранение артефактов — храните все промежуточные выводы:

results/<experiment>/
  <task>/
    <strategy>/
      final_output.md          # Final result
      history.json             # Full trajectory
      pass_01/                 # Per-iteration artifacts
        version_a.md
        version_b.md
        critic.md

Разделение ответственности — держите генерацию, оценку и визуализацию по отдельности:

run_experiment.py              # Core experiment runner
run_baselines.py               # Baseline comparison
run_comparison_judge.py        # Blind evaluation
analyze_results.py             # Statistical analysis
make_charts.py                 # Visualization

Полные паттерны проектирования, мониторинг через cron и восстановление после ошибок см. в references/experiment-patterns.md.

Шаг 2.5: Спроектируйте оценку с участием людей (если применимо)

Многим статьям по NLP, HCI и alignment нужна человеческая оценка как основное или дополнительное свидетельство. Проектируйте её до автоматических экспериментов — у человеческой оценки часто длиннее срок подготовки (одобрение IRB, набор аннотаторов).

Когда нужна оценка людьми:

  • Автоматические метрики не схватывают то, что вам важно (беглость, полезность, безопасность)
  • Ваш вклад касается качеств, обращённых к человеку (читаемость, предпочтения, доверие)
  • Рецензенты на NLP-площадках (ACL, EMNLP) ждут её для задач генерации

Ключевые проектные решения:

РешениеВариантыРекомендация
Тип аннотатораЭксперт, краудворкер, конечный пользовательПодбирайте под то, что требуют ваши утверждения
ШкалаLikert (1-5), попарное сравнение, ранжированиеДля выводов LLM попарное сравнение надёжнее шкалы Likert
Размер выборкиНа аннотатора и всего объектовАнализ мощности либо минимум 100 объектов и 3+ аннотатора
Метрика согласиякаппа Коэна, альфа Криппендорфа, ICCАльфа Криппендорфа при >2 аннотаторах; приводите и сырое согласие
ПлатформаProlific, MTurk, своя командаProlific для качества; MTurk для масштаба; своя команда для предметной экспертизы

Чек-лист инструкции для аннотаторов:

- [ ] Clear task description with examples (good AND bad)
- [ ] Decision criteria for ambiguous cases
- [ ] At least 2 worked examples per category
- [ ] Attention checks / gold standard items (10-15% of total)
- [ ] Qualification task or screening round
- [ ] Estimated time per item and fair compensation (>= local minimum wage)
- [ ] IRB/ethics review if required by your institution

Требования к отчётности (рецензенты проверяют всё это):

  • Число аннотаторов и их квалификация
  • Межаннотаторское согласие с конкретной метрикой и значением
  • Детали оплаты (сумма, расчётная почасовая ставка)
  • Описание интерфейса аннотации или скриншот (в приложении)
  • Общее время аннотации

Полное руководство, включая статистические тесты для данных человеческой оценки, паттерны контроля качества в краудсорсинге и рекомендации по IRB, см. в references/human-evaluation.md.


Фаза 3: Проведение и мониторинг экспериментов

Цель: надёжно запускать эксперименты, следить за ходом, восстанавливаться после сбоев.

Шаг 3.1: Запуск экспериментов

Для долгих экспериментов используйте nohup:

nohup python run_experiment.py --config config.yaml > logs/experiment_01.log 2>&1 &
echo $!  # Record the PID

Параллельный запуск: запускайте независимые эксперименты одновременно, но помните про лимиты запросов к API. Четыре и более параллельных эксперимента на одном API замедлят каждый из них.

Шаг 3.2: Настройте мониторинг (паттерн cron)

Для долгих экспериментов настройте периодические проверки статуса. Промпт для cron должен следовать такому шаблону:

Monitor Prompt Template:
1. Check if process is still running: ps aux | grep <pattern>
2. Read last 30 lines of log: tail -30 <logfile>
3. Check for completed results: ls <result_dir>
4. If results exist, read and report: cat <result_file>
5. If all done, commit: git add -A && git commit -m "<descriptive message>" && git push
6. Report in structured format (tables with key metrics)
7. Answer the key analytical question for this experiment

Тихий режим: если с прошлой проверки ничего не изменилось, отвечайте [SILENT], чтобы не дёргать пользователя уведомлением. Сообщайте только когда есть новости.

Шаг 3.3: Обработка сбоев

Частые режимы сбоев и восстановление:

СбойКак обнаружитьВосстановление
Лимит запросов / исчерпание кредитов APIОшибки 402/429 в логахПодождать и перезапустить (скрипты пропускают готовое)
Падение процессаPID исчез, неполные результатыПерезапуск с последней контрольной точки
Таймаут на сложных задачахПроцесс завис, лог не растётПрервать и пропустить, отметить в результатах
Неверный ID моделиОшибки со ссылкой на имя моделиИсправить ID и перезапустить

Главное: скрипты должны всегда проверять наличие готовых результатов и пропускать уже сделанное. Так перезапуски безопасны и эффективны.

Шаг 3.4: Коммитьте готовые результаты

После завершения каждого пакета экспериментов:

git add -A
git commit -m "Add <experiment name>: <key finding in 1 line>"
git push

Шаг 3.5: Ведите журнал экспериментов

Коммиты git фиксируют, что произошло, но не дерево разведки — решения о том, что пробовать дальше, на основе того, что вы узнали. Ведите структурированный журнал экспериментов, который схватывает это дерево:

// experiment_journal.jsonl — append one entry per experiment attempt
{
  "id": "exp_003",
  "parent": "exp_001",
  "timestamp": "2025-05-10T14:30:00Z",
  "hypothesis": "Adding scope constraints will fix convergence failure from exp_001",
  "plan": "Re-run autoreason with max_tokens=2000 and fixed structure template",
  "config": {"model": "haiku", "strategy": "autoreason", "max_tokens": 2000},
  "status": "completed",
  "result_path": "results/exp_003/",
  "key_metrics": {"win_rate": 0.85, "convergence_rounds": 3},
  "analysis": "Scope constraints fixed convergence. Win rate jumped from 0.42 to 0.85.",
  "next_steps": ["Try same constraints on Sonnet", "Test without structure template"],
  "figures": ["figures/exp003_convergence.pdf"]
}

Зачем журнал, а не только git? Git отслеживает изменения файлов. Журнал отслеживает рассуждения: почему вы попробовали X, что узнали и что это значит для следующего эксперимента. При написании статьи это дерево бесценно для раздела «Методы» («мы заметили X, что подтолкнуло к Y») и для честного отчёта о неудачах.

Выбор лучшего пути: когда журнал показывает ветвящееся дерево (exp_001 → exp_002a, exp_002b, exp_003), найдите путь, который лучше всего подкрепляет утверждения статьи. Тупиковые ветви опишите в приложении как аблации или негативные результаты.

Снимок кода для каждого эксперимента: копируйте скрипт после каждого прогона:

cp experiment.py results/exp_003/experiment_snapshot.py

Это позволяет точно воспроизвести прогон даже после последующих правок кода.


Фаза 4: Анализ результатов

Цель: извлечь выводы, посчитать статистику, нащупать историю.

Шаг 4.1: Агрегируйте результаты

Пишите аналитические скрипты, которые:

  1. Загружают все файлы результатов пакета
  2. Считают метрики по задачам и агрегированные
  3. Формируют сводные таблицы
# Standard analysis pattern
import json, os
from pathlib import Path

results = {}
for result_file in Path("results/").rglob("result.json"):
    data = json.loads(result_file.read_text())
    strategy = result_file.parent.name
    task = result_file.parent.parent.name
    results.setdefault(strategy, {})[task] = data

# Compute aggregate metrics
for strategy, tasks in results.items():
    scores = [t["score"] for t in tasks.values()]
    print(f"{strategy}: mean={np.mean(scores):.1f}, std={np.std(scores):.1f}")

Шаг 4.2: Статистическая значимость

Всегда считайте:

  • Полосы погрешностей: стандартное отклонение или стандартную ошибку, явно указывая, что именно
  • Доверительные интервалы: 95% ДИ для ключевых результатов
  • Попарные тесты: тест Макнемара для сравнения двух методов
  • Размеры эффекта: d или h Коэна для практической значимости

Полные реализации теста Макнемара, бутстрэп-ДИ и h Коэна см. в references/experiment-patterns.md.

Шаг 4.3: Нащупайте историю

После анализа явно ответьте:

  1. Каков главный вывод? Сформулируйте его одним предложением.
  2. Что вас удивило? Неожиданные результаты часто рождают лучшие статьи.
  3. Что провалилось? Неудачные эксперименты бывают самыми поучительными. Честный отчёт о провалах усиливает статью.
  4. Какие нужны дополнительные эксперименты? Результаты часто поднимают новые вопросы.
Что делать с негативными или нулевыми результатами

Когда гипотеза оказалась неверной или результаты неоднозначны, есть три варианта:

СитуацияДействиеКуда подходит
Гипотеза неверна, но почему — поучительноПостройте статью вокруг анализа причинNeurIPS, ICML (если анализ строгий)
Метод не обходит baseline-ы, но вскрывает новоеПереформулируйте вклад как понимание/анализICLR (ценит понимание), воркшопы
Чистый негативный результат по популярному утверждениюОпишите его — полю нужно это знатьNeurIPS Datasets & Benchmarks, TMLR, воркшопы
Результаты неоднозначны, чёткой истории нетСделайте разворот — другие эксперименты или новая рамкаНе выжимайте статью, которой нет

Как писать статью о негативных результатах:

  • Начните с того, во что верит сообщество и почему это важно проверить
  • Опишите строгую методологию (должна быть безупречной — рецензенты копают глубже)
  • Чётко представьте нулевой результат со статистическими свидетельствами
  • Проанализируйте, почему ожидаемый результат не наступил
  • Обсудите последствия для поля

Площадки, которые прямо приветствуют негативные результаты: NeurIPS (трек Datasets & Benchmarks), TMLR, ML Reproducibility Challenge, воркшопы при крупных конференциях. Некоторые воркшопы специально зовут с негативными результатами.

Шаг 4.4: Создайте рисунки и таблицы

Рисунки:

  • Для всех графиков используйте векторную графику (PDF): plt.savefig('fig.pdf')
  • Палитры, безопасные для дальтоников (Okabe-Ito или Paul Tol)
  • Самодостаточные подписи — читатель должен понять без основного текста
  • Без заголовка внутри рисунка — эту роль играет подпись

Таблицы:

  • Используйте LaTeX-пакет booktabs
  • Выделяйте жирным лучшее значение по каждой метрике
  • Указывайте символы направления (больше/меньше — лучше)
  • Единая точность десятичных знаков
\usepackage{booktabs}
\begin{tabular}{lcc}
\toprule
Method & Accuracy $\uparrow$ & Latency $\downarrow$ \\
\midrule
Baseline & 85.2 & 45ms \\
\textbf{Ours} & \textbf{92.1} & 38ms \\
\bottomrule
\end{tabular}

Шаг 4.5: Решите: ещё эксперименты или писать?

СитуацияДействие
Основные утверждения подтверждены, результаты значимыПереход к Фазе 5 (написание)
Результаты неоднозначны, нужно больше данныхНазад к Фазе 2 (дизайн)
Неожиданная находка указывает на новое направлениеНазад к Фазе 2 (дизайн)
Не хватает одной аблации, которую спросят рецензентыЗапустить её, затем Фаза 5
Все эксперименты сделаны, но часть провалиласьОтметить провалы, перейти к Фазе 5

Шаг 4.6: Напишите лог экспериментов (мост к написанию)

Перед переходом к статье создайте структурированный лог экспериментов, связывающий результаты с прозой. Это самая важная соединительная ткань между экспериментами и текстом — без неё пишущему агенту придётся заново выводить историю из сырых файлов результатов.

Создайте experiment_log.md со следующей структурой:

# Experiment Log

## Contribution (one sentence)
[The paper's main claim]

## Experiments Run

### Experiment 1: [Name]
- **Claim tested**: [Which paper claim this supports]
- **Setup**: [Model, dataset, config, number of runs]
- **Key result**: [One sentence with the number]
- **Result files**: results/exp1/final_info.json
- **Figures generated**: figures/exp1_comparison.pdf
- **Surprising findings**: [Anything unexpected]

### Experiment 2: [Name]
...

## Figures
| Filename | Description | Which section it belongs in |
|----------|-------------|---------------------------|
| figures/main_comparison.pdf | Bar chart comparing all methods on benchmark X | Results, Figure 2 |
| figures/ablation.pdf | Ablation removing components A, B, C | Results, Figure 3 |
...

## Failed Experiments (document for honesty)
- [What was tried, why it failed, what it tells us]

## Open Questions
- [Anything the results raised that the paper should address]

Почему это важно: при черновике агент (или делегированный субагент) может загрузить experiment_log.md рядом с LaTeX-шаблоном и выдать первый черновик, опирающийся на реальные результаты. Без этого моста пишущему агенту приходится разбирать сырые JSON/CSV и додумывать историю — частый источник выдуманных или искажённых чисел.

Дисциплина git: коммитьте этот лог вместе с описываемыми им результатами.


Итеративная доработка: выбор стратегии

Любой результат этого конвейера — черновики статьи, скрипты экспериментов, анализ — можно дорабатывать итеративно. Исследование autoreason даёт эмпирические данные о том, когда какая стратегия доработки работает, а когда проваливается. Этот раздел поможет выбрать подход.

Таблица быстрого решения

Ваша ситуацияСтратегияПочему
Модель среднего уровня + ограниченная задачаAutoreasonЗолотая середина. Разрыв генерация-оценка самый широкий. Baseline-ы активно портят выводы слабой модели.
Модель среднего уровня + открытая задачаAutoreason с добавленными ограничениями областиДобавьте фиксированные факты, структуру или результат, чтобы ограничить пространство улучшения.
Фронтирная модель + ограниченная задачаAutoreasonВыигрывает 2 из 3 ограниченных задач даже на фронтире.
Фронтирная модель + неограниченная задачаCritique-and-revise или один проходAutoreason здесь последний. Модель достаточно хорошо себя оценивает.
Конкретная техническая задача (дизайн системы)Critique-and-reviseПрямой цикл «найти и исправить» эффективнее.
Задача заполнения шаблона (одна верная структура)Один проход или консервативнаяПространство решений минимально. Итерации ничего не дают.
Код с тест-кейсамиAutoreason (вариант для кода)Структурный анализ почему код упал перед исправлением. Доля восстановления 62% против 43%.
Очень слабая модель (класс Llama 8B)Один проходМодель слишком слаба для разнообразных кандидатов. Вкладывайтесь в качество генерации.

Разрыв между генерацией и оценкой

Главная мысль: ценность autoreason зависит от разрыва между способностью модели генерировать и её способностью себя оценивать.

Model Tier        │ Generation │ Self-Eval │ Gap    │ Autoreason Value
──────────────────┼────────────┼───────────┼────────┼─────────────────
Weak (Llama 8B)   │ Poor       │ Poor      │ Small  │ None — can't generate diverse candidates
Mid (Haiku 3.5)   │ Decent     │ Poor      │ LARGE  │ MAXIMUM — 42/42 perfect Borda
Mid (Gemini Flash)│ Decent     │ Moderate  │ Large  │ High — wins 2/3
Strong (Sonnet 4) │ Good       │ Decent    │ Medium │ Moderate — wins 3/5
Frontier (S4.6)   │ Excellent  │ Good      │ Small  │ Only with constraints

Этот разрыв структурный, а не временный. По мере удешевления сегодняшний фронтир становится завтрашним средним уровнем. Золотая середина смещается, но не исчезает.

Цикл Autoreason (кратко)

Каждый проход даёт три кандидата от свежих изолированных агентов:

  1. Critic → находит проблемы у действующего A (без правок)
  2. Author B → правит A по критике
  3. Synthesizer → сливает A и B (метки рандомизированы)
  4. Judge Panel → 3 слепых CoT-судьи ранжируют A, B, AB через счёт Борда
  5. Сходимость → A выигрывает k=2 проходов подряд → готово

Ключевые параметры:

  • сходимость k=2 (k=1 преждевременно, k=3 слишком дорого без выигрыша в качестве)
  • CoT-судьи всегда (сходимость втрое быстрее)
  • температура 0.8 у авторов, 0.3 у судей
  • консервативное разрешение ничьих: при равенстве побеждает действующий
  • каждая роль — свежий агент без общего контекста

Применение к черновикам статьи

При доработке самой статьи через autoreason:

  • Дайте критику основания: фактические экспериментальные данные, result-JSON, статистические выводы. Без этого модели выдумывают фиктивные аблации и фальшивые доверительные интервалы.
  • Используйте минимум 3 рабочих судьи: сломанный судья не добавляет шум — он вообще не даёт достичь равновесия.
  • Ограничьте область правок: «устрани эти конкретные слабости», а не «улучши статью».

Режимы сбоев

СбойКак обнаружитьИсправление
Нет сходимости (A никогда не выигрывает)A выигрывает <15% за 20+ проходовДобавить ограничения области к задаче
Дрейф синтезаОбъём слов растёт без пределаОграничить структуру и результат
Деградация ниже одного проходаBaseline-ы выше итерированного выводаПерейти на один проход; модель, возможно, слишком слаба
Переобучение (код)Высокая доля на публичных тестах, низкая на приватныхИспользовать структурный анализ, а не только обратную связь тестов
Сломанные судьиСбои парсинга роняют панель ниже 3Починить парсер перед продолжением

Полные промпты, детали подсчёта Борда, руководство по выбору модели, паттерны проектирования ограничений области и справочник по бюджету вычислений см. в references/autoreason-methodology.md.


Фаза 5: Написание черновика статьи

Цель: написать полную, готовую к публикации статью.

Управление контекстом для крупных проектов

Проект с 50+ файлами экспериментов, несколькими каталогами результатов и обширными заметками по литературе легко переполнит контекстное окно агента. Управляйте этим на опережение:

Что загружать в контекст для каждой задачи написания:

Задача написанияЗагрузить в контекстНЕ загружать
Введениеexperiment_log.md, формулировку вклада, 5-10 самых релевантных аннотацийСырые result-JSON, полные скрипты, все заметки по литературе
МетодыКонфиги экспериментов, псевдокод, описание архитектурыСырые логи, результаты других экспериментов
Результатыexperiment_log.md, сводные таблицы результатов, список рисунковПолные аналитические скрипты, промежуточные данные
Обзор литературыСтруктурированные заметки по цитатам (вывод шага 1.4), файл .bibФайлы экспериментов, сырые PDF
Проход доработкиПолный черновик статьи, конкретные замечания рецензентовВсё остальное

Принципы:

  • experiment_log.md — главный мост контекста: он подытоживает всё нужное для написания, не загружая сырые файлы данных (см. шаг 4.6)
  • Загружайте контекст одного раздела за раз при делегировании. Субагенту, пишущему «Методы», не нужны заметки по обзору литературы.
  • Подытоживайте, а не включайте сырые файлы. Для result-JSON на 200 строк загрузите сводную таблицу на 10 строк. Для связанной статьи на 50 страниц — аннотацию из 5 предложений плюс вашу заметку на 2 строки о её релевантности.
  • Для очень крупных проектов: создайте каталог context/ с заранее сжатыми сводками:
    context/
      contribution.md          # 1 sentence
      experiment_summary.md    # Key results table (from experiment_log.md)
      literature_map.md        # Organized citation notes
      figure_inventory.md      # List of figures with descriptions

Принцип нарратива

Самая важная мысль: ваша статья — не набор экспериментов, а история с одним чётким вкладом, подкреплённым свидетельствами.

Каждая удачная статья по ML строится вокруг того, что Neel Nanda называет «нарративом»: короткой, строгой, основанной на свидетельствах технической истории с выводом, который важен читателям.

Три опоры (должны быть кристально ясны к концу введения):

ОпораОписаниеПроверка
Что1-3 конкретных новых утвержденияМожете сформулировать их одним предложением?
ПочемуСтрогие эмпирические свидетельстваОтличают ли эксперименты вашу гипотезу от альтернатив?
И что с тогоПочему это важно читателямСвязано ли это с признанной проблемой сообщества?

Если вы не можете сформулировать вклад одним предложением — статьи у вас пока нет.

Источники этого руководства

Навык сводит воедино философию письма исследователей, много публиковавшихся на топовых площадках. Слой философии письма изначально собрал Orchestra Research как навык ml-paper-writing.

ИсточникГлавный вкладСсылка
Neel Nanda (Google DeepMind)Принцип нарратива, схема Что/Почему/И что с тогоHow to Write ML Papers
Sebastian Farquhar (DeepMind)Формула аннотации из 5 предложенийHow to Write ML Papers
Gopen & Swan7 принципов ожиданий читателяScience of Scientific Writing
Zachary LiptonВыбор слов, отказ от хеджированияHeuristics for Scientific Writing
Jacob Steinhardt (UC Berkeley)Точность, единая терминологияWriting Tips
Ethan Perez (Anthropic)Советы по ясности на микроуровнеEasy Paper Writing Tips
Andrej KarpathyФокус на одном вкладеРазличные лекции

Для углублённого разбора любого из них см.:

Распределение времени

Тратьте примерно поровну на каждое из:

  1. Аннотацию
  2. Введение
  3. Рисунки
  4. Всё остальное вместе взятое

Почему? Большинство рецензентов выносят суждение, не дойдя до методов. Читатель встречает статью так: заголовок → аннотация → введение → рисунки → может быть, остальное.

Рабочий процесс написания

Paper Writing Checklist:
- [ ] Step 1: Define the one-sentence contribution
- [ ] Step 2: Draft Figure 1 (core idea or most compelling result)
- [ ] Step 3: Draft abstract (5-sentence formula)
- [ ] Step 4: Draft introduction (1-1.5 pages max)
- [ ] Step 5: Draft methods
- [ ] Step 6: Draft experiments & results
- [ ] Step 7: Draft related work
- [ ] Step 8: Draft conclusion & discussion
- [ ] Step 9: Draft limitations (REQUIRED by all venues)
- [ ] Step 10: Plan appendix (proofs, extra experiments, details)
- [ ] Step 11: Complete paper checklist
- [ ] Step 12: Final review

Паттерн доработки в два прохода

При работе с ИИ-агентом применяйте подход в два прохода (доказал эффективность в конвейере AI-Scientist от SakanaAI):

Проход 1 — написать и сразу доработать каждый раздел: Для каждого раздела напишите полный черновик и тут же доработайте его в том же контексте. Так ловятся локальные проблемы (ясность, поток, полнота), пока раздел свеж.

Проход 2 — глобальная доработка с контекстом всей статьи: После того как все разделы написаны, пройдитесь по каждому с пониманием полной статьи. Так ловятся сквозные проблемы: повторы, разнобой терминологии, поток нарратива и пробелы, где один раздел обещает то, что другой не доставляет.

Second-pass refinement prompt (per section):
"Review the [SECTION] in the context of the complete paper.
- Does it fit with the rest of the paper? Are there redundancies with other sections?
- Is terminology consistent with Introduction and Methods?
- Can anything be cut without weakening the message?
- Does the narrative flow from the previous section and into the next?
Make minimal, targeted edits. Do not rewrite from scratch."

Чек-лист ошибок LaTeX

Добавляйте этот чек-лист к каждому промпту доработки. Вот самые частые ошибки LLM при написании LaTeX:

LaTeX Quality Checklist (verify after every edit):
- [ ] No unenclosed math symbols ($ signs balanced)
- [ ] Only reference figures/tables that exist (\ref matches \label)
- [ ] No fabricated citations (\cite matches entries in .bib)
- [ ] Every \begin{env} has matching \end{env} (especially figure, table, algorithm)
- [ ] No HTML contamination (</end{figure}> instead of \end{figure})
- [ ] No unescaped underscores outside math mode (use \_ in text)
- [ ] No duplicate \label definitions
- [ ] No duplicate section headers
- [ ] Numbers in text match actual experimental results
- [ ] All figures have captions and labels
- [ ] No overly long lines that cause overfull hbox warnings

Шаг 5.0: Заголовок

Заголовок — самый читаемый элемент статьи. Он решает, кликнет ли кто-нибудь дальше на аннотацию.

Хорошие заголовки:

  • Заявляют вклад или находку: “Autoreason: When Iterative LLM Refinement Works and Why It Fails”
  • Подчёркивают неожиданный результат: “Scaling Data-Constrained Language Models” (намекает, что это возможно)
  • Называют метод и что он делает: “DPO: Direct Preference Optimization of Language Models”

Плохие заголовки:

  • Слишком общие: “An Approach to Improving Language Model Outputs”
  • Слишком длинные: всё, что длиннее ~15 слов
  • Сплошной жаргон: “Asymptotic Convergence of Iterative Stochastic Policy Refinement” (для кого это?)

Правила:

  • Включайте имя метода, если оно есть (для цитируемости)
  • Включайте 1-2 ключевых слова, по которым рецензенты будут искать
  • Избегайте двоеточий, если обе половины не несут смысл
  • Проверка: поймёт ли рецензент предметную область и вклад по одному заголовку?

Шаг 5.1: Аннотация (формула из 5 предложений)

От Sebastian Farquhar (DeepMind):

1. What you achieved: "We introduce...", "We prove...", "We demonstrate..."
2. Why this is hard and important
3. How you do it (with specialist keywords for discoverability)
4. What evidence you have
5. Your most remarkable number/result

Удаляйте общие зачины вроде “Large language models have achieved remarkable success…”

Шаг 5.2: Рисунок 1

Рисунок 1 — второе, на что смотрит большинство читателей (после аннотации). Набросайте его до написания введения — это заставит прояснить главную идею.

Тип Рисунка 1Когда использоватьПример
Схема методаНовая архитектура или конвейерTikZ-блок-схема вашей системы
Тизер результатаОдин убедительный результат рассказывает всю историюСтолбчатая диаграмма: «мы против baseline-ов» с явным разрывом
Иллюстрация проблемыПроблема неинтуитивнаДо/после с режимом сбоя, который вы устраняете
Концептуальная схемаАбстрактному вкладу нужна визуальная опораМатрица 2×2 свойств метода

Правила: Рисунок 1 должен быть понятен без чтения текста. Одна подпись должна доносить главную идею. Используйте цвет осмысленно — не для украшения.

Шаг 5.3: Введение (максимум 1-1.5 страницы)

Должно включать:

  • Чёткую постановку проблемы
  • Краткий обзор подхода
  • Список вклада из 2-4 пунктов (максимум 1-2 строки на пункт в двухколоночном формате)
  • Методы должны начинаться к странице 2-3

Шаг 5.4: Методы

Дайте возможность переписать реализацию:

  • Концептуальный план или псевдокод
  • Перечислены все гиперпараметры
  • Архитектурные детали, достаточные для воспроизведения
  • Изложите финальные проектные решения; аблации идут в эксперименты

Шаг 5.5: Эксперименты и результаты

Для каждого эксперимента явно укажите:

  • Какое утверждение он подкрепляет
  • Как он связан с основным вкладом
  • На что смотреть: “синяя линия показывает X, что демонстрирует Y”

Требования:

  • Полосы погрешностей с методологией (стандартное отклонение или стандартная ошибка)
  • Диапазоны перебора гиперпараметров
  • Вычислительная инфраструктура (тип GPU, суммарные часы)
  • Методы задания seed-ов

Шаг 5.6: Обзор литературы

Организуйте по методологии, а не по статьям. Цитируйте щедро — рецензенты, скорее всего, авторы релевантных работ.

Шаг 5.7: Ограничения (ОБЯЗАТЕЛЬНО)

Этого требуют все крупные конференции. Честность помогает:

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

Шаг 5.8: Заключение и обсуждение

Заключение (обязательно, 0.5-1 страница):

  • Переформулируйте вклад одним предложением (иными словами, чем в аннотации)
  • Подытожьте ключевые выводы (2-3 предложения, не списком)
  • Последствия: что это значит для поля?
  • Будущая работа: 2-3 конкретных следующих шага (не размытое “мы оставляем X на будущее”)

Обсуждение (опционально, иногда объединяется с заключением):

  • Более широкие последствия за пределами непосредственных результатов
  • Связи с другими подобластями
  • Честная оценка того, когда метод работает, а когда нет
  • Практические соображения по развёртыванию

НЕ вводите новые результаты или утверждения в заключении.

Шаг 5.9: Стратегия приложения

Приложения на всех крупных площадках не ограничены по объёму и необходимы для воспроизводимости. Структура:

Раздел приложенияЧто сюда идёт
Доказательства и выводыПолные доказательства, слишком длинные для основного текста. В тексте можно дать теоремы с пометкой «доказательство в приложении A».
Дополнительные экспериментыАблации, кривые масштабирования, разбивки по датасетам, чувствительность к гиперпараметрам
Детали реализацииПолные таблицы гиперпараметров, детали обучения, характеристики железа, random seed-ы
Документация датасетаПроцесс сбора данных, инструкции аннотаторам, лицензирование, предобработка
Промпты и шаблоныТочные использованные промпты (для методов на основе LLM), шаблоны оценки
Оценка людьмиСкриншоты интерфейса аннотации, инструкции аннотаторам, детали IRB
Дополнительные рисункиРазбивки по задачам, визуализации траекторий, примеры провалов

Правила:

  • Основная статья должна быть самодостаточной — рецензенты не обязаны читать приложения
  • Никогда не помещайте критически важные свидетельства только в приложение
  • Перекрёстные ссылки: «Полные результаты в Таблице 5 (Приложение B)», а не просто «см. приложение»
  • Используйте команду \appendix, затем \section{A: Proofs} и т.д.

Управление бюджетом страниц

Когда вы превысили лимит страниц:

Стратегия сокращенияЭкономитРиск
Перенести доказательства в приложение0.5-2 страницыНизкий — стандартная практика
Сжать обзор литературы0.5-1 страницаСредний — можно упустить важные цитаты
Объединить таблицы с подрисунками0.25-0.5 страницыНизкий — часто улучшает читаемость
Аккуратно использовать \vspace{-Xpt}0.1-0.3 страницыНизкий, если незаметно; высокий, если бросается в глаза
Убрать качественные примеры0.5-1 страницаСредний — рецензенты любят примеры
Уменьшить размеры рисунков0.25-0.5 страницыВысокий — рисунки должны оставаться читаемыми

НЕ делайте: не уменьшайте размер шрифта, не меняйте поля, не убирайте обязательные разделы (ограничения, broader impact) и не используйте \small/\footnotesize для основного текста.

Шаг 5.10: Заявление об этике и широком воздействии

Большинство площадок теперь требуют или настоятельно рекомендуют заявление об этике / широком воздействии. Это не формальность — рецензенты его читают и могут поднять этические вопросы, ведущие к отклонению на столе редактора.

Что включить:

КомпонентСодержаниеТребуется на
Позитивное воздействие на обществоЧем работа полезна обществуNeurIPS, ICML
Возможное негативное воздействиеРиски злоупотребления, двойное назначение, режимы сбоевNeurIPS, ICML
Справедливость и предвзятостьЕсть ли у метода/данных известные смещения?Все площадки (неявно)
Воздействие на средуУглеродный след обучения в большом масштабеICML, всё чаще NeurIPS
ПриватностьИспользует ли работа персональные данные или делает их обработку возможной?ACL, NeurIPS
Раскрытие LLMИспользовался ли ИИ при написании или в экспериментах?ICLR (обязательно), ACL

Как писать заявление:

\section*{Broader Impact Statement}
% NeurIPS/ICML: after conclusion, does not count toward page limit

% 1. Positive applications (1-2 sentences)
This work enables [specific application] which may benefit [specific group].

% 2. Risks and mitigations (1-3 sentences, be specific)
[Method/model] could potentially be misused for [specific risk]. We mitigate
this by [specific mitigation, e.g., releasing only model weights above size X,
including safety filters, documenting failure modes].

% 3. Limitations of impact claims (1 sentence)
Our evaluation is limited to [specific domain]; broader deployment would
require [specific additional work].

Частые ошибки:

  • Писать «мы не предвидим негативного воздействия» (почти никогда не правда — рецензенты этому не верят)
  • Расплывчатость: «это может быть использовано во вред» без указания как
  • Игнорирование затрат на вычисления для масштабных работ
  • Забыть раскрыть использование LLM на площадках, где это требуется

Углеродный след вычислений (для статей с тяжёлым обучением):

# Estimate using ML CO2 Impact tool methodology
gpu_hours = 1000  # total GPU hours
gpu_tdp_watts = 400  # e.g., A100 = 400W
pue = 1.1  # Power Usage Effectiveness (data center overhead)
carbon_intensity = 0.429  # kg CO2/kWh (US average; varies by region)

energy_kwh = (gpu_hours * gpu_tdp_watts * pue) / 1000
carbon_kg = energy_kwh * carbon_intensity
print(f"Energy: {energy_kwh:.0f} kWh, Carbon: {carbon_kg:.0f} kg CO2eq")

Шаг 5.11: Datasheet-ы и Model Card-ы (если применимо)

Если ваша статья вводит новый датасет или выпускает модель, включите структурированную документацию. Рецензенты всё чаще этого ждут, а трек NeurIPS Datasets & Benchmarks требует.

Datasheets for Datasets (Gebru et al., 2021) — в приложение:

Dataset Documentation (Appendix):
- Motivation: Why was this dataset created? What task does it support?
- Composition: What are the instances? How many? What data types?
- Collection: How was data collected? What was the source?
- Preprocessing: What cleaning/filtering was applied?
- Distribution: How is the dataset distributed? Under what license?
- Maintenance: Who maintains it? How to report issues?
- Ethical considerations: Contains personal data? Consent obtained?
  Potential for harm? Known biases?

Model Cards (Mitchell et al., 2019) — в приложение при выпуске модели:

Model Card (Appendix):
- Model details: Architecture, training data, training procedure
- Intended use: Primary use cases, out-of-scope uses
- Metrics: Evaluation metrics and results on benchmarks
- Ethical considerations: Known biases, fairness evaluations
- Limitations: Known failure modes, domains where model underperforms

Стиль письма

Ясность на уровне предложения (7 принципов Gopen & Swan):

ПринципПравило
Близость подлежащего и сказуемогоДержите подлежащее и сказуемое рядом
Позиция акцентаПомещайте главное в конец предложения
Позиция темыСначала контекст, новое — после
Старое перед новымЗнакомое → незнакомое
Одна единица — одна функцияКаждый абзац делает одну мысль
Действие — в глаголеГлаголы, а не отглагольные существительные
Контекст перед новымСначала задайте сцену, потом подавайте

Выбор слов (Lipton, Steinhardt):

  • Будьте конкретны: «accuracy», а не «performance»
  • Уберите хеджирование: бросьте «may», если нет настоящей неопределённости
  • Единая терминология на протяжении всей статьи
  • Избегайте инкрементальной лексики: «develop», а не «combine»

Полное руководство по письму с примерами: см. references/writing-guide.md

Использование LaTeX-шаблонов

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

Template Setup Checklist:
- [ ] Step 1: Copy entire template directory to new project
- [ ] Step 2: Verify template compiles as-is (before any changes)
- [ ] Step 3: Read the template's example content to understand structure
- [ ] Step 4: Replace example content section by section
- [ ] Step 5: Use template macros (check preamble for \newcommand definitions)
- [ ] Step 6: Clean up template artifacts only at the end

Шаг 1: Скопируйте весь шаблон

cp -r templates/neurips2025/ ~/papers/my-paper/
cd ~/papers/my-paper/
ls -la  # Should see: main.tex, neurips.sty, Makefile, etc.

Копируйте ВЕСЬ каталог, а не только файл .tex. В шаблоны входят файлы стилей (.sty), стили библиографии (.bst), примеры содержимого и Makefile-ы.

Шаг 2: Сначала проверьте компиляцию шаблона

Прежде чем вносить ЛЮБЫЕ изменения:

latexmk -pdf main.tex
# Or manual: pdflatex main.tex && bibtex main && pdflatex main.tex && pdflatex main.tex

Если немодифицированный шаблон не компилируется, сначала разберитесь с этим (обычно дело в недостающих TeX-пакетах — установите через tlmgr install <package>).

Шаг 3: Держите содержимое шаблона как образец

Не удаляйте примеры содержимого сразу. Закомментируйте их и используйте как образец форматирования:

% Template example (keep for reference):
% \begin{figure}[t]
%   \centering
%   \includegraphics[width=0.8\linewidth]{example-image}
%   \caption{Template shows caption style}
% \end{figure}

% Your actual figure:
\begin{figure}[t]
  \centering
  \includegraphics[width=0.8\linewidth]{your-figure.pdf}
  \caption{Your caption following the same style.}
\end{figure}

Шаг 4: Заменяйте содержимое раздел за разделом

Идите системно: заголовок/авторы → аннотация → введение → методы → эксперименты → обзор литературы → заключение → ссылки → приложение. Компилируйте после каждого раздела.

Шаг 5: Используйте макросы шаблона

\newcommand{\method}{YourMethodName}  % Consistent method naming
\newcommand{\eg}{e.g.,\xspace}        % Proper abbreviations
\newcommand{\ie}{i.e.,\xspace}

Подводные камни шаблонов

Подводный каменьПроблемаРешение
Скопирован только файл .texНет .sty, не скомпилируетсяКопируйте весь каталог
Правка файлов .styЛомает форматирование конференцииНикогда не правьте файлы стилей
Добавление случайных пакетовКонфликты, ломают шаблонДобавляйте только при необходимости
Раннее удаление содержимого шаблонаПотеря образца форматированияДержите как комментарии до конца
Редкая компиляцияОшибки накапливаютсяКомпилируйте после каждого раздела
Растровые PNG для рисунковРазмыто в статьеВсегда векторный PDF через savefig('fig.pdf')

Краткий справочник по шаблонам

КонференцияОсновной файлФайл стиляЛимит страниц
NeurIPS 2025main.texneurips.sty9 страниц
ICML 2026example_paper.texicml2026.sty8 страниц
ICLR 2026iclr2026_conference.texiclr2026_conference.sty9 страниц
ACL 2025acl_latex.texacl.sty8 страниц (long)
AAAI 2026aaai2026-unified-template.texaaai2026.sty7 страниц
COLM 2025colm2025_conference.texcolm2025_conference.sty9 страниц

Универсально: двойное слепое рецензирование, ссылки не считаются, приложения без ограничений, LaTeX обязателен.

Шаблоны в каталоге templates/. Настройку компиляции (VS Code, CLI, Overleaf, другие IDE) см. в templates/README.md.

Таблицы и рисунки

Таблицы — используйте booktabs для профессионального оформления:

\usepackage{booktabs}
\begin{tabular}{lcc}
\toprule
Method & Accuracy $\uparrow$ & Latency $\downarrow$ \\
\midrule
Baseline & 85.2 & 45ms \\
\textbf{Ours} & \textbf{92.1} & 38ms \\
\bottomrule
\end{tabular}

Правила:

  • Выделяйте жирным лучшее значение по каждой метрике
  • Указывайте символы направления ($\uparrow$ больше — лучше, $\downarrow$ меньше — лучше)
  • Выравнивайте числовые столбцы по правому краю
  • Единая точность десятичных знаков

Рисунки:

  • Векторная графика (PDF, EPS) для всех графиков и схем — plt.savefig('fig.pdf')
  • Растр (PNG 600 DPI) только для фотографий
  • Палитры, безопасные для дальтоников (Okabe-Ito или Paul Tol)
  • Проверяйте читаемость в оттенках серого (8% мужчин имеют нарушение цветовосприятия)
  • Без заголовка внутри рисунка — эту роль играет подпись
  • Самодостаточные подписи — читатель должен понять без основного текста

Повторная подача на конференцию

О переводе между площадками см. Фазу 7 (Подготовка к подаче) — там описан весь процесс конвертации, таблица изменения объёма и рекомендации после отклонения.

Профессиональная преамбула LaTeX

Добавьте эти пакеты к любой статье для профессионального качества. Они совместимы со всеми файлами стилей крупных конференций:

% --- Professional Packages (add after conference style file) ---

% Typography
\usepackage{microtype}              % Microtypographic improvements (protrusion, expansion)
                                     % Makes text noticeably more polished — always include

% Tables
\usepackage{booktabs}               % Professional table rules (\toprule, \midrule, \bottomrule)
\usepackage{siunitx}                % Consistent number formatting, decimal alignment
                                     % Usage: \num{12345} → 12,345; \SI{3.5}{GHz} → 3.5 GHz
                                     % Table alignment: S column type for decimal-aligned numbers

% Figures
\usepackage{graphicx}               % Include graphics (\includegraphics)
\usepackage{subcaption}             % Subfigures with (a), (b), (c) labels
                                     % Usage: \begin{subfigure}{0.48\textwidth} ... \end{subfigure}

% Diagrams and Algorithms
\usepackage{tikz}                   % Programmable vector diagrams
\usetikzlibrary{arrows.meta, positioning, shapes.geometric, calc, fit, backgrounds}
\usepackage[ruled,vlined]{algorithm2e}  % Professional pseudocode
                                     % Alternative: \usepackage{algorithmicx} if template bundles it

% Cross-references
\usepackage{cleveref}               % Smart references: \cref{fig:x} → "Figure 1"
                                     % MUST be loaded AFTER hyperref
                                     % Handles: figures, tables, sections, equations, algorithms

% Math (usually included by conference .sty, but verify)
\usepackage{amsmath,amssymb}        % AMS math environments and symbols
\usepackage{mathtools}              % Extends amsmath (dcases, coloneqq, etc.)

% Colors (for figures and diagrams)
\usepackage{xcolor}                 % Color management
% Okabe-Ito colorblind-safe palette:
\definecolor{okblue}{HTML}{0072B2}
\definecolor{okorange}{HTML}{E69F00}
\definecolor{okgreen}{HTML}{009E73}
\definecolor{okred}{HTML}{D55E00}
\definecolor{okpurple}{HTML}{CC79A7}
\definecolor{okcyan}{HTML}{56B4E9}
\definecolor{okyellow}{HTML}{F0E442}

Примечания:

  • microtype — пакет с самым большим эффектом на визуальное качество. Он подстраивает межсимвольные расстояния на субпиксельном уровне. Включайте всегда.
  • siunitx отвечает за выравнивание по десятичной точке в таблицах через тип столбца S — избавляет от ручной расстановки пробелов.
  • cleveref должен загружаться после hyperref. Большинство файлов .sty конференций загружают hyperref, так что cleveref ставьте последним.
  • Проверьте, не загружает ли шаблон конференции что-то из этого уже (особенно algorithm, amsmath, graphicx). Не загружайте дважды.

Выравнивание таблиц через siunitx

siunitx заметно улучшает читаемость таблиц с большим числом чисел:

\begin{tabular}{l S[table-format=2.1] S[table-format=2.1] S[table-format=2.1]}
\toprule
Method & {Accuracy $\uparrow$} & {F1 $\uparrow$} & {Latency (ms) $\downarrow$} \\
\midrule
Baseline         & 85.2  & 83.7  & 45.3 \\
Ablation (no X)  & 87.1  & 85.4  & 42.1 \\
\textbf{Ours}    & \textbf{92.1} & \textbf{90.8} & \textbf{38.7} \\
\bottomrule
\end{tabular}

Тип столбца S автоматически выравнивает по десятичной точке. Заголовки в {} выходят из-под выравнивания.

Подрисунки

Стандартный паттерн для рисунков бок о бок:

\begin{figure}[t]
  \centering
  \begin{subfigure}[b]{0.48\textwidth}
    \centering
    \includegraphics[width=\textwidth]{fig_results_a.pdf}
    \caption{Results on Dataset A.}
    \label{fig:results-a}
  \end{subfigure}
  \hfill
  \begin{subfigure}[b]{0.48\textwidth}
    \centering
    \includegraphics[width=\textwidth]{fig_results_b.pdf}
    \caption{Results on Dataset B.}
    \label{fig:results-b}
  \end{subfigure}
  \caption{Comparison of our method across two datasets. (a) shows the scaling
  behavior and (b) shows the ablation results. Both use 5 random seeds.}
  \label{fig:results}
\end{figure}

\cref{fig:results} → “Figure 1”, \cref{fig:results-a} → “Figure 1a”.

Псевдокод через algorithm2e

\begin{algorithm}[t]
\caption{Iterative Refinement with Judge Panel}
\label{alg:method}
\KwIn{Task $T$, model $M$, judges $J_1 \ldots J_n$, convergence threshold $k$}
\KwOut{Final output $A^*$}
$A \gets M(T)$ \tcp*{Initial generation}
$\text{streak} \gets 0$\;
\While{$\text{streak} < k$}{
  $C \gets \text{Critic}(A, T)$ \tcp*{Identify weaknesses}
  $B \gets M(T, C)$ \tcp*{Revised version addressing critique}
  $AB \gets \text{Synthesize}(A, B)$ \tcp*{Merge best elements}
  \ForEach{judge $J_i$}{
    $\text{rank}_i \gets J_i(\text{shuffle}(A, B, AB))$ \tcp*{Blind ranking}
  }
  $\text{winner} \gets \text{BordaCount}(\text{ranks})$\;
  \eIf{$\text{winner} = A$}{
    $\text{streak} \gets \text{streak} + 1$\;
  }{
    $A \gets \text{winner}$; $\text{streak} \gets 0$\;
  }
}
\Return{$A$}\;
\end{algorithm}

Паттерны диаграмм TikZ

TikZ — стандарт для схем методов в статьях по ML. Частые паттерны:

Конвейерная/потоковая диаграмма (самая частая в статьях по ML):

\begin{figure}[t]
\centering
\begin{tikzpicture}[
  node distance=1.8cm,
  box/.style={rectangle, draw, rounded corners, minimum height=1cm, 
              minimum width=2cm, align=center, font=\small},
  arrow/.style={-{Stealth[length=3mm]}, thick},
]
  \node[box, fill=okcyan!20] (input) {Input\\$x$};
  \node[box, fill=okblue!20, right of=input] (encoder) {Encoder\\$f_\theta$};
  \node[box, fill=okgreen!20, right of=encoder] (latent) {Latent\\$z$};
  \node[box, fill=okorange!20, right of=latent] (decoder) {Decoder\\$g_\phi$};
  \node[box, fill=okred!20, right of=decoder] (output) {Output\\$\hat{x}$};
  
  \draw[arrow] (input) -- (encoder);
  \draw[arrow] (encoder) -- (latent);
  \draw[arrow] (latent) -- (decoder);
  \draw[arrow] (decoder) -- (output);
\end{tikzpicture}
\caption{Architecture overview. The encoder maps input $x$ to latent 
representation $z$, which the decoder reconstructs.}
\label{fig:architecture}
\end{figure}

Сравнительная/матричная диаграмма (для показа вариантов метода):

\begin{tikzpicture}[
  cell/.style={rectangle, draw, minimum width=2.5cm, minimum height=1cm, 
               align=center, font=\small},
  header/.style={cell, fill=gray!20, font=\small\bfseries},
]
  % Headers
  \node[header] at (0, 0) {Method};
  \node[header] at (3, 0) {Converges?};
  \node[header] at (6, 0) {Quality?};
  % Rows
  \node[cell] at (0, -1) {Single Pass};
  \node[cell, fill=okgreen!15] at (3, -1) {N/A};
  \node[cell, fill=okorange!15] at (6, -1) {Baseline};
  \node[cell] at (0, -2) {Critique+Revise};
  \node[cell, fill=okred!15] at (3, -2) {No};
  \node[cell, fill=okred!15] at (6, -2) {Degrades};
  \node[cell] at (0, -3) {Ours};
  \node[cell, fill=okgreen!15] at (3, -3) {Yes ($k$=2)};
  \node[cell, fill=okgreen!15] at (6, -3) {Improves};
\end{tikzpicture}

Диаграмма итеративного цикла (для методов с обратной связью):

\begin{tikzpicture}[
  node distance=2cm,
  box/.style={rectangle, draw, rounded corners, minimum height=0.8cm, 
              minimum width=1.8cm, align=center, font=\small},
  arrow/.style={-{Stealth[length=3mm]}, thick},
  label/.style={font=\scriptsize, midway, above},
]
  \node[box, fill=okblue!20] (gen) {Generator};
  \node[box, fill=okred!20, right=2.5cm of gen] (critic) {Critic};
  \node[box, fill=okgreen!20, below=1.5cm of $(gen)!0.5!(critic)$] (judge) {Judge Panel};
  
  \draw[arrow] (gen) -- node[label] {output $A$} (critic);
  \draw[arrow] (critic) -- node[label, right] {critique $C$} (judge);
  \draw[arrow] (judge) -| node[label, left, pos=0.3] {winner} (gen);
\end{tikzpicture}

latexdiff для отслеживания правок

Незаменим для rebuttal-ов — генерирует PDF с разметкой изменений между версиями:

# Install
# macOS: brew install latexdiff (or comes with TeX Live)
# Linux: sudo apt install latexdiff

# Generate diff
latexdiff paper_v1.tex paper_v2.tex > paper_diff.tex
pdflatex paper_diff.tex

# For multi-file projects (with \input{} or \include{})
latexdiff --flatten paper_v1.tex paper_v2.tex > paper_diff.tex

Получается PDF с удалениями красным зачёркиванием и добавлениями синим — стандартный формат для приложений к rebuttal-у.

SciencePlots для matplotlib

Установите и используйте для графиков публикационного качества:

pip install SciencePlots
import matplotlib.pyplot as plt
import scienceplots  # registers styles

# Use science style (IEEE-like, clean)
with plt.style.context(['science', 'no-latex']):
    fig, ax = plt.subplots(figsize=(3.5, 2.5))  # Single-column width
    ax.plot(x, y, label='Ours', color='#0072B2')
    ax.plot(x, y2, label='Baseline', color='#D55E00', linestyle='--')
    ax.set_xlabel('Training Steps')
    ax.set_ylabel('Accuracy')
    ax.legend()
    fig.savefig('paper/fig_results.pdf', bbox_inches='tight')

# Available styles: 'science', 'ieee', 'nature', 'science+ieee'
# Add 'no-latex' if LaTeX is not installed on the machine generating plots

Стандартные размеры рисунков (двухколоночный формат):

  • Одна колонка: figsize=(3.5, 2.5) — помещается в одну колонку
  • Две колонки: figsize=(7.0, 3.0) — на обе колонки
  • Квадрат: figsize=(3.5, 3.5) — для тепловых карт, матриц ошибок

Фаза 6: Самопроверка и доработка

Цель: смоделировать процесс рецензирования до подачи. Поймать слабости заранее.

Шаг 6.1: Смоделируйте рецензии (паттерн ансамбля)

Сгенерируйте рецензии с разных позиций. Главный вывод автоматических исследовательских конвейеров (в частности, AI-Scientist от SakanaAI): ансамблевое рецензирование с мета-рецензентом даёт гораздо более калиброванную обратную связь, чем один проход рецензирования.

Шаг 1: Сгенерируйте N независимых рецензий (N=3-5)

Используйте разные модели или настройки температуры. Каждый рецензент видит только статью, не другие рецензии. По умолчанию задайте негативный уклон — у LLM хорошо задокументирована позитивная предвзятость при оценке.

You are an expert reviewer for [VENUE]. You are critical and thorough.
If a paper has weaknesses or you are unsure about a claim, flag it clearly
and reflect that in your scores. Do not give the benefit of the doubt.

Review this paper according to the official reviewer guidelines. Evaluate:

1. Soundness (are claims well-supported? are baselines fair and strong?)
2. Clarity (is the paper well-written? could an expert reproduce it?)
3. Significance (does this matter to the community?)
4. Originality (new insights, not just incremental combination?)

Provide your review as structured JSON:
{
  "summary": "2-3 sentence summary",
  "strengths": ["strength 1", "strength 2", ...],
  "weaknesses": ["weakness 1 (most critical)", "weakness 2", ...],
  "questions": ["question for authors 1", ...],
  "missing_references": ["paper that should be cited", ...],
  "soundness": 1-4,
  "presentation": 1-4,
  "contribution": 1-4,
  "overall": 1-10,
  "confidence": 1-5
}

Шаг 2: Мета-рецензия (агрегация уровня Area Chair)

Подайте все N рецензий мета-рецензенту:

You are an Area Chair at [VENUE]. You have received [N] independent reviews
of a paper. Your job is to:

1. Identify consensus strengths and weaknesses across reviewers
2. Resolve disagreements by examining the paper directly
3. Produce a meta-review that represents the aggregate judgment
4. Use AVERAGED numerical scores across all reviews

Be conservative: if reviewers disagree on whether a weakness is serious,
treat it as serious until the authors address it.

Reviews:
[review_1]
[review_2]
...

Шаг 3: Цикл рефлексии (опционально, 2-3 раунда)

Каждый рецензент может уточнить рецензию, увидев мета-рецензию. Используйте сигнал ранней остановки: если рецензент отвечает “I am done” (без изменений), прекращайте итерации.

Выбор модели для рецензирования: рецензировать лучше всего самой сильной доступной моделью, даже если статью вы писали более дешёвой. Модель рецензента выбирайте независимо от пишущей модели.

Few-shot-калибровка: при наличии включите 1-2 реальных опубликованных рецензии с целевой площадки как примеры. Это резко улучшает калибровку оценок. Примеры рецензий см. в references/reviewer-guidelines.md.

Шаг 6.1b: Проход визуальной проверки (VLM)

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

You are reviewing the visual presentation of this research paper PDF.
Check for:
1. Figure quality: Are plots readable? Labels legible? Colors distinguishable?
2. Figure-caption alignment: Does each caption accurately describe its figure?
3. Layout issues: Orphaned section headers, awkward page breaks, figures far from their references
4. Table formatting: Aligned columns, consistent decimal precision, bold for best results
5. Visual consistency: Same color scheme across all figures, consistent font sizes
6. Grayscale readability: Would the figures be understandable if printed in B&W?

For each issue, specify the page number and exact location.

Так ловятся проблемы, недоступные текстовой проверке: график с нечитаемыми подписями осей, рисунок в 3 страницах от первой ссылки на него, несогласованные палитры между Рисунком 2 и Рисунком 5 или таблица, явно шире ширины колонки.

Шаг 6.1c: Проход проверки утверждений

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

Claim Verification Protocol:
1. Extract every factual claim from the paper (numbers, comparisons, trends)
2. For each claim, trace it to the specific experiment/result that supports it
3. Verify the number in the paper matches the actual result file
4. Flag any claim without a traceable source as [VERIFY]

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

Шаг 6.2: Расставьте приоритеты по фидбэку

Собрав рецензии, рассортируйте их:

ПриоритетДействие
Критический (техническая ошибка, отсутствует baseline)Обязательно исправить. Может потребовать новых экспериментов → назад к Фазе 2
Высокий (проблема ясности, отсутствует аблация)Стоит исправить в этой доработке
Средний (мелкие огрехи письма, дополнительные эксперименты)Исправить, если есть время
Низкий (стилевые предпочтения, побочные предложения)Отметить на будущее

Шаг 6.3: Цикл доработки

Для каждой критической/высокоприоритетной проблемы:

  1. Определите затронутые разделы
  2. Набросайте исправление
  3. Убедитесь, что оно не ломает другие утверждения
  4. Обновите статью
  5. Перепроверьте по замечанию рецензента

Шаг 6.4: Написание rebuttal-а

При ответе на реальные рецензии (после подачи) rebuttal — отдельный навык, не равный доработке:

Формат: по пунктам. Для каждого замечания рецензента:

> R1-W1: "The paper lacks comparison with Method X."

We thank the reviewer for this suggestion. We have added a comparison with 
Method X in Table 3 (revised). Our method outperforms X by 3.2pp on [metric] 
(p<0.05). We note that X requires 2x our compute budget.

Правила:

  • Отвечайте на каждое замечание — рецензенты замечают, если одно пропущено
  • Начинайте с самых сильных ответов
  • Будьте кратки и прямы — рецензенты читают десятки rebuttal-ов
  • Включайте новые результаты, если ставили эксперименты в период rebuttal-а
  • Никогда не защищайтесь и не отмахивайтесь, даже от слабой критики
  • Используйте latexdiff для PDF с разметкой изменений (см. раздел о профессиональном инструментарии LaTeX)
  • Благодарите рецензентов за конкретный, применимый фидбэк (не за общую похвалу)

Чего НЕ делать: «мы почтительно не согласны» без свидетельств. «Это вне области» без объяснения. Игнорировать слабость, отвечая только на сильные стороны.

Шаг 6.5: Отслеживание эволюции статьи

Сохраняйте снимки на ключевых вехах:

paper/
  paper.tex                    # Current working version
  paper_v1_first_draft.tex     # First complete draft
  paper_v2_post_review.tex     # After simulated review
  paper_v3_pre_submission.tex  # Final before submission
  paper_v4_camera_ready.tex    # Post-acceptance final

Фаза 7: Подготовка к подаче

Цель: финальные проверки, форматирование и подача.

Шаг 7.1: Чек-лист конференции

У каждой площадки есть обязательные чек-листы. Заполняйте их внимательно — незаполненный чек-лист может привести к отклонению на столе редактора.

См. references/checklists.md для:

  • чек-листа NeurIPS из 16 пунктов
  • broader impact + воспроизводимость ICML
  • политики раскрытия LLM на ICLR
  • обязательного раздела ограничений ACL
  • универсального чек-листа перед подачей

Шаг 7.2: Чек-лист анонимизации

Двойное слепое рецензирование означает, что рецензенты не должны знать автора. Проверьте ВСЁ из этого:

Anonymization Checklist:
- [ ] No author names or affiliations anywhere in the PDF
- [ ] No acknowledgments section (add after acceptance)
- [ ] Self-citations written in third person: "Smith et al. [1] showed..." not "We previously showed [1]..."
- [ ] No GitHub/GitLab URLs pointing to your personal repos
- [ ] Use Anonymous GitHub (https://anonymous.4open.science/) for code links
- [ ] No institutional logos or identifiers in figures
- [ ] No file metadata containing author names (check PDF properties)
- [ ] No "our previous work" or "in our earlier paper" phrasing
- [ ] Dataset names don't reveal institution (rename if needed)
- [ ] Supplementary materials don't contain identifying information

Частые ошибки: видимые в коде дополнительных материалов сообщения коммитов git, рисунки с водяными знаками от институтских инструментов, благодарности из прошлого черновика, arXiv-препринт, выложенный до периода анонимности.

Шаг 7.3: Проверка форматирования

Pre-Submission Format Check:
- [ ] Page limit respected (excluding references and appendix)
- [ ] All figures are vector (PDF) or high-res raster (600 DPI PNG)
- [ ] All figures readable in grayscale
- [ ] All tables use booktabs
- [ ] References compile correctly (no "?" in citations)
- [ ] No overfull hboxes in critical areas
- [ ] Appendix clearly labeled and separated
- [ ] Required sections present (limitations, broader impact, etc.)

Шаг 7.4: Валидация перед компиляцией

Запустите эти автоматические проверки до попытки pdflatex. Поймать ошибки здесь быстрее, чем разбирать вывод компилятора.

# 1. Lint with chktex (catches common LaTeX mistakes)
# Suppress noisy warnings: -n2 (sentence end), -n24 (parens), -n13 (intersentence), -n1 (command terminated)
chktex main.tex -q -n2 -n24 -n13 -n1

# 2. Verify all citations exist in .bib
# Extract \cite{...} from .tex, check each against .bib
python3 -c "
import re
tex = open('main.tex').read()
bib = open('references.bib').read()
cites = set(re.findall(r'\\\\cite[tp]?{([^}]+)}', tex))
for cite_group in cites:
    for cite in cite_group.split(','):
        cite = cite.strip()
        if cite and cite not in bib:
            print(f'WARNING: \\\\cite{{{cite}}} not found in references.bib')
"

# 3. Verify all referenced figures exist on disk
python3 -c "
import re, os
tex = open('main.tex').read()
figs = re.findall(r'\\\\includegraphics(?:\[.*?\])?{([^}]+)}', tex)
for fig in figs:
    if not os.path.exists(fig):
        print(f'WARNING: Figure file not found: {fig}')
"

# 4. Check for duplicate \label definitions
python3 -c "
import re
from collections import Counter
tex = open('main.tex').read()
labels = re.findall(r'\\\\label{([^}]+)}', tex)
dupes = {k: v for k, v in Counter(labels).items() if v > 1}
for label, count in dupes.items():
    print(f'WARNING: Duplicate label: {label} (appears {count} times)')
"

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

Шаг 7.5: Финальная компиляция

# Clean build
rm -f *.aux *.bbl *.blg *.log *.out *.pdf
latexmk -pdf main.tex

# Or manual (triple pdflatex + bibtex for cross-references)
pdflatex -interaction=nonstopmode main.tex
bibtex main
pdflatex -interaction=nonstopmode main.tex
pdflatex -interaction=nonstopmode main.tex

# Verify output exists and has content
ls -la main.pdf

Если компиляция падает: найдите в файле .log первую ошибку. Частые исправления:

  • “Undefined control sequence” → нет пакета или опечатка в имени команды
  • “Missing $ inserted” → математический символ вне математического режима
  • “File not found” → неверный путь к рисунку или нет файла .sty
  • “Citation undefined” → нет записи .bib или не запущен bibtex

Шаг 7.6: Требования конкретных конференций

ПлощадкаОсобые требования
NeurIPSЧек-лист статьи в приложении, lay summary при принятии
ICMLBroader Impact Statement (после заключения, не считается в лимит)
ICLRТребуется раскрытие LLM, взаимное соглашение о рецензировании
ACLОбязательный раздел Limitations, Responsible NLP checklist
AAAIСтрогий файл стиля — никаких модификаций
COLMСформулируйте вклад для сообщества языковых моделей

Шаг 7.7: Повторная подача и конвертация формата

При переводе между площадками никогда не копируйте преамбулы LaTeX между шаблонами:

# 1. Start fresh with target template
cp -r templates/icml2026/ new_submission/

# 2. Copy ONLY content sections (not preamble)
#    - Abstract text, section content, figures, tables, bib entries

# 3. Adjust for page limits
# 4. Add venue-specific required sections
# 5. Update references
Из → ВИзменение объёмаКлючевые правки
NeurIPS → ICML9 → 8Срезать 1 страницу, добавить Broader Impact
ICML → ICLR8 → 9Расширить эксперименты, добавить раскрытие LLM
NeurIPS → ACL9 → 8Перестроить под NLP-конвенции, добавить Limitations
ICLR → AAAI9 → 7Значительные сокращения, строгое следование стилю
Любая → COLMvaries → 9Переформулировать с фокусом на языковые модели

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

После отклонения: устраните замечания рецензентов в новой версии, но не включайте раздел «изменения» и не ссылайтесь на прошлую подачу (слепое рецензирование).

Шаг 7.8: Подготовка camera-ready (после принятия)

После принятия подготовьте camera-ready-версию:

Camera-Ready Checklist:
- [ ] De-anonymize: add author names, affiliations, email addresses
- [ ] Add Acknowledgments section (funding, compute grants, helpful reviewers)
- [ ] Add public code/data URL (real GitHub, not anonymous)
- [ ] Address any mandatory revisions from meta-reviewer
- [ ] Switch template to camera-ready mode (if applicable — e.g., AAAI \anon → \camera)
- [ ] Add copyright notice if required by venue
- [ ] Update any "anonymous" placeholders in text
- [ ] Verify final PDF compiles cleanly
- [ ] Check page limit for camera-ready (sometimes differs from submission)
- [ ] Upload supplementary materials (code, data, appendix) to venue portal

Шаг 7.9: Стратегия arXiv и препринтов

Выкладка на arXiv — обычная практика в ML, но у неё есть важные нюансы по времени и анонимности.

Дерево решений по времени:

СитуацияРекомендация
Подача на двойную слепую площадку (NeurIPS, ICML, ACL)Выкладывайте на arXiv после дедлайна подачи, не раньше. Выкладка раньше формально может нарушать политику анонимности, хотя строгость контроля разнится.
Подача на ICLRICLR прямо разрешает выкладку на arXiv до подачи. Но не указывайте имена авторов в самой подаче.
Статья уже на arXiv, подача на новую площадкуДопустимо на большинстве площадок. НЕ обновляйте версию на arXiv во время рецензирования правками, отсылающими к рецензиям.
Статья для воркшопаarXiv годится в любое время — воркшопы обычно не двойные слепые.
Хотите застолбить приоритетВыкладывайте сразу, если боитесь, что вас обойдут, — но примите компромисс по анонимности.

Выбор категории arXiv (статьи по ML/AI):

КатегорияКодЛучше всего для
Machine Learningcs.LGОбщие методы ML
Computation and Languagecs.CLNLP, языковые модели
Artificial Intelligencecs.AIРассуждения, планирование, агенты
Computer Visioncs.CVМодели зрения
Information Retrievalcs.IRПоиск, рекомендации

Указывайте основную + 1-2 кросс-категории. Больше категорий = больше видимости, но кросс-листите только там, где это действительно уместно.

Стратегия версий:

  • v1: первичная подача (совпадает с подачей на конференцию)
  • v2: после принятия с camera-ready-правками (добавьте «accepted at [Venue]» в аннотацию)
  • Не выкладывайте v2 в период рецензирования с правками, явно отвечающими на фидбэк рецензентов
# Check if your paper's title is already taken on arXiv
# (before choosing a title)
pip install arxiv
python -c "
import arxiv
results = list(arxiv.Search(query='ti:\"Your Exact Title\"', max_results=5).results())
print(f'Found {len(results)} matches')
for r in results: print(f'  {r.title} ({r.published.year})')
"

Шаг 7.10: Упаковка исследовательского кода

Выпуск чистого, запускаемого кода заметно повышает цитируемость и доверие рецензентов. Упаковывайте код вместе с camera-ready-подачей.

Структура репозитория:

your-method/
  README.md              # Setup, usage, reproduction instructions
  requirements.txt       # Or environment.yml for conda
  setup.py               # For pip-installable packages
  LICENSE                # MIT or Apache 2.0 recommended for research
  configs/               # Experiment configurations
  src/                   # Core method implementation
  scripts/               # Training, evaluation, analysis scripts
    train.py
    evaluate.py
    reproduce_table1.sh  # One script per main result
  data/                  # Small data or download scripts
    download_data.sh
  results/               # Expected outputs for verification

Шаблон README для исследовательского кода:

# [Paper Title]

Official implementation of "[Paper Title]" (Venue Year).

## Setup
[Exact commands to set up environment]

## Reproduction
To reproduce Table 1: `bash scripts/reproduce_table1.sh`
To reproduce Figure 2: `python scripts/make_figure2.py`

## Citation
[BibTeX entry]

Чек-лист перед релизом:

- [ ] Code runs from a clean clone (test on fresh machine or Docker)
- [ ] All dependencies pinned to specific versions
- [ ] No hardcoded absolute paths
- [ ] No API keys, credentials, or personal data in repo
- [ ] README covers setup, reproduction, and citation
- [ ] LICENSE file present (MIT or Apache 2.0 for max reuse)
- [ ] Results are reproducible within expected variance
- [ ] .gitignore excludes data files, checkpoints, logs

Анонимный код для подачи (до принятия):

# Use Anonymous GitHub for double-blind review
# https://anonymous.4open.science/
# Upload your repo → get an anonymous URL → put in paper

Фаза 8: Материалы после принятия

Цель: максимизировать влияние принятой статьи через презентационные материалы и работу с сообществом.

Шаг 8.1: Конференциальный постер

Большинство конференций требуют постерную сессию. Принципы дизайна постера:

ЭлементРекомендация
РазмерСверьтесь с требованиями площадки (обычно 24”x36” или A0, портрет/альбом)
СодержаниеЗаголовок, авторы, вклад в одном предложении, схема метода, 2-3 ключевых результата, заключение
ПотокСлева сверху вправо вниз (Z-образно) или по колонкам
ТекстЗаголовок читается с 3 м, основной текст — с 1 м. Никаких абзацев — только буллеты.
РисункиПереиспользуйте рисунки статьи в большем разрешении. Увеличьте ключевой результат.

Инструменты: LaTeX (пакет beamerposter), PowerPoint/Keynote, Figma, Canva.

Производство: заказывайте за 2+ недели до конференции. Тканевые постеры легче в дороге. Многие конференции теперь поддерживают и виртуальные/цифровые постеры.

Шаг 8.2: Доклад / spotlight на конференции

Если вам дали устный или spotlight-доклад:

Тип докладаДлительностьСодержание
Spotlight5 минПроблема, подход, один ключевой результат. Отрепетируйте ровно на 5 минут.
Устный15-20 минПолная история: проблема, подход, ключевые результаты, аблации, ограничения.
Доклад на воркшопе10-15 минПодстройте под аудиторию воркшопа — может понадобиться больше вводной части.

Правила дизайна слайдов:

  • Одна мысль на слайд
  • Минимум текста — детали проговаривайте, не выводите их на экран
  • Анимируйте ключевые рисунки, чтобы строить понимание пошагово
  • В конце — слайд с «выводом» (вклад в одном предложении)
  • Подготовьте резервные слайды на ожидаемые вопросы

Шаг 8.3: Блог-пост / соцсети

Доступное изложение заметно повышает влияние:

  • Тред в Twitter/X: 5-8 твитов. Начинайте с результата, не с метода. Включите Рисунок 1 и рисунок ключевого результата.
  • Блог-пост: 800-1500 слов. Пишите для ML-практиков, не для рецензентов. Пропустите формализм, делайте упор на интуицию и практический смысл.
  • Страница проекта: HTML-страница с аннотацией, рисунками, демо, ссылкой на код, BibTeX. Используйте GitHub Pages.

Время: публикуйте в течение 1-2 дней после появления статьи в трудах конференции или camera-ready на arXiv.


Воркшопные и короткие статьи

Воркшопные и короткие статьи (например, ACL short papers, Findings) идут по тому же конвейеру, но с другими ограничениями и ожиданиями.

Воркшопные статьи

СвойствоВоркшопОсновная конференция
Лимит страниц4-6 страниц (обычно)7-9 страниц
Стандарт рецензированияНиже планка полнотыДолжна быть полной, тщательной
Процесс рецензированияОбычно single-blind или лёгкая рецензияДвойной слепой, строгий
Что ценитсяИнтересные идеи, предварительные результаты, позиционные текстыПолная эмпирическая история с сильными baseline-ами
arXivВыкладка в любое времяВремя важно (см. стратегию arXiv)
Планка вкладаНовое направление, интересный негативный результат, work-in-progressСущественный шаг с сильными свидетельствами

Когда целиться в воркшоп:

  • Ранняя идея, по которой хотите фидбэк до полной статьи
  • Негативный результат, не оправдывающий 8+ страниц
  • Позиционный текст или мнение по злободневной теме
  • Репликационное исследование или отчёт о воспроизводимости

ACL short papers и Findings

У площадок ACL есть отдельные типы подачи:

ТипСтраницЧто ожидается
Long paper8Полное исследование, сильные baseline-ы, аблации
Short paper4Сфокусированный вклад: одна чёткая мысль со свидетельствами
Findings8Добротная работа, чуть не дотянувшая до основной конференции

Стратегия короткой статьи: возьмите ОДНО утверждение и подкрепите его основательно. Не пытайтесь ужать длинную статью в 4 страницы — напишите другую, более сфокусированную статью.


Типы статей за пределами эмпирического ML

Основной конвейер выше нацелен на эмпирические статьи по ML. Другим типам нужны иные структуры и стандарты свидетельств. Подробные рекомендации по каждому типу см. в references/paper-types.md.

Теоретические статьи

Структура: Введение → Предварительные сведения (определения, нотация) → Основные результаты (теоремы) → Наброски доказательств → Обсуждение → Полные доказательства (приложение)

Ключевые отличия от эмпирических статей:

  • Вклад — теорема, оценка или результат о невозможности, а не экспериментальные числа
  • Раздел «Методы» заменяется на «Предварительные сведения» и «Основные результаты»
  • Доказательства — это свидетельства, а не эксперименты (хотя эмпирическая проверка теории приветствуется)
  • Наброски доказательств в основном тексте, полные — в приложении: стандартная практика
  • Экспериментальный раздел опционален, но усиливает статью, если подтверждает теоретические предсказания

Принципы написания доказательств:

  • Формулируйте теоремы формально, со всеми явными допущениями
  • Давайте интуицию перед формальным доказательством («Ключевая мысль в том, что…»)
  • Наброски доказательств должны передавать основную идею за 0.5-1 страницу
  • Используйте окружения \begin{proof}...\end{proof}
  • Нумеруйте допущения и ссылайтесь на них в теоремах: «При Допущениях 1-3, …»

Обзорные / учебные статьи

Структура: Введение → Таксономия / организация → Подробное освещение → Открытые проблемы → Заключение

Ключевые отличия:

  • Вклад — организация, синтез и выделение открытых проблем, а не новые методы
  • Должна быть исчерпывающей в своих рамках (рецензенты проверят отсутствие ссылок)
  • Требует чёткой таксономии или организационной схемы
  • Ценность — в связях между работами, которые отдельные статьи не проводят
  • Лучшие площадки: TMLR (трек обзоров), JMLR, Foundations and Trends in ML, ACM Computing Surveys

Бенчмарковые статьи

Структура: Введение → Определение задачи → Построение датасета → Оценка baseline-ов → Анализ → Назначение и ограничения

Ключевые отличия:

  • Вклад — сам бенчмарк, и он должен закрывать реальный пробел в оценке
  • Документация датасета обязательна, а не опциональна (см. Datasheet-ы, шаг 5.11)
  • Нужно показать, что бенчмарк сложен (baseline-ы его не насыщают)
  • Нужно показать, что бенчмарк измеряет то, что вы утверждаете (конструктная валидность)
  • Лучшие площадки: трек NeurIPS Datasets & Benchmarks, ACL (resource papers), LREC-COLING

Позиционные статьи

Структура: Введение → Предыстория → Тезис / аргумент → Подкрепляющие свидетельства → Контраргументы → Последствия

Ключевые отличия:

  • Вклад — аргумент, а не результат
  • Нужно всерьёз разбирать контраргументы
  • Свидетельства могут быть эмпирическими, теоретическими или логическим анализом
  • Лучшие площадки: ICML (трек позиционных статей), воркшопы, TMLR

Интеграция с Hermes Agent

Этот навык рассчитан на агента Hermes. Он задействует инструменты Hermes, делегирование, планирование и память для всего жизненного цикла исследования.

Связанные навыки

Сочетайте этот навык с другими навыками Hermes на отдельных фазах:

НавыкКогда использоватьКак загрузить
arxivФаза 1 (Обзор литературы): поиск по arXiv, генерация BibTeX, поиск связанных статей через Semantic Scholarskill_view("arxiv")
subagent-driven-developmentФаза 5 (Черновик): параллельное написание разделов с 2-этапной проверкой (соответствие спецификации, затем качество)skill_view("subagent-driven-development")
planФаза 0 (Настройка): создание структурированных планов перед исполнением. Пишет в .hermes/plans/skill_view("plan")
qmdФаза 1 (Литература): поиск по локальным базам знаний (заметки, транскрипты, документы) через гибридный поиск BM25+векторУстановка: skill_manage("install", "qmd")
diagrammingФазы 4-5: создание рисунков и архитектурных схем на основе Excalidrawskill_view("diagramming")
data-scienceФаза 4 (Анализ): живое ядро Jupyter для интерактивного анализа и визуализацииskill_view("data-science")

Этот навык вытесняет ml-paper-writing — он содержит всё его наполнение плюс полный конвейер экспериментов/анализа и методологию autoreason.

Справочник по инструментам Hermes

ИнструментПрименение в этом конвейере
terminalКомпиляция LaTeX (latexmk -pdf), операции git, запуск экспериментов (nohup python run.py &), проверка процессов
processУправление фоновыми экспериментами: process("start", ...), process("poll", pid), process("log", pid), process("kill", pid)
execute_codeЗапуск Python для проверки цитат, статистического анализа, агрегации данных. Имеет доступ к инструментам через RPC.
read_file / write_file / patchПравка статьи, скрипты экспериментов, файлы результатов. Для точечных правок крупных .tex используйте patch.
web_searchПоиск литературы: web_search("transformer attention mechanism 2024")
web_extractПолучение содержимого статьи, проверка цитат: web_extract("https://arxiv.org/abs/2303.17651")
delegate_taskПараллельный черновик разделов — порождение изолированных субагентов для каждого раздела. Также для параллельной проверки цитат.
todoГлавный трекер состояния между сессиями. Обновляйте после каждого перехода между фазами.
memoryСохранение ключевых решений между сессиями: формулировка вклада, выбор площадки, фидбэк рецензентов.
cronjobПланирование мониторинга экспериментов, обратного отсчёта до дедлайна, автоматических проверок arXiv.
clarifyЗадать пользователю точечные вопросы при затыке (выбор площадки, формулировка вклада).
send_messageУведомить пользователя о завершении экспериментов или готовности черновиков, даже если его нет в чате.

Паттерны использования инструментов

Мониторинг экспериментов (самый частый):

terminal("ps aux | grep <pattern>")
→ terminal("tail -30 <logfile>")
→ terminal("ls results/")
→ execute_code("analyze results JSON, compute metrics")
→ terminal("git add -A && git commit -m '<descriptive message>' && git push")
→ send_message("Experiment complete: <summary>")

Параллельный черновик разделов (через делегирование):

delegate_task("Draft the Methods section based on these experiment scripts and configs. 
  Include: pseudocode, all hyperparameters, architectural details sufficient for 
  reproduction. Write in LaTeX using the neurips2025 template conventions.")

delegate_task("Draft the Related Work section. Use web_search and web_extract to 
  find papers. Verify every citation via Semantic Scholar. Group by methodology.")

delegate_task("Draft the Experiments section. Read all result files in results/. 
  State which claim each experiment supports. Include error bars and significance.")

Каждое делегирование исполняется как свежий субагент без общего контекста — передавайте всю нужную информацию в промпте. Соберите выводы и интегрируйте.

Проверка цитат (через execute_code):

# In execute_code:
from semanticscholar import SemanticScholar
import requests

sch = SemanticScholar()
results = sch.search_paper("attention mechanism transformers", limit=5)
for paper in results:
    doi = paper.externalIds.get('DOI', 'N/A')
    if doi != 'N/A':
        bibtex = requests.get(f"https://doi.org/{doi}", 
                              headers={"Accept": "application/x-bibtex"}).text
        print(bibtex)

Управление состоянием через memory и todo

Инструмент memory — сохраняет ключевые решения (с лимитом: ~2200 символов для MEMORY.md):

memory("add", "Paper: autoreason. Venue: NeurIPS 2025 (9 pages). 
  Contribution: structured refinement works when generation-evaluation gap is wide.
  Key results: Haiku 42/42, Sonnet 3/5, S4.6 constrained 2/3.
  Status: Phase 5 — drafting Methods section.")

Обновляйте память после крупных решений или переходов между фазами. Она сохраняется между сессиями.

Инструмент todo — отслеживает гранулярный прогресс:

todo("add", "Design constrained task experiments for Sonnet 4.6")
todo("add", "Run Haiku baseline comparison")
todo("add", "Draft Methods section")
todo("update", id=3, status="in_progress")
todo("update", id=1, status="completed")

Протокол начала сессии:

1. todo("list")                           # Check current task list
2. memory("read")                         # Recall key decisions
3. terminal("git log --oneline -10")      # Check recent commits
4. terminal("ps aux | grep python")       # Check running experiments
5. terminal("ls results/ | tail -20")     # Check for new results
6. Report status to user, ask for direction

Мониторинг через cron с cronjob

Используйте инструмент cronjob, чтобы планировать периодические проверки экспериментов:

cronjob("create", {
  "schedule": "*/30 * * * *",  # Every 30 minutes
  "prompt": "Check experiment status:
    1. ps aux | grep run_experiment
    2. tail -30 logs/experiment_haiku.log
    3. ls results/haiku_baselines/
    4. If complete: read results, compute Borda scores, 
       git add -A && git commit -m 'Add Haiku results' && git push
    5. Report: table of results, key finding, next step
    6. If nothing changed: respond with [SILENT]"
})

Протокол [SILENT]: когда с прошлой проверки ничего не изменилось, отвечайте ровно [SILENT]. Это подавляет доставку уведомления пользователю. Сообщайте только когда есть реальные изменения, о которых стоит знать.

Отслеживание дедлайнов:

cronjob("create", {
  "schedule": "0 9 * * *",  # Daily at 9am
  "prompt": "NeurIPS 2025 deadline: May 22. Today is {date}. 
    Days remaining: {compute}. 
    Check todo list — are we on track? 
    If <7 days: warn user about remaining tasks."
})

Паттерны коммуникации

Когда уведомлять пользователя (через send_message или прямой ответ):

  • Завершён пакет экспериментов (с таблицей результатов)
  • Неожиданная находка или сбой, требующие решения
  • Раздел черновика готов к проверке
  • Дедлайн близко, а задачи не доделаны

Когда НЕ уведомлять:

  • Эксперимент ещё идёт, новых результатов нет → [SILENT]
  • Рутинный мониторинг без изменений → [SILENT]
  • Промежуточные шаги, не требующие внимания

Формат отчёта — всегда со структурированными данными:

## Experiment: <name>
Status: Complete / Running / Failed

| Task | Method A | Method B | Method C |
|------|---------|---------|---------|
| Task 1 | 85.2 | 82.1 | **89.4** |

Key finding: <one sentence>
Next step: <what happens next>

Точки принятия решений, требующие участия человека

Используйте clarify для точечных вопросов, когда вы действительно застряли:

РешениеКогда спрашивать
Целевая площадкаДо начала статьи (влияет на лимит страниц, формулировку)
Формулировка вкладаКогда есть несколько допустимых формулировок
Приоритет экспериментовКогда в TODO больше экспериментов, чем времени
Готовность к подачеПеред финальной подачей

НЕ спрашивайте про (действуйте на опережение, выбирайте сами, помечайте):

  • Выбор слов, порядок разделов
  • Какие именно результаты выделить
  • Полноту цитирования (пишите по тому, что нашли, отмечайте пробелы)

Критерии оценки рецензентами

Понимание того, что ищут рецензенты, помогает сосредоточить усилия:

КритерийЧто они проверяют
КачествоТехническая обоснованность, подкреплённые утверждения, честные baseline-ы
ЯсностьПонятное письмо, воспроизводимость экспертами, единая нотация
ЗначимостьВлияние на сообщество, продвижение понимания
ОригинальностьНовые идеи (новый метод не обязателен)

Шкала оценок (6-балльная шкала NeurIPS):

  • 6: Strong Accept — прорыв, безупречно
  • 5: Accept — технически добротно, высокое влияние
  • 4: Borderline Accept — добротно, ограниченная оценка
  • 3: Borderline Reject — слабости перевешивают
  • 2: Reject — технические изъяны
  • 1: Strong Reject — известные результаты или этические проблемы

Подробные рекомендации, частые замечания и стратегии rebuttal-а см. в references/reviewer-guidelines.md.


Частые проблемы и решения

ПроблемаРешение
Слишком общая аннотацияУдалите первое предложение, если оно подошло бы любой ML-статье. Начните со своего конкретного вклада.
Введение длиннее 1.5 страницыВынесите предысторию в обзор литературы. Вынесите буллеты вклада вперёд.
Эксперименты без явных утвержденийДобавьте «Этот эксперимент проверяет, [конкретное утверждение]…» перед каждым.
Рецензентам трудно следить за статьёйДобавьте указатели, используйте единую терминологию, делайте подписи рисунков самодостаточными.
Нет статистической значимостиДобавьте полосы погрешностей, число прогонов, статистические тесты, доверительные интервалы.
Расползание области в экспериментахКаждый эксперимент должен сопоставляться с конкретным утверждением. Уберите те, что не сопоставляются.
Статью отклонили, нужна повторная подачаСм. Повторную подачу в Фазе 7. Устраните замечания, не ссылаясь на рецензии.
Нет заявления о broader impactСм. Шаг 5.10. Большинство площадок его требуют. «Нет негативного воздействия» почти никогда не убедительно.
Человеческую оценку сочли слабойСм. Шаг 2.5 и references/human-evaluation.md. Сообщайте метрики согласия, детали аннотаторов, оплату.
Рецензенты сомневаются в воспроизводимостиВыпустите код (Шаг 7.9), задокументируйте все гиперпараметры, укажите seed-ы и детали вычислений.
Теоретической статье не хватает интуицииДобавьте наброски доказательств с пояснениями на простом языке перед формальными доказательствами. См. references/paper-types.md.
Результаты негативные/нулевыеСм. Фазу 4.3 о работе с негативными результатами. Рассмотрите воркшопы, TMLR или переформулировку как анализ.

Справочные документы

ДокументСодержание
references/writing-guide.md7 принципов Gopen & Swan, микросоветы Perez, выбор слов Lipton, точность Steinhardt, дизайн рисунков
references/citation-workflow.mdAPI цитирования, код на Python, класс CitationManager, управление BibTeX
references/checklists.mdNeurIPS из 16 пунктов, ICML, ICLR, требования ACL, универсальный чек-лист перед подачей
references/reviewer-guidelines.mdКритерии оценки, шкала, частые замечания, шаблон rebuttal-а
references/sources.mdПолная библиография всех руководств по письму, рекомендаций конференций, API
references/experiment-patterns.mdПаттерны дизайна экспериментов, протоколы оценки, мониторинг, восстановление после ошибок
references/autoreason-methodology.mdЦикл autoreason, выбор стратегии, руководство по моделям, промпты, ограничения области, подсчёт Борда
references/human-evaluation.mdДизайн человеческой оценки, инструкции аннотаторам, метрики согласия, контроль качества краудсорсинга, рекомендации по IRB
references/paper-types.mdТеоретические статьи (написание доказательств, структура теорем), обзорные, бенчмарковые, позиционные статьи

LaTeX-шаблоны

Шаблоны в templates/ для: NeurIPS 2025, ICML 2026, ICLR 2026, ACL, AAAI 2026, COLM 2025.

Инструкции по компиляции см. в templates/README.md.

Ключевые внешние источники

Философия письма:

API: Semantic Scholar | CrossRef | arXiv

Площадки: NeurIPS | ICML | ICLR | ACL

ESC