# Янник Кильхер: «С моей нейросетью все обезьяны становятся взаимозаменяемыми»

Источник: https://www.youtube.com/watch?v=Pm93D8CVlY8
Канал: Yannic Kilcher
Опубликовано: 05.05.2022

---

В новом видео Янник Кильхер (Yannic Kilcher) демонстрирует процесс создания «бесконечных» NFT из знаменитой коллекции Bored Ape Yacht Club с помощью технологий искусственного интеллекта. Автор пошагово разбирает сбор данных, обучение нейросети StyleGAN2-ADA и создание интерактивных инструментов, позволяющих любому желающему генерировать уникальных цифровых приматов.

## 🐒 Эпоха «взаимозаменяемых» токенов: концепция GAN-FT
[[JUMP:0:00]]

Янник Кильхер (Yannic Kilcher) начинает с провокационного заявления: он создал нейросеть, способную генерировать бесконечное количество изображений обезьян, практически неотличимых от оригинальной коллекции Bored Ape Yacht Club (BAYC) [0:00]. По мнению автора, эти «скучающие обезьяны» стали вершиной популярности NFT, и его цель — сделать их доступными для всех, иронично замечая, что теперь «всё стало взаимозаменяемым» (fungible) [1:07].

В рамках проекта, получившего название GAN-FT, Янник Кильхер (Yannic Kilcher) преследует несколько целей:

*   Создать модель, способную генерировать новые экземпляры по клику.
*   Исследовать «латентное пространство» модели через интерполяцию — плавный переход от одной сгенерированной обезьяны к другой [1:31].
*   Предоставить инструменты в открытый доступ, чтобы пользователи могли бесплатно скачивать результаты работы ИИ.

Автор признаёт, что он не первый, кто исследует эту тему. Он упоминает работы Натана Купера Джонса (Nathan Cooper Jones) и пользователя Serial Sucka в Twitter, которые ранее проводили глубокие исследования коллекции BAYC с помощью генеративно-состязательных сетей [1:56].

## 🧠 Как работают GAN: битва генератора и дискриминатора
[[JUMP:2:08]]

Технология, лежащая в основе проекта, называется Generative Adversarial Network (GAN) или генеративно-состязательная сеть. Эта концепция была впервые представлена в 2014 году в статье Яна Гудфеллоу (Ian Goodfellow) и его коллег [2:37]. 

Принцип работы GAN строится на взаимодействии двух нейросетей:

1.  **Генератор (Generator):** Пытается создать фальшивые изображения, которые выглядят как настоящие [3:14].
2.  **Дискриминатор (Discriminator):** Пытается отличить фальшивые изображения, созданные генератором, от реальных снимков из обучающего набора данных [3:28].

В процессе обучения дискриминатор учится лучше распознавать подделки, а генератор — всё более искусно обманывать дискриминатор. В результате этого соперничества обе сети совершенствуются, пока генератор не начинает выдавать почти безупречные изображения [3:40]. Янник Кильхер (Yannic Kilcher) отмечает, что прогресс в этой области за последние годы стал «безумным»: от размытых пятен в 2014 году до фотореалистичных лиц на сайтах вроде `thispersondoesnotexist.com` [3:01].

## 🕸️ Сбор данных: парсинг OpenSea и борьба с бесконечным скроллом
[[JUMP:3:40]]

Для обучения нейросети необходим качественный набор данных. Янник Кильхер (Yannic Kilcher) решил собрать все 10 000 изображений из коллекции Bored Ape Yacht Club с маркетплейса OpenSea [3:53]. Хотя у платформы есть API, автор утверждает, что предпочитает собирать данные напрямую с сайта, так как не доверяет сторонним интерфейсам [4:13].

Главным инструментом для сбора данных стал сервис Bright Data, который предоставляет инфраструктуру прокси-серверов и инструменты для автоматизации браузера. По словам Янника, OpenSea — один из самых сложных сайтов для парсинга из-за его динамической природы [5:13].

Основные сложности при сборе данных:

*   **Динамическая загрузка:** Элементы подгружаются индивидуально после загрузки страницы.
*   **Бесконечный скролл (Infinite Scroll):** Новые изображения появляются только при прокрутке вниз, заменяя «заглушки» [5:28].
*   **Структура URL:** Автор обнаружил, что изображения пронумерованы от 0 до 9999, что позволило итерировать запросы [6:45].

Скрипт Янника на Bright Data работал в два этапа: сначала определялось общее количество элементов в коллекции, а затем происходил переход по прямым ссылкам на каждую обезьяну для сохранения изображения, её атрибутов и цены последней сделки [7:24].

## 🛠️ Обучение модели StyleGAN2-ADA
[[JUMP:8:00]]

Вместо того чтобы писать код с нуля, Янник Кильхер (Yannic Kilcher) использовал официальную реализацию архитектуры StyleGAN2-ADA от NVIDIA, доступную на GitHub [8:03]. 

Процесс обучения состоял из следующих шагов:

1.  Конвертация собранных изображений в формат набора данных с помощью инструментов NVIDIA.
2.  Запуск скрипта `train.py` [8:27].
3.  Мониторинг метрик, таких как потери (loss) генератора и дискриминатора, а также FID (Fréchet Inception Distance).

Янник Кильхер (Yannic Kilcher) отмечает, что обучение GAN часто напоминает «гадание на кофейной гуще», так как графики потерь редко дают чёткое понимание качества модели [8:42]. Однако метрика FID оказалась полезной: чем она ниже, тем лучше качество.

В ходе обучения автор столкнулся с неудачами:

*   **Первый запуск:** Модель испытала «коллапс» (mode collapse). Изображения начали отображаться повёрнутыми набок без видимой причины [9:35].
*   **Второй запуск:** После корректировки гиперпараметров модель показала отличные результаты. Значение FID упало почти до нуля [10:39].

Янник Кильхер (Yannic Kilcher) предупреждает, что любая GAN рано или поздно «коллапсирует», если обучение длится слишком долго, поэтому важно вовремя сохранять контрольные точки (checkpoints) [11:05].

## 🎨 Интерактивные инструменты: Hugging Face и «What’s Your Ape»
[[JUMP:11:39]]

Результаты работы были опубликованы в виде интерактивных веб-приложений. На платформе Hugging Face автор создал пространство, где любой может нажать кнопку и мгновенно получить уникальное изображение обезьяны [11:43]. Кильхер подчёркивает, что каждое изображение генерируется в моменте и никогда не существовало ранее [11:55].

Особый интерес представляет приложение «What’s Your Ape» («Какая ты обезьяна?»). Оно работает следующим образом:

1.  Пользователь загружает своё фото.
2.  Нейросеть ищет в латентном пространстве GAN изображение обезьяны, максимально похожее на оригинал [12:46].
3.  Для поиска используется модель CLIP от OpenAI.

CLIP обучена на парах текст-изображение и понимает содержание картинки гораздо лучше классических сетей [13:26]. С помощью метода обратного распространения ошибки (backpropagation) система подбирает параметры генератора так, чтобы выходное изображение в глазах CLIP соответствовало входному фото пользователя [13:53]. По словам Янника, эта же технология лежит в основе современных систем генерации искусства, таких как DALL-E 2 [14:06].

## 📊 Возможности платформы Bright Data
[[JUMP:15:14]]

В завершение видео Янник Кильхер (Yannic Kilcher) подробнее останавливается на возможностях спонсора ролика — Bright Data. Он отмечает, что созданный им парсер был «самым сложным и трудоёмким» способом использования платформы, в то время как для большинства задач существуют готовые решения [16:21].

Среди функций Bright Data автор выделяет:

*   **Pre-defined Collectors:** Готовые скрипты для сбора данных из Instagram (например, по хештегу #aiart), Amazon, eBay, Airbnb и LinkedIn [16:35].
*   **Готовые датасеты:** Доступ к уже собранным базам данных, таким как реестр из 50 миллионов компаний в LinkedIn [18:07].
*   **Сценарии использования:** Верификация рекламы (просмотр объявлений глазами целевой аудитории из разных регионов), мониторинг цен конкурентов в e-commerce и поиск локаций для бизнеса [15:29].

Янник считает, что автоматизированный сбор публичных данных в масштабе — это «невероятно мощный инструмент» для любого современного проекта [15:55].