Обсуждение статьи "Нейросети это просто (Часть 95): Снижение потребления памяти в моделях Transformer"

 

Опубликована статья Нейросети это просто (Часть 95): Снижение потребления памяти в моделях Transformer:

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

Метод MLKV является логическим продолжением алгоритмов MQA и GQA. В указанных методах размер KV-кеша снижается за счет уменьшения голов KV, которые совместно используются группой голов внимания в рамках одного слоя Self-Attention. Вполне ожидаемый шаг — совместное использование сущностей Key и Value между слоями Self-Attention. Этот шаг может быть обосновано недавними исследованиями роли блока FeedForward в алгоритме Transformer. Предполагается, что указанный блок имитирует память "Key-Value", обрабатывающую разные уровни информации. Однако наиболее примечательным для нас является замечание, что группы последовательных слоев вычисляют схожие вещи. Точнее, нижние уровни занимаются поверхностными шаблонами, а верхние — более семантическими деталями. Таким образом, можно сделать вывод, что внимание можно делегировать группам слоев, сохраняя при этом необходимые вычисления в блоке FeedForward. Интуитивно понятно, что головки KV могут быть разделены между слоями, которые имеют схожие цели.

Развивая эти идеи, авторы метода MLKV предлагаем многоуровневый обмен ключами. MLKV не только разделяет головки KV среди голов внимания к Query на уровне одного слоя Self-Attention, но и среди голов внимания на других уровнях. Это позволяет снизить общее количество KV-голов в Transformer и, таким образом, обеспечить еще меньший KV-кэш.

Автор: Dmitriy Gizlyk

 
А как вы понимаете, что сеть чему-то научилась, а не генерит рандомные сигналы?
 
Maxim Dmitrievsky #:
А как вы понимаете, что сеть чему-то научилась, а не генерит рандомные сигналы?

Стохастическая политика Актера предполагает некую рандомность действий. Однако в процессе обучения диапазон разброса рандомных значений сильно сужается. Дело в том, что при организации стохастической политики для каждого действия обучается 2 параметра: среднее значение и дисперсия разброса значений. При обучении политики среднее значения стремится к оптимуму, а дисперсия — к 0.

Чтобы понять насколько рандомные действия Агента я делаю несколько тестовых проходов для одной политики. Если Агент генерирует рандомные действия, то результат всех проходов будет сильно отличаться. Для обученной политики различие в результатах будет несущественное. 

 
Dmitriy Gizlyk #:

Стохастическая политика Актера предполагает некую рандомность действий. Однако в процессе обучения диапазон разброса рандомных значений сильно сужается. Дело в том, что при организации стохастической политики для каждого действия обучается 2 параметра: среднее значение и дисперсия разброса значений. При обучении политики среднее значения стремится к оптимуму, а дисперсия — к 0.

Чтобы понять насколько рандомные действия Агента я делаю несколько тестовых проходов для одной политики. Если Агент генерирует рандомные действия, то результат всех проходов будет сильно отличаться. Для обученной политики различие в результатах будет несущественное. 

Понял, спасибо.