paint-brush
ChipNeMo: Çip Tasarımı için Etki Alanına Uyarlanmış Yüksek Lisanslar: Yüksek Lisans Uygulamalarıile@textmodels
127 okumalar

ChipNeMo: Çip Tasarımı için Etki Alanına Uyarlanmış Yüksek Lisanslar: Yüksek Lisans Uygulamaları

Çok uzun; Okumak

Araştırmacılar, çip tasarımı için Yüksek Lisans'ları geliştirmek üzere alan uyarlamasını kullanarak, daha iyi performansla 5 kata kadar model boyutunun küçültülmesini sağlayan ChipNeMo'yu sunuyor.
featured image - ChipNeMo: Çip Tasarımı için Etki Alanına Uyarlanmış Yüksek Lisanslar: Yüksek Lisans Uygulamaları
Writings, Papers and Blogs on Text Models HackerNoon profile picture
0-item

Yazarlar:

(1) Mingjie Liu, NVIDIA {Eşit katkı};

(2) Teodor-Dumitru Ene, NVIDIA {Eşit katkı};

(3) Robert Kirby, NVIDIA {Eşit katkı};

(4) Chris Cheng, NVIDIA {Eşit katkı};

(5) Nathaniel Pinckney, NVIDIA {Eşit katkı};

(6) Rongjian Liang, NVIDIA {Eşit katkı};

(7) Jonah Alben, NVIDIA;

(8) Himyanshu Anand, NVIDIA;

(9) Sanmitra Banerjee, NVIDIA;

(10) İsmet Bayraktaroğlu, NVIDIA;

(11) Bonita Bhaskaran, NVIDIA;

(12) Bryan Catanzaro, NVIDIA;

(13) Arjun Chaudhuri, NVIDIA;

(14) Sharon Clay, NVIDIA;

(15) Bill Dally, NVIDIA;

(16) Laura Dang, 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) Hao Liu, NVIDIA;

(29) Stuart Oberman, NVIDIA;

(30) Sujeet Omar, NVIDIA;

(31) Sreedhar Pratty, NVIDIA;

(23) Jonathan Raiman, NVIDIA;

(33) Ambar Sarkar, NVIDIA;

(34) Zhengjiang Shao, 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.

Bağlantı Tablosu

IV. LLM BAŞVURULARI

Tasarım ekiplerimizdeki potansiyel LLM uygulamalarına ilişkin bir anket gerçekleştirdik ve bunları dört gruba ayırdık: kod oluşturma, soru-cevap, analiz ve raporlama ve önceliklendirme . Kod oluşturma, LLM'nin tasarım kodunu, test tezgahlarını, iddiaları, dahili araç komut dosyalarını vb. oluşturmasını ifade eder; Soru-Cevap, tasarımlar, araçlar, altyapılar vb. hakkındaki soruları yanıtlayan bir Yüksek Lisans anlamına gelir; Analiz ve raporlama, verileri analiz eden ve raporlar sunan bir LLM'yi ifade eder; Triyaj, günlükler ve raporlar verilen tasarım veya araç problemlerinde hata ayıklamaya yardımcı olan bir LLM'yi ifade eder. Daha fazla araştırmaya bıraktığımız triyaj kategorisi hariç, bu çalışmada çalışmak üzere her kategoriden bir anahtar uygulama seçtik. Her başvurunun motivasyonu ve teknik detayları aşağıda verilmiştir.


A. Mühendislik Asistanı Chatbot


Bu uygulama, tasarım mühendislerine, başkalarının üretkenliğini etkilemeden genel üretkenliklerini önemli ölçüde artırabilecek mimari, tasarım, doğrulama ve oluşturma sorularına yanıt vererek yardımcı olmayı amaçlamaktadır. Tasarım mühendislerinin genellikle beyin fırtınası yapmaktan, donanım tasarlamaktan ve kod yazmaktan hoşlandıkları ancak eksik oldukları tasarım bilgisine ilişkin yanıtları beklerken yavaşlayabildikleri görülmektedir. Tasarım üretkenliği, mühendislerin hatalı varsayımlara dayanarak kod yazmasını veya aşina olmadıkları kodlarda hata ayıklamasını önleyerek de artırılabilir. Dahili araştırmalar, tipik bir çip tasarımcısının zamanının %60'a kadarının, tasarım özellikleri, test tezgahı yapısı, mimari tanımı ve araçlar veya altyapı dahil olmak üzere çeşitli konularda hata ayıklama veya kontrol listesiyle ilgili görevlere harcandığını göstermiştir. Bu konulardaki uzmanlar genellikle çok uluslu bir şirkette dünyanın dört bir yanına dağılmış durumda olduğundan, anında yardım bulmak her zaman kolay olmuyor. Bu nedenle, dahili tasarım belgelerinden, kodlardan, tasarımlarla ilgili kayıtlı verilerden ve e-postalar ve kurumsal anlık iletişimler gibi teknik iletişimlerden elde edilen bilgilere dayanan bir mühendislik asistanı sohbet robotu, tasarım üretkenliğini önemli ölçüde artırmaya yardımcı olabilir. Bu uygulamayı Bölüm III-D'de bahsedilen alana uyarlanmış RAG yöntemi ile gerçekleştirdik.


B. EDA Komut Dosyası Oluşturma


Endüstriyel çip tasarımı akışındaki diğer bir yaygın görev, çeşitli görevleri gerçekleştirmek için EDA komut dosyaları yazmaktır.


Şekil 4: LLM komut dosyası oluşturucusunun EDA araçlarıyla entegrasyonu


tasarım uygulama, iç gözlem ve dönüşüm olarak. Bu komut dosyaları genellikle hem araca özgü hem de özel dahili komut dosyası kitaplıklarından yararlanır. Bu kitaplıkları öğrenmek, araç belgelerinde gezinmek ve bu komut dosyalarını yazmak ve hata ayıklamak önemli miktarda mühendislik süresi alabilir.


Yüksek Lisans'ların geniş bir görev yelpazesinde küçük ölçekli kod oluşturma konusunda usta oldukları kanıtlanmıştır [32] ve bu nedenle bu modellerin, bu alana özgü görevde mühendis üretkenliğini hızlandıracak şekilde özelleştirilmesi doğal bir uyumdur. Bu çalışmada doğal dil görev tanımlarından iki farklı türde komut dosyası oluşturmaya odaklanıyoruz. Bunlardan ilki, tasarım düzenleme ve analiz için dahili bir python kütüphanesi olan Tool1'den yararlanan komut dosyalarıdır. İkincisi, önde gelen endüstriyel statik zamanlama analiz aracı olan Tool2 tarafından sağlanan komut arayüzünü kullanan Tcl komut dosyalarıdır.


Bu göreve yönelik alana özgü ince ayar veri kümemizi oluşturmak amacıyla, her iki araca ilişkin üretim komut dosyaları tasarım uzmanlarından toplandı. DAPT modellerimizin kod için makul satır içi yorumlar oluşturabildiğini gözlemledik. Bu, ek satır içi yorumlar oluşturarak toplanan komut dosyalarının kalitesini artırmak için bu modelleri kullanmamıza olanak sağladı. İnsan uzmanlar daha sonra bu yorumları doğrulayıp düzeltti ve ilgili bir bilgi istemi oluşturdu. Bu istemler ve kod çiftleri, Bölüm III-C'de tartışılan formatta DSFT için kullanılan verileri oluşturur.


Geri bildirimi en anlamlı şekilde sağlamak ve toplamak için, mühendislerin aynı arayüz üzerinden hem modeli sorgulayabileceği hem de oluşturulan kodu çalıştırabileceği Şekil 4'te gösterilen akışı oluşturmak için önemli çaba harcadık. Bu, oluşturulan kodun doğruluğundan emin olmamıza ve mühendislerin işleyen bir komut dosyası elde etmek için kaç düzeltmeye ihtiyaç duyabileceklerini görmelerine olanak tanıyarak doğru geri bildirim sağlamamıza olanak tanır. Araç sunucularına etkileşimli bağlantılar kurarak Araç1 ve Araç2 entegrasyonunu destekliyoruz.


Ek olarak, farklı modelleri karşılaştırmamıza ve kullanıcı geri bildirimlerinden değerli bilgiler toplamamıza olanak tanıyan bir kullanıcı geri bildirim formu sağlıyoruz. Bu değerli bilgiler modellerimizi daha da geliştirmemize yardımcı olabilir.


C. Hata Özetleme ve Analizi


Üretim akışının aşamaları boyunca çeşitli özelliklerin ve hataların raporlanması, önceliklendirilmesi, hata ayıklanması ve çözümlenmesinin takip edilmesi zaman alıcı bir süreçtir. Mühendislik yöneticileri, projenin durumunu anlamak ve yürütmeyi hızlandırmaya yardımcı olmak için dahili sorun izleme veritabanlarını gözden geçirmek için çok zaman harcıyorlar. Bu nedenle, tüm destekleyici bilgilere bakabilen ve hem teknik hem de yönetimsel verileri hızlı bir şekilde özetleyebilen ve sonraki adımları önerebilen bir araç, ekibin verimliliğini artıracaktır. Üç farklı çıktı üretmek için Yüksek Lisans'ları kullanmaya odaklanıyoruz - biri teknik ayrıntılara, biri yönetimsel ayrıntılara ve biri de görev atamasını tavsiye etmeye odaklanıyor.


Bu görevleri incelemek için NVIDIA'nın dahili hata veritabanı NVBugs'ı kullandık. Bu veritabanı, şirket genelinde hata raporlama, izleme ve çözümlemenin yanı sıra genel görev ve özellik takibi için de kullanılır. DAPT veri setinde büyük miktarda hata verisi bulunduğundan ChipNeMo modellerinin bu görevde iyi performans göstermesini bekliyoruz. Ek olarak, bu görev için hata özetleme ve görev atama görevlerinin örneklerini içeren alana özel bir SFT veri kümesi oluşturduk.


Genellikle hata açıklamaları, uzun yorum geçmişlerinin yanı sıra büyük günlük dosyaları parçacıkları veya kod dökümleri içerir. Bu gibi durumlarda, hata metni LLM bağlam pencerelerimiz için çok büyüktür. Bu soruna geçici bir çözüm bulmak için iki çözüm uyguladık. İlk olarak, modelin hatanın birden fazla yerinde oluşan yolları tüm dizeyi işlemeye gerek kalmadan ilişkilendirmesine olanak sağlamak için uzun yol adlarını bulup daha kısa takma adlarla değiştirdik. İkinci olarak, özetleme görevini, modelin birden fazla özet ve hata verisi öbeğinde veri toplamakla görevlendirildiği artımlı bir göreve böldük. Hatanın ilk olarak bağlam penceresine sığacak parçalara ayrıldığı hiyerarşik bir yaklaşım kullanıyoruz. Bu parçalar daha sonra özetlenir ve özetler toplanır ve ardından parçalara ayrılır. Bu süreç, özet kümesinin tamamı tek bir bağlam penceresine sığıncaya ve tek bir özet oluşturulana kadar tekrarlanır. Özetleme için kullanılan Yüksek Lisans'tan bağımsız olarak aynı yaklaşımı kullanıyoruz.