paint-brush
ChipNeMo: LLMs adaptados ao domínio para design de chips: resumo e introduçãopor@textmodels
177 leituras

ChipNeMo: LLMs adaptados ao domínio para design de chips: resumo e introdução

Muito longo; Para ler

Os pesquisadores apresentam o ChipNeMo, usando adaptação de domínio para aprimorar LLMs para design de chips, alcançando uma redução de até 5x no tamanho do modelo com melhor desempenho.
featured image - ChipNeMo: LLMs adaptados ao domínio para design de chips: resumo e introdução
Writings, Papers and Blogs on Text Models HackerNoon profile picture
0-item

Autores:

(1) Mingjie Liu, NVIDIA {Contribuição igual};

(2) Teodor-Dumitru Ene, NVIDIA {Contribuição igual};

(3) Robert Kirby, NVIDIA {Contribuição igual};

(4) Chris Cheng, NVIDIA {Contribuição igual};

(5) Nathaniel Pinckney, NVIDIA {Contribuição igual};

(6) Rongjian Liang, NVIDIA {Contribuição igual};

(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.

Tabela de Links


Abstrato

ChipNeMo tem como objetivo explorar as aplicações de modelos de linguagem grande (LLMs) para design de chips industriais. Em vez de implantar diretamente LLMs comerciais ou de código aberto prontos para uso, adotamos as seguintes técnicas de adaptação de domínio: tokenizadores personalizados, pré-treinamento contínuo adaptativo de domínio, ajuste fino supervisionado (SFT) com instruções específicas de domínio e domínio- modelos de recuperação adaptados. Avaliamos esses métodos em três aplicativos LLM selecionados para design de chips: um chatbot assistente de engenharia, geração de script EDA e resumo e análise de bugs. Nossos resultados mostram que essas técnicas de adaptação de domínio permitem melhorias significativas no desempenho do LLM em relação aos modelos básicos de uso geral nas três aplicações avaliadas, permitindo uma redução de até 5x no tamanho do modelo com desempenho semelhante ou melhor em uma variedade de tarefas de design. Nossas descobertas também indicam que ainda há espaço para melhorias entre nossos resultados atuais e os resultados ideais. Acreditamos que uma investigação mais aprofundada de abordagens LLM adaptadas ao domínio ajudará a preencher esta lacuna no futuro.

I. INTRODUÇÃO

Nas últimas décadas, algoritmos e ferramentas de Automação de Projeto Eletrônico (EDA) proporcionaram enormes ganhos na produtividade do projeto de chips. Juntamente com os aumentos exponenciais nas densidades dos transistores fornecidos pela lei de Moore, a EDA permitiu o desenvolvimento de projetos de SoC complexos e ricos em recursos com bilhões de transistores. Mais recentemente, os pesquisadores têm explorado maneiras de aplicar IA aos algoritmos EDA e ao processo de design de chips para melhorar ainda mais a produtividade do design de chips [1] [2] [3]. No entanto, muitas tarefas demoradas de design de chips que envolvem interface com linguagens naturais ou linguagens de programação ainda não foram automatizadas. Os mais recentes avanços em modelos de linguagem grande (LLM) comerciais (ChatGPT, Bard, etc.) e de código aberto (Vicuna [4], LLaMA2 [5], etc.) oferecem uma oportunidade sem precedentes para ajudar a automatizar essas tarefas de design de chips relacionadas à linguagem. Na verdade, as primeiras pesquisas acadêmicas [6] [7] [8] exploraram aplicações de LLMs para gerar RTL que podem executar tarefas simples em pequenos módulos de design, bem como gerar scripts para ferramentas EDA.


Acreditamos que os LLMs têm o potencial de ajudar a produtividade do design de chips usando IA generativa para automatizar muitas tarefas de design de chips relacionadas à linguagem, como geração de código, respostas a questões de engenharia por meio de uma interface de linguagem natural, análise §Contribuição igual e geração de relatórios e triagem de bugs . Neste estudo, nos concentramos nestas três aplicações específicas de LLM: um chatbot assistente de engenharia para engenheiros de design de arquitetura e GPU ASIC, que entende projetos internos de HW e é capaz de explicar tópicos complexos de design; Geração de scripts EDA para duas ferramentas específicas de domínio baseadas em Python e Tcl para tarefas de análise de tempo VLSI especificadas em inglês; resumo e análise de bugs como parte de um sistema interno de rastreamento de bugs e problemas.


Embora LLMs de uso geral treinados em grandes quantidades de dados da Internet exibam capacidades notáveis em tarefas generativas de IA em diversos domínios (como demonstrado por Bubeck et al. em [9]), trabalhos recentes como BloombergGPT [10] e BioMedLLM [11] demonstram que os modelos LLM específicos de domínio podem superar um modelo de uso geral em tarefas específicas de domínio. No domínio de design de hardware, [6] [12] mostraram que LLMs de código aberto (CodeGen [13]) ajustados em dados Verilog adicionais podem superar os modelos OpenAI de última geração. Personalizar LLMs dessa maneira também evita riscos de segurança associados ao envio de dados proprietários de design de chips para LLMs de terceiros por meio de APIs. No entanto, seria proibitivamente caro treinar do zero modelos específicos de domínio para cada domínio, já que isso geralmente requer milhões de horas de treinamento de GPU. Para treinar modelos específicos de domínio de maneira econômica, propomos combinar as seguintes técnicas: Pré-treinamento adaptativo de domínio (DAPT) [14] de modelos básicos com tokenizadores adaptados ao domínio, alinhamento do modelo usando instruções gerais e específicas do domínio e recuperação- geração aumentada (RAG) [15] com um modelo de recuperação adaptado ao domínio treinado.


Conforme mostrado na Figura 1, nossa abordagem é começar com um modelo básico básico e aplicar o DAPT seguido pelo ajuste fino supervisionado (SFT). O DAPT, também conhecido como pré-treinamento contínuo com dados no domínio, demonstrou ser eficaz em áreas como publicações, notícias e análises biomédicas e de ciência da computação. Em nosso caso, construímos nosso conjunto de dados de pré-treinamento específico de domínio a partir de uma coleção de código proprietário relacionado a hardware (por exemplo, software, RTL, bancos de testes de verificação, etc.) e conjuntos de dados de linguagem natural (por exemplo, especificações de hardware, documentação, etc.). Limpamos e pré-processamos o conjunto de dados brutos e, em seguida, pré-treinamos continuamente um modelo básico com os dados específicos do domínio. Chamamos o modelo resultante de ChipNeMo


Figura 1: Fluxo de treinamento ChipNeMo


Modelo de Fundação. O DAPT é feito com uma fração dos tokens usados no pré-treinamento e é muito mais barato, exigindo apenas alguns milhares de horas de GPU. Conforme descrito na Seção V, consideramos esta abordagem mais eficaz do que técnicas de Treinamento Eficiente em Parâmetros (PEFT), como LoRA [16], para nossos casos de uso.


Os tokenizadores LLM convertem texto em sequências de tokens para treinamento LLM. Um tokenizador específico de domínio melhora a eficiência da tokenização adaptando regras e padrões para termos específicos de domínio, como palavras-chave comumente encontradas em RTL. Para o DAPT, não podemos treinar novamente um novo tokenizador específico de domínio do zero, pois isso tornaria o modelo básico inválido. Em vez de restringir o ChipNeMo ao tokenizer de uso geral pré-treinado usado pelo modelo básico, adaptamos o tokenizer pré-treinado ao nosso conjunto de dados de design de chip, adicionando apenas novos tokens para termos específicos de domínio.


Os modelos básicos ChipNeMo são modelos de conclusão que requerem ajuste fino supervisionado (SFT) para se adaptar a tarefas como chat. Usamos conjuntos de dados de instruções de bate-papo de uso geral amplamente disponíveis publicamente para bate-papo multiturno, juntamente com uma pequena quantidade de conjuntos de dados de instruções específicos de domínio para realizar SFT no modelo básico ChipNeMo, que produz o modelo ChipNeMo Chat. Observamos que o SFT com um conjunto de dados de instruções de bate-papo de uso geral é adequado para alinhar os modelos básicos do ChipNeMo com consultas no domínio de design de chips. Também adicionamos uma pequena quantidade de dados de instruções SFT específicas de tarefas, o que melhora ainda mais o alinhamento. Treinamos vários modelos ChipNeMo Foundation e Chat com base em variantes de modelos LLaMA2 usados como modelo básico.


Para melhorar o desempenho do aplicativo chatbot do assistente de engenharia, também utilizamos a Retrieval Augmented Generation (RAG). RAG é uma abordagem aberta para fornecer aos LLMs um contexto preciso para as consultas dos usuários. Ele recupera conhecimento relevante no domínio de seu armazenamento de dados para aumentar a geração de resposta dada uma consulta do usuário. Este método mostra uma melhoria significativa na fundamentação do modelo no contexto de uma questão específica. Crucialmente, observamos melhorias significativas na taxa de acerto de recuperação ao ajustar um modelo de recuperação pré-treinado com dados de domínio. Isso levou a melhorias ainda maiores na qualidade do modelo.


Destacamos as seguintes contribuições e descobertas relacionadas à adaptação de LLMs ao domínio de design de chips:


• Demonstramos a eficácia do LLM adaptado ao domínio em três casos de uso: um chatbot assistente de engenharia, geração de script de ferramenta EDA e resumo e análise de bugs. Alcançamos uma pontuação de 7,4 em uma escala de 10 pontos para respostas de chatbot de assistente de engenharia com base em avaliações de especialistas, alcançamos mais de 50% de acerto na geração de scripts EDA e uma classificação de avaliação de especialistas de 4 a 5 em uma escala de 7 pontos para resumos e identificação de tarefas tarefas.


• Os modelos ChipNeMo adaptados ao domínio superam dramaticamente todos os LLMs vanilla avaliados tanto em benchmarks AutoEval específicos de domínio de múltipla escolha quanto em avaliações humanas para aplicativos.


• Para tarefas onde é possível que o modelo gere texto a partir do contexto de prompt (por exemplo, bate-papo com acessos RAG, resumo, geração de código com documentação fornecida), a adaptação de domínio fecha a lacuna entre um modelo LLaMA2 70B de última geração e um modelo 13B muito menor (um pequeno custo incremental de treinamento permite uma redução de parâmetros de até 5x para reduzir o custo de inferência).


• Tokenizers personalizados reduzem a contagem de tokens DAPT em até 3,3% sem prejudicar a eficácia dos aplicativos.


• SFT em instruções adicionais específicas de domínio de 1,1K melhora significativamente a proficiência dos aplicativos em até 0,33 em uma escala de 10 pontos, 18% de correção e 0,79 em uma escala de 7 pontos em chatbot de assistente de engenharia, geração de scripts EDA e resumo de bugs e análise, respectivamente.


• O ajuste fino de nosso modelo de recuperação ChipNeMo com dados específicos de domínio melhora a taxa de acerto do recuperador em 30% em relação a um recuperador de última geração pré-treinado, melhorando, por sua vez, a qualidade geral das respostas RAG.


O artigo está organizado da seguinte forma. A Seção II descreve nosso conjunto de dados e benchmarks de avaliação automática para verificação de conhecimento de domínio. A Seção III descreve os métodos de adaptação e treinamento de domínio usados, incluindo o tokenizer adaptado, DAPT, SFT e RAG. A Seção IV fornece detalhes de cada aplicação e da configuração experimental. A Seção V descreve os resultados experimentais, incluindo avaliações humanas para cada aplicação. A Seção VI discute as limitações do ChipNeMo e trabalhos futuros. A Seção VII descreve métodos LLM relevantes e outros trabalhos direcionados a LLMs para design de chips. Finalmente, os resultados completos juntamente com detalhes adicionais de treinamento do modelo e exemplos de texto gerados pelos casos de uso do aplicativo são ilustrados no Apêndice.


Este artigo está disponível no arxiv sob licença CC 4.0.