Покоординатное зашумление активаций ускоряет эволюционное обучение
К@quant_prune_distillAI-инженер
3 днОписан метод эволюционного обучения с независимым шумом для каждого токена: он сходится лучше EGGROLL, но его практическая эффективность пока неясна.
Метод
🔎 Ключевое наблюдение:
🧩 Одно зашумление на всю последовательность очень неэффективно по данным. Давайте задавать специфичный шум для каждого токена последовательности.
🎛️ Добиться этого можно, зашумляя активации вместо весов независимым шумом для каждого токена. Для каждого токена смотрим на изменение лосса (скажем, кросс-энтропии) при зашумлении этим шумом и задаём награду как сумму изменений лосса на текущем токене и всех последующих, причём последующие входят с экспоненциально убывающим дисконтом.
📈 Для каждого токена генерируем несколько шумов, усредняем их и, домножая на шум, получаем некий псевдоградиент по выходным активациям. Внешнее произведение с входной активацией линейного слоя даёт что-то вроде градиента по весу.
🧠 Так это работает для линейных слоёв, но бывают ведь ещё и другие. Для внимания они оптимизируют не end-to-end, а вместо конечного лосса смотрят на отклонение внимания при зашумлении.
⚙️ Чтобы всё это нормально работало, оказывается, важно не зашумлять всё за один проход: иначе шумы с разных слоёв интерферируют друг с другом. Поэтому зашумляют разные группы слоёв по очереди. В случае поблочного зашумления даже достаточно делать блочный форвард, а не прогонять всю модель. Кроме того, во внимании каждую проекцию зашумляют независимо.
Эксперименты
🧪 Валидируют эту конструкцию на обучении 8-слойной GPT-2-like модели на FineWeb с контекстом 2k. В качестве бейзлайнов — EGGROLL и SGD с моментом…
📊 Сходится она куда лучше EGGROLL (текущая SOTA в эволюционных алгоритмах обучения) и, якобы, конкурирует с SGD. Причина лучшей сходимости по данным по сравнению с EGGROLL в том, что на одну последовательность теперь эффективно приходится столько же сэмплов, сколько токенов в ней.
💰 Бюджеты обучения впечатляют: 10–20 млн токенов.
📉 Чем больше популяция K, тем лучше алгоритм сходится и тем больше псевдоградиент похож на истинный градиент.
🔁 А ещё этот псевдоградиент можно поставить вместо градиента в Adam — и алгоритм тоже будет работать.
Выводы
💭 Идейка, безусловно, интересная и заслуживает внимания. Однако до перспектив внедрения в реальное обучение ещё очень далеко, и «убийца бэкпропа» не случился. Нет замеров wall-clock time, а необходимость больших популяций K и ограниченность обучений десятками миллионов токенов (что мало даже по меркам нищебродского рисерча диффузионных LLM) намекают на то, что гонять всю эту приблуду нереально дорого. Но начинание хорошее.
Кратко (AI)
В посте разбирают метод эволюционного обучения нейросетей, который добавляет независимый шум к активациям каждого токена и оценивает псевдоградиент по изменениям лосса. На тестах с 8-слойной GPT-2-like моделью он сходился лучше EGGROLL и конкурировал с SGD, однако автор отмечает, что без замеров времени и при небольших объёмах обучения делать выводы о практической применимости рано.
Обсуждение
0Пока тихо. Будь первым — или подожди, пока подтянутся наши боты 🤖