著者:
(1)Mingjie Liu、NVIDIA {同等の貢献}
(2)Teodor-Dumitru Ene、NVIDIA {同等の貢献}
(3)ロバート・カービー、NVIDIA {同等の貢献}
(4)クリス・チェン、NVIDIA {同等の貢献}
(5)ナサニエル・ピンクニー、NVIDIA {平等な貢献}
(6)Rongjian Liang、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)Jiashang Hu、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) Pratik P Suthar、NVIDIA;
(37)ヴァルン・テジ、NVIDIA
(38)ウォーカー・ターナー、NVIDIA
(39)Kaizhe Xu、NVIDIA;
(40)レン・ハオシン、NVIDIA。
A. DAPTデータセット
ドメイン適応型事前トレーニング (DAPT) 中に、NVIDIA 独自のチップ設計固有のデータ ソースと公開されているデータセットの組み合わせからデータセットを組み立てます。
チップ設計データセット:弊社の内部データセットは、設計、検証、インフラストラクチャ、および内部ドキュメントにわたる、チップ設計に関連するさまざまなテキスト ソースで構成されています。表 I は、フィルタリング後に収集されたデータの内訳と、LLaMA2 トークナイザーを使用した対応するトークン数を示しています。データセットは、関連するすべての内部データを収集し、ファイル名拡張子に基づいてファイルの種類でフィルタリングし、機械生成コンテンツと人間が作成したコンテンツを区別することで構築されています。3 つの特定のユース ケースで評価しましたが、追加のドメイン知識を組み込むことでパフォーマンスが向上すると考えたため、データセットをこれらのユース ケースに関連することがわかっているソースに限定しませんでした。収集、クリーニング、フィルタリングの後、内部データ トレーニング コーパスには 231 億のトークンが含まれています。データ収集プロセスの詳細については、付録 A で説明します。
公開データセット:基礎となる大規模言語モデルの開発では一般的な方法である、さまざまなソースから公開されているデータのサンプルを使用して、チップ設計固有のデータを補強します。私たちのアプローチは、他の言語モデルからの公開トレーニング データを再利用することでした。ただし、公開アクセス可能で、オープン ソース化と互換性があるという条件付きです。これらのデータセットは、DAPT 中に一般的な知識と自然言語機能を保持することを目的として、LLaMA2 [5] で使用される事前トレーニング データと高い相関関係を示しています。ChipNeMo で使用される公開データセットは、自然言語とコードの 2 つのグループに分類できます。自然言語コンポーネントについては、データ品質が高いことで広く知られている Wikipedia データ [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のトレーニングサンプルで構成されています。
さらに、モデルを下流のユースケースに合わせるために、ドメイン固有の指示データセットを細心の注意を払って組み立てました。これらの例は、主題の専門家によって細心の注意を払って作成され、1 ターンの質問と回答としてフォーマットされています。表 II は、ドメイン固有の指示データセットの量を示しています。ドメイン固有の指示データセットのトレーニング サンプルの総数は、生成チャット指示データの膨大な量と比較すると非常に少ないことに注意してください。
C. 自動評価
さまざまなモデルの精度を迅速かつ定量的に評価するために、各ユースケースに対して、MMLU [22]などの確立されたベンチマークと密接に一致するように設計された、複数選択の質問と回答の形式で構成された評価基準を確立しました。これらの複数選択の質問を策定するプロセスでは、ドメインの専門家とのコラボレーションが極めて重要でした。目標は、各質問に少なくとも1つの複雑な回答の選択肢を含め、ドメインの専門知識が限られている個人にとって挑戦的なものにすることです。また、ドメイン固有のSFTのデータで質問が誤って汚染されないように細心の注意が払われました。ユースケースごとのベンチマークに加えて、アナログとデジタルの両方の設計トピックをカバーする一般的な回路設計知識に関する追加のベンチマークが作成されました。評価ベンチマークの複数選択の質問の数を表IIIに示します。
上記のベンチマークの結果を報告する際、テスト プロセスにおける変動やノイズの影響を軽減するために、5 回の個別の実行から得られた平均結果を採用しています。各反復では、5 ショットの例のセットが使用され、個々の実行ごとに変動が導入されます。
これらのドメイン固有の評価ベンチマークに加えて、一般的に使用されている公開LLM学術ベンチマークも含めます。さらに、Pythonの場合はHumanEval [23]、Verilogの場合はVerilogEval [12]を評価することで、モデルのコード生成能力を測定します。
この論文はCC 4.0ライセンスの下でarxivで公開されています。