Моя контактная информация
Почта[email protected]
2024-08-16
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Отчет о сердце машины
Редакторы: Ду Вэй, Чэнь Чен, Зенан
Распространение маленьких моделей.
В прошлом месяце Meta выпустила серию моделей Llama 3.1, в которую входит самая большая на сегодняшний день модель Meta 405B, а также две модели меньшего размера с 70 миллиардами и 8 миллиардами параметров соответственно.
Считается, что Llama 3.1 открывает новую эру открытого исходного кода. Однако, хотя модели нового поколения обладают высокой производительностью, они по-прежнему требуют большого количества вычислительных ресурсов при развертывании.
Таким образом, в отрасли возникла еще одна тенденция, заключающаяся в разработке малых языковых моделей (SLM), которые достаточно хорошо справляются со многими языковыми задачами, а также очень дешевы в развертывании.
Недавнее исследование NVIDIA показало, что структурированное сокращение весов в сочетании с дистилляцией знаний позволяет постепенно получать меньшие языковые модели из изначально более крупной модели.
Янн Лекун, лауреат премии Тьюринга и главный научный сотрудник Меты в области искусственного интеллекта, также лайкнул и опубликовал исследование.
После обрезки и дистилляции исследовательская группа NVIDIA превратила Llama 3.1 8B в Llama-3.1-Minitron 4B и сделала его открытым исходным кодом. Это первая работа NVIDIA в серии Llama 3.1 с открытым исходным кодом.
Llama-3.1-Minitron 4B превосходит современные модели аналогичного размера с открытым исходным кодом, включая Minitron 4B, Phi-2 2.7B, Gemma2 2.6B и Qwen2-1.5B.
Статья, связанная с этим исследованием, была опубликована еще в прошлом месяце.
обрезка и дистилляция
Сокращение делает модель меньше и компактнее и может быть достигнуто путем удаления слоев (сокращение глубины) или удаления нейронов и головок внимания и встраивания каналов (сокращение ширины). Обрезка обычно сопровождается некоторой переподготовкой для восстановления точности.
Дистилляция модели — это метод переноса знаний из большой и сложной модели (часто называемой моделью учителя) в меньшую и более простую модель ученика. Цель состоит в том, чтобы создать более эффективную модель, которая сохранит большую часть предсказательной силы исходной более крупной модели, но при этом будет работать быстрее и потреблять меньше ресурсов.
Существует два основных метода дистилляции: точная настройка ЦУР и классическая дистилляция знаний. Эти два метода дистилляции дополняют друг друга. В данной статье основное внимание уделяется классическим методам дистилляции знаний.
NVIDIA конструирует большие модели, комбинируя сокращение с классической дистилляцией знаний. На рисунке ниже показан процесс сокращения и дистилляции одной модели (вверху), а также цепочка сокращения и дистилляции модели (внизу). Конкретный процесс заключается в следующем:
1. NVIDIA начинает с модели 15B, оценивает важность каждого компонента (слоев, нейронов, головок и каналов внедрения), затем сортирует и сокращает модель до целевого размера: модель 8B.
2. Затем используйте дистилляцию модели для легкого переобучения, при этом исходная модель будет учителем, а сокращенная модель — учеником.
3. После обучения используйте небольшую модель (8B) в качестве отправной точки, сократите ее и превратите в меньшую модель 4B.
Процесс обрезки и дистилляции из модели 15Б.
Следует отметить, что перед сокращением модели необходимо понять, какие части модели важны. NVIDIA предлагает стратегию чистой оценки важности на основе активации, которая одновременно вычисляет информацию во всех соответствующих измерениях (глубина, нейрон, голова и каналы внедрения), используя небольшой набор калибровочных данных из 1024 выборок, и требуется только прямое распространение. Этот подход проще и экономичнее, чем стратегии, основанные на информации о градиенте и требующие обратного распространения ошибки.
Во время сокращения вы итеративно чередуете сокращение и оценку важности для данной оси или комбинации осей. Эмпирические исследования показывают, что использования одной оценки важности достаточно и что итеративные оценки не приносят дополнительных преимуществ.
Переподготовка с использованием дистилляции классических знаний
На рисунке 2 ниже показан процесс дистилляции, в котором N-слойная модель ученика (сокращенная модель) отделяется от модели M-слоя учителя (исходная несокращенная модель). Модель ученика изучается путем минимизации комбинации встроенных выходных потерь, логитовых потерь и потерь, характерных для кодера трансформатора, сопоставленных с блоком ученика S и блоком учителя T.
Рисунок 2: Потери при перегонке.
Лучшие практики обрезки и дистилляции
Основываясь на обширных исследованиях сокращения и дистилляции знаний в компактных языковых моделях, NVIDIA обобщает результаты своего обучения в следующих лучших практиках структурированного сжатия.
Один из них — изменить размер.
Второе – обрезка.
Третье – переквалифицироваться.
Лама-3.1-Минитрон: применение лучших практик на практике
Meta недавно выпустила мощное семейство моделей с открытым исходным кодом Llama 3.1, которое конкурирует с моделями с закрытым исходным кодом во многих тестах. Параметры Ламы 3.1 варьируются от огромных 405В до 70В и 8В.
Имея опыт дистилляции Nemotron, NVIDIA решила превратить модель Llama 3.1 8B в меньшую и более эффективную модель 4B, приняв следующие меры:
Точная настройка учителя
Чтобы исправить смещение распределения исходного набора данных, на котором было основано обучение модели, NVIDIA сначала настроила необрезанную модель 8B в своем наборе данных (токены 94B). Эксперименты показывают, что если смещение распределения не исправлено, модель учителя обеспечивает неоптимальное руководство для набора данных при дистилляции.
Обрезка только на глубину
Чтобы уменьшить количество битов с 8B до 4B, NVIDIA сократила 16 слоев (50%). Сначала они оценивают важность каждого слоя или группы последовательных подслоев, удаляя их из модели, и наблюдают увеличение потерь LM или снижение точности в последующих задачах.
На рисунке 5 ниже показаны значения потерь LM на проверочном наборе после удаления 1, 2, 8 или 16 слоев. Например, красный график слоя 16 показывает, что потеря LM происходит, если первые 16 слоев удалены. Уровень 17 означает, что если первый уровень сохраняется, а слои со 2 по 17 удаляются, также происходит потеря LM. Nvidia отмечает: Начальный и конечный слои являются наиболее важными.
Рисунок 5: Важность обрезки средних слоев только по глубине.
Однако NVIDIA отмечает, что эта потеря LM не обязательно напрямую связана с производительностью нисходящего потока.
На рисунке 6 ниже показана точность Виногранде для каждой сокращенной модели. Он показывает, что лучше всего удалить слои с 16 по 31, где слой 31 является предпоследним слоем. Точность сокращенной модели с 5 выстрелами значительно выше, чем случайная точность. 0,5). Nvidia приняла эту идею и удалила слои с 16 по 31.
Рисунок 6: Точность задачи Виногранде при удалении 16 слоев.
Обрезка только по ширине
NVIDIA сокращает встраиваемые (скрытые) и промежуточные размеры MLP по оси ширины, чтобы сжать Llama 3.1 8B. В частности, они используют ранее описанную стратегию, основанную на активации, для расчета показателей важности для каждого заголовка внимания, канала внедрения и скрытого измерения MLP.
Оценив важность, NVIDIA выбрала
Стоит отметить, что после обрезки одного образца потеря LM при обрезке по ширине выше, чем при обрезке по глубине. Однако после непродолжительного периода переподготовки тенденция изменилась.
Тест точности
NVIDIA очищает модель, используя следующие параметры
В таблице 1 ниже показано сравнение производительности вариантов модели Llama-3.1-Minitron 4B (обрезка ширины и глубины) с исходной моделью Llama 3.1 8B и другими моделями аналогичного размера в тестах в нескольких областях. В целом, NVIDIA еще раз подтвердила эффективность стратегии широкого сокращения по сравнению с глубоким сокращением, которое следует передовым практикам.
Таблица 1: Сравнение точности базовой модели Minitron 4B по сравнению с базовыми моделями аналогичного размера.
Чтобы проверить, может ли дистиллированная модель стать мощной моделью инструкций, NVIDIA использовала NeMo-Aligner для точной настройки модели Llama-3.1-Minitron 4B.
Они использовали данные обучения Nemotron-4 340B и провели оценку на IFEval, MT-Bench, ChatRAG-Bench и Berkeley Function Calling Leaderboard (BFCL) для проверки возможностей выполнения инструкций, ролевых игр, RAG и вызова функций. Наконец, было подтверждено, что модель Llama-3.1-Minitron 4B может стать надежной моделью инструкций, и ее производительность лучше, чем у других базовых SLM.
Таблица 2: Сравнение точности выровненных базовых моделей Minitron 4B и выровненных моделей аналогичного размера.
Тест производительности
NVIDIA оптимизировала модели Llama 3.1 8B и Llama-3.1-Minitron 4B с помощью NVIDIA TensorRT-LLM, набора инструментов с открытым исходным кодом для оптимизации вывода LLM.
Следующие два рисунка показывают количество запросов пропускной способности в секунду с точностью FP8 и FP16 для разных моделей в разных случаях использования, выраженное как комбинация длины входной последовательности/длины выходной последовательности (ISL/OSL) с размером пакета 32 для модели 8B и Модель 4B Размер пакета представляет собой комбинацию длины входной последовательности/длины выходной последовательности (ISL/OSL), равную 64, благодаря меньшим весам, позволяющим увеличить размер пакета на графическом процессоре NVIDIA H100 80 ГБ.
Вариант Llama-3.1-Minitron-4B-Depth-Base является самым быстрым, его средняя пропускная способность примерно в 2,7 раза выше, чем у Llama 3.1 8B, тогда как вариант Llama-3.1-Minitron-4B-Width-Base имеет среднюю пропускную способность по поводу Ламы 3.1 1.8х 8Б. Развертывание в FP8 также повышает производительность этих трех моделей примерно в 1,3 раза по сравнению с BF16.
Рис. 8. Комбинация: модель Llama 3.1 8B с BS=32, модель Llama-3.1-Minitron 4B с BS=64.
в заключение
Сокращение и уточнение классических знаний — это очень экономичный метод постепенного получения LLM меньших размеров, обеспечивающий более высокую точность, чем обучение с нуля во всех областях. Это более эффективный и экономичный подход, чем точная настройка на синтетических данных или предварительное обучение с нуля.
Llama-3.1-Minitron 4B — это первая попытка NVIDIA использовать самую передовую серию Llama 3.1 с открытым исходным кодом. Чтобы использовать тонкую настройку SDG для Llama-3.1 с NVIDIA NeMo, см. раздел /sdg-law-title-generation на GitHub.
Для получения дополнительной информации см. следующие ресурсы:
https://developer.nvidia.com/blog/how-to-prune-and-distill-llama-3-1-8b-to-an-nvidia-llama-3-1-minitron-4b-model/