paint-brush
ChipNeMo: LLM adaptados al dominio para diseño de chips: conjunto de datospor@textmodels

ChipNeMo: LLM adaptados al dominio para diseño de chips: conjunto de datos

Demasiado Largo; Para Leer

Los investigadores presentan ChipNeMo, que utiliza la adaptación de dominio para mejorar los LLM para el diseño de chips, logrando una reducción del tamaño del modelo de hasta cinco veces con un mejor rendimiento.
featured image - ChipNeMo: LLM adaptados al dominio para diseño de chips: conjunto de datos
Writings, Papers and Blogs on Text Models HackerNoon profile picture
0-item

Autores:

(1) Mingjie Liu, NVIDIA {Contribución igual};

(2) Teodor-Dumitru Ene, NVIDIA {Contribución igual};

(3) Robert Kirby, NVIDIA {Contribución igual};

(4) Chris Cheng, NVIDIA {Contribución igual};

(5) Nathaniel Pinckney, NVIDIA {Contribución igual};

(6) Rongjian Liang, NVIDIA {Contribución igual};

(7) Jonás 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.

Tabla de enlaces

II. CONJUNTO DE DATOS

A. Conjunto de datos DAPT


Durante el entrenamiento previo adaptativo de dominio (DAPT), ensamblamos un conjunto de datos a partir de una combinación de fuentes de datos específicas del diseño de chips patentados de NVIDIA y conjuntos de datos disponibles públicamente.


Conjuntos de datos de diseño de chips: nuestro conjunto de datos interno consta de una amplia gama de fuentes de texto pertinentes para el diseño de chips, que abarcan diseño, verificación, infraestructura y documentación interna. La Tabla I proporciona un desglose de los datos recopilados después del filtrado y la cantidad correspondiente de tokens utilizando el tokenizador LLaMA2. Construimos el conjunto de datos recopilando todos los datos internos relevantes, luego filtrando por tipo de archivo, según las extensiones de nombre de archivo y distinguiendo entre contenido generado por máquina y contenido escrito por humanos. Aunque evaluamos tres casos de uso específicos, no limitamos específicamente el conjunto de datos a fuentes que se sabe que son relevantes para estos casos de uso, ya que creíamos que incorporar conocimiento de dominio adicional mejoraría el rendimiento. Después de la recopilación, limpieza y filtrado, el corpus de entrenamiento de datos internos tiene 23,1 mil millones de tokens. En el Apéndice A se tratan más detalles del proceso de recopilación de datos.


Conjuntos de datos públicos: aumentamos los datos específicos del diseño de chips con una muestra de datos disponibles públicamente de diversas fuentes, una práctica común en el desarrollo de grandes modelos de lenguaje fundamentales. Nuestro enfoque fue reutilizar datos públicos de capacitación de otros modelos lingüísticos, con la estipulación de que deben ser accesibles públicamente y compatibles con el código abierto. Estos conjuntos de datos exhiben un alto grado de correlación con los datos de preentrenamiento utilizados en LLaMA2 [5], con la intención de preservar el conocimiento general y las capacidades del lenguaje natural durante DAPT. Los conjuntos de datos públicos utilizados por ChipNeMo se pueden clasificar en dos grupos, lenguaje natural y código. Para el componente de lenguaje natural, utilizamos datos de Wikipedia [17], ya que son ampliamente considerados por su alta calidad de datos. Para el código, aprovechamos los datos de GitHub [18], centrándonos en lenguajes de programación que también están presentes en nuestro conjunto de datos de diseño de chips de datos internos, como C++, Python y Verilog. Para garantizar que el conjunto de datos general sea representativo de las distribuciones previas al entrenamiento, realizamos una operación de submuestreo que da como resultado que aproximadamente el 9,2 % del total de tokens de entrenamiento se muestreen de estos conjuntos de datos públicos, con una representación equilibrada del lenguaje natural y el código.


Combinación de datos: una proporción significativa de los datos de dominio que recopilamos se compone de código sin anotaciones de diversos orígenes. En un esfuerzo por mejorar la comprensión del modelo del conocimiento específico del dominio, realizamos una reducción de los datos del código y al mismo tiempo aumentamos el muestreo de los datos del lenguaje natural, específicamente la documentación de diseño, durante un lapso de 2 a 4 épocas de entrenamiento. También aumentamos la representación de los datos que consideramos más pertinentes para las aplicaciones posteriores, como los scripts de herramientas EDA escritos por humanos. Además, incorporamos datos de dominio disponibles públicamente para 1 época. Los detalles de la distribución de tokens para la capacitación se muestran en la Tabla I.


B. Datos de la instrucción SFT


Durante el ajuste fino supervisado (SFT), empleamos un conjunto de datos de instrucciones SFT de chat general al que se puede acceder para uso comercial. El conjunto de datos se compone en gran medida de instrucciones disponibles públicamente que siguen conjuntos de datos que incluyen OASST [19], FLAN [20], P3 [21] y una pequeña cantidad de un conjunto de datos patentado de dominio amplio que comprende varios temas como lluvia de ideas, respuesta a preguntas abiertas, reescritura. , resumen, etc. Es importante tener en cuenta que los datos de instrucciones SFT que analizamos aquí se centran en tareas generales de lenguaje natural y no contienen ninguna información ni tareas relacionadas con los casos de uso posteriores en el diseño de chips. En total, este conjunto de datos comprende 128.000 muestras de entrenamiento.


Además, reunimos meticulosamente un conjunto de datos de instrucciones específicas de un dominio para alinear el modelo con los casos de uso posteriores. Estos ejemplos han sido elaborados meticulosamente por expertos en la materia y tienen el formato de preguntas y respuestas de un solo turno. La Tabla II muestra la cantidad de nuestro conjunto de datos de instrucciones específicas de dominio. Vale la pena señalar que la cantidad total de muestras de entrenamiento en el conjunto de datos de instrucciones específicas del dominio es bastante pequeña en comparación con la gran cantidad de datos de instrucciones de chat generativos.


C. Autoevaluación


Para evaluar rápida y cuantitativamente la precisión de varios modelos, establecimos criterios de evaluación estructurados como formatos de preguntas y respuestas de opción múltiple para cada caso de uso, diseñados para alinearse estrechamente con los puntos de referencia establecidos, como MMLU [22]. En el proceso de formulación de estas preguntas de opción múltiple, la colaboración con expertos en el campo fue fundamental. El objetivo era garantizar que cada pregunta incluyera al menos una opción de respuesta compleja, lo que planteaba un desafío para las personas con experiencia limitada en el campo. También se prestó especial atención para evitar cualquier contaminación involuntaria de las preguntas con datos de nuestra SFT de dominio específico. Además de los puntos de referencia por caso de uso, se creó un punto de referencia adicional para el conocimiento general del diseño de circuitos, que cubre temas de diseño tanto analógico como digital. El número de preguntas de opción múltiple para la evaluación comparativa se muestra en la Tabla III.


Cuando informamos los resultados de los puntos de referencia anteriores, tomamos los resultados promedio obtenidos de cinco ejecuciones distintas para mitigar los efectos de la variación y el ruido en el proceso de prueba. Cada iteración emplea un conjunto de ejemplos de 5 disparos, con variaciones introducidas en cada ejecución individual.


Además de estos puntos de referencia de evaluación de dominios específicos, también incluimos puntos de referencia académicos de LLM disponibles públicamente y de uso común. Además, medimos las capacidades de generación de código del modelo evaluando HumanEval [23] para Python y VerilogEval [12] para Verilog.


Este documento está disponible en arxiv bajo licencia CC 4.0.