ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [yongggg's] ChipNeMO: Domain-Adapted LLMs for Chip Design Review
    Machine & Deep Learning 2024. 1. 4. 10:56

    안녕하세요 이번 장에서는 LLMs 모델을 Domain Adataion 하는 방법에 대해서 설명드리고자 합니다. 요즘 많은 LLMs은 General 한 자연어처리는 사람 혹은 사람보다 더 그럴 듯하게 생성해내고 있습니다. 하지만, 금융, 법률 혹은 이러한 구체적인 분야에서는 틀린 자연어(환각, 오류 , 거짓말 등)를 생성했을 때, 이 문제가 치명적일 수 있습니다.

    따라서, 각 분야의 정보만을 가지고 자연어를 생성할 수 있어야하는데요, 이를 도와주는 것이 Domain Adaptation이며, 이는 자연어 뿐만 아니라 이미지등의 시각 분야에도 많이 연구가 되고 있습니다.

    저는 그 중에서 LLMs을 위한 ChipNeMo 논문을 소개하고자 합니다.

     

    먼저 이 논문에서 말하는 Chip에 대해 간단히 설명드리자면, 다음과 같습니다.

    Chip Design은 회로 설계 및 논리 형성에 대한 지식이 포함되며, 모든 chip은 transistor라고 알려진 기본 요소를 사용하여 만들어지며, 전자공학의 필수적인 부분이다.
    - 디자인의 디지털 부분의 경우 디자인은 일반적으로 클럭, 레지스터 및 이들 사이에 존재하는 로직 측면에서 회로를 정의하고 타이밍 및 기타 측면에서 구현 가능한 것으로 표시된 RTL(레지스터 전송 수준) 설명으로 전송됩니다. 백엔드의 영향을 받는 고려 사항입니다. 어떤 경우에는 게이트 수준 표현이 필요합니다.
    - AI 기반 칩 설계에는 반도체 장치를 설계, 검증 및 테스트하기 위한 도구 흐름에서 기계 학습과 같은 인공 지능(AI) 기술을 사용하는 것이 포함됩니다. 예를 들어, 칩에 대한 최적의 전력, 성능 및 면적(PPA)을 찾기 위한 솔루션 공간은 상당히 큽니다.  다양할 수 있고 다른 결과를 초래할 수 있는 입력 매개변수가 상당히 많습니다. 기본적으로 인간이 주어진 기간에 최상의 결과를 찾기 위해 이러한 모든 조합을 탐색하는 것은 불가능하며, 이로 인해 일부 성능이 저하됩니다.

    Abstract

    ChipNeMo는 산업용 chip design을 위한 LLM 응용 분야를 탐구하는 것을 목표로 하며, commercial 또는 open-source LLM을 직접 배포하는 대신, custom tokenizers, domain-adaptive continued pretraining, supervised fine-tuning(SFT) 그리고 domain-adapted retrieval models를 수행한다.

    본 연구에서는 chip design을 위한 세 가지 선택된 LLM applications(enginerring assistant chatbot, EDA script generation, bug 요약 및 분석)에 대해 이러한 방법들을 평가한다. 본 연구의 결과는 이러한 domain adaptation 기술이 세 가지 평가된 application에서 범용 기본 모델에 비해 상당한 LLM 성능 향상을 가능하게 하여 다양한 설계 작업에서 유사하거나 더 나은 성능으로 최대 5배까지 크기를 줄일 수 있음을 보여준다. 본 연구 결과는 또한 현재 결과와 이상적인 결과 사이에 여전히 개선의 여지가 있음을 나타낸다. 본 연구에서 domain-adapted LLM에 대한 추가 조사가 향후 이러한 격차를 줄이는 데 도움이 될 것이라고 생각한다.

    Introduction

    지난 수십년 동안 Electronic Design Automation(EDA) algorithms과 도구들은 chip design 생산에 큰 이점들을 제공했다. Moore의 법칙에 의해 제공되는 transister densities의 기하급수적인 증가와 함께, EDA는 수십억개의 transistors를 갖는 특징이 풍부하고 복잡한 SoC designs을 개발할 수 있도록 했다. 보다 최근에, 연구자들은 chip design 생산성을 더욱 향상시키기 위해 EDA algorithms과 chip design proccess에 AI를 적용하는 방법을 모색하고 있다. 하지만, 자연어나 프로그래밍 언어와의 interfacing을 수반하는 많은 시간이 걸리는 chip design 작업들은 여전히 자동화 되지 않았다. 상업용(ChatGPT, BARD 등) 및 open-source(Vicuna, LLaMA2 등) LLM의 최신 발전은 이러한 언어 관련 chip desgin 작업을 자동화하는 데 도움이 되는 전례 없는 기회를 제공한다. 실제로 초기의 학문적인 연구는 소규모 design 모듈에서  간단한 작업을 수행했을 뿐 아니라, EDA 도구를 위한 script generation 까지 수행하는 generating RTL을 위한 LLMs의 applications을 탐구했다.

    본 연구진은 LLM이 코드 생성, 자연어 interface를 통한 enginerring 질문에 대한 응답, 분석 및 보고서 생성, 버그 분류와 같은 많은 언어 관련 chip design 작업을 자동화하기 위해 생성 AI를 사용함으로써 chip desgin 설계 생산성을 높이는데 도울 가능성이 있다고 생각한다. 본 연구에서는 내부 HW 설계를 이해하고 복잡한 설계 주제를 설명할 수 있는 GPU ASIC 및 아키텍쳐 설계 엔지니어를 위한 engineering assistant chatbot, 영어로 지정된 VLSI 타이밍 분석 작업을 위한 Python 및 Tcl 기반의 두 도메인의 특정 도구에 대한 EDA script generation, 내부 버그 및 이슈 추적시스템의 일부로 bug summarization 및 분석에 초점을 맞춘다.

    방대한 양의 인터넷 데이터에 대해 훈련된 general-purpose LLMs은 다양한 domain의 생성 AI 작업에서 놀라운 능력을 보여주지만, BloombergGPT 및 BloMedLLM과 같은 최근 연구는 도메인에 구체적으로 학습된 LLMs이 domain-specific tasks에서 genral-purpose 모델을 능가할 수 있음을 보여준다. hardware design domain에서 [VerilogEval, Benchmarking Large Language Models for Automated Verilog RTL Code Generation]은 추가 verilog 데이터에 대해 fine-tuned open-source LLM(CodeGen)가 OpenAI 모델을 능가할 수 있음을 보여주었다. 이러한 방식으로 LLM을 customizing하면, API를 통해 타사 LLM에 독점적인 chip design 데이터를 전송하는 것과 관련된 보안 위험도 방지한다. 그러나 이는 종종 수백만 개의 GPU training time이 필요하기 때문에 모든 domain에 대해 domain-specific models을 처음부터 훈련하는 것은 엄청난 비용이 들 것이다.

    효과적으로 domain-specific models를 훈련하기 위해, domain adapted tokenizers를 사용한 기초 모델의 Domain-Adaptive PreTraining (DAFT), general 및 domain-specific instructions을 사용한 모델 align, 훈련된 domain-adapted retireval model을 사용한 검색 증강 생성(RAG)의 기술을 결합하여 사용한다.

    본 연구의 접근 방식은 Figure 1과 같이 기본 fundational model에서 시작하여 DAPT적용한 후, SFT(Supervised Fine-Tuning)를 적용하는 것이다. domain 내 데이터를 사용하는 지속적인 continued pretraining이라고도 알려진 DAFT는 생물 의학 및 컴퓨터 과학 출판물, 뉴스 및 리뷰와 같은 분야에서 효과적인 것으로 나타났다. 우리의 경우에는, 독점 하드웨어 관련 코드(ex; software, RTL, verification test benches 등)와 자연어 datasets(ex; hardware specifications, documentation 등)의 모음으로 domain-specific  pre-training dataset을 구성한다. raw dataset을 정리하고 전처리한 다음 domain-specific data를 사용하여 foundation model을 continued-pretrain한다. 본 연구에서는 결과 모델을 ChipNeMo Foundation Model이라고 부른다. DAPT는 pre-training에 사용되는 tokens의 일부에 대해 수행되기 때문에 훨씬 cheaper 하며 단 몇 천 시간의 GPU 사용만 필요하다. section V에서 설명한 대로 이 방식이 LoRA와 같은 PEFT 기법보다 use cases에서 더 효과적이라고 생각한다.

    LLM tokenizers는 LLM training을 위해 text를 token sequences로 변환한다. RTL에서 domain-specific tokenizer는 일반적으로 발견되는 keyword와 같은 domain-specific 용어에 대한 규칙 및 패턴을 맞춤화하여 토큰화 효율성을 향상 시킨다. DAPT의 경우 foundation model을 무효화하기 때문에 새로운 tokenizer를 처음부터 retrain할 수 없다. ChipNeMo를 foundation model에서 사용하는 pre-trained general-purpose toknizer로 제한하는 대신, pre-trained toknizer를 chip design dataset에 적용하고 domain-specific terms에 대한 새로운 tokens만 추가한다. ChipNeMo Foundation models은 채팅과 같은 task에 적응하기 위해 SFT(Supervised-Fine-Tuning)가 필요한 완성 모델이다. 저희는 ChipNeMo Chat model을 생산하는 ChipNeMo Foundation 모델에서 SFT를 수행하기 위해 소량의 domain-specific datasets과 함께 multi-turn chat을 위한 공용으로 공개된 general-purpose chat instruction datsets을 사용한다. 우리는 general-purpose chat instruction dataset가 있는 SFT가 Chip design 역역의 query와 ChipNeMo foundation model을 정렬하는 데 적합하다는 것을 발견했다. 또한 소량의 task-sepecific SFT instruction data를 추가하여 alignment를 더욱 향상시켰다. 우리는 base foundation model로 LLaMA2 모델의 변형을 기반으로 여러 ChipNeMo foundation 및 Chat model을 훈련했다.

    또한 engineering assistant chatbot application 성능을 향상시키기 위해 Retrieval Augmented Generation(RAG)를 활용한다. RAG는 사용자 query를 위해 LLM에 정확한 context를 제공하기 위한 open-book approch이다. RAG는 사용자 query가 주어졌을 때, response generation을 augment하기 위해 적절한 In-domain 지식을 데이터 저장소에서 검색한다. 이 방법은 모델을 특정 question의 context로 연결하는 데 있어 상당한 향상을 보여준다. 결정적으로 domain data로 pre-trained retrieval model을 fine-tuning하면, 검색 적중률이 크게 향상되는 것을 확인할 수 있었다. 이는 모델 품질을 더욱 향상시킨다.

    본 연구는 chip design domain에 LLM을 적용하는 것과 관련된 다음과 같은 결과를 기여한다는 것을 강조한다.

    • Engineering assistant chatbot, EDA tool script generation, bug summarization and analysis 등 3가지 활용 사례에 대해 domain-adapted LLM의 효과를 입증한다. 전문가의 평가를 기반으로 engineering asistant chatbot 응답은 10점 만점에 7.4점, EDA script generation은 50% 이상의 정확도, 요약 및 task 식별 작업은 7점 만점에 4-5점의 전문가의 평가를 받았다.
    • Domain-adapted ChipNeMo 모델은 객관식 domain-specific AutoEval benchmarks와 application에 대한 사용자 평가 모두에서 평가된 모든 vanilla LLMs의 성능을 크게 능가한다.
    • 모델이 prompt context에서 text를 생성할 수 있는 작업(ex; RAG hits를 사용한 chat, summarization, 제공된 문서를 사용한 code generation)의 경우, domain-apdatation은 최신의 LLaMA270B 모델과 훨씬 작은 13B 모델 사이의 간격을 좁힌다.(작은 incremental training cost로 추론 cost를 최대 5배까지 줄일 수 있다.)
    • Customized tokenizers는 application의 효과를 해치지 않으면서 DAPT token 수를 최대 3.3%까지 줄인다.
    • 추기된 1.1K의 domain-specific instructions에 대한 SFT는 engineering assistant chatbot, EDA script generation, bug summarization and analysis에서 각각 10점 만점에 최대 0.33점, 정확도 18%, 7점 ㅁ나점에서 0.79점 까지 application의 숙련도를 향상시킨다.
    • domain-specific data로 ChipNeMo 검색 모델을 fine-tuning하면 pre-trained SoTA retriever 보다 검색 정중률이 30% 향상되어 RAG 응답의 전반적인 품질이 향상된다.

    Dataset

    A. DAPT Dataset

    Domain-Adaptive Pre-Training(DAPT)을 하는 동안, NVIDIA 전용 chip desgin domain-specific data sources와 공개적으로 사용한 dataset의 조합으로 dataset을 구성한다.

    Chip Design Dataset: 본 연구의 내부 dataset는 chip design, spanning design, verification, infra structure 및 내부 문서와 관련된 다양한 범위의 text sources로 구성된다.

    표 1은 filtering 후, 수집된 데이터의 내역과 LLaMA2 tokenizers를 사용한 해당 token의 수를 보여준다. 본 연구는 모든 관련된 내부 데이터를 수집한 다음 파일 이름의 확장자를 기반으로 파일 유형별로 filtering하고, 기계 생성 contents와 사람이 작성한 contents를 구별하여 dataset을 구성한다. 본 연구는 세 가지 특정 사용 사례에 대해 평가했지만, domain 지식을 추가로 통합하면 성능이 향상될 것이라고 생각했기 떄문에, 이러한 사용 사례와 관련이 있는 것으로 알려진 sources로 dataset을 특별히 제한하지 않았다. 내부 data training corpus는 수집, 클렌징 및 filtering 후 231억 개의 token을 보유하고 있다. 데이터 수집 process에 대한 자세한 내용은 부록 A에서 설명한다.

    Public Datasets: 본 연구에서는 다양한 souces에서 공개적으로 사용 가능한 데이터 샘플로 chip design specific data를 증강하며, 이는 fundational large language models 개발의 일반적인 방법이다. 본 연구의 접근 방식은 공개적으로 access할 수 있고, open sourcing과 호환되어야한다는 규정과 함께 다른 language model의 public training data를 재사용하는 것이다. 이러한 datasets은 DAPT를 하는 동안 일반적인 지식 및 자연어 기능을 보존하려는 의도로 LLaMA2에서 사용되는 pretraining data와 높은 수준의 상관 관계를 보인다. ChipNeMo에서 사용하는 공개 datasets은 자연어와 code 이 두 그룹으로 분류할 수 있다. 자연어 구성 요소의 경우 C+, Python 및 verilog와 같은 내부 데이터 chip desgin datasets에도 있는 프로그래밍 언어에 중점을 두고 GitHub 데이터를 활용한다. 전체 datasets가 pre-training 의 분포를 대표하도록 하기 위해, 본 연구는 자연어와 코드의 균형 잡힌 Representation과 함께 이러한 public datset에서 전체 훈련 토큰의 약 9.2%가 샘플링되는 subsampling 작업을 수행한다.

    Data Blend: 본 연구에서 수집한 domain 데이터의 상당 부분은 다양한 출처의 주석이 없는 코드로 구성되어 있다. 모델의 domain-specific knowledge에 대한 이해도를 높이기 위해 code data downsampling을 수행하는 동시에 자연어 data, 특히 설계 문서를 2~4 training epochs span에 걸쳐 upsampling 했다. 또한 사람이 작성한 EDA tool scripts와 같이 downstream application과 더 관련이 있다고 판단되는 data의 representations를 높였다. 또한 1 epoch 동안 공개적으로 사용 가능한 domain data를 통합했다. 자세한 training을 위한 token distribution의 상세내용은 표 1과 같다.

    B. SFT Instruction Data

    Supervised Fine-Tuning(SFT) 하는 동안, 상업적으로 사용할 수 있는 general chat SFT instruction dataset을 사용한다. dataset은 크게 OASST, FLAN, P3을 포함한 공개적으로 사용 가능한 instruction과 brainstorming, open-ended question answering, rewriting, summarization 등 다양한 주제로 구성된 소량의 광범위한 domain 독점 dataset으로 구성된다. 여기서 논의하는 SFT instruction 데이터는 general natural language task에 중점을 두고 있으며, chip design의 downstream use cases와 관련된 정보나 작업이 포함되어 있지 않다는 점에 유의해야 한다. 이 dataset은 총 128,00개의 훈련 샘플로 구성되어 있다. 또한 Downstream use cases에 맞춰 모델을 조정하기 위해 domain-specific datasets을 정밀하게 모았다. 이 예시들은 domain 전문가들에 의해 정밀하게 제작되어 있으며, single-turn question 질문과 답변으로 구성된다. 표 2는 우리의 domain-specific instruction datsets의 총 훈련 샘플 수는 매우 적다는 점에 주목할 필요가 있다.

    C. AutoEval

    다양한 모델의 정확도를 신속하고 정량적으로 평가하기 위해 MML와 같은 기존 benchmarks와 밀접하게 일치하도록 설계된 각 use cases에 대한 객관식 질의응답 형식으로 구성된 평가 기준을 수립했다. 이러한 객관식 질문을 공식화하는 과정에서 domain 전문가와의 협업이 중요했다. 이 작업의 목표는 각 질문에 적어도 하나의 복잡한 답변 선택 사항이 포함되도록하여 domain 전문 지식이 제한된 개인에게 도전이 되도록 하는 것이었다. 또한 domain-specific SFT 데이터로 질문이 의도치 않게 오염되지 않도록 주의를 기울였다. use cases별 benchmarks 외에도 아날로그 및 디지털 설계 주제를 모두 다루는 general circuit design knoledge을 위한 추가 benchmark가 생성되었다. 평가 benchmarks를 위한 객관식 질문의 수는 표3에 나와있다. 위 benchmarks에 대한 결과를 보고할 때, 우리는 test process의 분산과 noise의 영향을 완화하기 위해 5개의 서로 다른 실험에서 얻은 평균을 결과로 한다. 각 반복은 각 개별 실행에 걸쳐 변형이 도입된 5-shot examples set을 사용한다. 이러한 domain-specific evaluation benchmarks 외에도 일반적으로 사용되는 public LLM 학술 벤치마크도 포함한다. 또한 Python의 경우 HumanEval, Verilog의 경우 VerilogEval을 평가하여 모델의 코드 생성 능력을 측정한다.

    ChipNeMo Domain Adaptation Methods

    ChipNeMo는 LLM을 chip desgin domain에 적응시키기 위해 여러 domain adatation 기법을 구현한다. 이러한 기법에는 chip design data에 대한 맞춤형 tokenizers, domain data의 corpus가 큰 domain adative pretraining, domain specific tasks의 supervised-fine-tuning, fine-tunied retrieval model로 retrieval augmented generation(RAG) 등이 있다. 이 절에서는 각 기법에 대한 자세한 내용을 설명한다.

    A. Tokenizer

    pre-trained tokenizer를 adapting할 때, 주요 목표는 domain-specific data에 대한 효율성 및 언어 모델 성능을 유지하며, retraining/fin-tuning을 위한 노력을 최소화하는 것이다. 이르 위해 다음과 같은 4단계 접근 방식을 개발했다.

    • Step 1: domain-specific data를 사용하여 tokenizer를 처음부터 훈련한다.
    • Step 2: 새로운 tokenizer의 어휘에서 general-purpose tokenizer에는 없고 general-purpose datasets에서는 거의 발견되지 않는 token을 식별한다.
    • Step 3: 2단계에서 새롭게 식별된 token으로 general-purpose tokenizer를 확장한다.
    • Step 4: general-purpose tokenizer를 활용하여 새로운 token의 embedding을 초기화 한다.

    구체적으로, 4단계의 경우, 새로운 token을 맞딱드리면, pre-trained general-purpose tokenizer를 사용하여 tokenize된다. 새로운 token의 임베딩은 general-purpose tokenizer에 의해 생성된 token의 임베딩을 평균화함으로써 결정되며, ouput layer의 weights은 0으로 초기화된다. 2단계는 general-purpose datasets에서 거의 접할 수 없는 새로운 token을 선택적으로 도입하여 일반 datasets에서 사전 학습된 LLM의 성능을 유지할 수 있도록 지원한다. 그리고 4단계는 general-purpose tokenizer에 의해 안내되는 새로운 token의 embeddings의 initalization을 통해 LLM의 retraining/finetuning에 필요한 노력을 줄인다.

    B. Domain Adaptive pretraining

    본 연구에서는 pre-trained foundation base models LLaMA2 7B/13B에 DAPT를 적용한다. 각 DAPT 모델은 pre-trained foundational base models의 가중치를 사용하여 초기화된다. 본 연구에서 DAPT 모델의 이름을 ChipNeMo라고 하며, section 3-A에 표시된 대로 tokenizer augmentation을 사용하고 그에 따라 embedding weights을 초기화 한다. 본 연구에서는 standard autoregressive language modeling objective를 사용하여 domain-specific data에 대한 추가 pretraining을 수행한다. 모든 모델 훈련 절차는 NVIDIA NeMo framework를 사용하며, 효율성 향상을 위해 tensor parallelism 그리고 flash attention과 같은 기술을 통합한다.

    본 연구의 모델은 유사한 configurations으로 일관된 훈련 방식을 거친다. $5 \cdot 10^{-6}$의 작은 learning rate가 사용되며, learning rate schedulers의 사용 없이 Adam optimizer를 사용하여 훈련을 용이하게 한다. global batch size는 256이며, 4096개 tokens context windows가 적용되어 1M tokens의 효과적인 배치 크기가 생선된다. 자세한 training hyperparameter는 부록 B에 제공 된다. 총 training steps는 23,200개로 설정되며, 이는 data blend의 1 epoch와 동일하다.

     

    그림 2는 지정된 hyperparameter에서 ChipNeMo의 training loss를 보여준다. 본 연구에서는 training loss의 급증을 관찰한다. "PaLM"의 가설과 달리 시나리오에서는 이러한 불규칙성이 동일한 모델에 대해 유사한 training steps에서, 심지어 다른 모델 size에서도 일관되게 발생하는 것처럼 보이기 때문에 이러한 급증은 "bad data"로 인한 것일 수 있다고 가정한다. 이러한 비정상성이 후속 training steps를 크게 방해하지 않는 것으로 보이기 때문에 (validation lossdml 현저한 저하 없음) 이 문제를 해결하지 않기로 했다.

    C. Supervised Fine-Tuning

    DAPT 이후, supervised fine-tuning(SFT)로 model alignment를 수행한다. 128의 축소된 global batch size를 사용하는 것을 제외하고 모든 모델에 대해 DAPT와 동일한 hyperparameter configuration을 사용한다. 모든 SFT 데이터는 아래의 Chat template에 따라 구성된다.

    <extra_id_0>System\n{system}
    <extra_id_1>User\n{user_utterance}
    <extra_id_1>Assistant\n{chipnemo_response}
    ...

    본 연구진은 autoregressive optimization objective를 사용하여 시스템에서 발생한 token과 관련된 loss와 사용자 prompt가 masking되는 전략을 구현한다. 이 접근 방식은 backpropagation 중에 우리의 초점이 답변 token의 최적화에만 집중되도록 보장한다.

    본 연구는 약 1.1k개의 샘플로 구성된 domain SFT dataset을 128k개의 샘플로 구성된 보다 강범위한 일반 채팅 SFT dataset과 결합한다. 그런 다음 data에 random shuffle을 적용한 후 single epoch 동안 fine-tuning 했다. 본 연구는 한 번 이상 domain-specific SFT dataset 증강과 관련된 실험을 수행했다. 그러나, 모델이 in-domain questions을 제시했을 때 과적합 징후를 빠르게 보이며 종종 domain SFT dataset에서 관련 없는 답변을 반복한다는 것이 분명해졌다. 또한 domain-specific SFT data를 제외한 general chat dataset만을 사용하여 추가 SFT를 수행했다. 명확한 설명을 위해 ChipNeMo 모델을 다음과 같이 지정한다.

    1. ChipNeMo-Chat: domain 및 general chat data 모두로 fine-tuning한 모델
    2. ChipNeMo-Chat (noDSFT): general chat data로만 fine-tuning한 모델

    또한 저희는 LLaMA2Chat 모델과 같은 chat aligned model에 직접 DAPT를 실험했다. 저희는 DAPT가 모델의 alignment를 크게 저하시켜 결과 모델을 downstream tasks에 유용하지 않게 만든다는 것을 발견했다. (Backbone model이 아닌 Chat Model에 DAPT 했을 때, 안좋은 결과 초래)

    D. Retrieval-Augmented Generation

    LLM은 소위 환각이라고 하는 부정확한 text를 생성할 수 있다는 것은 잘 알려져있다. 이 현상이 완전히 이해되지는 않지만, 정확성이 중요한 assistant engineering assistant chatbot context에서 특히 문제가 있기 때문에 이 환각을 완화해야 한다. 본 연구의 제안은 retrieval augmented generation (RAG) 방법을 활용하는 것이다. RAG는 질문과 함께 prompt에 포함될 database에서 관련 passages를 검색하려고 시도하며, 이는 LLM이 보다 정확한 답변을 생성할 수 있도록 근거를 제공한다. (Open-domain 보다 In-domain에서 text를 생성하는 것이 환각을 줄인다.) 본 연구진은 RAG에 domain adapted language model을 사용하면 domain specific questions에 대한 답변 품질이 크게 향상된다는 것을 발견했다. 또한 적당한 양의 domain-specific train data로 특별하지 않은 unsupervised pre-trained pre-trained dense retrieval model을 fine-tuning하면 검색 정확도가 크게 향상된다는 것을 발견했다. 본 연구의 domain-adapted RAG 구현 diagram은 그림 3에 나와있다.

    본 연구는 Tevatron framework를 사용하여 3000개의 domain-specific 자동 생성 샘플로 $e5$ small unsupervised model을 fine-tuning하여 domain adapted retrieval model을 만들었다. 샘플 생성 및 training process는 부록 C에서 확인할 수 있다.

    # Appendix C
    수동으로 training sample을 생성하는 것은 많은 노력이 들기 때문에 자동으로 생성하는 process를 구현하기로 결정했다. 모델을 fine-tuning하기 위해 contrasive learning을 사용하기 때문에 각 샘플에는 positive passages와 negative passages 모두 필요하며, 특히 정확도를 최대화 하기 위해 hard negatives가 필요하다.

    1) Dataset Sampling Procedure:
     - Step 1: document corpus 로 부터 랜덤하게 passage를 선택한다.
     - Step 2: 언어 모델(Vicuna)을 사용하여 passage에서 유효한 query를 생성한다.
     - Step 3: 기존 검색 모델(sentence transformer)를 사용하여 각 passage가 potential hard-negative인 query에 대한 문서 corpus에서 상위 N개의 passages를 가져온다(fetch한다).
     - Step 4: fetched passages 중 일부가 실제로 positive일 가능성이 있으므로 동일한 language model을 사용하여 postive passages를 걸러낸다.
     - Step 5: 이 필터링 과정을 거치면 negative passage가 부족할 경우 corpus에서 무작위로 나오는 부분으로 보충한다.

    초기 연구에서는 Vicuna와 Sentence Transformer를 사용했지만, 상업적으로 실행 가능한 검색 모델을 생성하기 위해 LLaMA2와 BM25로 쉽게 대체할 수 있다.

    2) Hits Quality Comparison: 모든 hits가 동일하게 생성되는 것은 아니다. 아래 Spec example의 passage는 그 질문에 대해 명확하고 완전하게 답한다. Build example의 passages는 답을 포함하고 있지만, 질문에 답하기 위해서는 더 많은 context가 필요하다.
    Spec Example: Hit passage가 질문에 명확히 답한다.
    Query:
    what is the XXX bufer in the YYY used for?
    
    Hit passage:
    Sine the memory subsystem is partitioned, YYY may receive read
    responses whose order is different from their requests. ZZZ requires
    strict in-order per-thread processing, thus YYY reorders the read
    responses to the request order before sending them back to ZZZ.
    YYY re-orders the read responses in a read return reorder buffer
    (XXX) to guarantee the ordering.
    
    Answer: re-orders the read responses

    Build Example: query에 완전히 답하려면 추가 정보가 필요하다. 예를들어: DL이란 무엇입니까? Arch-Build-Hotsear-XXX가 DL인지 어떻게 알 수 있습니까?

    Query:
    What is the support DL for XXX build issues?
    Hit Passage:
    Tree Setup
    Working in the XXX Mainline explains initial tree setup and build
    steps
    Build
    Arch-Build-Hotseat-XXX - Hotseat support for XXX build issues
    YYY build failures​

     검색 모델을 fine-tuning함으로써 얻을 수 있는 상당한 gains에도 불구하고, 검색은 문서 Corpus의 구절에 직접 매핑되지 않거나 구절에 없는 더 많은 context가 필요한 query를 처리하는 데 어려움을 겪고 있다는 사실은 여전히 남아있다. 불행하게도 이러한 query는 실제 상황에서 engineer가 요청할 query 중 더욱 대표성을 띄어야한다. 이 문제를 해결하는 한 가지 방법은 검색을 domain adapted language model과 결합하는 것이다.

    LLM Applications

    본 연구진은 design team 내에서 잠재적인 LLM applications에 대한 설문조사를 수행하여 code generation, question & answer, analysis and reporting, triage 네 가지로 분류했다. code generation은 LLM이 design code, test benchs, assertions, internal tools scripts 등을 생성하는 것을 의미하며, Q&A는 design, tools, infrastructures 등에 대한 질문에 답변하는 LLM을 의미한다. Analysis and reporting은 LLM이 데이터를 분석하고 보고서를 제공하는 것을 의미하며, triage는 log 및 보고서가 주어진 경우 debug design또는 tools 문제를 해결하는 데 도움이 되는 LLM을 의미한다. 본 연구에서는 추가 연구를 위해 남겨둔 triage 범주를 제외하고 각 범주에서 하나의 핵심 applications을 선택했다. 각 applications의 동기 및 기술 세부 정보는 아래와 같다.

    A. Engineering Assistant Chatbot : 위의 3-D에 언급 됐다.

    B. EDA Script Generation : flow는 아래와 같으며, 위의 3-C에 언급

    C. Bug Summarization and Analysis

    자세한 사항은 논문을 참고.

    Evaluations

    본 연구는 이 section에서 training methodology와 응용 프로그램 성능을 평가한다. 본 연구진은 training methodology 평가에서 7B 및 13B 모델을 모두 연구하고 application 성능 평가에서는 13B 모델만 연구한다. 비교를 위해 LLaMA2-13B-Chat* 및 LLAMA2-70B-Chat 두 가지 기본 채팅 모델도 평가한다. LLaMA2-13B-Chat*은 general purpose chat instruction dataset으로 fine-tuned foundation LLaMA2 13B 기본 모델로, RLHF를 통한 강화학습으로 훈련된 기존 LLaMA2-13B-Chat과 다르다. 이는 동일한 모델 alignment 방식에서 domain adapted models과 기본 모델을 공정하게 비교하기 위해 이렇게 결정했다. LLaMA2-70B-Chat은 SOTA open-source chat model로 간주되는 RLHF로 훈련된 공개 출시된 LLaMA2-Chat 모델이다.

    A. Tokenizer

    LLaMA2 tokenizer에 adaptation을 했으며, 9K 정도의 새로운 token이 추가됐다. 그리고 아래의 그림 5와 같이 chip desgin datasets에서 token화 효율성이 증가한 것을 확인할 수 있지만, public data에서는 명백한 향상이 없었다. 또, custom augmented toknizers를 사용할 때, 공개 benchmarks에서 LLM의 정확도가 크게 떨어지지 않았다.

    B. Domain Adaptive Pretraining

    아래 그림 6은 AutoEval benchmarks for chip desgin domain 과 open domain academic benchmarks에 대한 ChipNeMo models 결과이며, 이에 대한 해석은 다음과 같다.

    1. DAPT models은 open-domain academic benchmarks에서 약간의 정확도 저하를 보인다.
    2. DPAT는 domain 자체 내의 작업에 실질적으로 긍정적인 영향을 미친다. 이러한 효과는 일반적인 회로 설계 지식뿐만 아니라 내부 설계 지식의 상당한 향상으로 나타난다.
    3. 더 크고 성능이 뛰어난 기본 모델을 사용하면, domains-specific tasks에서 더 나은 zero-shot 결과를 얻을 수 있다. 또한 우수한 기본 모델을 사용하면 DAPT 이후 향상된 domain model이 생성되어 domain 내 작업 성능이 향상된다
    4. domain 내 작업에서 DAPT로 인한 개선은 모델 크기와 양의 상관 관계를 보이며, 더 큰 모델은 DAPT이후 domain-specific tasks 성능이 더 현저하게 향상된다.

    C. Training Ablation Studies

    DAPTdml learning rate가 작을 수록 기본 모델의 성능 저하 없이 domain-adaptation이 가능하며, PEFT 방식인 LoRA 보다 DAPT 방식의 성능이 더 높았다. 또한 소형 PEFT 모델과 대형 PEFT 모델 간의 결과를 비교할 때 domain 내 작업 정확도가 약간 향상되는 것을 볼 수 있었다.

    D. Training Cost

    E. RAG and Engineering Assistant Chatbot

    RAG 방법을 사용했을 때, chat assistance design의 성능 평가를 위해 benchmarks를 만들었다. 아래 그림 7은 domain adapted retrieval model이 다른 backbone의 retrieval 성능을 압도하는 것을 보여준다. 그러나 가져온 passage보다 더 많은 범위의 contexts가 필요로 하는 Build카테고리는 성능향상이 뚜렷하지 않다. 아래 그림 8은 RAG가 있는 것과 없는 것의 ChipNeMo 모델과 LLaMA2 모델의 평가를 보여준다. 

    F. EDA Script Generation

    G. Bug Summarization and Analysis

    Discussion

    A. Considerations for Domain Adaptation

    생산 환경에서 더 큰 general-purpose model과 더 작은 specialized model의 선택 결정시에는 다음과 같은 기준을 고려해야 한다.
    Training and inference trade-off: 더 작은 domain apdated model은 더 큰 general-purpose 모델의 정확도와 같을 수 있다. domain adaptatation은 추가적인 up-front costs를 발생시키는 반면, 더 작은 모델을 사용하면 운영 비용이 크게 감소한다.
    Uniqueness of use case: 그림 6, 9, 10에서 알 수 있듯이 domain adapted models는 독점 언어나 라이브러리로 코드를 작성하는 것과 같이 공용 도메인에 거의 존재하지 않는 tasks에서 가장 개선될 수 있다. 실제로 본 연구의 data에 따르면 hand-picked contexts가 제공되는 경우에도 large general purpose model는 이러한 시나리오에서 domain adapted models의 정확도와 일치하는 것에 무리가 있다.
    Availability of domain data: domain adaption은 많은 양의 training 데이터, 즉 수십억 개의 training tokens이 있을 때 가장 효과적입니다. 이는 종종 많은 양의 내부 문서와 코드를 축적한 대기업과의 프로젝트를 하는 경우에 해당되지만 소규모 기업의 프로젝트를 하는 경우에는 해당되지 않습니다.
    End use case diversity: 특정 tasks에 대한 general-purpose 모델을 미세 조정할 수 있지만 domain adapted models은 domain의 다양한 tasks set에 적합하다. 본 연구에서는 ChipNeMo 모델에 대한 3가지 사용 사례만을 설명하지만, SFT 데이터가 충분하여 다른 사용 사례에 쉽게 재사용할 수 있다.

    B. Performance Gap

    ChipNeMo는 Appendix E에 나와 있는 것처럼 선택한 응용 프로그램에서 인상적인 결과를 얻었지만, 모든 응용 프로그램에 대한 평가 결과는 여전히 전문가의 성능과 상당한 격차를 보이고 있다. 이러한 성능 격차를 해소하기 위해 다음과 같은 접근 방식을 고려하고 있다:

    1) Data Collection: DAPT dataset을 확장하여 더 많은 내부 독점 데이터를 만든다. 또한 task specific SFT가 평가 결과를 의미 있게 개선했으므로 SFT에 대한 task specific instruction를 더 추가할 계획이다.

    2) Base Model: LLaMA270B와 같이 더 우수하고 더 큰 base models이 성능을 향상시킬 수 있을 것으로 기대한다. 또한 코드 생성 작업을 위해 Code LLaMA와 같은 code-specific base models에 DAPT를 적용하는 방법도 모색할 수 있다.

    3) Training: 또한 ChipNeMo chat model을 통해 human feedback(RLHF)으로부터 강화 학습을 수행하여 보다 다재다능하게 만들 계획이다. 본 연구진은 general-purpose datasets에 대해 훈련된 pre-trained reward models를 활용할 계획이다. 또한 bug summarization application과 같이 긴 context가 필요한 문제를 극복하기 위해 long-context training[W. Xiong et al., “Effective long-context scaling of foundation models,” 2023]을 수행할 계획이다. 일반적으로 context suppor가 길어지면 코드 생성뿐만 아니라 채팅 지원을 위한 검색 기반 방법을 개선하는 데 도움이 될 것이다.

    4) Retrieval: engineering assistant chatbot 과 EDA script generation 모두에 대해 더 나은 RAG 방법을 추가로 조사할 것이다. the engineering assistant chatbot의 경우 다양한 응용 분야에 대해 다양한 데이터 저장소를 생성할 수 있다. 또한 엔터프라이즈 검색 엔진을 RAG와 통합하여 다양한 문제에 대한 관련 컨텍스트를 찾을 수 있다. 드 생성을 위해 기존 코드 및 문서에서 컨텍스트 자동 검색을 조사할 수 있다.

    C. Agent-Based Design Methodologies

    이 작업에서 실험한 use cases는 LLM의 신속성과 응답 기능을 직접 적용하는 것이다. 에이전트는 LLM을 사용하여 일련의 작업을 선택하는 것을 말하며, LLM은 외부 도구를 구동하는 추론 엔진 역할을 한다. chip design process에는 기존의 많은 EDA 도구와 방법론이 포함된다. 이러한 방법론 중 일부는 ChipNeMo 모델과 같은 domain-adapted LLMs에 의해 구동되는 에이전트에 의해 구동될 수 있다고 생각한다. 향후 검증 및 최적화를 위한 에이전트 기반 설계 방법론을 연구할 계획이다.

Designed by Tistory.