paint-brush
ChipNeMo: LLM được điều chỉnh theo miền cho thiết kế chip: Ứng dụng LLMtừ tác giả@textmodels

ChipNeMo: LLM được điều chỉnh theo miền cho thiết kế chip: Ứng dụng LLM

từ tác giả Writings, Papers and Blogs on Text Models6m2024/06/06
Read on Terminal Reader

dài quá đọc không nổi

Các nhà nghiên cứu trình bày ChipNeMo, sử dụng khả năng thích ứng miền để nâng cao LLM cho thiết kế chip, giúp giảm kích thước mô hình lên tới 5 lần với hiệu suất tốt hơn.
featured image - ChipNeMo: LLM được điều chỉnh theo miền cho thiết kế chip: Ứng dụng LLM
Writings, Papers and Blogs on Text Models HackerNoon profile picture
0-item

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.

Bảng liên kết

IV. ỨNG DỤNG LLM

Chúng tôi đã tiến hành khảo sát các ứng dụng LLM tiềm năng trong nhóm thiết kế của mình và phân loại chúng thành bốn nhóm: tạo mã, câu hỏi và câu trả lời, phân tích và báo cáo cũng như phân loại . Việc tạo mã đề cập đến việc tạo LLM mã thiết kế, bảng kiểm tra, xác nhận, tập lệnh công cụ nội bộ, v.v.; Hỏi & Đáp đề cập đến LLM trả lời các câu hỏi về thiết kế, công cụ, cơ sở hạ tầng, v.v.; Phân tích và báo cáo đề cập đến dữ liệu phân tích LLM và cung cấp báo cáo; phân loại đề cập đến LLM giúp gỡ lỗi các vấn đề về thiết kế hoặc công cụ được đưa ra trong nhật ký và báo cáo. Chúng tôi đã chọn một ứng dụng chính từ mỗi danh mục để nghiên cứu trong công việc này, ngoại trừ danh mục phân loại mà chúng tôi để lại để nghiên cứu thêm. Động lực và chi tiết kỹ thuật của từng ứng dụng được đưa ra dưới đây.


A. Chatbot trợ lý kỹ thuật


Ứng dụng này nhằm mục đích giúp các kỹ sư thiết kế giải đáp các câu hỏi về kiến trúc, thiết kế, xác minh và xây dựng của họ, những câu hỏi này có thể cải thiện đáng kể năng suất tổng thể của họ mà không ảnh hưởng đến năng suất của những người khác. Người ta quan sát thấy rằng các kỹ sư thiết kế thường thích động não, thiết kế phần cứng và viết mã, nhưng có thể bị chậm lại trong việc chờ đợi câu trả lời về kiến thức thiết kế mà họ thiếu. Năng suất thiết kế cũng có thể được nâng cao bằng cách tránh yêu cầu các kỹ sư viết mã dựa trên các giả định sai lầm hoặc mã gỡ lỗi mà họ không quen thuộc. Các nghiên cứu nội bộ đã chỉ ra rằng có tới 60% thời gian của một nhà thiết kế chip thông thường được dành cho các nhiệm vụ liên quan đến gỡ lỗi hoặc danh sách kiểm tra trong nhiều chủ đề bao gồm thông số thiết kế, xây dựng bàn kiểm tra, định nghĩa kiến trúc và các công cụ hoặc cơ sở hạ tầng. Các chuyên gia về những vấn đề này thường có mặt khắp toàn cầu trong một công ty đa quốc gia, do đó không phải lúc nào cũng thuận tiện để tìm được sự trợ giúp ngay lập tức. Do đó, một chatbot trợ lý kỹ thuật dựa trên kiến thức được trích xuất từ các tài liệu thiết kế nội bộ, mã, mọi dữ liệu được ghi lại về thiết kế và thông tin liên lạc kỹ thuật như email và thông tin liên lạc tức thời của công ty, v.v. có thể giúp cải thiện đáng kể năng suất thiết kế. Chúng tôi đã triển khai ứng dụng này bằng phương pháp RAG phù hợp với miền được đề cập trong Phần III-D.


B. Tạo tập lệnh EDA


Một nhiệm vụ phổ biến khác trong quy trình thiết kế chip công nghiệp là viết các tập lệnh EDA để hoàn thành nhiều nhiệm vụ khác nhau như


Hình 4: Tích hợp trình tạo tập lệnh LLM với các công cụ EDA


như thực hiện thiết kế, xem xét nội tâm và chuyển đổi. Các tập lệnh này thường tận dụng cả thư viện tập lệnh nội bộ tùy chỉnh và dành riêng cho công cụ. Việc tìm hiểu các thư viện này, điều hướng tài liệu công cụ cũng như viết và gỡ lỗi các tập lệnh này có thể tiêu tốn một lượng thời gian kỹ thuật đáng kể.


LLM đã được chứng minh là thành thạo trong việc tạo mã quy mô nhỏ trên nhiều nhiệm vụ [32] và do đó, việc tùy chỉnh các mô hình này để tăng tốc năng suất của kỹ sư trong nhiệm vụ cụ thể của miền này là điều đương nhiên. Trong công việc này, chúng tôi tập trung vào việc tạo hai loại tập lệnh khác nhau từ các mô tả nhiệm vụ bằng ngôn ngữ tự nhiên. Đầu tiên là các tập lệnh tận dụng Tool1, thư viện python nội bộ để chỉnh sửa và phân tích thiết kế. Thứ hai là các tập lệnh Tcl sử dụng giao diện lệnh do Tool2 cung cấp, đây là công cụ phân tích thời gian tĩnh công nghiệp hàng đầu.


Để xây dựng tập dữ liệu tinh chỉnh theo miền cụ thể của chúng tôi cho nhiệm vụ này, các tập lệnh sản xuất cho cả hai công cụ đã được thu thập từ các chuyên gia thiết kế. Chúng tôi nhận thấy rằng các mô hình DAPT của chúng tôi có thể tạo ra các nhận xét nội tuyến hợp lý cho mã. Điều này cho phép chúng tôi sử dụng các mô hình này để cải thiện chất lượng của các tập lệnh được thu thập bằng cách tạo thêm nhận xét nội tuyến. Các chuyên gia về con người sau đó đã xác minh và sửa chữa những nhận xét này, đồng thời tạo lời nhắc liên quan. Những lời nhắc và cặp mã này tạo nên dữ liệu được sử dụng cho DSFT theo định dạng được thảo luận trong Phần III-C.


Để cung cấp và thu thập phản hồi theo cách có ý nghĩa nhất, chúng tôi đã dành nỗ lực đáng kể để xây dựng quy trình như trong Hình 4, nơi các kỹ sư có thể truy vấn mô hình và chạy mã được tạo thông qua cùng một giao diện. Điều này cho phép chúng tôi tự tin vào tính chính xác của mã được tạo cũng như cung cấp phản hồi chính xác bằng cách cho phép các kỹ sư xem họ có thể cần bao nhiêu chỉnh sửa để có được một tập lệnh hoạt động. Chúng tôi hỗ trợ tích hợp Tool1 và Tool2 bằng cách thiết lập kết nối tương tác với máy chủ công cụ.


Ngoài ra, chúng tôi còn cung cấp biểu mẫu phản hồi của người dùng, cho phép chúng tôi so sánh các mô hình khác nhau và thu thập thông tin chi tiết có giá trị từ phản hồi của người dùng. Thông tin có giá trị này có thể hỗ trợ chúng tôi cải tiến hơn nữa các mô hình của mình.


C. Tóm tắt và phân tích lỗi


Việc theo dõi báo cáo, phân loại, gỡ lỗi và giải quyết các tính năng cũng như lỗi khác nhau trong các giai đoạn của quy trình sản xuất là một quá trình tốn nhiều thời gian. Các nhà quản lý kỹ thuật dành nhiều thời gian xem xét cơ sở dữ liệu theo dõi vấn đề nội bộ để xây dựng sự hiểu biết về trạng thái của dự án và giúp tăng tốc độ thực hiện. Do đó, một công cụ có thể xem xét tất cả thông tin hỗ trợ và tóm tắt nhanh chóng cả dữ liệu kỹ thuật và quản lý cũng như đề xuất các bước tiếp theo sẽ giúp tăng năng suất của nhóm. Chúng tôi tập trung vào việc sử dụng LLM để tạo ra ba kết quả đầu ra khác nhau - một kết quả tập trung vào chi tiết kỹ thuật, một kết quả tập trung vào chi tiết quản lý và một kết quả đầu ra đề xuất phân công nhiệm vụ.


Để nghiên cứu các tác vụ này, chúng tôi đã sử dụng cơ sở dữ liệu lỗi nội bộ của NVIDIA, NVBugs. Cơ sở dữ liệu này được sử dụng để báo cáo, theo dõi và giải quyết lỗi cũng như theo dõi nhiệm vụ và tính năng chung trong toàn công ty. Chúng tôi kỳ vọng các mô hình ChipNeMo sẽ thực hiện tốt nhiệm vụ này vì một lượng lớn dữ liệu lỗi đã được đưa vào bộ dữ liệu DAPT. Ngoài ra, chúng tôi đã xây dựng tập dữ liệu SFT theo miền dành riêng cho nhiệm vụ này bao gồm các ví dụ về nhiệm vụ tóm tắt lỗi và phân công nhiệm vụ.


Thông thường, mô tả lỗi chứa các đoạn lớn tệp nhật ký hoặc đoạn mã cùng với lịch sử nhận xét dài. Trong những trường hợp như vậy, văn bản lỗi quá lớn đối với cửa sổ ngữ cảnh LLM của chúng tôi. Để giải quyết vấn đề này, chúng tôi đã triển khai hai giải pháp. Đầu tiên, chúng tôi tìm và thay thế tên đường dẫn dài bằng bí danh ngắn hơn để cho phép mô hình liên kết các đường dẫn xảy ra ở nhiều vị trí trong lỗi mà không cần xử lý toàn bộ chuỗi. Thứ hai, chúng tôi chia nhiệm vụ tóm tắt thành một nhiệm vụ gia tăng trong đó mô hình có nhiệm vụ tích lũy dữ liệu trên nhiều khối dữ liệu tóm tắt và lỗi. Chúng tôi sử dụng phương pháp phân cấp trong đó lỗi đầu tiên được tách thành các phần phù hợp với cửa sổ ngữ cảnh. Những phần đó sau đó được tóm tắt và các phần tóm tắt được tích lũy rồi tách thành các phần. Quá trình này được lặp lại cho đến khi toàn bộ tập hợp các bản tóm tắt vừa với một cửa sổ ngữ cảnh duy nhất và một bản tóm tắt duy nhất được tạo ra. Chúng tôi sử dụng cách tiếp cận tương tự này một cách độc lập với LLM được sử dụng để tóm tắt.


Bài viết này có sẵn trên arxiv theo giấy phép CC 4.0.