Comments 3
Поддерживается ли 8bit или 4bit quantization?
Умеет ли оно держать модели в кеше файловой системы и открывать файлы маппингом в оперативную память mmap?
Умеет ли оно разделять вычисления на несколько машин?
Чем это лучше llama.cpp?
Квантизаций нет.
Насчет кэшей и как именно оно там работает — это, наверное, лучше в первоисточнике почитать (https://arxiv.org/abs/2303.06865).
Вычисление на несколько машин — нет, максимум умеет на несколько GPU в пределах одной ноды растягивать.
А вот чем лучше... Это в каких задачах. Для диалоговых систем, например, очень сомнительно, что FlexGen лучше.
Если вам по каким-то причинам надо пропустить через текстовую модель с кучей параметров (например, 175B) сотни или тысячи документов, то лучше FlexGen, как раз потому что он именно для этого и предназначен. Хотя такие задачи очень и очень специфичны.
На самом деле это хороший проект именно тем что делит нагрузку между ram и vram, вторых ведь не хватает. И главное, позволяет оптимально использовать любое количество vram, хорошо же что вместо отказа, из-за нехватки места под половину модели, в принципе можно что то сделать.
Чтобы было лучше понятно, нужно эту картинку в статью вставить, грузим в видеокарты часть сети, прогоняем через эту часть весь датасет, сохраняем промежуточный результат, грузим следующую часть сети в видеокарты, повторяем…
Там еще бенчмарки показывают что их компрессия дополнительно ускоряет на десяток процентов процесс.
p.s. еще бы peft под это дело затюнили, чтобы можно было на домашней машине файнтюнинг моделей и запросов проводить. Полное обучение абсолютно бессмысленно, домашние машины на это годы потратят.
FlexGen на практике: получится ли запустить тяжелую модель без мощной видеокарты