paint-brush
ChipNeMo: LLM được điều chỉnh theo miền cho thiết kế chip: Bộ dữ liệutừ tác giả@textmodels

ChipNeMo: LLM được điều chỉnh theo miền cho thiết kế chip: Bộ dữ liệu

từ tác giả Writings, Papers and Blogs on Text Models5m2024/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: Bộ dữ liệu
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

II. TẬP DỮ LIỆU

A. Bộ dữ liệu DAPT


Trong quá trình Đào tạo trước thích ứng với miền (DAPT), chúng tôi tập hợp một tập dữ liệu từ sự kết hợp giữa các nguồn dữ liệu cụ thể về thiết kế chip độc quyền của NVIDIA và các tập dữ liệu có sẵn công khai.


Bộ dữ liệu thiết kế chip: Bộ dữ liệu nội bộ của chúng tôi bao gồm nhiều nguồn văn bản đa dạng phù hợp với thiết kế chip, thiết kế mở rộng, xác minh, cơ sở hạ tầng và tài liệu nội bộ. Bảng I cung cấp thông tin chi tiết về dữ liệu được thu thập sau khi lọc và số lượng mã thông báo tương ứng bằng cách sử dụng mã thông báo LLaMA2. Chúng tôi xây dựng tập dữ liệu bằng cách thu thập tất cả dữ liệu nội bộ có liên quan, sau đó lọc theo loại tệp, dựa trên phần mở rộng tên tệp và phân biệt giữa nội dung do máy tạo và nội dung do con người viết. Mặc dù chúng tôi đã đánh giá ba trường hợp sử dụng cụ thể nhưng chúng tôi không giới hạn cụ thể tập dữ liệu ở các nguồn được biết là có liên quan đến những trường hợp sử dụng này vì chúng tôi tin rằng việc kết hợp kiến thức miền bổ sung sẽ cải thiện hiệu suất. Sau khi thu thập, làm sạch và lọc, kho dữ liệu đào tạo nội bộ có 23,1 tỷ mã thông báo. Thông tin chi tiết hơn về quá trình thu thập dữ liệu được nêu trong Phụ lục A.


Bộ dữ liệu công khai: Chúng tôi tăng cường dữ liệu cụ thể về thiết kế chip bằng mẫu dữ liệu có sẵn công khai từ nhiều nguồn khác nhau, một phương pháp phổ biến trong việc phát triển các mô hình ngôn ngữ lớn cơ bản. Cách tiếp cận của chúng tôi là sử dụng lại dữ liệu đào tạo công khai từ các mô hình ngôn ngữ khác, với quy định rằng dữ liệu đó phải có thể truy cập công khai và tương thích với nguồn mở. Các bộ dữ liệu này thể hiện mức độ tương quan cao với dữ liệu tiền huấn luyện được sử dụng trong LLaMA2 [5], với mục đích bảo tồn kiến thức chung và khả năng ngôn ngữ tự nhiên trong DAPT. Các bộ dữ liệu công khai được ChipNeMo sử dụng có thể được phân loại thành hai nhóm, ngôn ngữ tự nhiên và mã. Đối với thành phần ngôn ngữ tự nhiên, chúng tôi lấy từ dữ liệu Wikipedia [17], vì nó được đánh giá rộng rãi nhờ chất lượng dữ liệu cao. Đối với mã, chúng tôi tận dụng dữ liệu GitHub [18], tập trung vào các ngôn ngữ lập trình cũng có trong tập dữ liệu thiết kế chip dữ liệu nội bộ của chúng tôi như C++, Python và Verilog. Để đảm bảo rằng tập dữ liệu tổng thể đại diện cho các phân phối trước khi đào tạo, chúng tôi thực hiện thao tác lấy mẫu con dẫn đến khoảng 9,2% tổng số mã thông báo đào tạo được lấy mẫu từ các tập dữ liệu công khai này, với sự thể hiện cân bằng giữa ngôn ngữ tự nhiên và mã.


Trộn dữ liệu: Một tỷ lệ đáng kể dữ liệu miền mà chúng tôi thu thập được bao gồm mã không được quản lý từ nhiều nguồn gốc khác nhau. Trong nỗ lực nâng cao khả năng hiểu của mô hình về kiến thức theo miền cụ thể, chúng tôi đã tiến hành lấy mẫu dữ liệu mã xuống đồng thời lấy mẫu dữ liệu ngôn ngữ tự nhiên, cụ thể là tài liệu thiết kế, trong khoảng thời gian từ 2 đến 4 giai đoạn đào tạo. Chúng tôi cũng tăng cường khả năng trình bày dữ liệu mà chúng tôi cho là phù hợp hơn với các ứng dụng xuôi dòng, chẳng hạn như tập lệnh công cụ EDA do con người viết. Hơn nữa, chúng tôi đã kết hợp dữ liệu miền có sẵn công khai trong 1 kỷ nguyên. Chi tiết về phân phối mã thông báo cho đào tạo được trình bày trong Bảng I.


B. Dữ liệu lệnh SFT


Trong quá trình Tinh chỉnh được giám sát (SFT), chúng tôi sử dụng tập dữ liệu hướng dẫn SFT trò chuyện chung có thể truy cập được cho mục đích thương mại. Bộ dữ liệu này bao gồm phần lớn các hướng dẫn có sẵn công khai theo các bộ dữ liệu bao gồm OASST [19], FLAN [20], P3 [21] và một lượng nhỏ bộ dữ liệu độc quyền của miền rộng bao gồm các chủ đề khác nhau như động não, trả lời câu hỏi mở, viết lại , tóm tắt, v.v. Điều quan trọng cần lưu ý là dữ liệu lệnh SFT mà chúng ta thảo luận ở đây tập trung vào các tác vụ ngôn ngữ tự nhiên chung và không chứa bất kỳ thông tin hoặc tác vụ nào liên quan đến các trường hợp sử dụng tiếp theo trong thiết kế chip. Tổng cộng, bộ dữ liệu này bao gồm 128.000 mẫu đào tạo.


Ngoài ra, chúng tôi đã tập hợp một cách tỉ mỉ một tập dữ liệu hướng dẫn dành riêng cho từng miền để căn chỉnh mô hình cho phù hợp với các trường hợp sử dụng tiếp theo. Những ví dụ này đã được các chuyên gia về chủ đề soạn thảo một cách tỉ mỉ và được định dạng dưới dạng câu hỏi và câu trả lời một lượt. Bảng II mô tả số lượng tập dữ liệu hướng dẫn theo miền cụ thể của chúng tôi. Cần lưu ý rằng tổng số mẫu đào tạo trong tập dữ liệu hướng dẫn dành riêng cho từng miền là khá nhỏ khi so sánh với lượng lớn dữ liệu hướng dẫn trò chuyện tổng hợp.


C. Tự động đánh giá


Để đánh giá nhanh chóng và định lượng độ chính xác của các mô hình khác nhau, chúng tôi đã thiết lập các tiêu chí đánh giá có cấu trúc dưới dạng định dạng câu hỏi và câu trả lời trắc nghiệm cho từng trường hợp sử dụng, được thiết kế để phù hợp chặt chẽ với các tiêu chuẩn đã thiết lập, chẳng hạn như MMLU [22]. Trong quá trình xây dựng các câu hỏi trắc nghiệm này, sự cộng tác với các chuyên gia về lĩnh vực đóng vai trò then chốt. Mục đích là để đảm bảo rằng mỗi câu hỏi bao gồm ít nhất một lựa chọn trả lời phức tạp, từ đó đặt ra thách thức đối với những cá nhân có kiến thức chuyên môn về lĩnh vực hạn chế. Sự chú ý cẩn thận cũng được đưa ra để ngăn chặn mọi sự vô tình làm ô nhiễm các câu hỏi với dữ liệu từ SFT theo miền cụ thể của chúng tôi. Ngoài các điểm chuẩn cho mỗi trường hợp sử dụng, một điểm chuẩn bổ sung đã được tạo cho kiến thức thiết kế mạch chung, bao gồm cả chủ đề thiết kế analog và kỹ thuật số. Số lượng câu hỏi trắc nghiệm làm chuẩn đánh giá được trình bày ở Bảng III.


Khi báo cáo kết quả dựa trên các tiêu chuẩn trên, chúng tôi lấy kết quả trung bình thu được từ năm lần chạy riêng biệt để giảm thiểu tác động của phương sai và nhiễu trong quá trình thử nghiệm. Mỗi lần lặp lại sử dụng một tập hợp các ví dụ 5 lần bắn, với các biến thể được giới thiệu qua từng lần chạy riêng lẻ.


Ngoài các điểm chuẩn đánh giá dành riêng cho từng miền này, chúng tôi cũng bao gồm các điểm chuẩn học thuật LLM công khai được sử dụng phổ biến. Hơn nữa, chúng tôi đo lường khả năng tạo mã của mô hình bằng cách đánh giá HumanEval [23] cho Python và VerilogEval [12] cho Verilog.


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