tgoop.com/gonzo_ML/2866
Last Update:
Выходит, что средние слои разделяют общее пространство репрезентаций, но реализуют разные операции в этом пространстве. Отсюда возникает вопрос, важен ли порядок этих операций? Для проверки средние слои исполняют в 1) обратном или 2) рандомном порядке (с усреднением по 10 сидам). В обоих случаях деградация постепенная и оба варианта лучше, чем просто выкидывание слоёв. Значит слои всё ещё вносят свой вклад, хоть и вызываются в другом порядке. Случайный порядок при этом лучше обратного. Получается, что до некоторой степени порядок слоёв важен, но деградация от случайного и обратного порядка постепенная.
Интересный вопрос про порядок, а можно ли слои вычислить впараллель, а затем смёржить (через усреднение)? Снова постепенная деградация кроме GSM8K, там быстрая. Это работает лучше, чем пропуск слоёв, но хуже, чем обратный порядок. В итоге вычислять слои параллельно можно, кроме случаев нагруженных математикой бенчмарков.
Видно, что на некоторых бенчмарках просадки хуже чем на других. Это в первую очередь абстрактные (ARC) и математические (GSM8K). Возможно, задачи с пошаговым выводом более чувствительны к порядку слоёв, чем семантические задачи. В них важны и структура, и семантика, на одной семантике не уедешь. В примере есть задача на арифметику, где в параллелизованной версии общая структура размышления верная, но арифметические результаты страдают из-за ошибок в вычислениях. В метафоре художников, семантическая задача аналогична рисованию коллажа, где порядок менее важен, а задача на вывод больше похожа на точную архитектурную сцену. Вне зависимости от верности аналогии, задачи на математику и вывод больше зависят от порядка, чем семантические задачи.
Продолжая метафору художников, может быть так, что некоторые из них готовы рисовать, только когда есть подходящий рисунок на входе. Так, специализирующийся на колёсах художник может не рисовать их, пока не увидит кузов автомобиля. В этом смысле предыдущий эксперимент с параллельным вычислением слоёв можно улучшить, крутя эти слои в цикле. Для этого агрегированный выход параллельных слоёв подаётся им же на вход заранее заданное количество итераций. Троекратная подача намного лучше одного параллельного исполнения. Более широкий анализ показывает, что оптимальное число итераций грубо линейно пропорционально числу параллельных слоёв.
По всем проанализированным вариантам, повторение одного слоя приводит к наибольшей деградации. Случайный порядок и параллелизация с циклом наименее вредны.
Хорошая, легко читаемая работа, которую в принципе мог сделать любой в своём гараже, не требуется быть для этого гуглом. Это круто, есть ещё место для независимых исследователей. Авторы хотят копнуть глубже и понять, почему трансформеры устойчивы к таким вариациям. Одна возможная гипотеза в том, что residual connections в обучении необходимы для того, чтобы слои шарили общие репрезентации. Интересно будет проверить на моделях без таких соединений. Также планируют разморозить модели и посмотреть как быстро модели восстанавливаются во время файнтюнинга. Варианты с параллельным вычислением и пропуском слоёв хороши с точки зрения латенси, здесь может быть практическая польза. Ещё потенциально интересная тема — роутинг для выбора слоёв по аналогии со Switch Transformers (https://www.tgoop.com/gonzo_ML/472).
BY gonzo-обзоры ML статей
Share with your friend now:
tgoop.com/gonzo_ML/2866