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.
Nous évaluons notre méthodologie de formation et les performances de nos applications dans cette section. Nous étudions les modèles 7B et 13B dans l'évaluation de la méthodologie de formation, et uniquement les modèles 13B dans l'évaluation des performances des applications. À titre de comparaison, nous évaluons également deux modèles de chat de base : LLaMA2-13B-Chat* et LLaMA2-70B-Chat. LLaMA2-13B-Chat* est le modèle de base LLaMA2 13B affiné avec notre ensemble de données d'instructions de chat à usage général, qui est différent du modèle LLaMA2-13B-Chat original formé avec un apprentissage par renforcement à partir de commentaires humains (RLHF). Nous avons choisi de le faire pour une comparaison équitable des modèles adaptés au domaine et des modèles de base dans le cadre de la même approche d'alignement de modèles. LLaMA2-70B-Chat est le modèle LLaMA2-Chat rendu public et formé avec RLHF, qui est considéré comme le modèle de chat open source (SOTA) de pointe.
A. Tokeniseur
Nous adaptons le tokenizer LLaMA2 (contenant 32 000 jetons) aux ensembles de données de conception de puces en utilisant le processus en quatre étapes décrit précédemment. Environ 9 000 nouveaux jetons sont ajoutés au tokenizer LLaMA2. Les tokeniseurs adaptés peuvent améliorer l'efficacité de la tokenisation de 1,6 % à 3,3 % sur divers ensembles de données de conception de puces, comme le montre la figure 5. Nous n'observons aucune évidence.
modifications apportées à l’efficacité du tokenizer sur les données publiques. Il est important de noter que nous n'avons pas observé de baisse significative de la précision du LLM sur les benchmarks publics lors de l'utilisation des tokenizers augmentés personnalisés, même avant DAPT.
B. Pré-formation adaptative au domaine
La figure 6 présente les résultats des modèles ChipNeMo sur le benchmark AutoEval pour le domaine de la conception de puces et les benchmarks académiques en domaine ouvert. Nos résultats de recherche peuvent être résumés comme suit :
Les modèles DAPT présentent une légère dégradation de la précision sur les références académiques en domaine ouvert.
DAPT exerce un impact positif substantiel sur les tâches au sein du domaine lui-même. Cet effet se manifeste par des améliorations significatives des connaissances internes en matière de conception ainsi que des connaissances générales en matière de conception de circuits.
L'utilisation de modèles fondamentaux plus grands et plus performants produit de meilleurs résultats zéro sur les tâches spécifiques à un domaine. De plus, l'utilisation de modèles de base supérieurs aboutit à des modèles de domaine améliorés après DAPT, conduisant à des performances accrues sur les tâches dans le domaine.
Les améliorations attribuées au DAPT avec les tâches dans le domaine présentent une corrélation positive avec la taille du modèle, les modèles plus grands démontrant des améliorations plus prononcées dans les performances des tâches spécifiques au domaine après le DAPT.
C. Études sur l'ablation et la formation
Pour nos études sur l'ablation, nous avons effectué plusieurs cycles de pré-formation adaptative au domaine. Nous fournissons de brefs résumés et renvoyons à l’Annexe B pour plus de détails.
Les différences entre la formation avec le tokenizer augmenté et le tokenizer original semblaient négligeables. Nous attribuons donc principalement la dégradation de la précision des références académiques aux données de domaine. De plus, la suppression de l’ensemble de données publiques n’a que légèrement régressé sur la plupart des tâches, y compris les benchmarks académiques, à l’exception du codage Verilog, où nous avons observé une différence notable. Cela suggère que l'inclusion des données GitHub Verilog a contribué à améliorer les capacités de codage de Verilog, en particulier lorsque les modèles de base manquaient de données suffisantes dans ce domaine.
Dans notre exploration, nous avons expérimenté l'utilisation d'un taux d'apprentissage plus élevé, comme dans CodeLLaMA [32]. Nous avons observé d’importants pics de perte d’entraînement lors des étapes initiales de formation. Bien que cette approche ait finalement conduit à une amélioration de la formation et à une perte de validation, nous avons noté des dégradations substantielles dans tous les critères spécifiques au domaine et académiques, à l'exception du codage. Nous émettons l’hypothèse qu’un taux d’apprentissage plus faible a joué un double rôle, facilitant la distillation des connaissances du domaine via DAPT tout en maintenant un équilibre qui ne s’éloigne pas trop du modèle de base, préservant ainsi les capacités générales du langage naturel.
Nous avons également exploré l'application du réglage précis des paramètres (PEFT) dans le contexte du pré-entraînement adaptatif au domaine (DAPT). Dans cette optique, nous avons mené deux expériences impliquant l'incorporation d'adaptateurs LoRA [16], introduisant des paramètres supplémentaires de 26,4 millions (petits) et 211,2 millions (grands) respectivement. Dans les deux cas, nos résultats ont révélé un écart de précision significatif sur les tâches dans le domaine par rapport à l'approche DAPT à paramètres complets. De plus, en comparant les résultats entre les petits et les grands modèles PEFT, nous avons observé une amélioration marginale de la précision des tâches dans le domaine, les grands modèles présentant une légère amélioration.
D. Coût de la formation
Tous les modèles ont suivi une formation utilisant 128 GPU A100. Nous estimons les coûts associés à la pré-formation adaptative de domaine pour ChipNeMo, comme illustré dans le tableau IV. Il convient de noter que DAPT représente moins de 1,5 % du coût global de la pré-formation d'un modèle fondamental à partir de zéro.
E. RAG et Chatbot Assistant Ingénierie
Nous avons créé un benchmark pour évaluer les performances de l'assistance par chat de conception, qui utilise la méthode RAG. Ce benchmark comprend 88 questions réparties en trois catégories : spécifications d'architecture/conception/vérification (Specs), documentation de régression du banc de test (Testbench) et documentation de l'infrastructure de construction (Build). Pour chaque question, nous précisons la réponse idéale ainsi que les paragraphes du document de conception qui contiennent les connaissances pertinentes pour la réponse. Ces questions sont créées manuellement par les concepteurs sur la base d'un ensemble de documents de conception servant de magasin de données pour la récupération. Il comprend environ 1,8 000 documents, segmentés en 67 000 passages, chacun contenant environ 512 caractères.
Tout d'abord, nous comparons notre modèle de récupération adapté au domaine avec Sentence Transformer [33] et e5_small_unsupervised [30] sur chaque catégorie. Chaque modèle récupère ses 8 meilleurs passages du magasin de données.
Les requêtes de la catégorie Spécifications sont dérivées directement de passages dans les documents, de sorte que leurs réponses sont souvent bien contenues dans un passage concis et répondent clairement à la requête.
D'un autre côté, les requêtes des catégories Testbench et Build ne sont pas directement dérivées des passages, de sorte que leurs réponses n'étaient souvent pas aussi apparentes dans les passages récupérés et nécessitaient plus de contexte (voir l'Annexe C pour des exemples détaillés). Cela contribue de manière significative à la différence de qualité de récupération entre les catégories.
Nous avons évalué plusieurs modèles ChipNeMo et LLaMA2 avec et sans RAG. Les résultats ont ensuite été notés par des évaluateurs humains sur une échelle de 10 points et présentés dans la figure 8.
Nous avons fait les observations suivantes :
• RAG augmente considérablement les scores humains. RAG améliore les scores de LLaMA2-13B-Chat*, ChipNeMo-13B-Chat et LLaMA2-70B-Chat de 3,82, 2,19 et 5,05, respectivement. Notez que les scores sont généralement plus élevés même avec un échec RAG, en particulier sur les modèles LLaMA2. Nous émettons l’hypothèse que le contexte supplémentaire dans le domaine contribue à améliorer les performances.
• ChipNeMo-13B-Chat surpasse LLaMA2-13B-Chat* de taille similaire dans les évaluations du modèle uniquement et RAG de 2,88 et 1,25, respectivement.
• ChipNeMo-13B-Chat avec RAG obtient le même score (7,4) que le modèle 5X plus grand LLaMA2-70B-Chat avec RAG, où LLaMA2-70B-Chat réussit mieux à extraire les réponses sur les hits ; cependant, l'adaptation du domaine compense les échecs.
• Domain SFT contribue à améliorer les performances de ChipNeMo-13B-Chat de 0,28 (avec RAG) et de 0,33 (sans RAG).
Les résultats complets de l’évaluation de tous les modèles sont présentés à l’annexe D.
F. Génération de scripts EDA
Afin d'évaluer notre modèle sur la tâche de génération de script EDA, nous avons créé deux types différents de benchmarks. Le premier est un ensemble de tâches de difficulté « Facile » et « Moyenne » (solutions de 1 à 4 lignes) qui peuvent être évaluées sans intervention humaine en les comparant à une réponse en or. En raison du travail requis pour créer et évaluer ces benchmarks, nous disposons uniquement de cet ensemble d'évaluation pour notre tâche Python. Le deuxième ensemble de tâches (« Difficile ») provient de scénarios d’utilisation réels choisis par nos ingénieurs. Ces tâches sont beaucoup plus difficiles et nécessitent des dizaines de lignes à résoudre. Parce qu'ils sont difficiles à évaluer de manière automatique, nous avons demandé à des ingénieurs humains de juger de l'exactitude entre 0 % et 100 %. La taille de ces repères est décrite dans le tableau V. Des travaux sont en cours pour augmenter la taille et la portée de ces repères afin de nous permettre d'améliorer davantage ces modèles.
Nous avons découvert que nos modèles étaient incapables de répondre à certaines de nos tâches les plus difficiles. Les tâches nécessitaient la connaissance de nombreuses API d'outils et le modèle semblait incapable de décider des bonnes API tout en gardant le flux de contrôle correctement organisé. Pour atténuer ce problème, nous avons ajouté un contexte organisé par l'homme à l'invite, spécifique à chaque question. Ce contexte contenait des explications sur différentes fonctions ou attributs nécessaires pour écrire correctement le script souhaité. Nous n'avons fourni cela que pour la catégorie de référence « Difficile avec contexte ». Cela nous permet également d'étudier l'effet possible d'une solution basée sur la récupération, que nous laissons à des travaux futurs.
Comme le montrent les résultats de l'ablation de la figure 9, DAPT et SFT de domaine étaient importants pour notre problème. Sans DAPT, le modèle avait peu ou pas de compréhension des API sous-jacentes et fonctionnait mal sur les benchmarks évalués automatiquement. Domain SFT a encore amélioré les résultats. Nous pensons que cela est dû au fait que nos données SFT de domaine aident à guider le modèle pour présenter le script final de la manière la plus directement applicable.
Un résultat intéressant est le taux de réussite du LLaMA2-70B aux tests « difficile avec contexte ». Il fonctionne mieux que la plupart des modèles sur l'outil Python mais moins bien sur l'outil Tcl. Cela est probablement dû au fait que, lorsqu'elle est fournie avec le contexte correct, la capacité générale supérieure de codage Python de LLaMA2-70B est capable de résoudre de nouveaux problèmes pour lesquels il n'a pas été formé. Cependant, le modèle LLaMA2-70B est incapable de généraliser sa capacité de codage à l'outil Tcl, probablement parce qu'il n'a pas été exposé à un grand volume de code Tcl. Cela met en évidence l’avantage de DAPT lorsqu’il s’agit de langages de programmation propriétaires ou à faible volume.
G. Résumé et analyse des bogues
Pour évaluer nos modèles de résumé et d'analyse des bogues, nous disposons d'un ensemble de 40 bogues qui sont des candidats idéaux pour la synthèse. Cela inclut un long historique de commentaires ou d'autres données qui rendent les bogues difficiles à résumer rapidement pour un humain. Nous demandons ensuite aux humains d'évaluer les deux modes de résumé ainsi que l'affectation de bogues suggérée par le LLM. La métrique d'évaluation est basée sur une échelle de Likert à 7 points. Nos résultats sont inclus dans la figure 10.
Les modèles ChipNeMo-13B-Chat surpassent le modèle de base LLaMA2-13B-Chat* pour les trois tâches, améliorant le score Likert de 7 points de 0,82, 1,09 et 0,61 pour le résumé technique, le résumé managérial et la recommandation d'affectation, respectivement. Domain SFT améliore également considérablement les performances par rapport au domaine SFT en matière de synthèse managériale et d'attribution des tâches.
Nous émettons l'hypothèse que contrairement à la tâche de synthèse technique dont la qualité et le contenu technique dépendent davantage de la compréhension du modèle de la sémantique du langage naturel, le résumé managérial nécessite que le modèle comprenne comment résumer les données d'entrée tout en conservant les noms du personnel/ingénieur clé. Cela nécessite un réglage plus minutieux du LLM, basé sur des instructions.
Le modèle LLaMA2-70B-Chat fonctionne également très bien sur les trois tâches, battant le modèle ChipNeMo-13B sur toutes les tâches. Notez que le modèle LLaMA2-70B-Chat souffre également de défis de contexte long avec une taille de contexte de 4096, nous pensons que les schémas de regroupement et de combinaison (hiérarchiques et incrémentaux) sont efficaces, le choix des invites pédagogiques à différentes étapes du résumé, le choix de l'invite lors de l'attribution des tâches, et le formatage/prétraitement des données brutes aident à contourner le défi du contexte long et permettent à LLaMA2-70B-Chat d'atteindre des scores élevés même sans DAPT et SFT de domaine.
Cet article est disponible sur arxiv sous licence CC 4.0.