Yapay zeka modelleri ve platformları

Jamba: AI21 Labs’in Yeni Hibrit Transformer-Mamba Dil Modeli

mm
Unite.AI sitesini Google'daki tercih ettiğiniz kaynaklara ekleyin

Dil modelleri, doğal dil işleme alanında Transformer tabanlı mimarilerin öncülüğünde hızlı ilerlemeler kaydetmiştir. Ancak, modeller büyüdükçe, uzun bağlamları işleme, bellek verimliliği ve işleme hızı gibi zorluklar daha da belirgin hale gelmiştir.

AI21 Labs, Jamba ile bir çözüm sunmuştur. Jamba, Transformer ve Mamba mimarilerini birleştirerek hibrit bir çerçeve sunan son teknoloji bir büyük dil modelidir (LLM). Bu makale, Jamba’nın mimarisini, performansını ve potansiyel uygulamalarını detaylandırır.

Jamba’nın Genel Özet

Jamba, AI21 Labs tarafından geliştirilen bir hibrit büyük dil modelidir. Transformer katmanları ve Mamba katmanlarını birleştiren ve Mixture-of-Experts (MoE) modülünü entegre eden bir mimariye sahiptir. Bu mimari, Jamba’ya bellek kullanımı, işleme hızı ve performans arasında denge kurma yeteneği sağlar, böylece geniş bir yelpazede doğal dil işleme görevleri için güçlü bir araç haline gelir. Model, tek bir 80GB GPU içinde sığar, yüksek işleme hızına ve küçük bir bellek ayak izine sahip olurken, çeşitli benchmarklerde üstün performans gösterir.

Jamba’nın Mimarisi

Jamba’nın mimarisi, yeteneklerinin temelidir. Transformer katmanları ve Mamba katmanlarını birleştiren ve MoE modülleri entegre eden yeni bir hibrit tasarım üzerine kuruludur.

1. Transformer Katmanları

Transformer mimarisi, modern büyük dil modelleri için standart haline gelmiştir. Paralel işleme yeteneği ve metin中的 uzun menzilli bağımlılıkları yakalama kabiliyeti nedeniyle tercih edilir. Ancak, özellikle uzun bağlamları işlerken, yüksek bellek ve hesaplama gereksinimleri sıklıkla performansını sınırlar. Jamba, bu sınırlamaları Mamba katmanlarını entegre ederek ele alır.

2. Mamba Katmanları

Mamba, uzun mesafeli ilişkileri dizilerde daha verimli bir şekilde işleyen yeni bir durum uzayı modelidir (SSM). Mamba katmanları, özellikle Transformer’lardaki anahtar-değer (KV) önbelleklerini depolama ile ilgili bellek ayak izini azaltmada etkili olur. Transformer katmanları ile Mamba katmanlarını birleştiren Jamba, genel bellek kullanımını azaltırken yüksek performansını korur, özellikle uzun bağlam işleme gerektiren görevlerde.

3. Mixture-of-Experts (MoE) Modülleri

Jamba’daki MoE modülü, model kapasitesini ölçeklendirme için esnek bir yaklaşım sunar. MoE, modelin aktif parametrelerini artırmadan kullanılabilir parametre sayısını artırmasına olanak tanır. Jamba’da MoE, bazı MLP katmanlarına uygulanır ve router mekanizması her token için en iyi uzmanları seçer. Bu seçici aktivasyon, Jamba’nın yüksek verimliliği korurken karmaşık görevleri işleme yeteneğini sağlar.

Aşağıdaki resim, bir hibrit Dikkat-Mamba modelindeki bir endüksiyon başlığının işlevini示ar, Jamba’nın bir özelliği. Bu örnekte, dikkat başlığı, sentiment analizi görevlerinde “Pozitif” veya “Negatif” gibi etiketleri tahmin etmekten sorumludur. Vurgulanan kelimeler, modelin dikkatinin, özellikle son etiketi tahmin etmeden önce, birkaç örnekten gelen etiket tokenlerine güçlü bir şekilde odaklandığını gösterir. Bu dikkat mekanizması, modelin bağlam içinde öğrenme yeteneğinde kritik bir rol oynar, burada model verilen bağlam ve birkaç örnek temelinde uygun etiketi çıkarmalıdır.

MoE’nin entegrasyonu ile sağlanan performans iyileştirmeleri, Tablo’da vurgulanmıştır. MoE kullanarak, Jamba kapasitesini artırır ancak hesaplama maliyetlerini orantısız olarak artırmaz. Bu, özellikle HellaSwag, WinoGrande ve Natural Questions (NQ) gibi çeşitli benchmarklerdeki performans artışında belirgindir. MoE ile donatılmış model, sadece daha yüksek doğruluk (örneğin, WinoGrande’de %66,0, MoE’siz %62,5) elde etmekle kalmaz, aynı zamanda farklı alanlarda log-olasilıkları da iyileştirir (örneğin, C4’de -0,534).

Ana Mimarisi Özellikleri

  • Katman Bileşimi: Jamba’nın mimarisi, Mamba ve Transformer katmanlarını belirli bir oranla (örneğin, 1:7, yani her yedi Mamba katmanına bir Transformer katmanı) birleştiren bloklardan oluşur. Bu oran, optimal performans ve verimlilik için ayarlanır.
  • MoE Entegrasyonu: MoE katmanları, birkaç katman aralığında uygulanır ve 16 uzman mevcuttur, her token için en iyi iki uzman etkinleştirilir. Bu yapılandırma, Jamba’nın etkili bir şekilde ölçeklenmesini sağlar ve bellek kullanımı ile hesaplama verimliliği arasında bir denge kurar.
  • Normalleştirme ve İstikrar: Eğitim sırasında istikrarı sağlamak için, Jamba, Mamba katmanlarında RMSNorm’u entegre eder, bu da büyük ölçekli aktivasyon sıçramaları gibi sorunların önlenmesine yardımcı olur.

Jamba’nın Performansı ve Benchmark

Jamba, geniş bir yelpazede benchmarklerde kapsamlı bir şekilde test edilmiştir ve genel olarak rekabetçi bir performans göstermiştir. Aşağıdaki bölümler, Jamba’nın öne çıktığı bazı ana benchmarkleri vurgular, hem genel NLP görevlerinde hem de uzun bağlam senaryolarında gücünü gösterir.

1. Ortak NLP Benchmarkları

Jamba, çeşitli akademik benchmarklarda değerlendirilmiştir:

  • HellaSwag (10-shot): Jamba, bu ortak sentido görevinde %87,1’lik bir performans puanı elde etmiştir, birçok rakip modeli geride bırakmıştır.
  • WinoGrande (5-shot): Jamba, bu mantıksal akıl yürütme görevinde %82,5’lik bir puan elde etmiştir, karmaşık dilbilimsel akıl yürütme yeteneğini göstermiştir.
  • ARC-Challenge (25-shot): Jamba, zorlu çoktan seçmeli sorularda %64,4’lük bir puan elde etmiştir, zor görevleri yönetme yeteneğini yansıtmıştır.

Toplu benchmarklarda, zoals MMLU (5-shot), Jamba %67,4’lük bir puan elde etmiştir, çeşitli görevlerdeki sağlamlığını göstermiştir.

2. Uzun Bağlam Değerlendirmeleri

Jamba’nın öne çıkan özelliklerinden biri, cực uzun bağlamları işleme yeteneğidir. Model, 256K token uzunluğuna kadar bağlamı destekler, bu, kamuoyuna açık modeller arasında en uzundur. Bu yetenek, Needle-in-a-Haystack benchmark kullanılarak test edilmiştir ve Jamba, değişen bağlam uzunlukları boyunca, 256K token uzunluğuna kadar, istisnai geri alma doğruluğu göstermiştir.

3. İşleme Hızı ve Verimlilik

Jamba’nın hibrit mimarisi, özellikle uzun dizilerde, işleme hızını önemli ölçüde iyileştirir.

Farklı modellerin işleme hızını karşılaştıran testlerde, Jamba, özellikle büyük toplu işlemler ve uzun bağlamlar içeren senaryolarda, tutarlı olarak rakiplerini geride bırakmıştır. Örneğin, 128K token uzunluğundaki bir bağlamda, Jamba, Mixtral adlı bir modelin üç katına varan bir işleme hızına ulaşmıştır.

Jamba’yı Kullanma: Python

Geliştiriciler ve araştırmacılar için, AI21 Labs, Jamba modelini Hugging Face gibi platformlarda sunmuştur, böylece geniş bir uygulama yelpazesinde erişilebilir hale gelmiştir. Aşağıdaki kod parçacığı, Jamba’yı yükleyerek metin oluşturmayı gösterir:


<p>from transformers import AutoModelForCausalLM, AutoTokenizer</p>

<p>model = AutoModelForCausalLM.from_pretrained(&quot;ai21labs/Jamba-v0.1&quot;)
tokenizer = AutoTokenizer.from_pretrained(&quot;ai21labs/Jamba-v0.1&quot;)</p>

<p>input_ids = tokenizer(&quot;Son Super Bowl LVIII'de,&quot;, return_tensors=&#039;pt&#039;).to(model.device)[&quot;input_ids&quot;]</p>

<p>outputs = model.generate(input_ids, max_new_tokens=216)</p>

print(tokenizer.batch_decode(outputs))

Bu basit betik, Jamba modelini ve tokenleştirmesini yükler, verilen bir girdi.prompt’u temel alarak metin oluşturur ve oluşturulan çıktıyı yazdırır.

Jamba’yı İyileştirme

Jamba, temel bir model olarak tasarlanmıştır, yani özel görevler veya uygulamalar için iyileştirilebilir. İyileştirme, kullanıcıların modeli niş alanlara adapte etmelerine, böylece özel görevlerde performansı artırmalarına olanak tanır. Aşağıdaki örnek, PEFT kütüphanesini kullanarak Jamba’yı nasıl iyileştirebileceğinizi gösterir:

import torch
from datasets import load_dataset
from trl import SFTTrainer, SFTConfig
from peft import LoraConfig
from transformers import AutoTokenizer, AutoModelForCausalLM, TrainingArguments

<p>tokenizer = AutoTokenizer.from_pretrained(&quot;ai21labs/Jamba-v0.1&quot;)
model = AutoModelForCausalLM.from_pretrained(
&quot;ai21labs/Jamba-v0.1&quot;, device_map=&#039;auto&#039;, torch_dtype=torch.bfloat16)</p>

<p>lora_config = LoraConfig(r=8,
target_modules=[
&quot;embed_tokens&quot;,&quot;x_proj&quot;, &quot;in_proj&quot;, &quot;out_proj&quot;, # mamba
&quot;gate_proj&quot;, &quot;up_proj&quot;, &quot;down_proj&quot;, # mlp
&quot;q_proj&quot;, &quot;k_proj&quot;, &quot;v_proj&quot;
# attention],
task_type=&quot;CAUSAL_LM&quot;, bias=&quot;none&quot;)</p>

<p>dataset = load_dataset(&quot;Abirate/english_quotes&quot;, split=&quot;train&quot;)
training_args = SFTConfig(output_dir=&quot;./results&quot;,
num_train_epochs=2,
per_device_train_batch_size=4,
logging_dir=&#039;./logs&#039;,
logging_steps=10, learning_rate=1e-5, dataset_text_field=&quot;quote&quot;)
trainer = SFTTrainer(model=model, tokenizer=tokenizer, args=training_args,
peft_config=lora_config, train_dataset=dataset,
)
trainer.train()

Bu kod parçacığı, Jamba’yı İngilizce alıntılar veri setinde iyileştirir, modelin parametrelerini metin oluşturma görevine özgü bir alana uyarlar.

Dağıtım ve Entegrasyon

AI21 Labs, Jamba ailesini çeşitli platformlar ve dağıtım seçenekleri aracılığıyla geniş bir erişilebilirlik sunmuştur:

  1. Bulut Platformları:
    • Google Cloud Vertex AI, Microsoft Azure ve NVIDIA NIM (NVDA ) gibi büyük bulut sağlayıcılarında mevcuttur.
    • Amazon Bedrock, Databricks Marketplace ve Snowflake Cortex’a yakında eklenecektir.
  2. AI Geliştirme Çerçeveleri:
    • LangChain ve LlamaIndex (yakında) gibi popüler çerçevelerle entegrasyon.
  3. AI21 Studio:
    • AI21’in kendi geliştirme platformu aracılığıyla doğrudan erişim.
  4. Hugging Face:
    • Modeller, indirme ve deneysel kullanım için mevcuttur.
  5. Şirket İçi Dağıtım:
    • Özel, şirket içi dağıtım seçenekleri, güvenlik veya uyumluluk gereksinimleri olan kuruluşlar için mevcuttur.
  6. Özel Çözümler:
    • AI21, kurumsal müşteriler için özelleştirilmiş model özelleştirme ve iyileştirme hizmetleri sunar.

Geliştirici Dostu Özellikler

Jamba modelleri, geliştiriciler için özellikle çekici olan several yerleşik özelliklere sahiptir:

  1. İşlev Çağırma: AI iş akışlarına dış araçlar ve API’leri kolayca entegre edin.
  2. Yapılandırılmış JSON Çıktısı: Doğal dil girdilerinden doğrudan temiz, parçalanabilir veri yapıları oluşturun.
  3. Belge Nesne Sindirimi: Karmaşık belge yapılarını verimli bir şekilde işleyin ve anlayın.
  4. RAG Optimizasyonları: Geri alma-artırma oluşturma boru hatlarını geliştirmek için yerleşik özellikler.

Bu özellikler, modelin uzun bağlam penceresi ve verimli işleme yeteneği ile birleşerek, Jamba’yı çeşitli geliştirme senaryoları için çok yönlü bir araç haline getirir.

Etik Düşünceler ve Sorumlu AI

Jamba’nın yetenekleri etkileyici olsa da, kullanımını sorumlu bir AI zihniyeti ile yaklaşmak önemlidir. AI21 Labs, beberapa önemli noktayı vurgular:

  1. Temel Model Doğası: Jamba 1.5 modelleri, özel hizalama veya talimat ayarlaması olmadan ön-eğitimli temel modellerdir.
  2. Yerleşik Güvenlik Önlemlerinin Eksikliği: Modeller, içkin moderasyon mekanizmalarına sahip değildir.
  3. Dikkatli Dağıtım: Üretim ortamlarında veya son kullanıcılarla kullanımdan önce, ek uyum ve güvenlik önlemleri uygulanmalıdır.
  4. Veri Gizliliği: Bulut tabanlı dağıtımlar kullanılırken, veri işleme ve uyumluluk gereksinimlerine dikkat edilmelidir.
  5. Önyargı Farkındalığı: Tüm büyük dil modelleri gibi, Jamba da eğitim verisindeki önyargıları yansıtabilir. Kullanıcılar, bu konuda farkında olmalı ve uygun önlemleri almalıdır.

Bu faktörleri göz önünde bulundurarak, geliştiriciler ve organizasyonlar Jamba’nın yeteneklerini sorumlu ve etik bir şekilde kullanabilir.

Yeni Bir AI Geliştirme Bölümü mü?

AI21 Labs tarafından Jamba ailesinin tanıtılması, büyük dil modellerinin evriminde önemli bir kilometre taşıdır. Transformer ve durum uzayı modellerinin güçlerini birleştiren, uzmanlar karışımı tekniklerini entegre eden ve bağlam uzunluğu ve işleme hızının sınırlarını zorlayan Jamba, endüstriler genelinde AI uygulamaları için yeni olanaklar sunar.

AI topluluğu, bu yenilikçi mimariyi keşfederken ve üzerine inşa ederken, model verimliliği, uzun bağlam anlaşılması ve pratik AI dağıtımı alanlarında daha da ilerlemeler bekleyebiliriz. Jamba ailesi, sadece yeni bir model seti değil, aynı zamanda büyük ölçekli AI sistemlerinin tasarım ve uygulanmasındaki bir paradigma değişikliğini temsil ediyor.

Son beş yıldır Makine Öğrenimi ve Derin Öğrenme dünyasına kendimi adamış bulunuyorum. Tutkum ve uzmanlığım, özellikle AI/ML'ye odaklanarak 50'den fazla çeşitli yazılım mühendisliği projesine katkıda bulunmama yol açtı. Süregelen meraklılığım da beni Doğal Dil İşleme alanına yöneltti, bu alana daha da derinlemesine girmeye hevesliyim.