paint-brush
ChipNeMo : LLM adaptés au domaine pour la conception de puces : ensemble de donnéespar@textmodels

ChipNeMo : LLM adaptés au domaine pour la conception de puces : ensemble de données

Trop long; Pour lire

Les chercheurs présentent ChipNeMo, qui utilise l'adaptation de domaine pour améliorer les LLM pour la conception de puces, permettant ainsi de réduire la taille du modèle jusqu'à 5 fois avec de meilleures performances.
featured image - ChipNeMo : LLM adaptés au domaine pour la conception de puces : ensemble de données
Writings, Papers and Blogs on Text Models HackerNoon profile picture
0-item

Auteurs:

(1) Mingjie Liu, NVIDIA {Contribution égale} ;

(2) Teodor-Dumitru Ene, NVIDIA {Contribution égale} ;

(3) Robert Kirby, NVIDIA {Contribution égale} ;

(4) Chris Cheng, NVIDIA {Contribution égale} ;

(5) Nathaniel Pinckney, NVIDIA {Contribution égale} ;

(6) Rongjian Liang, NVIDIA {Contribution égale} ;

(7) Jonah Alben, NVIDIA ;

(8) Himyanshu Anand, NVIDIA ;

(9) Sanmitra Banerjee, NVIDIA ;

(10) Ismet Bayraktaroglu, NVIDIA ;

(11) Bonita Bhaskaran, NVIDIA ;

(12) Bryan Catanzaro, NVIDIA ;

(13) Arjun Chaudhuri, NVIDIA ;

(14) Sharon Clay, NVIDIA ;

(15) Bill Dally, NVIDIA ;

(16) Laura Dang, NVIDIA ;

(17) Parikshit Deshpande, NVIDIA ;

(18) Siddhanth Dhodhi, NVIDIA ;

(19) Sameer Halepete, NVIDIA ;

(20) Eric Hill, NVIDIA ;

(21) Jiashang Hu, NVIDIA ;

(22) Sumit Jain, NVIDIA ;

(23) Brucek Khailany, NVIDIA ;

(24) George Kokai, NVIDIA ;

(25) Kishor Kunal, NVIDIA ;

(26) Xiaowei Li, NVIDIA ;

(27) Charley Lind, NVIDIA ;

(28) Hao Liu, NVIDIA ;

(29) Stuart Oberman, NVIDIA ;

(30) Sujeet Omar, NVIDIA ;

(31) Sreedhar Pratty, NVIDIA ;

(23) Jonathan Raiman, NVIDIA ;

(33) Ambar Sarkar, NVIDIA ;

(34) Zhengjiang Shao, NVIDIA ;

(35) Hanfei Sun, NVIDIA ;

(36) Pratik P Suthar, NVIDIA ;

(37) Varun Tej, NVIDIA ;

(38) Walker Turner, NVIDIA ;

(39) Kaizhe Xu, NVIDIA ;

(40) Haoxing Ren, NVIDIA.

Tableau des liens

II. BASE DE DONNÉES

A. Ensemble de données DAPT


Au cours de la pré-formation adaptative au domaine (DAPT), nous assemblons un ensemble de données à partir d'une combinaison de sources de données spécifiques à la conception de puces propriétaires NVIDIA et d'ensembles de données accessibles au public.


Ensembles de données de conception de puces : notre ensemble de données interne se compose d'une gamme diversifiée de sources de texte pertinentes pour la conception de puces, la conception étendue, la vérification, l'infrastructure et la documentation interne. Le tableau I fournit une répartition des données collectées après filtrage et le nombre correspondant de jetons utilisant le tokenizer LLaMA2. Nous construisons l'ensemble de données en rassemblant toutes les données internes pertinentes, puis en filtrant par type de fichier, en fonction des extensions de nom de fichier et en distinguant le contenu généré par la machine et celui écrit par l'homme. Bien que nous ayons évalué trois cas d'utilisation spécifiques, nous n'avons pas spécifiquement limité l'ensemble de données aux sources connues pour être pertinentes pour ces cas d'utilisation, car nous pensions que l'intégration de connaissances supplémentaires dans le domaine améliorerait les performances. Après collecte, nettoyage et filtrage, le corpus interne de formation des données compte 23,1 milliards de jetons. De plus amples détails sur le processus de collecte de données sont fournis à l'annexe A.


Ensembles de données publics : nous complétons les données spécifiques à la conception des puces avec un échantillon de données accessibles au public provenant de diverses sources, une pratique courante dans le développement de grands modèles de langage fondamentaux. Notre approche consistait à réutiliser les données publiques de formation provenant d'autres modèles de langage, en stipulant qu'elles devaient être accessibles au public et compatibles avec l'open source. Ces ensembles de données présentent un degré élevé de corrélation avec les données de pré-entraînement utilisées dans LLaMA2 [5], dans le but de préserver les connaissances générales et les capacités en langage naturel pendant le DAPT. Les ensembles de données publiques utilisés par ChipNeMo peuvent être classés en deux groupes : le langage naturel et le code. Pour la composante langage naturel, nous nous appuyons sur les données de Wikipédia [17], car elles sont largement considérées pour leur haute qualité de données. Pour le code, nous exploitons les données GitHub [18], en nous concentrant sur les langages de programmation également présents dans notre ensemble de données de conception de puces de données internes, tels que C++, Python et Verilog. Pour garantir que l'ensemble de données global est représentatif des distributions de pré-formation, nous effectuons une opération de sous-échantillonnage qui aboutit à ce qu'environ 9,2 % du total des jetons de formation soient échantillonnés à partir de ces ensembles de données publics, avec une représentation équilibrée du langage naturel et du code.


Mélange de données : une proportion importante des données de domaine que nous avons collectées est composée de code non annoté provenant de diverses origines. Dans le but d'améliorer la compréhension du modèle des connaissances spécifiques à un domaine, nous avons effectué un sous-échantillonnage des données de code tout en suréchantillonnant simultanément les données en langage naturel, en particulier la documentation de conception, sur une période de 2 à 4 époques de formation. Nous avons également augmenté la représentation des données que nous jugeons plus pertinentes pour les applications en aval, telles que les scripts d'outils EDA écrits par des humains. De plus, nous avons incorporé des données de domaine accessibles au public pour 1 époque. Les détails de la distribution des jetons pour la formation sont présentés dans le tableau I.


B. Données des instructions SFT


Lors du réglage fin supervisé (SFT), nous utilisons un ensemble de données d'instructions SFT de chat général accessible pour un usage commercial. L'ensemble de données est composé en grande partie d'instructions accessibles au public suivant des ensembles de données, notamment OASST [19], FLAN [20], P3 [21] et d'une petite quantité d'un vaste ensemble de données propriétaires comprenant divers sujets tels que le brainstorming, les réponses aux questions ouvertes, la réécriture. , résumé, etc. Il est important de noter que les données d'instruction SFT dont nous discutons ici se concentrent sur les tâches générales en langage naturel et ne contiennent aucune information ou tâche liée aux cas d'utilisation en aval dans la conception de puces. Au total, cet ensemble de données comprend 128 000 échantillons d’apprentissage.


De plus, nous avons méticuleusement assemblé un ensemble de données d'instructions spécifiques au domaine pour aligner le modèle sur les cas d'utilisation en aval. Ces exemples ont été méticuleusement élaborés par des experts en la matière et sont formatés sous forme de questions et réponses à tour unique. Le tableau II décrit la quantité de notre ensemble de données d'instructions spécifiques à un domaine. Il convient de noter que le nombre total d'échantillons de formation dans l'ensemble de données d'instructions spécifiques au domaine est assez petit par rapport à la quantité importante de données d'instructions de chat génératives.


C. Évaluation automatique


Afin d'évaluer rapidement et quantitativement l'exactitude de divers modèles, nous avons établi des critères d'évaluation structurés sous forme de formats de questions et réponses à choix multiples pour chaque cas d'utilisation, conçus pour s'aligner étroitement sur les références établies, telles que MMLU (22). Dans le processus de formulation de ces questions à choix multiples, la collaboration avec des experts du domaine a été essentielle. L’objectif était de s’assurer que chaque question incluait au moins un choix de réponse complexe, posant ainsi un défi aux personnes ayant une expertise limitée dans le domaine. Une attention particulière a également été accordée pour éviter toute contamination accidentelle des questions par des données de notre SFT spécifique à un domaine. En plus des tests de référence par cas d'utilisation, un test de référence supplémentaire a été créé pour les connaissances générales en conception de circuits, couvrant à la fois les sujets de conception analogique et numérique. Le nombre de questions à choix multiples pour le critère d'évaluation est indiqué dans le tableau III.


Lorsque nous rapportons les résultats des tests ci-dessus, nous prenons les résultats moyens obtenus à partir de cinq analyses distinctes afin d'atténuer les effets de la variance et du bruit dans le processus de test. Chaque itération utilise un ensemble d'exemples de 5 plans, avec des variations introduites dans chaque exécution individuelle.


En plus de ces critères d'évaluation spécifiques à un domaine, nous incluons également des critères académiques LLM couramment utilisés et accessibles au public. De plus, nous mesurons les capacités de génération de code du modèle, en évaluant HumanEval [23] pour Python et VerilogEval [12] pour Verilog.


Cet article est disponible sur arxiv sous licence CC 4.0.