Нейролента - подборка новостей о нейронных сетях, ChatGPT

Physics of Language Models: Part 3.3, Knowledge Capacity Scaling Laws

Работа сотрудников META про масштабирование моделей с точки зрения хранимых в них знаний. Первый автор пишет, что а) запустил 50'000 экспериментов б) месяц ждал одобрения компании на выделение ресурсов, потому что в) потребовалось 4,200,000 GPU-часов на всё про всё (~500 лет вычислений). Возможно, это работа — часть подготовки к публикации LLAMA 3 👀

В работе аж 12 выводов, по всем проходиться не буду, сначала дам вводную, а затем тезисы. Авторы фокусируются на запоминании данных из синтетической тренировочной выборки. Однако тут имеется в виду не запоминание слово-в-слово, а возможность извлечь знания модели в текстовом формате. «Знанием» тут называется триплет (Сущность, атрибут, значение). «Вася родился 12 декабря» -> (Вася, День рождения, 12 декабря), и такое можно пробовать извлекать вопросом «Когда у Васи День рождения?». Легко представить, как генерировать большое количество синтетики по шаблонам.

Выводы:
— авторам удаётся стабильно достигать вместимости модели 2 бита информации на параметр;
— это означает, что в 7B-модели могут уместиться все знания из английской Википедии и все книги на английском;
— причём, качество не меняется при квантизации модели до 8bit, однако при переходе к 4bit заметна просадка
— для того, чтобы добиться результата 2 бита на параметр, необходимо представить одну и ту же информацию модели 1000 раз (в том числе с разными формулировками и парафразами)
— если показывать информацию всего лишь 100 раз, то сжатие будет хуже в 2 раза: 1 бит на параметр
— если начать добавлять мусор в тренировочную выборку, то это портит модель: при соотношении 1:7 (мусора больше) модель запоминает в 20 раз меньше полезных знаний, если делать 100 показов. И проседает на 30%, если показывать 1000 раз.
— поэтому появляется вопрос - а может ли модель сама отфильтровать мусор? Для этого авторы экспериментируют с добавлением домена, откуда «взят» текст (пишут в начале wikipedia.org или 2ch.ru). Оказывается, что модели могут автоматически определять, какие домен богаты высококачественными знаниями, и определять приоритетность обучения на их основе. При этом модель не требует каких-либо предварительных знаний, она учится с нуля, этот процесс полностью автономен (за вычетом добавления источника данных в текст)
— это не позволяет восстановить полный перформанс, но существенно уменьшает деградацию из-за мусора
— теперь возникает вопрос, а где же хранятся знания? Считается, что большая часть информации зашита в FFN-слои трансформера, но даже если их удалить и оставить только аттеншен (уравняв количество параметров), то закон сохраняется
— но если вернуться к исходной архитектуре, то - особенно в моделях вблизи границы емкости (которые видели данные 1000 раз) - удаление последнего слоя после обучения показывает существенное ухудшение знаний. Просадка куда больше, чем 1/L (где L-количество слоёв. То есть мы думали, что удаление подрежет знания пропорционально, но нет). Значит, знания хранятся не в отдельных слоях, а более комплексно, подобно сейфу с кодовым замком, как комбинация. Тут я вспоминаю про суперпозицию.

В общем, ждём статью про LLAMA 3, посмотрим, как это использовалось там, насколько уменьшило галлюцинации и как изменило процесс тренировки. Ведь а) данные нужно жёстко фильтровать (это уже делалось) б) приоритизировать в) повторять много раз в разных формах (контролируемо, а не так, что одни факты попались 100 раз, а другие 10000).