paint-brush
ChipNeMo: LLM thích ứng theo miền cho thiết kế chip: Phụ lụctừ tác giả@textmodels

ChipNeMo: LLM thích ứng theo miền cho thiết kế chip: Phụ lục

từ tác giả Writings, Papers and Blogs on Text Models8m2024/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 thích ứng theo miền cho thiết kế chip: Phụ lục
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

RUỘT THỪA

A. Quy trình thu thập dữ liệu

Bộ sưu tập được triển khai bằng một tập lệnh shell và Python, được thiết kế để xác định dữ liệu và tài liệu thiết kế có liên quan, chuyển đổi chúng thành văn bản thuần túy nếu có, lọc chúng bằng các chỉ số chất lượng cơ bản, tính toán tổng kiểm tra để sao chép tệp chính xác và nén chúng để lưu trữ. Luồng thu thập không sử dụng các tập lệnh thu thập và thu thập dành riêng cho LLM có sẵn, vì chúng tôi nhằm mục đích giảm thiểu yêu cầu về không gian thông qua việc thu thập dữ liệu tại chỗ của các nguồn dữ liệu nội bộ (cả hệ thống tệp được nối mạng và ứng dụng web nội bộ). Đối với việc thu thập dựa trên hệ thống tệp, dữ liệu được giữ nguyên trong khi được lọc về chất lượng, thay vì lưu trữ cục bộ các bộ dữ liệu thô bổ sung.


Việc thu thập dữ liệu xác minh và thiết kế bao gồm nhiều tệp nguồn khác nhau, bao gồm Verilog và VHDL (RTL và netlists), C++, Spice, Tcl, nhiều ngôn ngữ tập lệnh khác nhau và các tệp cấu hình liên quan đến bản dựng. Dữ liệu từ các dịch vụ web nội bộ được thu thập thông qua cả các lệnh gọi API REST và thu thập thông tin thông thường, với định dạng HTML bị xóa bằng thư viện Python BeautifulSoup [52] mã nguồn mở trong cả hai trường hợp để giảm thiểu việc vô tình loại bỏ các ví dụ mã hóa, với chi phí phải giới thiệu nhiều nồi hơi hơn thanh điều hướng tấm và các thành phần trang HTML khác. Luồng thu thập dữ liệu của chúng tôi hỗ trợ các định dạng tài liệu thông thường, bao gồm .docx, .pptx và .pdf, sử dụng các thư viện chuyển đổi Python có sẵn và các công cụ nguồn mở.


Vì hầu hết dữ liệu nội bộ được cho là có chất lượng cao nên tính năng lọc tối thiểu đã được áp dụng: tính năng lọc số dòng được sử dụng để đảm bảo loại trừ các tệp cực lớn hoặc nhỏ và các tệp được sắp xếp thành các danh mục rộng rãi, được viết thủ công và được tạo bằng công cụ.

B. Đào tạo trước thích ứng miền (DAPT)

Trong phần này, chúng tôi trình bày kết quả chi tiết về các mô hình tiền huấn luyện thích ứng miền của chúng tôi. Chúng tôi cũng trình bày chi tiết các thử nghiệm cắt bỏ của mình về đào tạo trước thích ứng miền.


Siêu tham số DAPT: Chi tiết được trình bày trong Bảng VI.


BẢNG VI: Siêu tham số DAPT và SFT, các giá trị SFT được hiển thị trong ngoặc đơn (nếu khác với DAPT).


Kết quả đánh giá tự động: Chúng tôi trình bày kết quả chi tiết về điểm chuẩn đánh giá tự động trong Bảng VII và Bảng VIII. Để đơn giản, trong phần còn lại của phần này chúng tôi trình bày các kết quả chuẩn tổng hợp cho các nghiên cứu cắt bỏ:


Chip : Chúng tôi báo cáo kết quả trung bình về các tiêu chuẩn Thiết kế, Tập lệnh, Lỗi và Mạch trong miền từ Bảng III (5 ảnh).


• MMLU: Chúng tôi báo cáo kết quả tổng thể về MMLU (5 phát) [22] một điểm chuẩn tổng hợp phổ biến trên nhiều chủ đề khác nhau.


Lý luận : Chúng tôi báo cáo kết quả trung bình dựa trên các điểm chuẩn công khai phổ biến về lý luận thông thường (0-shot), bao gồm Winogrande [53], hellaswag [54], ARC-easy [55] và RACE-High [56].


Code : Chúng tôi báo cáo tỷ lệ vượt qua trung bình của các điểm chuẩn mã hóa với giải mã tham lam, bao gồm HumanEval [23], VerilogEval-Machine [12] và VerilogEval-Human [12].


Tăng cường mã thông báo: Chúng tôi đã thử nghiệm DAPT bằng cách sử dụng mã thông báo LLaMA2 ban đầu và mã thông báo tăng cường như được mô tả trong Phần III-A. Hình 11 mô tả quá trình mất huấn luyện được làm mịn cho ChipNeMo bằng mã thông báo ban đầu chưa được sửa đổi. Khi so sánh với Hình 2, chúng tôi nhận thấy rằng trình mã thông báo tăng cường có tổn thất đào tạo lớn hơn khi khởi tạo, do các mã thông báo được thêm vào không bao giờ được quan sát thấy trong quá trình đào tạo trước mô hình nền tảng. Sự mất mát đào tạo tương tự cũng đạt được đối với DAPT với 1 kỷ nguyên.


Bảng IX trình bày kết quả điểm chuẩn đánh giá tự động tổng hợp. Chúng tôi lưu ý rằng việc tăng cường mã thông báo và khởi tạo trọng số một cách cẩn thận chỉ ảnh hưởng một chút đến hiệu suất của mô hình trên các tiêu chuẩn học thuật chung. DAPT đã cải thiện đáng kể điểm chuẩn tên miền với bất kỳ mã thông báo nào, bao gồm cả mã hóa Verilog (không có sự khác biệt lớn về HumanEval). Chúng tôi kết luận rằng việc tăng cường mã thông báo đi kèm với lợi ích của việc cải thiện mã thông báo và hiệu quả đào tạo mà không làm suy giảm khả năng miền và ngôn ngữ chung của mô hình.


Kết hợp các bộ dữ liệu công khai: Như đã giới thiệu trong Phần II-A, chúng tôi đã đưa dữ liệu công khai vào DAPT, được lấy mẫu từ các bộ dữ liệu công cộng thường được sử dụng để đào tạo trước mô hình nền tảng. Chúng tôi chủ yếu hy vọng rằng việc trộn dữ liệu công khai như Wikipedia vào DAPT có thể giúp “sửa chữa” những xáo trộn do việc tăng cường mã thông báo mang lại và cải thiện khả năng ngôn ngữ tự nhiên nói chung


Hình 11: Giảm bớt tình trạng mất huấn luyện bằng mã thông báo LLaMA2 gốc.


Hình 12: Giảm bớt thời gian đào tạo với tốc độ học tập lớn hơn. Chúng tôi bao gồm các đường cong mất mát của siêu tham số được đề xuất để so sánh.


của các mô hình. Chúng tôi đã tiến hành một vòng DAPT khác với tính năng tăng cường mã thông báo chỉ sử dụng dữ liệu miền, huấn luyện cho cùng số bước tương đương với khoảng 1,1 kỷ nguyên dữ liệu. Chúng tôi nhận thấy rằng việc kết hợp dữ liệu công khai sẽ cải thiện kết quả một chút. Chúng tôi trình bày kết quả chi tiết trong Bảng X.



Hình 12 cho thấy tổn thất đào tạo đối với ChipNeMo-7B với các mã thông báo tăng cường bao gồm cả phần kết hợp tập dữ liệu công khai. Chúng tôi đã quan sát thấy mức độ suy giảm huấn luyện tăng đột biến ở các bước huấn luyện ban đầu với mức suy giảm huấn luyện cuối cùng đối với các mô hình 7B thậm chí còn tốt hơn so với siêu tham số DAPT ban đầu 13B. Tuy nhiên, chúng tôi lưu ý rằng sự xuống cấp đáng kể của các điểm chuẩn ngôn ngữ tự nhiên như được trình bày trong Bảng XII, bao gồm cả thiết kế chip trong miền. Khả năng mã hóa được cải thiện phù hợp với những phát hiện của [32].


Chúng tôi nhấn mạnh rằng trường hợp của chúng tôi khác với trường hợp trong [32]. Mặc dù chúng tôi cũng tiến hành khởi tạo "tiếp tục huấn luyện trước" từ các điểm kiểm tra được huấn luyện trước, nhưng chúng tôi muốn mô hình duy trì hiệu suất ở mức độ cao đối với các khả năng chung, đồng thời


BẢNG VII: Kết quả đánh giá tự động. Chúng tôi báo cáo kết quả điểm chuẩn học thuật cho LLaMA2 bằng các phương pháp đánh giá độc quyền. Các mô hình ChipNeMo được đào tạo bằng cách tăng cường mã thông báo.


BẢNG VIII: Kết quả đánh giá mã hóa. Hiển thị tốc độ vượt qua với giải mã tham lam. Chúng tôi báo cáo kết quả cho LLaMA2 bằng các phương pháp đánh giá độc quyền. Các mô hình ChipNeMo được đào tạo bằng cách tăng cường mã thông báo.


BẢNG IX: Kết quả đánh giá trên các mô hình ChipNeMo với các Tokenizers khác nhau. Tháng 8 biểu thị mã thông báo tăng cường và Ori. chỉ ra việc sử dụng mã thông báo gốc LLaMA2. Sử dụng mã thông báo tăng cường không có DAPT tương ứng với việc khởi tạo mô hình như trong Phần III-A.


chắt lọc thông tin và kiến thức về tập dữ liệu miền (không thấy trong quá trình đào tạo trước mô hình) thành trọng số mô hình. Ngược lại, [32] sử dụng dữ liệu mã có sẵn công khai mà chủ yếu thiếu các yếu tố ngôn ngữ tự nhiên, nhấn mạnh trọng tâm chính của họ vào các nhiệm vụ liên quan đến mã hóa. Chúng tôi đưa ra giả thuyết rằng tốc độ học tập nhỏ hơn đóng vai trò kép cho việc thích ứng miền, tạo điều kiện chắt lọc kiến thức miền thông qua DAPT trong khi duy trì sự cân bằng không đi quá xa so với mô hình cơ sở, do đó duy trì khả năng ngôn ngữ tự nhiên chung đồng thời cải thiện đáng kể hiệu suất trong nhiệm vụ -miền


Tinh chỉnh tham số hiệu quả (PEFT): Tinh chỉnh tham số hiệu quả sẽ cố định trọng số mô hình được huấn luyện trước và đưa các tham số có thể huấn luyện vào các mô hình bộ điều hợp nhỏ hơn để tinh chỉnh hiệu quả các tác vụ xuôi dòng. Chúng tôi khám phá việc sử dụng PEFT trong DAPT bằng cách sử dụng Thích ứng cấp thấp (LoRA) [16]. Do việc triển khai lớp biến áp của chúng tôi hợp nhất KQV thành một phép chiếu duy nhất nên chúng tôi thêm bộ điều hợp LoRA cho một phép chiếu Xếp hạng thấp duy nhất cho mỗi lớp tự chú ý theo kiểu kết hợp. Chúng tôi thử nghiệm trên các mô hình LLaMA2-13B với mã thông báo LLaMA2 ban đầu, sử dụng cùng các thiết lập đào tạo DAPT trong Bảng VI. Chúng tôi đã chạy hai thử nghiệm, giới thiệu các tham số có thể huấn luyện bổ sung lần lượt là 26,4 triệu (nhỏ) và 211,2 triệu (lớn).


Hình 13 cho thấy đường cong tổn thất huấn luyện của các mô hình LoRA và so sánh với huấn luyện tham số đầy đủ. Đối với cả hai mô hình LoRA, tổn thất nhanh chóng hội tụ và ngừng giảm vượt quá một điểm nhất định. Bảng XIII trình bày kết quả đánh giá trên các mô hình LoRA. Cả hai mô hình LoRA đều hoạt động kém hơn đáng kể so với việc đào tạo thông số đầy đủ trong các nhiệm vụ thiết kế chip trong miền. Các mô hình LoRA cải thiện nhiệm vụ thiết kế chip so với các mô hình không DAPT, trong đó mô hình lớn hơn cho kết quả tốt hơn một chút (nhưng không đáng kể).


BẢNG X: Cắt bỏ trên bộ dữ liệu công cộng Kết hợp với ChipNeMo-13B. Việc trộn dữ liệu công khai cải thiện kết quả một chút.


BẢNG XI: Huấn luyện siêu tham số với tốc độ học tập lớn hơn. Chúng tôi áp dụng tham số tương tự như [32].

C. Đào tạo mô hình truy xuất

Việc tạo các mẫu đào tạo theo cách thủ công tốn rất nhiều công sức, vì vậy chúng tôi đã quyết định triển khai một quy trình để tạo chúng một cách tự động. Vì chúng tôi đang sử dụng phương pháp học tương phản để tinh chỉnh mô hình của mình nên mỗi mẫu yêu cầu một tập hợp cả đoạn tích cực và đoạn tiêu cực, đặc biệt là những đoạn tiêu cực khó để tối đa hóa độ chính xác.


1) Quy trình lấy mẫu tập dữ liệu: Hình 14 mô tả các bước được thực hiện để tạo mẫu:


• Bước 1: Chọn ngẫu nhiên một đoạn văn từ kho tài liệu


• Bước 2: Sử dụng mô hình ngôn ngữ (Vicuna) để tạo truy vấn hợp lệ từ đoạn văn


• Bước 3: Sử dụng mô hình truy xuất có sẵn (biến đổi câu) để tìm nạp N đoạn văn trên cùng từ kho tài liệu cho truy vấn trong đó mỗi đoạn văn có thể là một âm cứng tiềm năng


• Bước 4: Có thể một số đoạn văn được tìm nạp thực sự là tích cực nên hãy sử dụng cùng một mô hình ngôn ngữ để lọc ra những đoạn tích cực


• Bước 5: Nếu không có đủ đoạn phủ định sau quá trình lọc này, hãy bổ sung các đoạn văn ngẫu nhiên từ kho ngữ liệu


BẢNG XII: Cắt bỏ tốc độ học bằng ChipNeMo-7B. Tốc độ học tập lớn hơn làm giảm đáng kể hiệu suất của tất cả các tác vụ liên quan đến ngôn ngữ nhưng cải thiện đôi chút khả năng viết mã.


Hình 13: Mất mát do đào tạo của LoRA [16]. 13B tương ứng với thông số DAPT đầy đủ.


Đối với nghiên cứu ban đầu của chúng tôi, chúng tôi đã sử dụng Vicuna [4] và Sentence Transformer [33]; tuy nhiên, chúng có thể dễ dàng được thay thế bằng LLaMA2 [5] và BM25 [42] tương ứng để tạo ra mô hình truy xuất có tính khả thi về mặt thương mại.


2) So sánh chất lượng lượt truy cập: Không phải tất cả các lượt truy cập đều được tạo ra như nhau. Đoạn văn trong ví dụ Spec bên dưới trả lời rõ ràng và đầy đủ câu hỏi của nó. Đoạn văn trong ví dụ Xây dựng chứa câu trả lời; tuy nhiên, cần có thêm ngữ cảnh để trả lời truy vấn.


Ví dụ cụ thể: Đoạn nhấn trả lời rõ ràng truy vấn.



Ví dụ về bản dựng: Cần có thêm thông tin để trả lời đầy đủ truy vấn. Chẳng hạn như: DL là gì? Làm sao chúng ta biết Arch-Build-Hotseat-XXX là DL?


BẢNG XIII: Kết quả đánh giá trên các mô hình LoRA. Cột đầu tiên cho biết số lượng tham số có thể huấn luyện. Không có biểu thị mẫu LLaMA2-13B không có DAPT. 13B biểu thị việc huấn luyện tham số đầy đủ.


Hình 14: Tạo mẫu để đào tạo mô hình truy xuất



D. Dữ liệu đánh giá bổ sung


Bảng XIV hiển thị dữ liệu đánh giá cho tất cả các mô hình trên ứng dụng chatbot trợ lý kỹ thuật.


Bảng XV hiển thị kết quả đánh giá của chúng tôi đối với tất cả các mô hình trong nhiệm vụ tạo tập lệnh EDA.


Bảng XVI cho thấy kết quả đánh giá của chúng tôi đối với tất cả các mô hình về nhiệm vụ phân tích và tóm tắt lỗi.


BẢNG XIV: Trợ lý kỹ thuật Đánh giá con người Chatbot


BẢNG XV: Đánh giá tạo tập lệnh EDA. Hệ nhị phân được tính điểm cho Đánh giá tự động và 0-100% cho Đánh giá con người.


BẢNG XVI: Đánh giá tóm tắt và phân tích lỗi. Thang đo Likert 1-7.

E. Ví dụ

1) Chatbot trợ lý kỹ thuật:





2) Tạo tập lệnh EDA: Một số tên hàm và lệnh bị xáo trộn.




3) Tóm tắt và phân tích lỗi: Tên người dùng, tên chip và đường dẫn bị xáo trộn.



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