Как изменить размер модели Llama 3 (70B) (запрос отклонен второй раз) для дообучения на своем датасете, учитывая большой объем памяти, который она требует? Как можно разделить модель и датасет на несколько карточек для эффективного дообучения на них?
Существует несколько способов соединить несколько видеокарт для работы с большой моделью. Один из них - это использование технологии SLI (Scalable Link Interface) или CrossFire, которые позволяют объединять мощности нескольких видеокарт для увеличения производительности. Также можно использовать программное обеспечение для параллельных вычислений, такое как CUDA или OpenCL, чтобы распределить задачи между несколькими видеокартами. Чтобы изменить размер модели Llama 3 (70B) для дообучения на своем датасете, можно использовать различные методы, такие как уменьшение размерности модели, удаление некоторых слоев или параметров, или использование методов сжатия моделей. Однако, учитывая большой объем памяти, который требуется для этой модели, возможно потребуется использовать более мощное оборудование или специализированные вычислительные ресурсы. Чтобы разделить модель и датасет на несколько карточек для эффективного дообучения, можно использовать технику распределенного обучения, где данные и вычисления распределяются между несколькими вычислительными узлами. Для этого можно использовать фреймворки для распределенного обучения, такие как TensorFlow и PyTorch, которые поддерживают возможность работы с несколькими устройствами одновременно. Также можно использовать специализированные вычислительные серверы или облачные вычислительные ресурсы для ускорения обучения модели на больших датасетах.
Требования оперативной памяти к GPT моделям примерно 2x байт от количества параметров (на самом деле сложнее и больше но но начинают говорить именно с этой оценки). Полистай сообщения этого бота на huggingface, вот пример для llama2-70b
float32 256.29 GB float16 128.15 GB int8 64.07 GB квантизация int4 32.04 GB квантизация
Для использовании модели не для ее обучения и тюнинга, более чем достаточно 8битной квантизации, мало того, 6-ти и 5-битная квантизация понижает ее качество на считанные доли процентов (4-бит уже единицы процентов). Шум и галлюцинации слабых моделей значительно выше чем эти различия (например простое перефразирование системного текста или вопроса, без изменения его смысла, изменит результат значительнее).
Если тебе нужно использовать модель на python с помощью tensorflow, бери код с офф страницы модели и используй bitsandbytes. Не подскажу по тому, как раскидать модель по нескольким видеокартам тут, проектов тьма, есть даже те что работают по сети (т.е. не в пределах одной машины) типа petals .
И у тебя есть альтернатива, используй проект llama.cpp, позволяет запускать модель на процессоре (значительно эффективнее чем реализация на tensorflow) и есть поддержка gpu, одновременно нескольких и разных, причем любой, не только nvidia, плюс если vram не хватает, можно оставить часть весов в памяти и досчитывать на процессоре, что все равно эффективнее.
p.s. llama3-70b с помощью llama.cpp я запускал на процессоре с памятью 64Gb, с квантизацией 5bit, примерно 1.4токена в секунду, что все еще быстрее для англоязычных текстов чем пишет большинство людей.