tác giả:
(1) Mingjie Liu, NVIDIA {Đóng góp bình đẳng};
(2) Teodor-Dumitru Ene, NVIDIA {Đóng góp bình đẳng};
(3) Robert Kirby, NVIDIA {Đóng góp bình đẳng};
(4) Chris Cheng, NVIDIA {Đóng góp bình đẳng};
(5) Nathaniel Pinckney, NVIDIA {Đóng góp bình đẳng};
(6) Rongjian Liang, NVIDIA {Đóng góp bình đẳng};
(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 Đặng, 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) Hào Lưu, NVIDIA;
(29) Stuart Oberman, NVIDIA;
(30) Sujeet Omar, NVIDIA;
(31) Sreedhar Pratty, NVIDIA;
(23) Jonathan Raiman, NVIDIA;
(33) Ambar Sarkar, NVIDIA;
(34) Thiệu Giang, 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.
ChipNeMo nhằm mục đích khám phá các ứng dụng của mô hình ngôn ngữ lớn (LLM) cho thiết kế chip công nghiệp. Thay vì triển khai trực tiếp các LLM thương mại hoặc mã nguồn mở có sẵn, thay vào đó, chúng tôi áp dụng các kỹ thuật điều chỉnh miền sau: mã thông báo tùy chỉnh, đào tạo trước liên tục thích ứng với miền, tinh chỉnh có giám sát (SFT) với các hướng dẫn dành riêng cho miền và tên miền- mô hình truy xuất thích ứng. Chúng tôi đánh giá các phương pháp này trên ba ứng dụng LLM đã chọn để thiết kế chip: chatbot trợ lý kỹ thuật, tạo tập lệnh EDA cũng như tóm tắt và phân tích lỗi. Kết quả của chúng tôi cho thấy rằng các kỹ thuật thích ứng miền này cho phép cải thiện đáng kể hiệu suất LLM so với các mô hình cơ sở có mục đích chung trên ba ứng dụng được đánh giá, cho phép giảm kích thước mô hình tới 5 lần với hiệu suất tương tự hoặc tốt hơn trên một loạt nhiệm vụ thiết kế. Phát hiện của chúng tôi cũng chỉ ra rằng vẫn còn chỗ cần cải thiện giữa kết quả hiện tại và kết quả lý tưởng. Chúng tôi tin rằng việc nghiên cứu sâu hơn về các phương pháp LLM phù hợp với miền sẽ giúp thu hẹp khoảng cách này trong tương lai.
Trong vài thập kỷ qua, các thuật toán và công cụ Tự động hóa thiết kế điện tử (EDA) đã mang lại những lợi ích to lớn về năng suất thiết kế chip. Cùng với sự gia tăng theo cấp số nhân về mật độ bóng bán dẫn do định luật Moore mang lại, EDA đã cho phép phát triển các thiết kế SoC phức tạp giàu tính năng với hàng tỷ bóng bán dẫn. Gần đây hơn, các nhà nghiên cứu đã khám phá các cách áp dụng AI vào thuật toán EDA và quy trình thiết kế chip để cải thiện hơn nữa năng suất thiết kế chip [1] [2] [3]. Tuy nhiên, nhiều nhiệm vụ thiết kế chip tốn nhiều thời gian liên quan đến giao tiếp với ngôn ngữ tự nhiên hoặc ngôn ngữ lập trình vẫn chưa được tự động hóa. Những tiến bộ mới nhất trong các mô hình ngôn ngữ lớn (LLM) thương mại (ChatGPT, Bard, v.v.) và nguồn mở (Vicuna [4], LLaMA2 [5], v.v.) mang đến cơ hội chưa từng có để giúp tự động hóa các tác vụ thiết kế chip liên quan đến ngôn ngữ này. Thật vậy, nghiên cứu học thuật ban đầu [6] [7] [8] đã khám phá các ứng dụng của LLM để tạo RTL có thể thực hiện các tác vụ đơn giản trong các mô-đun thiết kế nhỏ cũng như tạo tập lệnh cho các công cụ EDA.
Chúng tôi tin rằng LLM có tiềm năng giúp tăng năng suất thiết kế chip bằng cách sử dụng AI tổng quát để tự động hóa nhiều tác vụ thiết kế chip liên quan đến ngôn ngữ như tạo mã, trả lời các câu hỏi kỹ thuật thông qua giao diện ngôn ngữ tự nhiên, phân tích §Đóng góp và tạo báo cáo bình đẳng cũng như phân loại lỗi . Trong nghiên cứu này, chúng tôi tập trung vào ba ứng dụng LLM cụ thể sau: chatbot trợ lý kỹ thuật dành cho GPU ASIC và các kỹ sư thiết kế Kiến trúc, hiểu các thiết kế CTNH nội bộ và có khả năng giải thích các chủ đề thiết kế phức tạp; Tạo tập lệnh EDA cho hai công cụ miền cụ thể dựa trên Python và Tcl cho các tác vụ phân tích thời gian VLSI được chỉ định bằng tiếng Anh; tóm tắt và phân tích lỗi như một phần của hệ thống theo dõi lỗi và sự cố nội bộ.
Mặc dù các LLM có mục đích chung được đào tạo trên lượng lớn dữ liệu internet thể hiện khả năng vượt trội trong các nhiệm vụ AI tổng hợp trên các lĩnh vực khác nhau (như được chứng minh bởi Bubeck và cộng sự trong [9]), công trình gần đây như BloombergGPT [10] và BioMedLLM [11] chứng minh rằng các mô hình LLM dành riêng cho miền có thể hoạt động tốt hơn mô hình có mục đích chung trong các nhiệm vụ dành riêng cho miền. Trong lĩnh vực thiết kế phần cứng, [6] [12] đã chỉ ra rằng LLM mã nguồn mở (CodeGen [13]) được tinh chỉnh trên dữ liệu Verilog bổ sung có thể hoạt động tốt hơn các mô hình OpenAI hiện đại. Việc tùy chỉnh LLM theo cách này cũng tránh được các rủi ro bảo mật liên quan đến việc gửi dữ liệu thiết kế chip độc quyền cho LLM của bên thứ ba thông qua API. Tuy nhiên, việc đào tạo các mô hình dành riêng cho từng miền ngay từ đầu sẽ rất tốn kém vì việc này thường đòi hỏi hàng triệu giờ đào tạo GPU. Để đào tạo các mô hình theo miền cụ thể một cách hiệu quả về mặt chi phí, thay vào đó, chúng tôi đề xuất kết hợp các kỹ thuật sau: Đào tạo trước thích ứng với miền (DAPT) [14] của các mô hình nền tảng với các mã thông báo được điều chỉnh theo miền, căn chỉnh mô hình bằng cách sử dụng các hướng dẫn chung và miền cụ thể và truy xuất- thế hệ tăng cường (RAG) [15] với mô hình truy xuất phù hợp với miền được đào tạo.
Như được hiển thị trong Hình 1, cách tiếp cận của chúng tôi là bắt đầu với mô hình nền tảng cơ bản và áp dụng DAPT, sau đó là Tinh chỉnh có giám sát (SFT). DAPT, còn được gọi là đào tạo trước liên tục với dữ liệu trong miền, đã được chứng minh là có hiệu quả trong các lĩnh vực như ấn phẩm, tin tức và đánh giá về y sinh và khoa học máy tính. Trong trường hợp của chúng tôi, chúng tôi xây dựng tập dữ liệu đào tạo trước dành riêng cho từng miền từ một tập hợp mã liên quan đến phần cứng độc quyền (ví dụ: phần mềm, RTL, bàn kiểm tra xác minh, v.v.) và bộ dữ liệu ngôn ngữ tự nhiên (ví dụ: thông số kỹ thuật phần cứng, tài liệu, v.v.). Chúng tôi dọn dẹp và xử lý trước tập dữ liệu thô, sau đó tiếp tục huấn luyện trước mô hình nền tảng với dữ liệu theo miền cụ thể. Chúng tôi gọi mô hình kết quả là ChipNeMo
Mô hình nền tảng. DAPT được thực hiện trên một phần nhỏ mã thông báo được sử dụng trong quá trình đào tạo trước và rẻ hơn nhiều, chỉ cần vài nghìn giờ GPU. Như được mô tả trong Phần V, chúng tôi thấy cách tiếp cận này hiệu quả hơn các kỹ thuật Đào tạo hiệu quả tham số (PEFT) chẳng hạn như LoRA [16] cho các trường hợp sử dụng của chúng tôi.
Trình mã thông báo LLM chuyển đổi văn bản thành chuỗi mã thông báo để đào tạo LLM. Trình mã thông báo dành riêng cho tên miền cải thiện hiệu quả mã thông báo bằng cách điều chỉnh các quy tắc và mẫu cho các cụm từ dành riêng cho tên miền, chẳng hạn như các từ khóa thường thấy trong RTL. Đối với DAPT, chúng tôi không thể đào tạo lại trình mã thông báo dành riêng cho miền mới từ đầu vì điều đó sẽ làm cho mô hình nền tảng không hợp lệ. Thay vì giới hạn ChipNeMo đối với trình mã thông báo có mục đích chung được đào tạo trước được sử dụng bởi mô hình nền tảng, thay vào đó, chúng tôi điều chỉnh trình mã thông báo được đào tạo trước cho phù hợp với tập dữ liệu thiết kế chip của mình, chỉ thêm mã thông báo mới cho các thuật ngữ dành riêng cho miền.
Các mô hình nền tảng ChipNeMo là các mô hình hoàn thiện yêu cầu tinh chỉnh có giám sát (SFT) để thích ứng với các tác vụ như trò chuyện. Chúng tôi sử dụng các bộ dữ liệu hướng dẫn trò chuyện có mục đích chung có sẵn rộng rãi cho trò chuyện nhiều lượt cùng với một lượng nhỏ bộ dữ liệu hướng dẫn theo miền cụ thể để thực hiện SFT trên mô hình nền tảng ChipNeMo, tạo ra mô hình Trò chuyện ChipNeMo. Chúng tôi nhận thấy rằng SFT với tập dữ liệu hướng dẫn trò chuyện cho mục đích chung là đủ để căn chỉnh các mô hình nền tảng ChipNeMo với các truy vấn trong miền thiết kế chip. Chúng tôi cũng đã thêm một lượng nhỏ dữ liệu hướng dẫn SFT dành riêng cho nhiệm vụ, giúp cải thiện hơn nữa sự liên kết. Chúng tôi đã đào tạo nhiều mô hình ChipNeMo Foundation và Chat dựa trên các biến thể của mô hình LLaMA2 được sử dụng làm mô hình nền tảng cơ sở.
Để cải thiện hiệu suất trên ứng dụng chatbot trợ lý kỹ thuật, chúng tôi cũng tận dụng Thế hệ tăng cường truy xuất (RAG). RAG là một cách tiếp cận mở để cung cấp ngữ cảnh chính xác cho LLM cho các truy vấn của người dùng. Nó truy xuất kiến thức có liên quan trong miền từ kho dữ liệu của mình để tăng cường tạo phản hồi cho truy vấn của người dùng. Phương pháp này cho thấy sự cải thiện đáng kể trong việc đưa mô hình vào bối cảnh của một câu hỏi cụ thể. Điều quan trọng là chúng tôi đã quan sát thấy những cải thiện đáng kể về tỷ lệ truy xuất đạt được khi tinh chỉnh mô hình truy xuất được huấn luyện trước với dữ liệu miền. Điều này dẫn đến những cải tiến hơn nữa về chất lượng mô hình.
Chúng tôi nhấn mạnh những đóng góp và phát hiện sau đây liên quan đến việc điều chỉnh LLM cho lĩnh vực thiết kế chip:
• Chúng tôi chứng minh tính hiệu quả của LLM được điều chỉnh theo miền trong ba trường hợp sử dụng: chatbot trợ lý kỹ thuật, tạo tập lệnh công cụ EDA cũng như tóm tắt và phân tích lỗi. Chúng tôi đạt được số điểm 7,4/10 cho phản hồi của chatbot trợ lý kỹ thuật dựa trên đánh giá của chuyên gia, đạt được độ chính xác hơn 50% khi tạo tập lệnh EDA và xếp hạng đánh giá của chuyên gia từ 4 đến 5/7/thang điểm cho tóm tắt và xác định nhiệm vụ nhiệm vụ.
• Các mô hình ChipNeMo được điều chỉnh theo miền vượt trội hơn đáng kể so với tất cả các LLM thông thường được đánh giá trên cả điểm chuẩn AutoEval dành riêng cho miền đa lựa chọn và đánh giá của con người đối với các ứng dụng.
• Đối với các tác vụ mà mô hình có thể tạo văn bản từ ngữ cảnh nhắc nhở (ví dụ: trò chuyện với các lượt truy cập RAG, tóm tắt, tạo mã bằng tài liệu được cung cấp), việc điều chỉnh miền sẽ thu hẹp khoảng cách giữa mô hình LLaMA2 70B hiện đại nhất và mô hình 13B nhỏ hơn nhiều (chi phí đào tạo gia tăng nhỏ cho phép giảm tham số tới 5 lần để giảm chi phí suy luận).
• Công cụ mã thông báo tùy chỉnh giúp giảm số lượng mã thông báo DAPT tới 3,3% mà không ảnh hưởng đến hiệu quả của ứng dụng.
• SFT trên 1,1K hướng dẫn dành riêng cho miền bổ sung cải thiện đáng kể mức độ thành thạo của ứng dụng lên tới 0,33 trên thang điểm 10, độ chính xác 18% và 0,79 trên thang điểm 7 trong chatbot trợ lý kỹ thuật, tạo tập lệnh EDA và tóm tắt lỗi và phân tích tương ứng.
• Tinh chỉnh mô hình truy xuất ChipNeMo của chúng tôi với dữ liệu theo miền cụ thể giúp cải thiện tỷ lệ trúng đích của chó săn lên 30% so với chó săn mồi hiện đại đã được huấn luyện trước, từ đó cải thiện chất lượng tổng thể của phản hồi RAG.
Bài viết được tổ chức như sau. Phần II mô tả tập dữ liệu của chúng tôi và các điểm chuẩn đánh giá tự động để xác minh kiến thức miền. Phần III phác thảo các phương pháp đào tạo và điều chỉnh miền được sử dụng bao gồm mã thông báo được điều chỉnh, DAPT, SFT và RAG. Phần IV cung cấp chi tiết về từng ứng dụng và thiết lập thử nghiệm. Phần V mô tả các kết quả thử nghiệm bao gồm đánh giá của con người đối với từng ứng dụng. Phần VI thảo luận về những hạn chế của ChipNeMo và công việc trong tương lai. Phần VII mô tả các phương pháp LLM có liên quan và các công việc khác nhằm vào LLM cho thiết kế chip. Cuối cùng, các kết quả hoàn chỉnh cùng với các chi tiết đào tạo mô hình bổ sung và các ví dụ về văn bản do các trường hợp sử dụng ứng dụng tạo ra được minh họa trong Phụ lục.
Bài viết này có sẵn trên arxiv theo giấy phép CC 4.0.