Введение: когда архитектуру проектирует сам ИИ

Представьте, что вам нужно построить дом, но вместо того чтобы нанимать архитектора и неделями рисовать чертежи, вы просто задаёте требования — площадь, количество комнат, бюджет — и алгоритм сам находит оптимальную планировку. Примерно так работает Neural Architecture Search (NAS) в мире машинного обучения.

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

NAS — это стремительно развивающаяся область исследований, которая автоматизирует сквозной ручной процесс проектирования нейросетей. Традиционно этот процесс, начиная с ранних моделей вроде LeNet и заканчивая современными глубокими сетями, сильно зависел от экспертизы и интуиции исследователей.

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


NAS объединяет три ключевых компонента: пространство поиска (какие архитектуры возможны), стратегию поиска (как это пространство исследуется) и метод оценки (как измеряется качество кандидатов).

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

1. Пространство поиска (Search Space)

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

Исследователи обычно разграничивают оптимизацию архитектуры (AO) и оптимизацию гиперпараметров (HPO): первая касается конфигурации слоёв и их связей, вторая — неархитектурных факторов, таких как размер батча или скорость обучения.

2. Стратегия поиска (Search Strategy)

Стратегия поиска определяет, как исследуется пространство поиска для нахождения оптимальных архитектур. Распространённые алгоритмы включают обучение с подкреплением, эволюционные алгоритмы, градиентные методы (например, дифференцируемый NAS), байесовскую оптимизацию, случайный поиск и метаэвристические подходы.

3. Метод оценки производительности (Performance Estimation)

Оценка производительности — это измерение того, насколько хороша конкретная конфигурация. Можно обучать модель полностью или частично, либо переиспользовать веса для экономии времени.


Алгоритмы поиска: от RL до диффузионных моделей

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


graph TD
    A[NAS — Поиск архитектур] --> B[Обучение с подкреплением]
    A --> C[Эволюционные алгоритмы]
    A --> D[Градиентные методы]
    A --> E[Байесовская оптимизация]
    A --> F[LLM-ассистированный NAS]
    B --> B1[NASNet, ENAS]
    C --> C1[AmoebaNet, NSGA-II]
    D --> D1[DARTS, PC-DARTS]
    F --> F1[GPT-4 Graph NAS]

Reinforcement Learning (RL)

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

Эволюционные алгоритмы

Методы на основе эволюционных алгоритмов представляют архитектуры в виде популяции, которая эволюционирует через мутации и отбор. Классический пример — AmoebaNet, где «выживает» самая эффективная архитектура.

Дифференцируемый NAS (DARTS)

DARTS — это градиентный метод NAS, который существенно снижает вычислительные затраты. В отличие от традиционных подходов, требующих обучения множества архитектур с нуля, DARTS работает в непрерывном пространстве поиска, оптимизируемом с помощью градиентов. Это резко сокращает количество необходимых вычислений.

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

ENAS: эффективность через разделение весов

ENAS — это метод NAS на основе RL, ориентированный на эффективность. Он вводит концепцию общей сети, где разные архитектуры-кандидаты разделяют веса в процессе обучения. Это снижает вычислительные накладные расходы, сохраняя конкурентоспособные результаты.

LLM-ассистированный NAS

Свежее направление — использование больших языковых моделей для NAS. Среди новых стратегий поиска — применение больших языковых моделей и эволюционных алгоритмов нового поколения. Исследователи уже экспериментируют с GPT-4 для поиска оптимальных графовых нейросетей.

💡 Совет практику
Если вы только начинаете с NAS — используйте DARTS или one-shot подходы: они на порядки дешевле классических RL-методов и дают сравнимые результаты на большинстве задач.

Практические инструменты для NAS

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

ИнструментРазработчикМетод поискаСложностьПодходит для
Auto-KerasKeras TeamБайесовская оптимизацияНизкаяБыстрое прототипирование
NNIMicrosoftDARTS, ENAS, SPOS и др.СредняяГибкие исследовательские задачи
Vertex AI NASGoogle CloudВстроенные стратегииНизкаяEnterprise-масштаб
ArchaiMicrosoft ResearchМножество методовСредняяВоспроизводимые эксперименты
DARTS (PyTorch)CMUГрадиентный поискВысокаяКастомные архитектуры

Auto-Keras — это удобный инструмент для начинающих, построенный поверх Keras и предоставляющий простой API для выполнения NAS без необходимости погружаться в детали дизайна пространства поиска или стратегий.

Vertex AI Neural Architecture Search от Google Cloud автоматизирует проектирование и тонкую настройку ML-моделей. Инструмент включает встроенные стратегии поиска и оценки производительности, а пользователь может задавать ограничения по задержке, памяти и энергопотреблению — алгоритм найдёт наиболее точную модель в заданных рамках.

Archai — это NAS-фреймворк от Microsoft, специализирующийся на эффективном проектировании моделей с акцентом на воспроизводимость. Он позволяет задавать предпочтения по производительности, задержке и аппаратным ограничениям.

Пример: запуск NAS с Auto-Keras

import autokeras as ak

# Инициализируем поиск архитектуры для задачи классификации изображений
clf = ak.ImageClassifier(
    overwrite=True,
    max_trials=10  # количество кандидатов для исследования
)

# Запускаем поиск
clf.fit(x_train, y_train, epochs=10)

# Оцениваем лучшую найденную архитектуру
print(clf.evaluate(x_test, y_test))

# Экспортируем финальную модель
best_model = clf.export_model()
best_model.summary()
📝 Реальный кейс
RF-DETR — современная модель детекции объектов — была создана с использованием NAS. Вместо обучения тысяч моделей она использует разделение весов: одна модель ведёт себя как множество меньших моделей, используя разные конфигурации при каждом шаге обучения, но разделяя общие веса.

Реальные применения и результаты NAS

Transfer learning + NAS = мощный дуэт

Ячейки, найденные NASNet на CIFAR-10, были успешно перенесены на ImageNet и улучшили производительность детекции объектов при интеграции во фреймворк Faster-RCNN. Это демонстрирует, что архитектуры, найденные NAS на одном датасете, обобщаются на другие задачи.

Авторы Neural Architecture Transfer (NAT) предложили использовать трансферное обучение в контексте NAS: переносить существующий supernet в задачно-специфичный supernet, одновременно оптимизируя архитектуры по нескольким целям.

NAS для edge-устройств

One-shot NAS особенно важен для ресурсоограниченных приложений, поскольку разные задачи требуют разных архитектур: для простой задачи — например, классификации цвета изображения — достаточно двухслойной сети, тогда как классификация кошек и собак требует сложной архитектуры.

Экологичный NAS

Углеродно-эффективные NAS-фреймворки, такие как CE-NAS, снижают вычислительные требования и сокращают углеродный след: они распределяют задачи сэмплирования и оценки по разным GPU в зависимости от уровня их углеродных выбросов.

«NAS превращает проектирование нейросетей из искусства в инженерную дисциплину — алгоритм исследует пространство решений быстрее и системнее, чем любой человек».

Бенчмарки: насколько хорош NAS?

NAS-Bench-101 включает более пяти миллионов обученных моделей, каждая с зафиксированными результатами обучения, валидации и тестирования — это позволяет объективно сравнивать NAS-подходы между собой.

Последние исследования подтвердили осуществимость автоматического NAS и привели к созданию моделей, превосходящих многие вручную спроектированные и настроенные архитектуры.


Ограничения и подводные камни

⚠ Вычислительные затраты
Классические NAS-методы на основе RL или эволюции могут требовать обучения тысяч архитектур. Исторически поиск NASNet занял ~1800 GPU-дней. Используйте one-shot методы или DARTS для снижения затрат.

Основные проблемы NAS:

  1. Вычислительная стоимость — техники чёрного ящика (RL, генетические алгоритмы) требуют обучения тысяч моделей и несут огромные вычислительные затраты.

  2. Переобучение под прокси-задачу — модель, лучшая на CIFAR-10, может оказаться посредственной на вашей специфической задаче.

  3. Сложность воспроизводства — готовые инструменты могут ограничивать контроль над процессом поиска и не подходить для узкоспециализированных задач.

  4. Оверфиттинг пространства поиска — неправильно заданное пространство поиска гарантирует плохой результат вне зависимости от алгоритма.


Заключение

Neural Architecture Search — это не просто академическая экзотика: это практический инструмент, который уже используется при создании production-моделей, от детекторов объектов до мобильных сетей. Технология переходит от «дорогой роскоши для исследовательских лабораторий» к доступному инструменту для любого ML-инженера.

Ключевые выводы:

  • NAS снижает ручной перебор вариантов, автоматизируя поиск архитектур нейронных сетей.
  • Три основных подхода — RL, эволюционные алгоритмы и дифференцируемый NAS (DARTS) — дополняют друг друга и применяются для разных задач.
  • Готовые инструменты (Auto-Keras, NNI, Vertex AI NAS) делают технологию доступной без глубокого погружения в теорию.
  • Новый тренд — интеграция LLM в процесс поиска — открывает ещё более широкие возможности.
💡 С чего начать прямо сейчас
  1. Попробуйте Auto-Keras на своей задаче классификации — это займёт меньше часа.
  2. Изучите документацию Microsoft NNI для более гибкого поиска.
  3. Прочитайте оригинальную статью DARTS (Liu et al., 2019) для понимания математики градиентного NAS.

Будущее ML — за системами, которые не только учатся на данных, но и сами проектируют себя под задачу. NAS — один из главных кирпичиков этого будущего.