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.
Muitos domínios possuem uma quantidade significativa de dados proprietários que podem ser usados para treinar um LLM específico de domínio. Uma abordagem é treinar um modelo básico de domínio específico a partir do zero, por exemplo, BloombergGPT [10] para finanças, BioMedLLM [11] para biomedicina e Galactica [38] para ciência. Esses modelos geralmente eram treinados em mais de 100 bilhões de tokens de dados brutos de domínio. A segunda abordagem é o pré-treinamento adaptativo de domínio (DAPT) [14], que continua a treinar um modelo básico pré-treinado em dados de domínio brutos adicionais. Ele mostra um ligeiro aumento de desempenho em tarefas específicas de domínios como biomédica, publicações de ciência da computação, notícias e análises. Em um exemplo, [39] continuou o pré-treinamento de um modelo básico em conjuntos de dados de conteúdo técnico e alcançou desempenho de ponta em muitas tarefas de raciocínio quantitativo.
A geração aumentada de recuperação (RAG) ajuda a fundamentar o LLM para gerar informações precisas e extrair informações atualizadas para melhorar tarefas de PNL com uso intensivo de conhecimento [40]. Observa-se que modelos menores com RAG podem superar modelos maiores sem RAG [41]. Os métodos de recuperação incluem métodos de recuperação esparsa, como TF-IDF ou BM25 [42], que analisam informações estatísticas de palavras e encontram documentos correspondentes com um vetor esparso de alta dimensão. Métodos de recuperação densa, como [43] [44], encontram documentos correspondentes em um espaço de incorporação gerado por um modelo de recuperação pré-treinado em um grande corpus com ou sem ajuste fino em um conjunto de dados de recuperação. O modelo de recuperação pode ser treinado de forma independente [43] [44] [45] ou em conjunto com modelos de linguagem [46] [41]. Além disso, foi demonstrado que recuperadores de uso geral prontos para uso podem melhorar significativamente um modelo de linguagem de base sem ajustes adicionais [47]. O RAG também é proposto para realizar tarefas de geração de código [48], recuperando-o de documentos de codificação.
Os modelos básicos são modelos de conclusão, que possuem recursos limitados de bate-papo e acompanhamento de instruções. Portanto, um processo de alinhamento de modelo é aplicado aos modelos básicos para treinar um modelo de chat correspondente. O ajuste fino de instruções [20] e o aprendizado por reforço de feedback humano (RLHF) [36] são duas técnicas comuns de alinhamento de modelo. O ajuste fino de instruções treina ainda mais um modelo básico usando conjuntos de dados de instruções. O RLHF aproveita o feedback humano para rotular um conjunto de dados para treinar um modelo de recompensa e aplica o aprendizado por reforço para melhorar ainda mais os modelos, dado o modelo de recompensa treinado. O RLHF é geralmente mais complexo e necessita de recursos do que o ajuste fino da instrução. Portanto, estudos recentes também propõem reduzir esse overhead com métodos mais simples como DPO [49] e SteerLM [50].
Os pesquisadores começaram a aplicar o LLM a problemas de design de chips. Os primeiros trabalhos, como Dave [51], exploraram pela primeira vez a possibilidade de gerar Verilog a partir do inglês com um modelo de linguagem (GPT-2). Seguindo esse trabalho, [6] mostraram que LLMs de código aberto ajustados (CodeGen) em conjuntos de dados Verilog coletados de livros didáticos GitHub e Verilog superaram modelos OpenAI de última geração, como code-davinci-002 em 17 questões Verilog. [12] propuseram um benchmark com mais de 150 problemas e demonstraram que a capacidade de geração de código Verilog de modelos de linguagem pré-treinados poderia ser melhorada com ajuste fino supervisionado por bootstrapping com pares sintéticos de código de problema gerados por LLM. Chip-Chat [7] experimentou fluxos conversacionais para projetar e verificar um microprocessador baseado em acumulador de 8 bits com GPT-4 e GPT-3.5. Suas descobertas mostraram que, embora o GPT-4 produza códigos de qualidade relativamente alta, ele ainda não tem um desempenho suficientemente bom na compreensão e correção dos erros. ChipEDA [8] propôs usar LLMs para gerar scripts de ferramentas EDA. Ele também demonstrou que o modelo LLaMA2 70B ajustado supera o modelo GPT-4 nesta tarefa.
Este artigo está disponível no arxiv sob licença CC 4.0.