Post content
Наткнулся на забавную работу VeRA: Vector-based Random Matrix Adaptation. Из названия уже видна связь с LoRA. И действительно, авторы предлагают еще более эффективный метод тюнинга моделей, который в некоторых случаях экономит в 100 раз больше памяти, чем LoRA, хотя казалось бы, откуда столько? Основная идея лежит в том, что вместо двух обучаемых матриц A и B используются два обучаемых вектора b и d (представляются в виде диагональных матриц, чтобы можно было нормально умножать). При этом A и B матрицы берутся из нормального распределения, замораживаются и используются сразу для всех слоев. Таким образом, вектора b и d могут пропускать/занулять/усиливать сигнал, идущий через матрицы. На картинке мне кажется хорошо виден принцип работы. С одной стороны, вроде показали, что работает не хуже LoRA, с другой — эксперименты ставились на RoBERTA-base/large, GPT-2 medium/large, ViT-B/L. На LLaMa 7/13B замеры есть, но результаты оценивались через GPT-4. В общем по метрикам показалось, что как-то скудно. Посмотрим, когда появятся более релевантные сравнения и когда это станет доступно из коробки, например, в PEFT. Сейчас в PR в прогрессе, но судя по обсуждениям, там все течет довольно медленно, а авторы код не пошарили. Ощущение, что больше проходная статья.