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.
Koleksiyon, ilgili tasarım verilerini ve belgelerini tanımlamak, mümkünse bunları düz metne dönüştürmek, temel kalite ölçümlerini kullanarak filtrelemek, hassas dosya tekilleştirme için bir sağlama toplamı hesaplamak ve bunları depolama için sıkıştırmak üzere tasarlanmış bir dizi kabuk ve Python komut dosyasıyla uygulandı. Toplama akışı, dahili veri kaynaklarının (hem ağ bağlantılı dosya sistemleri hem de dahili web uygulamaları) yerinde veri toplanması yoluyla alan gereksinimlerini en aza indirmeyi amaçladığımızdan, kullanıma hazır LLM'ye özgü kazıma ve toplama komut dosyalarını kullanmadı. Dosya sistemi tabanlı toplama için, ek ham veri kümelerini yerel olarak depolamak yerine veriler, kalite açısından filtrelenirken yerinde tutuldu.
Tasarım ve doğrulama verilerinin toplanması, Verilog ve VHDL (RTL ve netlists), C++, Spice, Tcl, çeşitli komut dosyası dilleri ve yapıyla ilgili yapılandırma dosyaları dahil olmak üzere çeşitli kaynak dosyalarını kapsıyordu. Dahili web hizmetlerinden gelen veriler, hem REST API çağrıları hem de geleneksel tarama yoluyla toplandı; HTML biçimlendirmesi, daha fazla kazan ekleme pahasına kodlama örneklerinin yanlışlıkla kaldırılmasını en aza indirmek için her iki durumda da açık kaynaklı BeautifulSoup [52] Python kitaplığı kullanılarak kaldırıldı. plaka gezinme çubukları ve diğer HTML sayfası öğeleri. Veri toplama akışımız, hazır Python dönüştürme kitaplıklarını ve açık kaynak araçlarını kullanarak .docx, .pptx ve .pdf dahil olmak üzere geleneksel belge formatlarını destekledi.
Çoğu dahili verinin yüksek kalitede olduğuna inanıldığından, minimum düzeyde filtreleme uygulandı: aşırı derecede büyük veya küçük dosyaların hariç tutulmasını sağlamak için satır sayısı filtrelemesi kullanıldı ve dosyalar, manuel olarak yazılan ve araçla oluşturulan geniş kategorilere göre sıralandı.
Bu bölümde etki alanına uyarlanabilir önceden eğitilmiş modellerimiz hakkında ayrıntılı sonuçlar sunuyoruz. Etki alanına uyarlanabilir ön eğitim konusundaki ablasyon deneylerimizi de detaylandırıyoruz.
DAPT Hiperparametreleri: Ayrıntılar Tablo VI'da sunulmaktadır.
Otomatik Değerlendirme Sonuçları: Otomatik değerlendirme kriterlerine ilişkin ayrıntılı sonuçları Tablo VII ve Tablo VIII'de sunuyoruz. Basitlik sağlamak amacıyla, bölümün geri kalanında ablasyon çalışmaları için toplu kıyaslama sonuçlarını sunuyoruz:
• Çip : Alan içi Tasarım, Komut Dosyası Oluşturma, Hatalar ve Devreler kıyaslamalarına ilişkin ortalama sonuçları Tablo III'ten rapor ediyoruz (5 çekim).
• MMLU: Çok çeşitli konularda popüler birleştirilmiş kıyaslama olan MMLU (5-shot) [22] ile ilgili genel sonuçları rapor ediyoruz.
• Muhakeme : Winogrande [53], hellaswag [54], ARC- easy [55] ve RACE-High [56] dahil olmak üzere sağduyulu muhakeme (0 atış) ile ilgili popüler kamu kıyaslamalarının ortalama sonuçlarını rapor ediyoruz.
• Kod : HumanEval [23], VerilogEval-Machine [12] ve VerilogEval-Human [12] dahil olmak üzere açgözlü kod çözme ile kodlama kriterlerinin ortalama geçiş oranını rapor ediyoruz.
Tokenizer Arttırma: Bölüm III-A'da açıklandığı gibi orijinal LLaMA2 tokenizer'ı ve artırılmış tokenizer'ı kullanarak DAPT ile deneyler yaptık. Şekil 11, orijinal değiştirilmemiş tokenizer ile ChipNeMo için düzeltilmiş eğitim kaybını göstermektedir. Şekil 2 ile karşılaştırıldığında, temel model ön eğitimi sırasında eklenen belirteçlerin hiçbir zaman gözlemlenmemesi nedeniyle, artırılmış bir belirteçleyicinin başlatma sırasında daha büyük eğitim kaybına sahip olduğunu gözlemliyoruz. 1 dönemlik DAPT için de benzer eğitim kaybı elde edilir.
Tablo IX toplu otomatik değerlendirme kıyaslama sonuçlarını sunmaktadır. Dikkatli tokenizer artırma ve ağırlık başlatma işleminin, genel akademik kıyaslamalarda model performansını yalnızca çok az etkilediğini not ediyoruz. DAPT, Verilog kodlaması da dahil olmak üzere herhangi bir tokenizer ile alan adı kıyaslamalarını önemli ölçüde iyileştirdi (HumanEval'de büyük bir fark yok). Belirteçleyicinin arttırılmasının, modelin genel dil ve etki alanı yeteneklerinde herhangi bir bozulma olmadan, gelişmiş belirteç ve eğitim verimliliği avantajı sağladığı sonucuna vardık.
Genel Veri Kümeleri Karışımı: Bölüm II-A'da tanıtıldığı gibi, temel modeli ön eğitimi için yaygın olarak kullanılan genel veri kümelerinden örneklenen genel verileri DAPT'ye dahil ettik. Öncelikle Wikipedia gibi kamuya açık verilerin DAPT'de karıştırılmasının, tokenizer artırmanın getirdiği rahatsızlıkların "düzeltilmesine" ve genel doğal dil yeteneklerinin geliştirilmesine yardımcı olabileceğini umduk.
modellerin. Yalnızca etki alanı verilerini kullanarak tokenizer artırmayla başka bir DAPT turu gerçekleştirdik ve kabaca verinin 1,1 dönemine karşılık gelen aynı sayıda adım için eğitim verdik. Herkese açık veri karışımının sonuçları biraz iyileştirdiğini gördük. Ayrıntılı sonuçları Tablo X'te sunuyoruz.
Şekil 12, halka açık veri seti karışımı da dahil olmak üzere artırılmış tokenizatörlerle ChipNeMo-7B'nin eğitim kaybını göstermektedir. İlk eğitim adımlarında eğitim kaybında büyük artışlar gözlemledik ve 7B modelleri için son eğitim kaybının 13B orijinal DAPT hiperparametrelerinden bile daha iyi olduğunu gördük. Ancak, alan içi çip tasarımı da dahil olmak üzere Tablo XII'de gösterildiği gibi doğal dil kıyaslamalarında önemli bir bozulma olduğunu görüyoruz. Kodlama yetenekleri [32]'nin bulgularıyla tutarlı olarak gelişti.
Bizim durumumuzun [32]’deki durumdan farklı olduğunu vurguluyoruz. Her ne kadar önceden eğitilmiş kontrol noktalarından başlatmayı "sürekli ön eğitim" olarak yürütüyor olsak da, tercihen modelin genel yetenekler üzerinde yüksek düzeyde performans sürdürmesini istiyoruz.
Etki alanı veri kümesi bilgilerinin ve bilgilerinin (model ön eğitiminde görülmeyen) model ağırlıklarına ayrıştırılması. Buna karşılık, [32], ağırlıklı olarak doğal dil öğelerinden yoksun olan, kamuya açık kod verilerini kullanıyor ve bunların öncelikli olarak kodlamayla ilgili görevlere odaklandığını vurguluyor. Daha küçük bir öğrenme oranının, etki alanı uyarlaması için ikili bir rol oynadığını, temel modelden çok fazla sapmayan bir dengeyi korurken DAPT yoluyla alan bilgisinin damıtılmasını kolaylaştırdığını, böylece genel doğal dil yeteneklerini korurken performansı önemli ölçüde artırdığını varsayıyoruz. -etki alanı görevleri
Parametre Verimli İnce Ayar (PEFT): Parametre verimli ince ayar, önceden eğitilmiş model ağırlıklarını dondurur ve aşağı akış görevlerinde verimli ince ayar yapmak için daha küçük adaptör modellerine eğitilebilir parametreler enjekte eder. Düşük Sıralı Uyarlama (LoRA) [16] kullanarak DAPT'de PEFT'nin kullanımını araştırıyoruz. Transformatör katmanı uygulamamız KQV'yi tek bir projeksiyonda birleştirdiğinden, her kişisel dikkat katmanı için tek bir Düşük Sıralı projeksiyon için LoRA adaptörlerini birleştirilmiş şekilde ekliyoruz. Tablo VI'daki aynı DAPT eğitim kurulumlarını kullanarak orijinal LLaMA2 tokenizer ile LLaMA2-13B modelleri üzerinde deneyler yapıyoruz. Sırasıyla 26,4 milyon (küçük) ve 211,2 milyon (büyük) ek eğitilebilir parametreler içeren iki deney gerçekleştirdik.
Şekil 13, LoRA modellerinin eğitim kaybı eğrilerini gösterir ve tam parametreli eğitimle karşılaştırır. Her iki LoRA modelinde de kayıp hızla birbirine yaklaşır ve belirli bir noktadan sonra azalma durur. Tablo XIII, LoRA modellerine ilişkin değerlendirme sonuçlarını rapor etmektedir. Her iki LoRA modeli de alan içi çip tasarımı görevlerinde tam parametre eğitimini önemli ölçüde düşük performans gösteriyor. LoRA modelleri, DAPT olmayan muadillerine kıyasla çip tasarımı görevlerinde gelişme gösterirken, daha büyük model biraz daha iyi (ancak anlamlı olmayan) sonuçlar sergiliyor.
Eğitim örneklerinin manuel olarak oluşturulması çok çaba gerektirir, bu nedenle bunları otomatik olarak oluşturacak bir süreç uygulamayı seçtik. Modelimize ince ayar yapmak için karşılaştırmalı öğrenmeyi kullandığımızdan, her örnek, doğruluğu en üst düzeye çıkarmak için hem pozitif pasajlar hem de negatif pasajlardan oluşan bir sete, özellikle de zor negatiflere ihtiyaç duyar.
1) Veri Seti Örnekleme Prosedürü: Şekil 14'te bir örnek oluşturmak için atılan adımlar açıklanmaktadır:
• 1. Adım: Belge külliyatından rastgele bir pasaj seçin
• Adım 2: Parçadan geçerli bir sorgu oluşturmak için bir dil modeli (Vicuna) kullanın
• 3. Adım: Her pasajın potansiyel kesin-negatif olduğu sorgu için belge derleminden ilk N pasajı almak üzere önceden var olan bir alma modeli (cümle dönüştürücü) kullanın.
• 4. Adım: Getirilen pasajlardan bazılarının gerçekten olumlu olması mümkündür; bu nedenle, pozitif pasajları filtrelemek için aynı dil modelini kullanın
• Adım 5: Bu filtreleme işleminden sonra yeterli sayıda negatif pasaj yoksa, derlemden rastgele pasajlarla destekleyin
İlk araştırmamız için Vicuna [4] ve Cümle Transformer'ını [33] kullandık; ancak ticari olarak uygun bir geri alma modeli üretmek için sırasıyla LLaMA2 [5] ve BM25 [42] ile kolaylıkla değiştirilebilirler.
2) Vuruş Kalitesi Karşılaştırması: Tüm vuruşlar eşit yaratılmamıştır. Aşağıdaki Spec örneğindeki pasaj, sorusunu açıkça ve tamamen yanıtlıyor. Derleme örneğindeki pasaj cevabı içerir; ancak soruyu yanıtlamak için daha fazla bağlam gereklidir.
Spesifikasyon Örneği: İsabet pasajı sorguyu açıkça yanıtlar.
Yapı Örneği: Sorguyu tam olarak yanıtlamak için ek bilgiler gereklidir. Mesela: DL nedir? Arch-Build-Hotseat-XXX'in DL olduğunu nasıl bileceğiz?
D. Ek Değerlendirme Verileri
Tablo XIV, mühendislik asistanı chatbot uygulamasındaki tüm modellere ilişkin değerlendirme verilerini göstermektedir.
Tablo XV, EDA komut dosyası oluşturma görevindeki tüm modeller için değerlendirme sonuçlarımızı gösterir.
Tablo XVI, hata özetleme ve analiz görevindeki tüm modellere yönelik değerlendirme sonuçlarımızı göstermektedir.
1) Mühendislik Asistanı Chatbotu:
2) EDA Komut Dosyası Oluşturma: Bazı işlev adları ve komutları gizlenmiştir.
3) Hata Özeti ve Analizi: Kullanıcı adları, çip adları ve yollar gizlenmiştir.
Bu makale arxiv'de CC 4.0 lisansı altında mevcuttur .