Почему размеры LLM теперь рассчитаны на 6/7B, 13B и 130B?
Почему размеры LLM теперь рассчитаны на 6/7B, 13B и 130B?

Чжиху: Чжэньчжунхуань Ссылка: https://www.zhihu.com/question/627258986/answer/3262812950

Простой ответ — согласовать видеопамять.

Модель 6B может быть развернута и обучена на видеокартах потребительского уровня с видеопамятью 12/16/24 ГБ. Если модель компании не предназначена для использования на видеокартах потребительского уровня, она обычно не будет обучаться в масштабе 6B. Обычно существует размер 1,4b или 2,8b, который больше подходит для количественного развертывания в мобильных телефонах и автомобильных терминалах.

Модель 13B организует данные по длине 4 КБ, параллелизм данных = 2, просто заполняет 8-карточную машину и может быть количественно развернута на A10 или даже 4090.

Следующий уровень - это не 130B. В настоящее время к более крупным моделям относятся 16B, 34B, 52B, 56B, 65B, 70B, 100B, 130B, 170B и 220B. По сути, они просто занимают определенную спецификацию вычислительной мощности или либо обучают, либо. вывод. Если вам нужно ускорить обучение, просто увеличьте количество карточек вдвое. Например, мы обучаем модель 7B с карточками 8*8 в блоках по 8 карточек, а модель 70B с карточками 80*6 в блоках по 80 карточек.

-------Дополнительный ответ-------

Друг в комментариях спросил, как посчитать использование видеопамяти. Вот простой метод:

Во-первых, это фреймворк обучения. Использование памяти в фреймворках deepspeed и megatron различно. Если компания выполняет предварительное обучение, то мегатрон обычно будет использоваться на трех этапах предварительной подготовки, sft и rlhf, поскольку он обеспечивает больше параллельных вариантов, а мегатрон использует множество операторов апексного слияния, что имеет более высокую вычислительную эффективность и более подходит. для масштабного обучения. Если вы используете только SFT, вы можете выбрать глубокую скорость или самостоятельно реализовать структуру на основе скелета модели HuggingFace. В качестве примера я использую Мегатрона.

megatronрамкаиз Модель&Коэффициент хранения оптимизатора равен18,То есть Модель Количество параметров*18=Использование видеопамяти。для13Bиз Модельда13Bx18=234GBИспользование видеопамяти。этот18изисточникда2(половинная точность Модельпараметр) + 4 (градиент одинарной точности) + 4 (копия параметров модели одинарной точности) + 4 (импульс одинарной точности первого порядка) + 4 (импульс второго порядка одинарной точности).

Примечание. Во время обучения со смешанной точностью градиент, хранимый в Megatron, не имеет половинной точности. Вместо этого оператор вершины используется для непосредственного расчета градиента с одинарной точностью и сохраняется в параметре.main_grad, поэтому приведенная выше формула является «одинарной». прецизионный градиент».

Когда конвейер распараллелен, все это будет разделено поровну между каждой картой, поэтому коэффициент 18 можно разделить в целом на количество карт. При нулевом параллелизме каждая карта имеет параметры модели половинной точности и градиенты одинарной точности, а последние три делятся поровну на каждую карту, поэтому только последние три коэффициента 4+4+4=12 можно разделить на число нулей. параллелизм. Предыдущий 2+4=6 не работает.

Используйте 13BМодель, seqlength=4096 в качестве примера для расчета.,Модель&оптимизатор Использование видеопамятисуществоватьmegatronрамка Внизда13 x 18 = 234 ГБ. Для этого требуется как минимум 4 карты x80G.

Использование памяти промежуточными переменными прямого распространения можно приблизительно оценить как 40xSHL, что составляет 40x4096 (длина последовательности) x5120 (размерность скрытого слоя) x40 (количество слоев модели) = 34 ГБ.

Если используетсяzero1данныепараллельный:Так Модель&оптимизатор Использование видеопамятикоэффициентда(6 + 12/ноль параллельного числа). При параллелизме данных каждая карта должна иметь полный фрагмент данных, поэтому каждая карта имеет 34 ГБ для хранения промежуточных переменных прямого распространения, а доступная видеопамять составляет всего 80–34 = 46 ГБ. это 13 x (6+12/нулевое параллельное число) < 46. ​​Решения неравенства нет, и его нельзя претендовать ни на что.

Если вы используете pipelineпараллельный,Так Модель&Использование видеопамятикоэффициент就да18/параллельный номер трубопровода, промежуточные переменные прямого распространения также равномерно распределяются по каждой карте, занимая 34G/конвейерный параллельный номер, тогда можно записать формулу (13 x 18/параллельный номер трубопровода + 34 / параллельный номер трубопровода) < 80,Число полученных параллельных конвейеров должно быть больше или равно 4.,Другими словами, можно установить 4 карты.,В это время каждая карта занимает 67Гб видеопамяти.,в Модель&Оптимизатор учитывает58.5,Прямое распространение составляет 8,5.

Однако в конвейерном параллелизме есть операция, которая устраняет пузырь занятости видеокарты и повышает эффективность. В среде megatron основным направлением является использование чередующегося параллелизма 1f1b. Если вам интересно, вы можете обратиться к этой статье: Infi-zc: конвейерный параллелизм. в Мегатрон-ЛМ

Другими словами, после прямого распространения видеопамять каждой карты не сразу освободит видеопамять 8,5G. Она продолжит рассчитывать прямое распространение следующего фрагмента данных. После n раундов обратное распространение первого фрагмента. данных будут переданы сзади. Когда вы вернетесь, видеопамять, занятая первым фрагментом данных, будет освобождена.

Фактически это n = «номер параллельного конвейера — серийный номер карты + 1», поэтому карта 1 наиболее загружена и будет записывать до 4-1+1=4 фрагментов прямого распространения данных. Следовательно, пиковое использование памяти первой карты для записи прямого распространения составляет (8,5 x 4) = 34G,плюс58.5Gиз Модель&оптимизатор,Первая карта взорвется,Если посчитать таким образом, то вторая и третья карты тоже взорвутся.,Только четвертая карта не взорвется.

На данный момент есть два решения: одно — установить размер пакета только на 1, что эквивалентно отключению операции 1f1b. Однако очевидно, что размер пакета не может быть равен 1. Размер пакета соответствует. длина последовательности 4096 обычно равна 1024.

Тогда второй вариант — добавить еще 4 карты, всего получится 8 карт. 8 карт разделены на 2 группы, и каждая группа из 4 карт образует параллельный конвейер. Между этими двумя группами используется параллелизм Zero1. При этом неравенство видеопамяти, занимаемой 1 картой, составляет: 13 x (6/параллельный номер трубопровода + 12/(номер параллели трубопровода*ноль параллелей) + 34,это 13 x (1.5+1.5) + 34 = 73. В это время 1 карта видеопамяти занимает 73Г, которую можно установить. В сумме необходимо 8 карт, из них карты №1 и 2 занимают 73Г, карты №3 и 4 занимают 64Г, карты №5 и 6 занимают 56Г, а карты №7 и 8 занимают 47,5Г. В реальных ситуациях каждой карты будет немного больше, но 8 карт действительно достаточно.

Конечно, вы можете использовать все 8 карт для конвейерного распараллеливания. При этом видеопамять, занимаемая 1 картой, составляет 13 x 18/8 + 34 = 63,25 ГБ.

В дополнение к конвейерному параллелизму (pp) также можно включить тензорный параллелизм (tp), но у tp есть две проблемы: 1. В структуре преобразователя tp необходимо обмениваться данными между tp каждые два умножения матриц, а объем связи велик. 2. Нормальный слой нормализует последнее измерение в целом, поэтому параметры нормального слоя должны быть полными на каждом tp и не могут быть разделены, что приведет к тому, что на каждой карте будут храниться дубликаты нормальных слоев. Часть видеопамяти будет потрачена впустую. но не так много.

TP также имеет два преимущества: 1. Когда модель больше и одна карта не может поместиться в один слой, PP недействителен. В настоящее время TP можно использовать только для разрезания одного слоя на несколько карт. 2. У TP нет проблемы сжатия пены в PP. Если использование памяти между различными картами слишком несбалансировано из-за операции сжатия пены в PP, вы можете уменьшить PP и увеличить TP. Однако объем трафика ТП большой, поэтому кросс-машинность вообще не рекомендуется, то есть вообще не рекомендуется открывать ТП выше 8.

boy illustration
Неразрушающее увеличение изображений одним щелчком мыши, чтобы сделать их более четкими артефактами искусственного интеллекта, включая руководства по установке и использованию.
boy illustration
Копикодер: этот инструмент отлично работает с Cursor, Bolt и V0! Предоставьте более качественные подсказки для разработки интерфейса (создание навигационного веб-сайта с использованием искусственного интеллекта).
boy illustration
Новый бесплатный RooCline превосходит Cline v3.1? ! Быстрее, умнее и лучше вилка Cline! (Независимое программирование AI, порог 0)
boy illustration
Разработав более 10 проектов с помощью Cursor, я собрал 10 примеров и 60 подсказок.
boy illustration
Я потратил 72 часа на изучение курсорных агентов, и вот неоспоримые факты, которыми я должен поделиться!
boy illustration
Идеальная интеграция Cursor и DeepSeek API
boy illustration
DeepSeek V3 снижает затраты на обучение больших моделей
boy illustration
Артефакт, увеличивающий количество очков: на основе улучшения характеристик препятствия малым целям Yolov8 (SEAM, MultiSEAM).
boy illustration
DeepSeek V3 раскручивался уже три дня. Сегодня я попробовал самопровозглашенную модель «ChatGPT».
boy illustration
Open Devin — инженер-программист искусственного интеллекта с открытым исходным кодом, который меньше программирует и больше создает.
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | SPPF сочетается с воспринимаемой большой сверткой ядра UniRepLK, а свертка с большим ядром + без расширения улучшает восприимчивое поле
boy illustration
Популярное и подробное объяснение DeepSeek-V3: от его появления до преимуществ и сравнения с GPT-4o.
boy illustration
9 основных словесных инструкций по доработке академических работ с помощью ChatGPT, эффективных и практичных, которые стоит собрать
boy illustration
Вызовите deepseek в vscode для реализации программирования с помощью искусственного интеллекта.
boy illustration
Познакомьтесь с принципами сверточных нейронных сетей (CNN) в одной статье (суперподробно)
boy illustration
50,3 тыс. звезд! Immich: автономное решение для резервного копирования фотографий и видео, которое экономит деньги и избавляет от беспокойства.
boy illustration
Cloud Native|Практика: установка Dashbaord для K8s, графика неплохая
boy illustration
Краткий обзор статьи — использование синтетических данных при обучении больших моделей и оптимизации производительности
boy illustration
MiniPerplx: новая поисковая система искусственного интеллекта с открытым исходным кодом, спонсируемая xAI и Vercel.
boy illustration
Конструкция сервиса Synology Drive сочетает проникновение в интрасеть и синхронизацию папок заметок Obsidian в облаке.
boy illustration
Центр конфигурации————Накос
boy illustration
Начинаем с нуля при разработке в облаке Copilot: начать разработку с минимальным использованием кода стало проще
boy illustration
[Серия Docker] Docker создает мультиплатформенные образы: практика архитектуры Arm64
boy illustration
Обновление новых возможностей coze | Я использовал coze для создания апплета помощника по исправлению домашних заданий по математике
boy illustration
Советы по развертыванию Nginx: практическое создание статических веб-сайтов на облачных серверах
boy illustration
Feiniu fnos использует Docker для развертывания личного блокнота Notepad
boy illustration
Сверточная нейронная сеть VGG реализует классификацию изображений Cifar10 — практический опыт Pytorch
boy illustration
Начало работы с EdgeonePages — новым недорогим решением для хостинга веб-сайтов
boy illustration
[Зона легкого облачного игрового сервера] Управление игровыми архивами
boy illustration
Развертывание SpringCloud-проекта на базе Docker и Docker-Compose