Можно ли запустить модель LLAMA-405B на компьютере с 64 ГБ оперативной памяти и 8 ГБ видеопамяти?

Можно ли применять крупные LLM модели, такие как LLAMA-405B, на оборудовании, где недостаточно памяти даже для хранения версии INT4?
  • 3 сентября 2024 г. 9:52
Ответы на вопрос 2
Запуск модели LLAMA-405B на компьютере с 64 ГБ оперативной памяти и 8 ГБ видеопамяти представляется затруднительным. Эта модель требует значительных ресурсов как для хранения, так и для выполнения. В версии с 16-битной плавающей запятой (FP16) размер модели составляет примерно 800 ГБ, а даже с использованием INT4 (который значительно экономит память) требуется, по оценкам, около 200 ГБ для хранения параметров.

Кроме того, даже если вы сможете каким-то образом загрузить модель в память, выполнять её на GPU с 8 ГБ видеопамяти может быть невозможно из-за ограничений по размеру блоков, необходимых для обработки данных. 

Существуют некоторые методы, такие как модельный параллелизм или использование других техник оптимизации (например, активация только необходимых частей модели, использование меньших версий моделей, таких как LLAMA-7B или LLAMA-13B), но они не всегда обеспечивают желаемый результат, особенно если память явно не хватает.

В общем, без дополнительных аппаратных ресурсов или оптимизаций запуск крупной модели, такой как LLAMA-405B, на упомянутом оборудовании будет проблематичным. Альтернативные решения могут включать использование облачных платформ или распределённых вычислений, которые позволяют запускать такие модели на более мощном оборудовании.
Да, уже считал , и это действительно реально, с относительно небольшими затратами (16-20т.р.) если тебя устроит скорость исполнения в 15-30 секунд на токен (на твоем железе llama31-70b на процессоре и 64гб оперативке будет работать токен в 1-1.5 секунд). 

Необходимо собрать самый дешевый pcie nvme ssd программный raid0, купив контроллер pcie-x16 3.0 или 4.0 из четырех разъемов nvme либо четыре pcie-4x дешевых 3.0 и закупить самые дешевые nvme ssd диски от 128гб (со скоростями чтения от 2гбайт/сек).

Затем собрать из них raid0 с чередованием (win/linux это поддерживают) и разместить на нем gguf файл. llama.cpp поддерживает загрузку файла с весами с диска, без выделения оперативной памяти (но она нужна на контекстное окно, в зависимости от его размера это будут десятки гигабайт). Файл будет считываться по кругу целиком, по разу на токен, а значит скорость будет определяться именно этим. 2гб/с*4 диска = 8гб/с, 256гб 4бит квантизация будет считываться за 32 секунды.

Есть еще ограничения в скорости исполнения из-за процессора, но по уму, если бы была оперативная память то типовой десктопный процессор работал бы на скорости 15-20 секунд на токен.
Похожие вопросы