paint-brush
ChipNeMo: Адаптированные к предметной области программы LLM для проектирования микросхем: набор данныхк@textmodels

ChipNeMo: Адаптированные к предметной области программы LLM для проектирования микросхем: набор данных

Слишком долго; Читать

Исследователи представляют ChipNeMo, использующую адаптацию предметной области для улучшения LLM при проектировании микросхем, достигая пятикратного уменьшения размера модели и повышения производительности.
featured image - ChipNeMo: Адаптированные к предметной области программы LLM для проектирования микросхем: набор данных
Writings, Papers and Blogs on Text Models HackerNoon profile picture
0-item

Авторы:

(1) Минцзе Лю, NVIDIA {Равный вклад};

(2) Теодор-Думитру Эне, NVIDIA {Равный вклад};

(3) Роберт Кирби, NVIDIA {Равный вклад};

(4) Крис Ченг, NVIDIA {Равный вклад};

(5) Натаниэль Пинкни, NVIDIA {Равный вклад};

(6) Жунцзянь Лян, NVIDIA {Равный вклад};

(7) Джона Албен, NVIDIA;

(8) Химьяншу Ананд, NVIDIA;

(9) Санмитра Банерджи, NVIDIA;

(10) Исмет Байрактароглу, NVIDIA;

(11) Бонита Бхаскаран, NVIDIA;

(12) Брайан Катандзаро, NVIDIA;

(13) Арджун Чаудхури, NVIDIA;

(14) Шэрон Клэй, NVIDIA;

(15) Билл Далли, NVIDIA;

(16) Лаура Данг, NVIDIA;

(17) Парикшит Дешпанде, NVIDIA;

(18) Сиддхант Дходхи, NVIDIA;

(19) Самир Халепет, NVIDIA;

(20) Эрик Хилл, NVIDIA;

(21) Цзяшан Ху, NVIDIA;

(22) Сумит Джайн, NVIDIA;

(23) Брюсек Хайлани, NVIDIA;

(24) Джордж Кокаи, NVIDIA;

(25) Кишор Кунал, NVIDIA;

(26) Сяовэй Ли, NVIDIA;

(27) Чарли Линд, NVIDIA;

(28) Хао Лю, NVIDIA;

(29) Стюарт Оберман, NVIDIA;

(30) Суджит Омар, NVIDIA;

(31) Сридхар Пратти, NVIDIA;

(23) Джонатан Райман, NVIDIA;

(33) Амбар Саркар, NVIDIA;

(34) Чжэнцзян Шао, NVIDIA;

(35) Ханфэй Сан, NVIDIA;

(36) Пратик П. Сутар, NVIDIA;

(37) Варун Тедж, NVIDIA;

(38) Уокер Тернер, NVIDIA;

(39) Кайжэ Сюй, NVIDIA;

(40) Хаосин Рен, NVIDIA.

Таблица ссылок

II. НАБОР ДАННЫХ

А. Набор данных DAPT


Во время доменно-адаптивного предварительного обучения (DAPT) мы собираем набор данных из комбинации источников данных, принадлежащих NVIDIA, и общедоступных наборов данных.


Наборы данных по проектированию микросхем. Наш внутренний набор данных состоит из разнообразных текстовых источников, относящихся к проектированию микросхем, включая проектирование, проверку, инфраструктуру и внутреннюю документацию. В таблице I представлена разбивка данных, собранных после фильтрации, и соответствующее количество токенов с использованием токенизатора LLaMA2. Мы создаем набор данных, собирая все соответствующие внутренние данные, затем фильтруя их по типу файла на основе расширений имен файлов и различая контент, созданный машиной и написанный человеком. Хотя мы оценивали три конкретных варианта использования, мы не ограничивали набор данных специально источниками, которые, как известно, имеют отношение к этим вариантам использования, поскольку считали, что включение дополнительных знаний в предметной области повысит производительность. После сбора, очистки и фильтрации внутренний корпус обучения данных содержит 23,1 миллиарда токенов. Более подробная информация о процессе сбора данных представлена в Приложении А.


Общедоступные наборы данных: мы дополняем данные, специфичные для конструкции чипа, выборкой общедоступных данных из различных источников, что является обычной практикой при разработке основополагающих моделей большого языка. Наш подход заключался в повторном использовании общедоступных данных обучения из других языковых моделей с условием, что они должны быть общедоступными и совместимыми с открытыми источниками. Эти наборы данных демонстрируют высокую степень корреляции с данными предварительного обучения, используемыми в LLaMA2 [5], с намерением сохранить общие знания и возможности естественного языка во время DAPT. Общедоступные наборы данных, используемые ChipNeMo, можно разделить на две группы: естественный язык и код. Что касается компонента естественного языка, мы опираемся на данные Википедии [17], поскольку она широко известна своим высоким качеством данных. Для кода мы используем данные GitHub [18], уделяя особое внимание языкам программирования, которые также присутствуют в нашем внутреннем наборе данных для проектирования чипов данных, таким как C ++, Python и Verilog. Чтобы гарантировать, что общий набор данных является репрезентативным для распределений до обучения, мы выполняем операцию подвыборки, в результате которой из этих общедоступных наборов данных отбирается примерно 9,2% от общего числа обучающих токенов со сбалансированным представлением естественного языка и кода.


Смешение данных. Значительная часть собранных нами доменных данных состоит из неаннотированного кода различного происхождения. Стремясь улучшить понимание модели предметно-специфичных знаний, мы провели понижающую дискретизацию данных кода и одновременно повышающую дискретизацию данных на естественном языке, в частности проектной документации, в течение 2–4 эпох обучения. Мы также увеличили представление данных, которые, по нашему мнению, более подходят для последующих приложений, таких как написанные человеком сценарии инструментов EDA. Кроме того, мы включили общедоступные данные домена за 1 эпоху. Подробности распределения токенов для обучения показаны в Таблице I.


B. Данные инструкции SFT


Во время контролируемой точной настройки (SFT) мы используем общий набор данных инструкций SFT для чата, который доступен для коммерческого использования. Набор данных состоит в основном из общедоступных наборов данных по инструкциям, включая OASST [19], FLAN [20], P3 [21] и небольшого количества собственных наборов данных широкой предметной области, включающих различные темы, такие как мозговой штурм, ответы на открытые вопросы, переписывание. , обобщение и т. д. Важно отметить, что данные инструкций SFT, которые мы здесь обсуждаем, ориентированы на общие задачи естественного языка и не содержат никакой информации или задач, связанных с последующими вариантами использования при проектировании микросхем. Всего этот набор данных содержит 128 000 обучающих выборок.


Кроме того, мы тщательно собрали набор данных инструкций для конкретной предметной области, чтобы привести модель в соответствие с последующими вариантами использования. Эти примеры были тщательно составлены экспертами в данной области и оформлены в виде одноразовых вопросов и ответов. В Таблице II показано количество нашего набора данных инструкций для конкретной предметной области. Стоит отметить, что общее количество обучающих выборок в наборе данных инструкций для конкретной предметной области довольно мало по сравнению с огромным объемом данных инструкций генеративного чата.


C. Автооценка


Чтобы быстро и количественно оценить точность различных моделей, мы установили критерии оценки, структурированные в виде форматов вопросов и ответов с множественным выбором для каждого варианта использования, разработанные так, чтобы точно соответствовать установленным критериям, таким как MMLU [22]. В процессе формулирования этих вопросов с несколькими вариантами ответов решающее значение имело сотрудничество с экспертами в предметной области. Цель заключалась в том, чтобы каждый вопрос включал хотя бы один сложный вариант ответа, тем самым создавая трудности для людей с ограниченными знаниями в предметной области. Особое внимание также было уделено предотвращению любого непреднамеренного загрязнения вопросов данными из нашего SFT для конкретной предметной области. В дополнение к тестам для каждого случая использования был создан дополнительный тест для общих знаний в области проектирования схем, охватывающий как аналоговые, так и цифровые темы проектирования. Количество вопросов с несколькими вариантами ответов для контрольной оценки показано в Таблице III.


Когда мы сообщаем о результатах по вышеуказанным тестам, мы берем средние результаты, полученные в результате пяти различных запусков, чтобы смягчить влияние дисперсии и шума в процессе тестирования. В каждой итерации используется набор из 5 примеров с вариациями, вносимыми в каждый отдельный запуск.


В дополнение к этим отраслевым критериям оценки мы также включаем широко используемые общедоступные академические тесты LLM. Кроме того, мы измеряем возможности модели по генерации кода, оценивая HumanEval [23] для Python и VerilogEval [12] для Verilog.


Этот документ доступен на arxiv под лицензией CC 4.0.