GPT-4 "simya" kılavuzu: MoE, parametre miktarı, eğitim maliyeti ve çıkarım sırları

Orijinal: Filleri Toplamak

Kaynak: Denizaşırı Tekboynuzlar

Yazarlar: Dylan Patel, Gerald Wong

Düzenleyen: Haina, Wenli, Cage

Editör: Siqi

Resim kaynağı: Unbounded AI‌ tarafından oluşturulmuştur

Bu makale Dylan Patel ve Gerald Wong tarafından yazılan SemiAnalysis sütunundan derlenmiştir. Kısa bir süre önce Dylan Patel, Google'ın dahili mektubuyla ilgili haberi verdi: Hendekimiz Yok, OpenAI de Yok.

GPT-4, bilim ve mühendisliğin derin entegrasyonunun ve yeniliğinin sonucudur.Ortada sayısız hile vardır.Dış dünya için, GPT-4'ün yapısını anlayabilirseniz, "simya reçetesini" elde etmek gibidir. "en güçlü modelin. Bu içerik, GPT-4 mimarisi, eğitim ve çıkarım altyapısı, parametre miktarı, eğitim veri seti, token numarası, maliyet ve MoE modeli ile diğer parametreler ve bilgi detaylarını ayrıntılı olarak verir.

Dylan ve Gerald, OpenAI'nin GPT-4'ün mimarisini ifşa etmemesinin nedeninin sözde AI Güvenliği hususları değil, bu mimarinin kopyalanmasının kolay olması olduğuna inanıyor; "dahi bilgisayar korsanı" olarak bilinen George Hotz. , da benzer Görüşü dile getirdi, ancak George, GPT-4'ün her biri yaklaşık 1100 parametreye sahip 8 uzman modelin MoE'lerinden oluştuğunu savunuyor.

İki yazar, Google, Meta, Anthropic, Inflection, Character.ai, Tencent, ByteDance, Baidu vb. şirketlerin kısa vadede GPT-4 ile aynı hatta daha güçlü model yeteneklerine sahip olacağını öngörüyor. Onlara göre GPT-4'ün mimarisi "kolayca kopyalanabilir" olsa da, OpenAI en dayanıklı hendeğe sahiptir - en fazla sayıda son kullanıcı, önde gelen mühendislik yetenekleri ve modellerde nesiller arası değişikliklerde ilk hamle avantajı.

Dostça hatırlatma: Makaledeki veriler, orijinal yazarın çok taraflı koleksiyonundan ve araştırmasından alınmıştır ve OpenAI tarafından onaylanmamıştır. Dylan Patel'in araştırması genellikle oldukça güvenilir kabul edilir ve GPT-4 için iyi bir referans olarak kullanılabilir. derinlemesine araştırma materyalleri. Ayrıca, makaledeki yeniden üretilmesi kolay görüşlerin bir "başlık partisi" olduğundan şüphelenilebileceğini düşünüyoruz, çünkü OpenAI ve Google dışında karmaşık MoE çerçeve eğitiminde ve muhakemesinde iyi olan bilim adamları şu anda kıt ve ve mevcut GPT-4, MoE'nin yalnızca ilk neslidir.OpenAI tarafından verilen nihai cevap değildir ve süreçteki pek çok deneyim diğer ekipler için mevcut değildir ve bu deneyimler kesinlikle OpenAI'nin benzersiz bir avantajı olacaktır.

Aşağıda, bu makalenin içindekiler tablosu yer almaktadır ve ana noktalarla birlikte okunması tavsiye edilir.

👇

01 Genel Bakış

02 Model yapısı

03 Veri Kümesi

04 Paralel Strateji

05 Eğitim maliyeti

06 MEB

07 Akıl Yürütme

08 Altyapı ve muhakeme maliyeti

09 Çoklu sorgu dikkat mekanizması

10 ardışık grup

11 Spekülatif kod çözme

12 Vision Multimodal

01.Genel Bakış

OpenAI'nin mühendislik yetenekleri ve yarattıkları inanılmaz, ancak bu, çözümlerin aşılmaz olduğu anlamına gelmiyor. Çözümleri çok zarif ve aynı zamanda bir dizi karmaşık faktörün dikkate alınmasını ve dengelenmesini içeriyor ve model ölçeğinin genişletilmesi bunun sadece bir parçası. **OpenAI'nin en dayanıklı hendeği üç yönden gelir: birincisi, gerçek dünyadaki en fazla kullanıcıya sahip olmaları, ikincisi, önde gelen mühendislik yetenekleri ve son olarak, gelecekteki model geliştirmede öncü olmaya devam etmeleri muhtemeldir. **

GPT-4'ün neden belirli bir mimariyi seçtiğini anlamak değerli olmakla kalmayıp, yakın zamanda GPT-4'ün A100 üzerindeki eğitim ve çıkarım maliyetlerini ve yeni nesil model mimarisinde H100'ün nasıl kullanılacağını da ana hatlarıyla açıklayacağız.

GPT-3'ten GPT-4'e OpenAI, modelin boyutunu 100 kat artırmak istiyor.Bu sürecin özü, doğal olarak maliyet sorunudur**. Yoğun transformatörler, OpenAI GPT-3, Google PaLM, Meta LLaMA, TII Falcon, MosaicML MPT, vb. gibi yaygın olarak kullanılan model mimarilerdir. Şu anda, LLM'yi eğitmek için bu mimariyi kullanan en az 50 şirket var, bu da iyi bir mimari örnektir. , ancak ölçeklenebilirliği çok sınırlıdır.

AI Brick Wall, bu makalede modelin GPT-4 yayınlanmadan önceki eğitim maliyetinden bahsetti. Eğitim maliyeti açısından, yoğun model (yoğun transformatörler) kendi "Yapay Zeka Tuğla Duvarı" ile yüzleşmek üzeredir. Bazı üst düzey mimari çabalar gösterin.

AI Brick Wall: Bu aşamadaki donanım, Yoğun Transformatör açısından sınırına ulaştı, bu nedenle model ölçeğini sürekli olarak bir trilyon veya on trilyon parametreli bir modele genişletmek pratik ve maliyetlidir. Yeni nesil donanımlardan önce, eğitim maliyetlerini azaltmak, model eğitim verimliliğini artırmak ve modeli daha fazla sayıda parametreye genişletmek için çeşitli strateji ve tekniklere ihtiyaç duyulmaktadır. Yazar, bu teknoloji serisinin 2023 civarında gerçekleştirileceğine inanıyor ve katılabilecek şirketler arasında OpenAI, Google, DeepMind, Microsoft ve Nvidia yer alıyor. Bu stratejilerin birçoğu NeurIPS konferansında sunuldu ve muhtemelen AI uygulamaları üzerinde büyük bir etkiye sahip olacak.

Ancak son 6 ayda eğitim maliyetinin sorun olmayabileceğini fark ettik. Modelleri eğitmek için milyonlarca hatta yüz milyonlarca dolar harcamak kulağa çılgınca gelse de aslında teknoloji devleri için önemsiz. Büyük bir model, bir sermaye yatırım projesidir (Capex satır öğesi) ve model ne kadar büyükse, sonuç o kadar iyi olur. Tek sınırlayıcı faktör, insanların geri bildirim sağlamak ve modeli genişletirken model mimarisini değiştirmek için yeterli yeteneğe ve zamana sahip olup olmadığıdır. ölçek.

Meta her yıl "Metaverse"e 16 milyar dolardan fazla yatırım yapıyor, Google yeni proje girişimlerine yaklaşık 10 milyar dolar harcıyor, Amazon Alexa'ya 50 milyar dolardan fazla harcıyor ve kripto para birimleri "değeri olmayan şeylere" 100 milyar dolardan fazla boşa gidiyor. Bir bütün olarak toplum, çeşitli şekillerde ürünleştirilebilen büyük ölçekli modelleri eğitebilen süper bilgisayarlar yaratmak için 100 milyar dolardan fazla harcayacak. Birden çok ülke ve şirket, yeni "uzayda silahlanma yarışı"** olan büyük modellerde eğitim çabalarını** tekrarlayacak. Önceki "kaynak israfı" ile karşılaştırıldığında, insan yardımcıların ve otonom ajanların ortaya çıkması nedeniyle gerçek değer kısa vadede gerçekleşecektir.

Ancak önümüzdeki birkaç yıl içinde Google, Meta ve OpenAI, Microsoft ve diğer şirketler, modeli eğitecek bir süper bilgisayar oluşturmak için 100 milyar ABD dolarından fazla harcayacak.

Modelin boyutunu genişletmenin daha önemli konusu, gerçek "AI Brick Wall", çıkarım bağlantısında yatıyor. Buradaki amaç, eğitim bilgi işlem gücünü çıkarım bilgi işlem gücünden ayırmaktır, bu nedenle dağıtılacak herhangi bir model için, DeepMind'ın Chinchilla-optimal'in ötesinde eğitim yapmak mantıklıdır. (Seçim notu: Modelin aşırı öğrenmesini sağlamak için eğitim verisi miktarını artırmak, küçük modellerin yeteneğini artırmaya ve muhakeme maliyetini düşürmeye yönelik bir stratejidir.) Bu nedenle seyrek bir model mimarisi (sparse model mimarisi) kullanılır. Bu mimari altındaki akıl yürütme, tüm parametrelerin aktif olması gerekmez.

Chinchilla optimal: Deepmind'in Training Compute-Optimal Large Language Models adlı makalesinden, sabit bir toplam FLOPS sayısı olduğunda en düşük kaybı elde etmek için hangi model boyutunun ve veri boyutunun kullanılması gerektiğini belirtir.

Şu anda, Chinchilla-optimal, eğitim tarafında en uygun stratejidir ve Chinchilla-optimal'in etkisini aşmak için daha fazla jetonla eğitim, çıkarım tarafında en uygun stratejidir. Ve muhakeme maliyeti "büyük kafayı" hesaba kattığı için, çoğu şirket Chinchilla-optimal'i aşan bir strateji seçecektir.

Çıkarım bağlantısındaki sorunun özü, modeli kullanıcılara ve Aracılara dağıtmanın maliyetinin çok yüksek olmasıdır. Çıkarım maliyeti, eğitim maliyetinden birkaç kat daha fazladır ve bu sorunu çözmek, model mimarisi ve altyapısı açısından OpenAI'nin hedefidir.

Büyük modellerle, özellikle yoğun modellerle çıkarım söz konusu olduğunda, model boyutu çok değişkenli bir konu haline gelebilir. Cihazda Yapay Zeka - Çift Kenarlı Kılıç Bu makale, uç bilgi işlem bağlamında durumu tartışmıştır. Basitçe ifade etmek gerekirse, terminal cihazları, büyük dil modellerini uygulamak için gereken veri hacmine ve bellek bant genişliğine asla sahip olamaz.Bant genişliği yeterli olsa bile, uç cihazların donanım bilgi işlem kaynaklarını kullanma verimliliği çok düşüktür. Veri merkezleri benzer sorunlarla karşı karşıyadır.

Bilgi işlem kaynaklarının kullanımı, veri merkezleri ve bulutlar için çok önemlidir. (Not: Şu anda, sektördeki GPU/TPU kullanımının üst sınırı yaklaşık %50'dir.) NVIDIA'nın yazılımının büyük ölçüde övülmesinin önemli nedenlerinden biri, NVIDIA'nın sürekli olarak yeni nesil bir GPU piyasaya sürme sürecinde olmasıdır. Ayrıca sürekli olarak güncelleniyor Yongalar arasında, yongalar arasında ve bellekler arasında daha akıllı veri hareketini mümkün kılarak artan FLOPS kullanımını yönlendiren bir yazılım nesli.

FLOPS: Floating Point Operations Per Second, bilgisayar işlemlerinin hızını ölçmek için kullanılan bir birimdir. FLOPS ne kadar yüksek olursa bilgisayar sorunu o kadar iyi çözebilir. GPU'nun bilgi işlem gücü esas olarak sağlayabildiği FLOPS'tan gelir.GPU tarafından sağlanan FLOPS ne kadar yüksekse, hesaplama gücü o kadar güçlüdür.

Bu aşamada, LLM çıkarımı için kullanım durumları çoğunlukla "canlı asistanlar"dır; bu, kullanıcılar için gerçekten yararlı olabilmesi için yeterince yüksek veri hacmine ulaşması gerektiği anlamına gelir. İnsanları bir benzetme olarak ele alırsak, insanların ortalama okuma hızı dakikada yaklaşık 250 kelimedir ve bazı insanlar dakikada yaklaşık 1.000 kelimeye ulaşabilir.Modele göre bu, saniyede en az 8,33 jeton, tercihen saniyede 33,33 jeton çıktı anlamına gelir. belirteç olarak, insanın tüm ihtiyaçlarını karşılamak mümkündür.

Ancak bellek bant genişliği sınırlaması nedeniyle, en son NVIDA H100 GPU sunucusunda bile, trilyon parametreli yoğun model (yoğun model) matematiksel olarak bu verimi sağlayamaz. Bir belirteç her oluşturulduğunda, bellekten çipe yüklenmesi gerekir ve ardından bu belirteç, bir sonraki belirteci oluşturmak için tekrar gönderilir. Ek olarak, dikkat mekanizmasını uygulamak için KV önbelleği (KV Önbelleği) de ek bant genişliği gerektirir.

KV Önbelleği (KV Önbelleği): Örnekleme işlemi sırasında, Transformer modeli, mevcut dizideki her bir öğe için bir anahtar değer çıkarmanın gerekli olduğu bir öz-dikkat işlemi (Öz-Dikkat) gerçekleştirecektir. /bağlam veya oluşturulmuş bir belirteç) (Anahtar-Değer, KV) vektörü. Bu vektörler, genellikle KV önbelleği veya geçmiş önbellek olarak adlandırılan bir matriste saklanır. KV önbelleğinin işlevi, belirteç her örneklendiğinde anahtar-değer vektörünün yeniden hesaplanmasını önlemektir. Önceden hesaplanmış K ve V değerlerinin kullanılması, bir miktar depolama alanı kaplamasına rağmen, hesaplama süresinden büyük ölçüde tasarruf sağlayabilir. KV önbelleği, Transformer modelinde çok önemli bir rol oynar ve modelin verimliliğini ve performansını büyük ölçüde geliştirmeye yardımcı olabilir.

Bu diyagram, her işlemi birleştirmede başarısız olmanın verimsiz olduğunu ve dikkat mekanizmalarının, parametre okunurken karşılaştırılabilir bellek bant genişliği ve donanım ek yükü gerektirdiğini varsayar. Gerçekte, NVIDIA FasterTransformer gibi "optimize edilmiş" kitaplıklarla bile genel yük daha yüksek olacaktır.

Yukarıdaki şekil, yeterince yüksek iş hacmine sahip tek kullanıcılı bir LLM'ye hizmet vermek için gereken bellek bant genişliğini göstermektedir. Bu resimden şu anlaşılıyor:

• H100'ün 8 katı bant genişliği bile saniyede 33,33 jeton hızında 1 trilyon parametre ölçeğine sahip yoğun bir modele hizmet edemez;

• Ayrıca, 8x H100'ün FLOPS kullanımı saniyede 20 jetonla hala %5'in altındadır, bu da son derece yüksek çıkarım maliyetine yol açar.

Aslında, günümüzün 8 yollu tensör paralelleştirilmiş H100 sistemi için çıkarım kısıtlaması yaklaşık 300 milyar ileri beslemeli parametredir.

Bununla birlikte, OpenAI, A100 ve 1 trilyondan fazla parametreye sahip modeller ile insan okuma hızına ulaşıyor, 1000 jeton başına 0,06 ABD doları gibi düşük bir fiyatla yaygın olarak bulunuyor ve bu tam olarak seyrek mimarisi nedeniyle mümkün.

Ardından, GPT-4 model mimarisini, eğitim ve muhakeme için altyapıyı, parametre sayısını, eğitim veri setinin bileşimini, belirteç sayısını, katman sayısını, paralel stratejileri, çok modlu görsel kodlayıcıları tartışacağız. vb. bir dizi farklı mühendislik tasarımının arkasında.Düşünceler, uygulama teknikleri ve OpenAI'nin büyük model çıkarımındaki darboğazları nasıl ele aldığı.

02. Model yapısı

GPT-4'ün ölçeği, GPT-3'ün 10 katından fazladır, yaklaşık 1,8 trilyon parametreye sahip olduğunu ve bu parametrelerin 120 trafo katmanına dağıldığını tahmin ediyoruz. Karşılaştırma için, GPT-3'ün parametreleri yaklaşık 1750 milyardır. (Not: GPT-3 sadece 12 trafo katmanına sahiptir ve katman sayısı GPT-4'ün 1/10'udur.)

Maliyetleri kontrol etmek için OpenAI, MoE modelini kullanmayı seçti. OpenAI, modelde her biri yaklaşık 111 milyar parametreye sahip 16 MLP.2 tipi uzman kullanır. Her ileri geçişte bu uzman modellerden ikisi çağrılır.

• Uzmanların Karışımı (MoE): MoE modeli, genellikle birden fazla uzmandan (Uzman) oluşan bir derin öğrenme mimarisidir, her uzman girdi verilerinin farklı yönlerini işlemekten sorumludur ve Kendi parametre setine sahiptir (vardır ayrıca tüm uzmanlar tarafından paylaşılabilen gömme gibi bazı parametreler, yani paylaşılan parametreler). Modelin muhakeme sürecinde, girdi verilerinin farklı özelliklerine göre, model girdiyi farklı uzmanlara yönlendirir.Her uzman, karşılık gelen atanan girdiyi parametre setine göre işler ve çıktıyı tamamlar.Nihai çıktı, her uzmanın çıktısının entegrasyonu.

• MLP: Çok Katmanlı Perceptron (Multi-Layer Perceptron).MLP, birden çok gizli katman içeren yapay sinir ağıdır.MoE modelinde genellikle birden çok bağımsız MLP uzmanı bulunur.

Bekleyen her jetonun bir uzman modele nasıl yönlendirileceğini (atayacağını) tartışan birçok literatür var, ancak OpenAI tarafından kullanılan algoritma setinin oldukça basit olduğu söyleniyor, en azından GPT-4 böyle.

Ayrıca dikkat mekanizmasında yaklaşık 55 milyar ortak parametre kullanılmaktadır.

Her ileri çıkarım (belirteç üreten), yalnızca yoğun modelin kullanılması durumunda her bir ileri çıkarım için gereken yaklaşık 1,8 trilyon parametre ve 3700 TFLOP'a kıyasla yalnızca yaklaşık 280 milyar parametre ve 560 TFLOP kullanır.

03. Veri Kümesi

GPT-4, yaklaşık 13 trilyon jeton üzerinde eğitildi; bu, CommonCrawl RefinedWeb'in yaklaşık 5 trilyon yüksek kaliteli jeton içerdiği düşünüldüğünde mantıklıdır. Referans olarak, Deepmind'in Chinchilla ve Google'ın PaLM modellerinin sırasıyla yaklaşık 1,4 trilyon jeton ve yaklaşık 0,78 trilyon jeton ile eğitildiği ve PaLM2'nin yaklaşık 5 trilyon jeton üzerinde eğitildiği söyleniyor.

CommonCrawl Rafine Edilmiş Web: CommonCrawl, İnternet'teki web sayfalarını düzenli olarak taramak ve web sayfalarını ve ilgili meta verileri ve arşivi düzenlemek için web crawler teknolojisini kullanan açık ve erişilebilir bir İnternet veri kümesi oluşturmayı ve sürdürmeyi amaçlayan, kar amacı gütmeyen bir projedir. CommonCrawl RefinedWeb, CommonCrawl'ın algoritmik ve insan incelemesinden sonra toplanan ham verilerden taradığı yüksek kaliteli metinlerden oluşan bir kitaplıktır.

OpenAI tarafından GPT-4'ü eğitmek için kullanılan veri seti 13 trilyon benzersiz token değildir. Aksine, yüksek kaliteli belirteçlerin bulunmaması nedeniyle, bu veri kümesi birden çok çağ içerir. Metin tabanlı veriler için 2 dönem ve kod tabanlı veriler için 4 dönem vardır. (Not: Bu, model tarafından birçok kez öğrenilen bazı yüksek kaliteli metinlere ve kodlara atıfta bulunur.) Bu, Chinchilla-optimal'e ulaşmaktan çok uzaktır (modelin jeton sayısının iki katı üzerinde eğitilmesi gerekir), bu da şunu gösterir: ağın kolay olması belirteç elde etmek için yeterli değildir. Ağda gerçekten var olan yüksek kaliteli metin belirteçleri, bugün mevcut olanın 1000 katı olmalıdır ve ses ve video belirteçleri daha da fazladır, ancak bu belirteçleri toplamak, yalnızca web kazıma ile elde edilemez. Ne yazık ki, OpenAI'nin verilere RLHF'si hakkında fazla bilgi bulamadık.

Bir dönem, modeli bir kez eğitmek için tüm eğitim setindeki (eğitim seti) tüm örnekleri kullanma sürecini ifade eder. Spesifik olarak, bir dönem birden fazla eğitim adımı (eğitim adımı) içerir, her eğitim adımı, eğitim için modele küçük bir grup numune girmek ve kayıp fonksiyonunu (kayıp fonksiyonu) en aza indirmek için modelin parametrelerini güncellemektir.

Çağ çok küçükse, model eğitim setindeki bilgileri tam olarak kullanamayabilir, bu da yetersiz uyumla sonuçlanabilir, yani model eğitim verilerini iyi bir şekilde uyduramaz ve test setinde düşük performansa neden olur . Tersine, eğer bir çağ çok büyükse, model, genel özellikleri göz ardı ederken, eğitim setinde çok fazla gürültü ve yerel özellikleri öğrenerek aşırı uyumlu olabilir.

Eğitim öncesi aşamada bağlam uzunluğu (seqlen) 8k'dır. GPT-4'ün 32k bağlam versiyonu, ön eğitimden sonra 8k ince ayara ek olarak uygulanır.

Toplu iş boyutu kümede birkaç gün boyunca kademeli olarak artırıldı, ancak sonunda OpenAI 60 milyon kadar yüksek bir toplu iş boyutu kullandı. Tabii ki, her parametre tüm parametreleri görmediğinden, bu sadece uzman başına 7,5 milyonluk bir toplu iş boyutudur.

Yığın boyutu, her yineleme (yineleme) veya ileri geçiş (ileri geçiş) için eğitim örneklerinin sayısını ifade eder. Model eğitimi sırasında, veriler eğitim için partilere bölünür ve Parti boyutu, her partideki numune sayısını gösterir. Toplu eğitimin avantajı, bellek kısıtlamalarını ortadan kaldırabilmesi ve ara sonuçların tekrar tekrar hesaplanması için bilgi işlem kaynaklarından tasarruf edebilmesidir.

Batch Size boyutunun modelin eğitim etkisi ve hızı üzerinde büyük etkisi vardır. Yığın Boyutu ne kadar büyük olursa, her seferinde güncelleme parametrelerinin hesaplanması o kadar büyük olur, ancak eğitim süreci daha kararlı olacaktır çünkü her Yığıntaki örnekler gürültü ve belirsizliği ortalayabilir. Öte yandan, Parti Boyutu çok küçükse, eğitim süreci kararsız hale gelebilir ve optimum çözüme yakınsama için daha fazla eğitim adımı gerektirebilir. Ayrıca Toplu İş Boyutunun boyutu da donanım kaynakları tarafından sınırlandırılacaktır. Bu nedenle, pratik uygulamalarda, uygun Parti Büyüklüğünün seçilmesi çok önemlidir.

04. Paralel strateji

Tüm A100 GPU'larda paralel işleme çok önemlidir.

OpenAI, 8-yollu (8-yollu) ölçekli tensör paralelliğini (Tensor Parallelism) kullanır, nedeni 8-yolludur (8-yol), çünkü bu NVLink'in sınırıdır. Ek olarak, OpenAI'nin 15 yollu (15 yollu) boru hattı paralellik stratejisi kullandığını da duyduk. Teorik olarak, veri iletişimi ve bilgi işlem süresi göz önüne alındığında 15 yol çok fazladır, ancak bellek kapasitesiyle sınırlı olmaları da mantıklıdır.

Büyük model eğitiminde, Pipeline Parallelism, Data Parallelism ve Tensor Parallelism gibi birkaç klasik dağıtılmış paralel paradigma vardır. Microsoft'un açık kaynaklı dağıtılmış eğitim çerçevesi FastSpeed, bu üç paralel paradigmayı birleştirir.

Yalnızca ardışık düzen paralelliği ve tensör paralelliği kullanıyorsanız, her bir GPU'daki parametrelerin FP16 kapsamında yaklaşık 30 GB'a ihtiyacı vardır ve KV önbelleği ve KV ek yükü hesaba katıldığında, OpenAI tarafından kullanılan GPU'ların çoğu 40 GB A100 ise, bu mimari It is teoride de makul. OpenAI, ZeRo aşama 1, blok düzeyinde FSDP veya hibrit paylaşılan veri paralelliğini kullanabilir.

• KV ek yükü (KV ek yükü): KV depolama sistemindeki ek yükün neden olduğu yükü ifade eder. Bu genel giderler, anahtar-değer çiftlerini, dizin yapılarını, veri çoğaltma ve senkronizasyonu, ağ iletişimini ve daha fazlasını depolamak ve yönetmek için meta verileri içerebilir. KV ek yükündeki bir artış, performansın düşmesine, artan depolama gereksinimlerine ve artan sistem karmaşıklığına yol açabilir.

• ZeRo Aşama 1: Sıfır (Sıfır Artıklık Optimize Edici), her kartın eksiksiz bir optimize edici durumunu sakladığı anlamına gelir. Her kart eniyileyici durumunun yalnızca bir kısmını depolarsa, tüm kartların eniyileyici durumları birlikte eksiksiz bir durum, yani ZeRO-aşama1 adı verilen Pos (Bölüm Optimize Edici Durumlar) oluşturur.

• Blok düzeyinde FSDP: blok tabanlı Tam Hassasiyetli Dinamik Niceleme (Tam Hassasiyetli Dinamik Niceleme) teknolojisine atıfta bulunur. Eğitim ve muhakeme sırasında daha yüksek model doğruluğu korunabilir, bu da model çıkarımının maliyetini düşürür.

Tam model FSDP'nin kullanılmamasının nedeni iletişim maliyetinin yüksek olması olabilir. OpenAI çoğu düğüm arasında yüksek hızlı bir ağa sahip olsa da, muhtemelen hepsi değil, en azından diğerlerinden çok daha düşük bağlantı bant genişliğine sahip bazı kümeler olduğunu düşünüyoruz.

OpenAI'nin bu kadar yüksek boru hattı paralelliği ile büyük balonları nasıl önlediği açık değil. Muhtemelen sadece maliyeti karşıladılar.

Kabarcık: Yüksek derecede boru hattı paralelliği nedeniyle her partideki gecikme veya bekleme süresi. Bu, yüksek düzeyde paralel bilgi işlem sürecinde, farklı parçaların farklı hesaplama hızları nedeniyle, bazı parçaların diğer parçaların hesaplamayı tamamlamasını beklemesi gerekebileceği ve bunun da gecikme veya boşta kalma süresiyle sonuçlanabileceği anlamına gelir. Bu durumda "balon", bu boşta kalma veya bekleme aralıklarını ifade eder. Bu cümle, hesaplama sürecinde bir miktar boşta kalma süresi veya gecikme olduğunu kabul edebilecekleri anlamına gelir.

05. Eğitim maliyeti

OpenAI, maksimum bilgi işlem gücü kullanımının yaklaşık %32 ila %36 olduğu 90 ila 100 günlük eğitim için yaklaşık 25.000 A100 GPU'da GPT-4 eğitiminde yaklaşık 2,15e25 FLOPS kullandı. **

Bu son derece düşük kullanım, kısmen kontrol noktalarının yeniden başlatılmasını gerektiren çok sayıda arızadan kaynaklanmaktadır ve yukarıda bahsedilen baloncuklar çok fazla maliyete neden olmaktadır.

Diğer bir neden de, çok sayıda GPU'da tümü azaltmanın çok pahalı olmasıdır. Özellikle kümenin, kümenin farklı bölümleri arasındaki 800G/1.6T bloke olmayan bağlantılar gibi nispeten zayıf ağ bağlantılarına sahip birçok küçük kümeden oluştuğundan şüpheleniyorsak, ancak bu kümelerden bazıları yalnızca 200G/400G hızında bağlanabilir.

all-reduce, dağıtılmış hesaplamada verilerin küresel olarak azaltılmasını gerçekleştirmek için kullanılan paralel hesaplamada bir iletişim işlemidir. Dağıtılmış derin öğrenmede all-reduce, eğitim sırasında model parametrelerini güncellemek için birden çok bilgi işlem düğümü arasında gradyan bilgilerini paylaşmak ve toplamak için yaygın bir iletişim işlemidir.

Bulut üzerindeki maliyetleri A100 başına yaklaşık 1 ABD Doları ise, bu yalnızca bu eğitim oturumu için ~63 milyon ABD Doları'na gelir**. Bu, tüm denemeleri, başarısız girişimleri ve diğer veri toplama, RLHF, personel vb. maliyetleri içermez. Bu faktörler dikkate alındığında, gerçek maliyet çok daha yüksektir. Ek olarak, çip konfigürasyonunu, ağ ekipmanını ve veri merkezini tamamlayacak, sermaye yatırımını (Capex) üstlenecek ve bunları size kiralayacak bir ekibe sahip olmanız gerektiğini de göz önünde bulundurmanız gerekir.

Şu anda ön eğitim, yaklaşık 8.192 H100 ile yaklaşık 55 günde, toplam maliyeti 21,5 milyon ABD doları olan her H100 GPU'nun saati 2 ABD dolarıdır yapılabilir.

Yıl sonuna kadar dokuz şirketin daha fazla H100 GPU'ya sahip olmasını bekliyoruz. Belki bu H100'lerin hepsi model eğitimi için kullanılmayacak, ancak bu şirketler kesinlikle büyük modelleri sahiplenecek ve önemli oyuncular haline gelecektir. Meta, yıl sonuna kadar 100.000'den fazla H100'e sahip olmayı bekliyor ve bunların önemli bir kısmı çıkarım için kendi veri merkezlerinde konuşlandırılacak, ancak en büyük tek kümeleri 25.000'den fazla H100 GPU'ya sahip olacak. (Not: Meta'nın bilgi işlem kaynakları, LLaMA'nın yeteneğini açık kaynak ve özel dağıtım için önemli bir değişken haline getirecektir.) Pek çok şirket, bu yılın sonundan önce GPT-4 ile aynı yeteneğe sahip bir model eğitecek.

06.MoE

MoE, çıkarım sırasında parametre sayısını azaltmanın etkili bir yoludur, aynı zamanda parametre sayısını artırarak eğitim belirteci başına daha fazla bilginin kodlanmasına yardımcı olur. Yeterince kaliteli token elde etmek çok zor olduğu için MoE mimarisini seçmek gerekiyor. Çünkü OpenAI, Chinchilla-Optimal'i gerçekten uygulamak istiyorsa, şimdi iki kat daha fazla jeton eğitmeleri gerekir.

Olduğu söyleniyor, OpenAI birkaç değiş tokuş yapıyor. Örneğin, çıkarım sırasında MoE ile uğraşmak çok zordur çünkü her jeton oluşturulurken modelin her parçası kullanılmaz. Bu, diğer parçalar kullanılırken bazı parçaların atıl durumda olabileceği anlamına gelir. Bu, kullanıcılara hizmet verirken kullanımı ciddi şekilde etkileyebilir.

Araştırmacılar, 64 ila 128 uzman kullanmanın, 16 uzman kullanmaktan daha iyi kayıp sonuçları verdiğini kanıtladı, ancak bu yalnızca bir araştırma. Uzman sayısının azaltılmasının birkaç nedeni vardır. OpenAI'nin 16 uzman seçmesinin nedenlerinden biri, daha fazla uzmana sahip olmanın genelleştirmeyi ve yakınsama sağlamayı zorlaştırmasıdır. Böylesine geniş bir eğitim çalışması göz önüne alındığında, OpenAI uzman sayısında daha muhafazakar olmayı seçti.

Ayrıca, daha az uzman kullanmak, çıkarım mimarileri için yararlıdır. Bir MoE çıkarım mimarisine geçerken çeşitli karmaşık dengeler vardır. Temel LLM çıkarım değiş tokuşlarıyla başlayalım ve ardından OpenAI'nin karşılaştığı sorunları ve yaptıkları seçimleri inceleyelim.

07. Muhakeme

Bu bölümde, öncelikle iletişim kurduğumuz her LLM şirketinin NVIDIA'nın FasterTransformer çıkarım kitaplığının oldukça kötü olduğunu ve TensorRT'nin daha da kötü olduğunu düşündüğünü belirtmek istiyoruz. Nvidia'nın şablonlarını kullanma ve değiştirme yeteneği olmadan, yani sıfırdan kendi çözümünüzü oluşturmak anlamına gelen NVIDIA'nın LLM çıkarımının ihtiyaçlarına uyum sağlamak için bu sorunu bir an önce çözmesi gerekiyor, aksi takdirde açık bir araç haline gelecektir. üçüncü taraf donanım desteği eklemek için. Giderek daha büyük modeller geliyor ve eğer NVIDA çıkarımda bir yazılım avantajı sağlayamazsa ve çekirdeklerin hala elle yazılması gerekiyorsa, o zaman AMD'nin MI300 ve diğer donanımları çok daha büyük bir pazara sahip olacaktır.

LLM'nin çıkarım bağlantısında, esas olarak kullanılan çip sayısıyla ilgili olan 3 temel faktör vardır.

1. Gecikme

Model makul bir gecikme içinde yanıt vermelidir. İnsanlar bir sohbet uygulamasında çıktı almaya başlamadan önce birkaç saniye beklemek istemezler. Giriş ve çıkış belirteci işleme süreleri dalgalanabilir.

2. Verim

Model, saniyede belirli sayıda belirteç çıkarmalıdır. İnsan kullanımı saniyede yaklaşık 30 jetondur ve diğer çeşitli kullanım durumları için verim daha düşük veya daha yüksek olabilir.

3. Kullanım

Modeli çalıştıran donanım, yüksek kullanım sağlamalıdır, aksi takdirde maliyet engelleyici olacaktır. Daha fazla kullanıcı talebini daha yüksek gecikme süresi ve daha düşük verim ile gruplandırarak daha yüksek kullanım elde etmek mümkünken, bu zorluğu artırmaktadır.

LLM çıkarımı, temel olarak iki ana faktörü, bellek bant genişliğini ve hesaplamayı dengelemek içindir.

Basit bir ifadeyle, her parametre kendisiyle ilişkilendirilmiş iki FLOP ile okunmalıdır. Bu nedenle, çoğu yonganın oranı (örneğin, H100 SXM yalnızca 3 TB/s bellek bant genişliğine sahiptir, ancak 2.000 TFLOP/s FP8'e sahiptir), parti boyutu 1 ile çıkarımda tamamen dengesizdir. Yalnızca bir kullanıcıya hizmet verilirse, yani 1'lik toplu iş boyutuyla, her belirteç üretimi için her parametrenin akışını sağlamak için gereken bellek bant genişliği çıkarım süresine hakim olur ve hesaplama süresi neredeyse ihmal edilebilir düzeydedir.

Büyük modelleri birden çok kullanıcıya ölçeklendirebilmek için parti boyutunun 1'den büyük olması ve birden çok kullanıcının parametre okuma maliyetini paylaşması gerekir. Örneğin, 256 veya 512 toplu iş boyutunda, okunan her bellek baytı 512 FLOP/s veya 1024 FLOP/s'ye karşılık gelir. Bu oran, H100'ün bellek bant genişliğinin FLOPS'a oranına daha yakındır. Daha yüksek kullanım elde etmeye yardımcı olur, ancak daha yüksek gecikme dezavantajına sahiptir.

Birçok kişi, modelin boyutu birden çok çipe sığabileceğinden, bellek kapasitesinin LLM çıkarımı için ana darboğaz olduğunu düşünür, ancak bu görüş sorunlu olabilir. Büyük modellerin çıkarımı birden çok yonga gerektirmesine ve daha yüksek bellek kapasitesi daha az uyarlanmış yongayla sonuçlansa da, aslında gecikmeyi azaltmak, verimi artırmak için gerekenden daha fazla yonga kullanmak daha iyidir ve kullanımı sürekli olarak artırmak için daha büyük yığın boyutları kullanılabilir.

Google, PaLM çıkarım belgesinde yukarıdaki üç sorunun ele alınmasından da bahsetti. **Bu, GPT4 gibi seyrek bir model değil, PaLM gibi yoğun bir model içindir. **

Bir uygulama mümkün olan en düşük gecikmeyi gerektiriyorsa, daha fazla çipe ihtiyacımız var ve ekonomik olması için modeli mümkün olduğunca çok şekilde bölüyoruz. Daha küçük toplu iş boyutları daha düşük gecikme sağlar, ancak daha küçük toplu iş boyutları ayrıca daha zayıf MFU'ya [kullanım] neden olur ve bu da token başına daha yüksek bir toplam maliyetle (çip saniyesi veya dolar olarak) sonuçlanır.

Bir uygulama çevrimdışı çıkarım gerektiriyorsa ve gecikme bir sorun değilse, ana hedef çip başına verimi en üst düzeye çıkarmaktır (yani, belirteç başına toplam maliyeti en aza indirmek). Daha büyük parti boyutları genellikle daha iyi MFU [kullanım] sağlar, ancak küçük parti boyutları için etkili olmayan bazı bölümleme stratejileri, parti boyutu büyüdükçe ve etkili hale geldikçe büyür ve daha etkili hale gelir.

**Daha fazla yonga ve daha büyük parti boyutları, kullanımı artırdıkları için daha ucuzdur, ancak bu aynı zamanda üçüncü bir değişken olan Ağ Oluşturma Süresini de beraberinde getirir. ** Modeli birden çok yongaya dağıtma yöntemi, gecikmeyi etkili bir şekilde çözebilir, ancak kullanım pahasına.

Hem depolama süresinin ağırlık yükleme kısmı hem de dikkat gerektirmeyen hesaplama süresi, model boyutuyla orantılı ve çip sayısıyla ters orantılıdır. Belirli bir bölme düzeni için, çipten çipe iletişim için gereken süre, kullanılan çip sayısıyla birlikte daha yavaş azalır (veya hiç azalmaz), bu nedenle çip sayısı arttıkça bu giderek daha zor bir problem haline gelir. darboğaz

Parti boyutu ve boyutu büyüdükçe KV önbelleğinin bellek gereksinimlerinin arttığını fark ettik.

Bir uygulamanın uzun dikkat bağlamları (uzun dikkat bağlamları) içeren bir metin oluşturması gerekiyorsa, çıkarım süresini büyük ölçüde artıracaktır. 500B'den fazla çoklu kafa dikkatine sahip bir model için, dikkatin KV önbelleği çok büyük olabilir: parti boyutu 512 ve bağlam uzunluğu 2048 olan bir model için toplam KV önbelleği miktarı 3TB'dir; Model parametre boyutunun 3 katı. Çip üstü belleğin (yonga üstü bellek), her jeton oluşturulduğunda yüklenen çip dışı bellekten (yonga dışı bellek) KV önbelleğini yüklemesi gerekir.Bu süre zarfında, çipin bilgi işlem çekirdeği temelde atıl durumda.

Uzun dizi uzunlukları, bellek bant genişliği ve bellek kapasitesi için özellikle zahmetlidir. OpenAI'nin 16k bağlamlı GPT-3.5 turbo ve 32k bağlamlı GPT-4'ünün pahalı olmasının nedeni, bellek kısıtlamaları nedeniyle daha büyük partileri alamamasıdır.

Daha küçük gruplar, daha düşük donanım kullanımıyla sonuçlanır. Ayrıca, dizi uzunluğu arttıkça KV önbelleği şişer. KV önbelleği kullanıcılar arasında paylaşılamaz, bu nedenle ayrı bellek okumaları gerekir, bu da bellek bant genişliğini daha da azaltır. MQA hakkında daha fazla bilgi için aşağıya bakın.

08. Altyapı ve muhakeme maliyeti

Altyapı

MoE'nin mimarisi, GPT-4'ün çıkarımını gecikme, verim ve kullanım açısından zorluklarla karşı karşıya bırakır. Her jetonun ileri geçişi farklı uzman modellere yönlendirilebildiğinden, bu durumda özellikle yüksek toplu iş boyutunda düşük gecikme süresi, yüksek verim ve yüksek kullanım elde etmek çok zordur.

OpenAI'nin GPT-4 mimarisi 16 uzman model içerir ve her iletme kanalında 2 yönlendirici bulunur. Bu, 8'lik bir toplu iş boyutuyla, her bir uzmanın okunan parametresinin, toplu iş boyutunun yalnızca "1"ini kaplayabileceği anlamına gelir. Daha ciddisi, bu aynı zamanda bir uzman için parti büyüklüğünün 8 olmasına neden olurken, diğer uzmanların parti büyüklüğü sadece 4, 1 veya 0 olabilir.

Ek olarak, yönlendirme algoritması, bir belirteç her oluşturulduğunda ileri geçişi farklı yönlerde yönlendirir; bu, belirteçten belirteç gecikmesine ve uzman toplu iş boyutunda önemli farklılıklara neden olur. Yani, farklı belirteçleri işlerken, farklı uzmanlar farklı görevlere atanabilir ve hem hesaplama yükü hem de parti boyutu buna göre değişebilir.

Çıkarım altyapısı, OpenAI'nin MoE tasarımında az sayıda uzman seçmesi için temel hususlardan biridir. Daha fazla uzman kullanırlarsa, bellek bant genişliği çıkarım için daha büyük bir darboğaz olur. OpenAI genellikle kendi çıkarım kümelerinde 4k'nın üzerinde toplu iş boyutlarına ulaşır; bu, uzmanlar arasında en uygun yük dengelemeyle bile her uzmanın yalnızca yaklaşık 500 toplu iş boyutuna ulaşabileceği anlamına gelir. Bu, elde etmek için çok büyük bir kullanım gerektirir.

Anladığımız kadarıyla OpenAI, 128 GPU'luk bir küme üzerinde çıkarım yürütür ve farklı veri merkezlerinde ve coğrafi bölgelerde bu tür birden çok kümeye sahiptir. Çıkarım, 8 yollu tensörler ve 16 yollu ardışık düzenlerle paralel olarak gerçekleştirilir. Düğüm başına 8 GPU kullanan her GPU'nun yalnızca yaklaşık 130 milyar parametresi vardır veya FP16 altında GPU başına 30 GB'tan az ve FP8/int8 altında 15 GB'den azdır. Bu, tüm gruplar için KV önbellek boyutu çok fazla şişmediği sürece 40GB A100'de çıkarım yapılmasına izin verir.

FP16, FP8 ve int8, bellek ve bilgi işlem kaynaklarının kullanımını azaltmak için derin öğrenmede hesaplama sürecinde sıklıkla kullanılan ve böylece model eğitimi ve akıl yürütmenin verimliliğini artıran farklı sayısal kesinlik (kesinlik) gösterimleridir.

FP16, FP8 ve int8 sırasıyla 16-bit kayan noktalı sayılara, 8-bit kayan noktalı sayılara ve 8-bit tamsayılara atıfta bulunur. Hassasiyetleri 32-bit tek duyarlıklı kayan noktalı sayılardan (FP32) daha düşüktür. ), ancak belleği ve bilgi işlem kaynaklarını büyük ölçüde azaltabilirler. Derin öğrenmede model eğitimini ve çıkarımı hızlandırmak için kullanın. Örneğin, FP16 kullanmak hesaplama süresini çok fazla hassasiyet kaybetmeden yarıdan fazla azaltabilirken, int8 kullanmak hesaplama süresini çok fazla hassasiyet kaybetmeden yaklaşık 4 kat azaltabilir.

Düşük kesinlikli hesaplamaların kullanılmasının modelin doğruluğu üzerinde belirli bir etkisi olabileceğine dikkat edilmelidir, bu nedenle doğruluk ve verimlilik arasında bir denge gereklidir ve belirli göreve göre en uygun doğruluk temsil yöntemi seçilmelidir. Gereksinimler.

Ağ iletişiminin çok düzensiz olmasını önlemek ve aynı zamanda her belirteç üretimi arasında KV önbelleğini yeniden hesaplamanın fahiş maliyetinden kaçınmak için, çeşitli uzmanları içeren çeşitli katmanlar, KV önbelleğini paylaşmak için farklı düğümlerde bölünmez.

**Gelecekteki tüm MoE model uzantıları ve koşullu yönlendirme için en büyük zorluk. KV önbelleği etrafındaki 120 yönlendirme katmanı sınırıyla nasıl başa çıkılacağıdır. **

MoE modelinde dal başına yönlendirme katmanı sayısı 120 katmanı geçemez, aksi takdirde KV önbelleği etkin bir şekilde işlenemez. Bunun nedeni, modelin çıkarım sürecinde her dalın KV önbelleğini hesaplaması gerekmesidir, bu da hesaplama maliyetinde bir artışa yol açar.

Bu soruna basit bir çözüm, 120 katman sınırına dayalı olarak 15 farklı düğüme yayılma rotası yerleştirmektir. Bu şekilde, hesaplama yükü farklı düğümlere eşit olarak dağıtılabilir, böylece modelin verimliliği ve performansı iyileştirilir. Ancak, ilk düğümün veri yükleme ve gömme yapması gerektiğinden, çıkarım kümesinin baş düğümüne nasıl daha az katman yerleştirileceği önemlidir.

Ek olarak, giriş verilerinin kodlanması ve kodunun çözülmesi sürecinde, daha sonra tartışacağımız çıkarımsal kod çözme hakkında biraz gürültü olabilir. Daha kritik bir konu, böyle bir gürültüye inanılıp inanılmayacağına karar vermektir. Bu aynı zamanda ana düğüme daha az katman eklemenin neden anlamlı olduğunu da açıklayabilir.

akıl yürütme maliyeti

175B parametreli Davinchi modeli ile karşılaştırıldığında, GPT-4 ileri besleme parametrelerinin 1,6 katına sahiptir, ancak maliyeti Davinchi'nin 3 katıdır. Bunun başlıca nedeni, GPT-4'ün daha büyük bir küme gerektirmesi ve daha düşük kullanım sağlamasıdır.

GPT-4 8k bağlam uzunluğu (seqlen) ile çıkarım için 128 A100 kullanmanın 1k belirteç başına yaklaşık 0,0049 ABD Doları tutarında olduğunu tahmin ediyoruz. GPT-4 8k bağlamında çıkarım için 128 H100 kullanırken, 1k token başına maliyet yaklaşık 0,0021 USD'dir. (Not: GPT-4-8k'nin şu anki fiyatı 0,03/1k giriş jetonu, 0,06/1k çıkış jetonu. Şu anda, OpenAI'nin çıkarım çiplerini kullanımı yazarın tahmin ettiği kadar abartılı olmayacak. Bu hesaplama daha düşük bir fiyat olarak kullanılabilir. gelecekteki fiyat indirimlerine bağlı .) **bu maliyetlerin yüksek kullanım ve parti büyüklüğünde hesaplandığını not etmek önemlidir. **

OpenAI kümelerinin kullanımının bazen çok düşük olabileceği göz önüne alındığında, varsayımımızın yanlış olması da mümkündür.

OpenAI'nin düşüşler sırasında kümeyi kapattığını ve bu düğümleri küçük test modellerinin kontrol noktası eğitimine devam etmek veya çeşitli yeni teknikleri denemek gibi başka görevler için yeniden kullandığını varsayıyoruz. Bunu yapmak, çıkarım maliyetlerini düşük tutmaya yardımcı olur, aksi takdirde OpenAI'nin kullanımı daha da düşük olabilir, bu da maliyet tahmininin 2 katından fazla anlamına gelir.

Küçük bir test modelinin kontrol noktası eğitimine devam edin, tipik olarak bir derin öğrenme modelini eğitirken, yeni model yapılarını veya algoritmaları kısa sürede hızlı bir şekilde test etmek için daha küçük bir modeli (örneğin, yalnızca bir alt kümesini kullanan bir alt küme) yeniden başlatın. . Bu yaklaşım, araştırmacıların model tasarımı üzerinde hızlı bir şekilde yineleme yapmasına ve en uygun model yapılarını ve parametrelerini bulmasına yardımcı olabilir.

09. Çoklu sorgu dikkat mekanizması

Çoklu Sorgu Dikkatinin kullanımı oldukça yaygındır, ancak OpenAI'nin de aynısını yaptığını vurgulamak istiyoruz. Genel olarak, yalnızca 1 dikkat başlığı gerekir ve KV önbelleğe alma için bellek kapasitesi önemli ölçüde azaltılabilir. Buna rağmen, 32k bağlamlı GPT-4 kesinlikle 40GB A100'de çalışamaz ve maksimum parti boyutu olan 8k zaten sınırlandırılmıştır. MQA yoksa, maksimum parti boyutu olan 8k büyük ölçüde sınırlanacak ve ekonomik faydalar büyük ölçüde azalacaktır.

• Çoklu Sorgu Dikkati (MQA): Hızlı Dönüştürücü Kod Çözme: Tek İhtiyacınız Olan Bir Yazma Kafası Bu makale, 2019'da MQA kavramını önerdi ve daha sonra doğal dil işleme dikkat mekanizmasında sıklıkla kullanılan bir mekanizma haline geldi.

Geleneksel dikkat mekanizmasında, her anahtar için ağırlıklı bir temsil elde etmek üzere bir sorgu (sorgu), bir dizi anahtar-değer çifti ile eşleştirilir. Oysa çoklu sorgu dikkatinde, birden çok sorgu vardır ve her sorgu, her anahtar için farklı bir ağırlıklı temsil elde etmek üzere anahtar-değer çiftleriyle eşleştirilir. Bu süreç, girdinin birden fazla farklı "görünüm" altında kodlanması olarak görülebilir ve bu da daha kapsamlı ve doğru bir temsille sonuçlanır.

• Dikkat Başlığı (Baş): Bir derin öğrenme modelinde, genellikle çoklu katmanlar (katmanlar) ve modelin çıktısını istenen çıktı alanına eşlemek için kullanılan bir baş (kafa) içerir. Head katmanı genellikle belirli görevleri karşılamak için modele eklenir.Örneğin, doğal dil işleme görevlerinde, head genellikle metin sınıflandırması ve diğer görevler için modelin çıktısını metne dönüştürmek için kullanılır. Derin öğrenme modelinde, kafayı genellikle son katman takip eder ve bu katman, son katmanın çıktısını istenen çıktı biçimine dönüştürmek için kullanılır.

10. Sürekli toplu işleme

Bir dereceye kadar maksimum gecikmeye izin vermek ve çıkarım maliyetini optimize etmek için OpenAI, hem değişken toplu iş boyutunu hem de sürekli toplu işleme tekniklerini kullanır. Bu yaklaşım, model performansından ödün vermeden bilgi işlem kaynaklarının kullanımını iyileştirebilir ve modelin çıkarım sürecinde daha düşük gecikme süresi ve daha yüksek verim elde edebilir. Sürekli toplu işleme kavramını anlamıyorsanız, AnyScale'in resmi makalesi Sürekli toplu işlemenin LLM çıkarımında 23x verim sağlarken p50 gecikmesini nasıl azalttığını okumaya değer. (Pickup Notu: Anyscale tarafından geliştirilen dağıtılmış bilgi işlem çerçevesi Ray, OpenAI tarafından modelin alt hattında kullanılmaktadır. Pickup bu şirket hakkında daha önce araştırma yayınlamıştır.)

Sürekli gruplama: Donanım yoluyla eğitim verimliliğini ve kaynak kullanımını iyileştirmek için derin öğrenme eğitimi sırasında kullanılan bir teknik. Geleneksel toplu işleme yöntemi, bir seferde belirli miktarda eğitim verisini belleğe yüklemek ve ardından bu veriler üzerinde eğitim vermektir.Bu yöntem, eğitim verimliliğini artırabilir, ancak aynı zamanda bellek alanını da boşa harcayabilir.

Sürekli toplu işleme, eğitim verilerini birkaç küçük toplu işleme bölmek ve her seferinde eğitim için yalnızca küçük bir toplu işi yüklemek ve ardından eğitim tamamlandıktan sonra bir sonraki küçük toplu işi yüklemek ve tüm işlem tamamlanana kadar bu şekilde devam etmektir. eğitim veri seti eğitim süreci. Sürekli harmanlama tekniklerinin kullanılması, bellek kullanımını azaltırken eğitim verimliliğini artırabilir ve ayrıca model kararlılığını ve genellemeyi geliştirebilir.

Kaynak: Herhangi bir ölçek

11. Spekülatif kod çözme

OpenAI'nin GPT-4 modelinin çıkarım görevinde Spekülatif Kod Çözme teknolojisini kullandığına dair söylentiler var. Bu mesajın doğruluğundan emin olamasak da, hem basit alma görevleri hem de daha karmaşık görevler için bir belirteçten diğerine gecikme ve varyanstaki genel değişiklik, bu tekniğin mümkün olduğunu gösteriyor gibi görünüyor. Ancak çok fazla değişken olduğu için bu tekniğin gerçekten kullanılıp kullanılmadığını teyit edemiyoruz.

İçerik anlaşmazlıklarını önlemek için, Aşamalı Spekülatif Kod Çözme ile Hızlandırılmış LLM Çıkarımını Hızlandırma'daki bazı içerikler burada alıntılanmıştır ve temel içerik kalın yazılmıştır.

LLM'leri kullanmak genellikle iki aşamaya ayrılır:

1. Ön doldurma aşaması

Bu aşamada, önce girdi olarak bir ipucu() verilir ve KV önbelleğini ve ilk çıktı logitlerini oluşturmak için model boyunca çalıştırılır. Bunlar arasında logitler, her bir belirtecin olasılığını temsil etmek için kullanılan her bir zaman adımında LLM tarafından çıkarılan olasılık dağılım vektörüdür. Bu ön popülasyon aşaması, paralel hesaplama nedeniyle genellikle hızlıdır.

2. Kod çözme aşaması

Bu aşamada, çıktı logitlerinden bir token seçilir ve bir sonraki token için logitlerin üretilmesi için modele geri beslenir. Bu, istenen sayıda jeton üretilene kadar tekrarlanır. Bir belirteç üretmek için her kod çözmenin sırayla hesaplanması gerektiğinden, bu ikinci aşamanın aritmetik yoğunluğu (yani hesaplanan FLOP'lar/bellek bant genişliği baytları) küçük gruplar halinde çalışırken çok düşüktür (seçim notu: bilgi işlem gücünün az kullanılmasına yol açan dizi hesaplaması. ) Bu nedenle, kod çözme genellikle otoregresif oluşturmanın en pahalı kısmıdır.

Bu nedenle, OpenAI'nin API çağrılarında jetonları girmek, jetonları çıkarmaktan çok daha ucuzdur.

Spekülatif kod çözmenin temel fikri, birkaç belirteci önceden çözmek için daha küçük, daha hızlı bir taslak model kullanmak ve bunları bir toplu iş olarak oracle modeline beslemektir. Taslak modelin tahminleri doğruysa (yani kehanet modelinin tahminleriyle aynı fikirdeyse), çok sayıda jetonun kodunu çözmek için bir toplu iş kullanılabilir, bu da çok fazla bellek bant genişliği ve jeton başına zamandan tasarruf sağlar.

Oracle modeli, taslak modelin tahminlerini doğrulamak için spekülatif kod çözme yönteminde kullanılan daha büyük, daha yavaş bir LLM modelini ifade eder. Oracle modeli, taslak modelin tahmin sonuçlarına ve önceden oluşturulmuş belirteçlere dayalı olarak bir sonraki belirtecin olasılık dağılımını hesaplar ve ardından bu olasılık dağılımını taslak modele bir çıktı olarak döndürür.

Taslak modelin tahmin sonuçlarını doğrulamak için Oracle modeli kullanılarak, taslak modelin müteakip kod çözme sürecindeki hatalar ve sapmalar önlenebilir, böylece modelin doğruluğu ve kararlılığı iyileştirilebilir. Aynı zamanda, Oracle modeli, taslak modelin dil modelindeki bağlam bilgilerini daha iyi öğrenmesine ve anlamasına yardımcı olabilir, böylece modelin oluşturma yeteneğini ve etkisini geliştirir.

Bununla birlikte, daha büyük model taslak model tarafından tahmin edilen bir belirteci reddederse, yığının geri kalanı atılır ve algoritma standart belirteç kod çözmeye geri döner. Spekülatif kod çözme, orijinal dağıtımdan belirteçleri örneklemek için bir reddetme örnekleme şemasıyla da birleştirilebilir. Bu yaklaşımın yalnızca bant genişliğinin darboğaz olduğu küçük parti ayarlarında işe yaradığını unutmayın.

Kısacası, spekülatif kod çözme, bant genişliği için hesaplamayı değiştirir ve bunun çekici bir performans optimizasyon hedefi olmasının iki temel nedeni vardır. İlk olarak, spekülatif kod çözme, model kalitesini hiçbir şekilde düşürmez, çünkü yalnızca kod çözme aşamasının hesaplama sürecini değiştirerek modelin çıkarım hızını ve verimini artırır. İkincisi, sağladığı faydalar genellikle diğer yöntemlerden bağımsızdır, çünkü avantajı sıralı hesaplamaları paralel yürütmeye dönüştürmekte yatarken, diğer yöntemler optimizasyon için temel olarak model yapısı, parametreler, eğitim vb. ile başlar.

Mevcut çıkarım yöntemleri, her parti için tek bir sıra öngörür. Ancak** bu yöntem, büyük partiler veya düşük hassasiyetli taslak modeller söz konusu olduğunda iyi ölçeklenemez. **Sezgisel olarak, uzun sürekli belirteç dizileri için iki modelin anlaşmayı tahmin etme olasılığı katlanarak azalır; bu, algoritmanın gücü arttıkça spekülatif kod çözmenin getirisinin hızla düşeceği anlamına gelir.

OpenAI spekülatif kod çözme kullanıyorsa, muhtemelen bunu yalnızca yaklaşık 4 belirteç uzunluğundaki kısa diziler için kullanıyorlardır. Ayrıca bazı kişiler GPT-4 modelinin performansındaki düşüşün OpenAI'nin spekülatif kod çözme modelinden model ön eğitimine düşük olasılıklı diziler eklemesinden kaynaklandığını düşünüyor ki bu doğru olmayabilir.

Ayrıca - Bazı kişiler, Google'ın kullanıcıya göndermeden önce tam dizinin oluşturulmasını beklemesi nedeniyle Bard modelinin de spekülatif kod çözme kullandığını düşünür, ancak bu tahminin doğru olduğuna inanmıyoruz.

12. Görsel Çok Modlu

Vision Multi-Modal, en azından diğer araştırmalarla karşılaştırıldığında muhtemelen GPT-4'ün en az zorlayıcı kısmıdır. Şimdiye kadar hiç kimse multimodal LLM araştırmasının ticarileştirilmesini araştırmadı.

Vision Multi-Modal: Farklı modalitelerden (resimler, metinler, sesler vb.) gelen bilgilerin ortak işlenmesi ve analizi anlamına gelir. Genellikle, bu farklı modalitelerin bilgileri anlamsal olarak ilişkilidir, dolayısıyla bunların birleştirilmesi daha zengin bilgiler ve daha doğru çıkarım sonuçları sağlayabilir.

GPT-4'ün görsel multimodal yeteneği, metin kodlayıcıdan bağımsız bir görsel kodlayıcı aracılığıyla elde edilir ve metin kodlayıcı ile çapraz dikkat mekanizmasına (Cross-Attention) sahiptir.Mimarisinin Flamingo modeline benzer olduğu söylenmektedir. Görüntü kodlayıcı, 1,8 trilyon parametreli GPT-4 modelinde ince ayar yapılmıştır, ancak yalnızca ~2 trilyon ek metin verisiyle önceden eğitilmiştir, görüntü verileriyle değil.

Çapraz Dikkat: Doğal dil işlemede ve bilgisayar görüşünde yaygın olarak kullanılan çoklu dizi verileri arasında ilişkiler kurmaya yönelik bir mekanizmadır. Makine çevirisi ve metin özetleme gibi diziden diziye görevlerde, hedef dizi oluşturulurken kaynak dizideki bilgilerin kullanılması için kaynak ve hedef diziler arasındaki korelasyonu hesaplamak için bir çapraz dikkat mekanizması kullanılır.

Bilgisayarla görme görevlerinde, görüntü açıklaması oluşturma ve görsel soru yanıtlama gibi görevlerde kullanılmak üzere görüntüleri ve metni bağlamak için dikkatler arası mekanizmalar kullanılır.

OpenAI, vizyon modelini sıfırdan eğitmeyi planlıyor, ancak teknoloji henüz olgunlaşmadı, bu nedenle metinden eğitim alarak riski azaltmayı umuyorlar.

**Söylentilere göre OpenAI'nin GPT-5'i sıfırdan görme modellerini eğitecek ve otomatik olarak görüntü ve ses işleme üretme yeteneğine sahip olacak. **

Görsel çok modlu teknolojinin ana hedefi, otonom aracıların web sayfalarını okumasını ve görüntü ve video içeriklerini yazıya dökmesini sağlamaktır. OpenAI tarafından bu modeli eğitmek için kullanılan veriler, ortak verileri (işlenmiş LaTeX/metin dahil), web sayfası ekran görüntülerini ve Youtube video örnek çerçevelerini vb. içerir ve yazıya dökmek için Whisper teknolojisini kullanır.

LLM aşırı optimizasyon sorunuyla ilgili ilginç bir şey, görsel modelin GÇ maliyetinin düz metin modelinin GÇ maliyetinden farklı olmasıdır. Metin modelinin GÇ maliyeti çok ucuzdur, ancak vizyon modelinde veri yüklemenin GÇ maliyeti metin modelinin yaklaşık 150 katıdır. Her belirtecin boyutu 600 bayt iken, metin modelinin boyutu yalnızca 4 bayttır. Şu anda, görüntü sıkıştırma araştırmalarında devam eden birçok çalışma var. (Xianxiang Notu: Metin bilgilerinin sıkıştırılması daha kolaydır ve görüntü/video simgeleştirme, çok modlu alanda dikkate değer bir yöndür.)

GÇ maliyeti: GÇ maliyeti, bir bilgisayar sisteminde bir girdi/çıktı işlemini tamamlamak için gereken zaman, kaynaklar ve enerji maliyetlerini ifade eder. Bu maliyetler, veri aktarımı, depolama ve işleme gibi unsurları içerir. Makine öğrenimi ve derin öğrenme alanında, IO maliyeti genellikle depolama ortamından (sabit disk, bellek, ağ vb.) veri okuma ve yazma maliyetini ifade eder. Model eğitimi ve çıkarım sırasında GÇ maliyeti, sistem performansını ve verimliliğini etkileyen bir darboğaza dönüşebilir. Bu nedenle, bilgisayar sistemlerinin performansını ve verimliliğini artırmak için IO maliyetinin dikkate alınması ve optimize edilmesi gerekir.

Bu, her modelin güçlü görsel ve işitsel özelliklerini hesaba katmak için 2-3 yıl sonra donanımlarını optimize eden satıcılar için çok önemlidir. Mimarilerinin uygun olmadığını görebilirler. Sonuç olarak, gelecekteki LLM mimarileri kesinlikle bugün gördüğümüz azaltılmış metin tabanlı yoğun ve/veya MoE modellerinin ötesine geçecektir.

Referans

View Original
This page may contain third-party content, which is provided for information purposes only (not representations/warranties) and should not be considered as an endorsement of its views by Gate, nor as financial or professional advice. See Disclaimer for details.
  • Reward
  • Comment
  • Share
Comment
0/400
No comments
  • Pin
Trade Crypto Anywhere Anytime
qrCode
Scan to download Gate app
Community
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)