Yapay zeka modelleri ve platformları
UltraFastBERT: Üssel olarak Daha Hızlı Dil Modelleme
Dil modelleri ve üretken AI, yetenekleri ile AI endüstrisinde sıcak bir konudur. Küresel araştırmacılar onların etkinliğini ve yeteneklerini geliştiriyorlar. Bu sistemler, genellikle derin öğrenme modelleri, geniş etiketli veriler üzerinde ön eğitimli ve öz-dikkat için sinir ağlarını içermektedir. Giriş metnini işlemek ve ilgili çıktılar üretmek için çeşitli katmanlar – ileri besleme, yinelemeli, gömülü ve dikkat – kullanıyorlar.
Çoğu zaman, büyük dil modellerinin ileri besleme katmanları en fazla parametreleri tutar. Çalışmalar, bu modellerin yalnızca bir kısmını kullanılabilir nöronları çıktı hesaplama sırasında çıkarım sırasında kullandığını gösteriyor.
Bu makale, UltraFastBERT’i tanıtıyor, BERT tabanlı bir çerçeve, BERT modellerinin lider efficacy eşleşmesi ancak yalnızca 0.3% nöronları kullanarak, özellikle aşağı akış görevlerinde, her bir çıkarım katmanında 4095 nöronun yalnızca 12’sini kullanarak. UltraFastBERT’in mimarisini, işleyişini ve sonuçlarını keşfedeceğiz. Başlayalım.
UltraFastBERT : Üssel olarak Daha Hızlı Dil Modelleme Girişi
Geleneksel olarak, bir dil modeli, içerik oluşturma yetenekleri ile donatmak için farklı bileşenler kullanır, bunlar ileri besleme katmanları, yinelemeli katmanlar, gömülü katmanlar ve dikkat katmanlarıdır. Bu bileşenler, eğitim sırasında desenleri tanımak için öğrenirler ve sonunda girdi metinlerine dayalı doğru çıktılar üretirler. Her bir bileşen bazı parametreleri sahiptir ve dil modellerinde, bu parametrelerin büyük bir kısmı ileri besleme katmanları tarafından tutulur. Ancak, bu ileri besleme katmanları, her girdi için çıktı üretmek sırasında kullanılabilir nöronlarının 100%ünü kullanmazlar, bu da kaynak israfına, karmaşıklığa, hesaplama süresine ve hesaplama maliyetlerine yol açar.
UltraFastBERT çerçevesi, temelde BERT çerçevesinin bir varyantıdır, bu kavramı üzerine kurulur ve BERT çerçevesinin orta katmanlarındaki ileri besleme ağlarını daha hızlı ileri besleme ağları ile değiştirir. UltraFastBERT çerçevesi, BERT modelleri ile benzer bir boyut ve eğitim süreci ile karşılaştırılabilir sonuçlar üretir, özellikle aşağı akış görevlerinde. Tasarım uygulamaları nedeniyle, UltraFastBERT çerçevesinin orta katmanları üssel olarak daha hızlıdır.
Verilen bir hızlı ileri besleme (FFF) ağı ve bir ileri besleme (FF) ağı, her biri n sayıda nöron ile, bir ileri besleme ağının ileri geçiş zaman karmaşıklığı O(n) iken, bir hızlı ileri besleme ağının zaman karmaşıklığı O(log2n) dir. Zaman karmaşıklığındaki fark, bir hızlı ileri besleme ağında nöronların dengeli bir ikili ağaca organize edilmesi ve girdi verildiğinde ağın yalnızca bir dalını koşullu olarak çalıştırmasıdır. Ayrıca, bir hızlı ileri besleme ağında çıkarım yapmak, Koşullu Matris Çarpımı (CMM) veya Koşullu Matris Çarpımı ile sonuçlanır, burada girdi satırları doğal ağırlık sütunları ile nokta çarpımı yapar ve önceki nokta çarpma işleminin çıktısı, devam etmek için sütun ağırlıklarını belirler. Sonuç olarak, ağ tüm nöronları yalnızca birkaç girişte kullanır ve hiçbir girdi, ağ tarafından işlenmek için fazla nöron gerektirmez. CMM nokta çarpımı, tüm girişlerin tüm ağırlık sütunları ile nokta çarpımını hesaplayan Yoğun Matris Çarpımı (DMM) ile tezat oluşturur.
Özetle, UltraFastBERT, BERT tabanlı bir çerçevedir, devlet-sanat BERT dil modelleri ile karşılaştırılabilir sonuçlar üretir, ancak yalnızca 0.3% nöronları kullanarak, her bir çıkarım katmanında 4095 nöronun yalnızca 12’sini kullanarak.
- Çıkarım aşamasında yalnızca 0.3% kullanılabilir nöronları kullanır ve her bir çıkarım katmanında 4095 nöronun yalnızca 12’sini kullanır.
- Aşağı akış görevlerinde BERT modelleri ile karşılaştırılabilir güçlü performans sağlar, ince ayar stratejilerini uygulayarak.
- CMM veya Koşullu Matris Çarpımı için yerel bir uygulamayı sağlar, bu da hızlı ileri besleme ağı için temel oluşturur ve sonunda Dense Matris Çarpımı ile karşılaştırıldığında 78x hızlanma sağlar.
İleri Besleme Sinir Ağları
İleri besleme sinir ağı, en basit yapay sinir ağlarından biridir, yalnızca ileri yönde bilgi taşır, girdi düğümlerinden çıktı düğümlerine gizli düğümler aracılığıyla. İleri besleme sinir ağının birincil özellikleri, böyle ağlarda döngü veya döngülerin olmaması ve RNN veya yinelemeli sinir ağlarına ve CNN veya geleneksel sinir ağlarına kıyasla daha basit olmalarıdır. İleri besleme sinir ağının mimarisi, girdi katmanları, gizli katmanlar ve çıktı katmanlarından oluşur ve her katman, diğerine ağırlıklarla bağlı nöronlar içerir.
Girdi katmanlarındaki nöronlar girdileri alır ve bir sonraki katmana iletir. Her bir girdi katmanındaki nöron sayısı, girdi verisinin boyutu tarafından belirlenir. Sonraki, hesaplamalar için sorumlu olan gizli katmanlar vardır. Her bir gizli katmandaki nöronlar, önceki katmandan alınan çıktıların ağırlıklı toplamını alır, bir aktivasyon fonksiyonu uygular ve sonucu bir sonraki katmana iletir ve bu işlem tekrarlanır. Son olarak, çıktı katmanı, verilen girdiler için çıktı üretir. İleri besleme ağının her katmanındaki her bir nöron, bir sonraki katmandaki her bir nöron ile bağlantılıdır, bu da FFF sinir ağlarını tam olarak bağlantılı ağlar yapar. Ağırlıklar, nöronlar arasındaki bağlantı gücünü temsil eder ve ağ, hataları azaltmak için ağırlıkları günceller.
İleri besleme sinir ağı, iki ana aşamaya sahiptir: ileri besleme aşaması ve geri yayılma aşaması.
İleri Besleme Aşaması
İleri besleme aşamasında, girdi ağa verilir ve ileriye propagates. Gizli katmanlar, girdilerin ağırlıklı toplamını hesaplar ve modelde doğrusallık getirmek için toplamı aktivasyon fonksiyonlarından geçirir. İşlem, ağırlıklar çıktı katmanına ulaşana kadar tekrarlanır ve model bir tahmin yapar.
Geri Yayılma Aşaması
Model bir tahmin yaptıktan sonra, üretilen çıktı ile beklenen çıktı arasındaki hatayı hesaplar. Hata, ağ boyunca geri yayılır ve ağ, hatayı en aza indirmek için ağırlıkları ayarlamak için bir gradient iniş optimizasyon algoritması kullanır.
UltraFastBERT : Model Mimarisi ve Çalışma
UltraFastBERT çerçevesi, crammedBERT mimarisine dayanır ve UltraFastBERT çerçevesi, crammedBERT çerçevesinin tüm bileşenlerini kullanır, ancak orta katmanlardaki doğası farklıdır. UltraFastBERT çerçevesi, crammedBERT çerçevesindeki transformer kodlayıcıdaki ileri besleme ağlarını, hızlı ileri besleme ağları ile değiştirir. UltraFastBERT çerçevesi, orijinal ileri besleme ağlarına aşağıdaki değişiklikleri yapar.
- Yaprak ve yaprak olmayan düğümler arasındaki farkı ortadan kaldırır, tüm düğümlerde GeLu aktivasyon fonksiyonunu kullanır, düğümleri çıktı ağırlıkları ile donatır ve çıktı önyargılarını kaldırır. Ardından, yaprak boyutunu 1’e sabitler.
- Son olarak, birden fazla hızlı ileri besleme ağı ağacını paralel olarak çalıştırır, ortak olarak ara çıktı katmanlarını hesaplar. Çerçeve, ağaçların toplamını alır ve toplamı ara çıktı katmanı olarak sunar.
Devam ederek, eğitimde, UltraFastBERT çerçevesi, crammedBERT çerçevesinin kullandığı eğitim prosedürünü takip eder, ön eğitimde dropout’u devre dışı bırakır ve 1-döngü üçgen öğrenme oranını kullanır. Model, GLUE benchmark’unun bir dizi görevi için 5 epoch boyunca performansını en üst düzeye çıkarmak için ince ayarlanır.
Çıkarım
Çıkarım, hızlı ileri besleme ağları için önemli bir parçadır ve bu hızlı ileri besleme ağları, büyük dil modellerinin önemli bir bileşenini oluşturur ve hızlanma potansiyelleri ile bilinirler. Bu hızlanma potansiyelini anlamak için, bir örnek olarak, GPT-3 gibi en gelişmiş dil modellerinden birini ele alalım. Her bir transformer katmanındaki ileri besleme ağları, 49.100’den fazla nöron içerir. Eğitimli bir hızlı ileri besleme ağı (maksimum derinlik 15), orijinal ileri besleme ağı ile değiştirilebilir. Tanıtılan hızlı ileri besleme ağı, 65.000’den fazla nöron içerecektir, ancak yalnızca 16’sını çıkarım için kullanacaktır, bu da GPT-3’e disponible nöronların yaklaşık %0.03’üne karşılık gelir.
Algoritma ve Uygunluk
UltraFastBERT çerçevesi, hızlı ileri besleme çıkarımı için bir recursive pseudocode algoritması kullanır ve algoritma aşağıdaki resimde gösterilir.

Burada, B, toplu iş boyutunu, H, girdi katmanlarının genişliğini ve M, sütunları temsil eder. Hızlı ileri besleme ağları için Computational Matrix Multiplication (CMM) yaklaşımının kullanılması, Dense Matrix Multiplication (DMM) ve mevcut Derin Öğrenme çerçeveleri ile uyumsuzluk yaratıp yaratmadığı konusunda endişe verici bir diğer nokta. Neyse ki, CMM kullanmak, performansı etkilemez veya uyumsuzluk yaratmaz, ancak önbellek karmaşıklığını artırır.
Önemli olan, hızlı ileri besleme ağı için, tek iş parçacıklı Dense Matrix Multiplication, MAC veya Çarpma ve Biriktirme talimatlarının yürütülmesine dayanır ve sonuç olarak, DMM yaklaşımını CMM yaklaşımıyla değiştirmek, CPU’lar için fayda sağlayacaktır, çünkü her bir katman çıkışı için her bir eleman için daha az MAC talimatı gerekir. Bu nedenle, dallanma ile ilişkili koşulluluk rağmen, “nöron dallanması” framework’de talimat dal tahminini tamamen çalıştırarak ilgili işaretçilere bellek ofseti eklemeye eklenir. Bu nedenle, UltraFastBERT çerçevesinde, CMM koşulluluğunu kolaylaştırmak için talimat dal tahmini hiçbir zaman tamamen çalıştırılmaz ve yalnızca ilgili sütunları ağırlık matrisinden yükler. Ayrıca, satır-sütun nokta ürünleri yapılırken, SIMD veya tek komut çoklu veri vektör paralel işleme, belirli cihazlar için çıkarım uygulamalarını hızlandırmak için iyi bir seçenektir.
UltraFastBERT : Performans ve Sonuçlar
UltraFastBERT çerçevesinin performansını, hem ince ayar için hem de çıkarım görevleri için tartışacağız, böylece çerçevenin devlet-sanat dil modelleri ile nasıl performans gösterdiğini analiz edebiliriz.
İnce Ayar Sonuçları
Aşağıdaki şekil, çeşitli modellerin GLUE-dev test veri setleri üzerindeki performansını gösterir. Burada, N, çerçevenin eğitiminde kullanılabilir nöron sayısını, “Ort” ise tüm görevlerin ortalama puanını temsil eder.

Açıkça görüldüğü gibi, A6000 GPU’da 24 saatten fazla eğitim gören UltraFastBERT çerçevesi, GLUE aşağı akış görevlerinde orijinal BERT çerçevesinin yaklaşık %96’sı kadar öngörülü performansı korur. Ayrıca, hızlı ileri besleme ağlarının derinliğinin artmasıyla, çerçevenin performansı düşer, ancak çoğu performans bozulması CoLa görevi için gerçekleşir. CoLa görevi göz ardı edilecek olursa, UltraFastBERT çerçevesi yaklaşık %98.6’lık öngörülü performans puanı döndürür.
Çıkarım Sonuçları
Bu bölümde, çeşitli ileri besleme veya hızlı ileri besleme ağlarının çıkarım uygulamaları üzerindeki performansını karşılaştıracağız ve bu uygulamalar üç seviyede olacaktır.
- 1. Seviye uygulaması, BLAS Seviye 1 rutinlerini kullanır, yani skaler-vektör ürünü ve vektör-vektör nokta ürünleri.
- 2. Seviye uygulamaları, BLAS Seviye 2 rutinlerini kullanır, yani toplu işlenmiş skaler-vektör ürünü ve toplu işlenmiş matris-vektör nokta ürünleri.
- 3. Seviye uygulamaları, toplu işlenmeyen BLAS Seviye 3 matris-matris çarpımı yaklaşımını kullanır ve zwar bu, ileri besleme ağları için mevcut en hızlı uygulamadır, ancak hızlı ileri besleme ağları için mevcut değildir, çünkü kütüphane Computational Matrix Multiplication’ın vektör düzeyindeki yoğunluğunu desteklemez.
Ek olarak, UltraFastBERT çerçevesi, özel CUDA veya PyTorch çekirdekleri kullanarak GPU uygulamalarını dağıtır.

Yukarıdaki tablo, UltraFastBERT çerçevesinin performansını, BERT tabanlı çerçeveler ile karşılaştırır, her bir sütun, aynı lineer-cebirsel rutin ilkelere dayalı hızlı ileri besleme ve ileri besleme uygulamaları arasındaki göreli çıkarım hızlanmasını içerir.
Ancak, yukarıdaki tabloda rapor edilen hızlanmalar, “adil karşılaştırmalar” içindir, yani hem hızlı ileri besleme hem de ileri besleme uygulamaları aynı lineer-cebirsel rutin ilke operasyonlarını kullanır. Ayrıca, 1. ve 2. Seviye uygulamalarda, hızlı ileri besleme ağlarının uygulamaları, en hızlı ileri besleme uygulamasından sırasıyla 48x ve 78x daha hızlıdır.
Son Düşünceler
Bu makalede, UltraFastBERT’i tanıttık, BERT çerçevesinin bir varyantı, BERT modellerinin lider efficacy eşleşmesi ancak yalnızca 0.3% nöronları kullanarak, özellikle aşağı akış görevlerinde, her bir çıkarım katmanında 4095 nöronun yalnızca 12’sini kullanarak. UltraFastBERT çerçevesinin mimarisini, işleyişini ve sonuçlarını keşfettik. Tasarım uygulamaları nedeniyle, UltraFastBERT çerçevesinin orta katmanları üssel olarak daha hızlıdır. Ayrıca, UltraFastBERT çerçevesi tarafından sağlanan güçlü performans, LLM’lerin bireysel çıkarımlar için yalnızca parametrelerinin bir kısmını kullanarak güçlü performans sağlayabileceğini kanıtlar, çünkü UltraFastBERT çerçevesi yalnızca 0.3% kullanılabilir nöronları kullanır ve çıkarım zamanlarında 78x hızlanma sağlar.
UltraFastBERT çerçevesi, LLM’lerin yalnızca bir kısmını kullanarak güçlü performans sağlayabileceğini kanıtlar ve bu, AI endüstrisi için önemli bir adımdır.












