LLM boyutlarını anlama

Maud Nalpas
Maud Nalpas

Büyük Dil Modelleri'ndeki (LLM) "B", büyük ölçeği ifade etse de gerçek durum daha ayrıntılıdır. Bazı LLM'ler trilyonlarca parametre içerirken diğerleri çok daha az parametreyle etkili bir şekilde çalışır.

Gerçek hayattan birkaç örneğe ve farklı model boyutlarının pratik etkilerine göz atın.

Web geliştiricileri olarak, bir kaynağın boyutunu indirme boyutu olarak düşünmeye eğilimliyiz. Bir modelin belgelenmiş boyutu, parametre sayısını ifade eder. Örneğin, Gemma 2B, 2 milyar parametre içeren Gemma'yı ifade eder.

Büyük dil modellerinin yüz binlerce, milyonlarca, milyarlarca hatta trilyonlarca parametresi olabilir.

Daha büyük LLM'ler, daha küçük olanlardan daha fazla parametreye sahiptir. Bu sayede daha karmaşık dil ilişkilerini yakalayabilir ve ayrıntılı istemleri işleyebilirler. Ayrıca genellikle daha büyük veri kümeleriyle eğitilirler.

2 milyar veya 7 milyar gibi belirli model boyutlarının yaygın olduğunu fark etmiş olabilirsiniz. Örneğin, Gemma 2B, Gemma 7B veya Mistral 7B. Model boyutu sınıfları yaklaşık gruplandırmalardır. Örneğin, Gemma 2B'de yaklaşık 2 milyar parametre vardır ancak bu sayı tam olarak 2 milyar değildir.

Model boyutu sınıfları, LLM performansını ölçmenin pratik bir yolunu sunar. Bunları bokstaki kilo sınıfları gibi düşünün: Aynı beden sınıfındaki modeller daha karşılaştırılabilirdir. İki 2B model benzer performans sunmalıdır.

Bununla birlikte, belirli görevler için daha küçük bir model, daha büyük bir modelle aynı performansı gösterebilir.

HuggingFace model boyutu onay kutularının ekran görüntüsü.
HuggingFace'teki model boyutu sınıfları. Bu sınıflar endüstri standartları değildir, organik olarak ortaya çıkmıştır.

GPT-4 ve Gemini Pro ya da Ultra gibi en son gelişmiş LLM'lerin model boyutları her zaman açıklanmasa da yüz milyar veya trilyonlarca parametre içerdiklerine inanılır.

Model boyutları büyük ölçüde değişiklik gösterebilir. Bu görselde, DistilBERT dev Gemini Pro'ya kıyasla küçük bir noktadır.

Bazı modellerin adında parametre sayısı belirtilmez. Bazı modellerin sonuna sürüm numarası eklenir. Örneğin, Gemini 1.5 Pro, modelin 1.5 sürümünü (1. sürümden sonra) ifade eder.

LLM var mı?

Bir model, LLM olarak kullanılamayacak kadar küçük olduğunda ne olur? LLM'nin tanımı, yapay zeka ve makine öğrenimi topluluğu içinde biraz değişken olabilir.

Bazıları yalnızca milyarlarca parametreye sahip en büyük modelleri gerçek LLM olarak kabul ederken DistilBERT gibi daha küçük modelleri basit NLP modelleri olarak kabul eder. LLM tanımına dahil edilen diğer modeller ise daha küçük ancak yine de güçlü modellerdir (ör. DistilBERT).

Cihaz üzerinde kullanım alanları için daha küçük LLM'ler

Daha büyük LLM'ler, çıkarım için çok fazla depolama alanı ve işlem gücü gerektirir. Bu modellerin, belirli donanımlara (ör. TPU'lar) sahip özel güçlü sunucularda çalışması gerekir.

Web geliştiricileri olarak, bir modelin kullanıcının cihazına indirilip çalıştırılacak kadar küçük olup olmadığını merak ederiz.

Ancak bu soruyu yanıtlamak zor. Şu anda, "bu model orta sınıf cihazların çoğunda çalışabilir" bilgisini öğrenmenin kolay bir yolu yoktur. Bunun birkaç nedeni vardır:

  • Cihaz özellikleri; bellek, GPU/CPU özellikleri ve daha birçok faktöre göre büyük ölçüde değişiklik gösterir. Düşük kaliteli bir Android telefon ile NVIDIA® RTX dizüstü bilgisayar arasında çok büyük farklar vardır. Kullanıcılarınızın kullandığı cihazlarla ilgili bazı veri noktalarınız olabilir. Web'e erişmek için kullanılan temel cihazla ilgili henüz bir tanımım bulunmuyor.
  • Bir model veya çalıştığı çerçeve, belirli donanımlarda çalışacak şekilde optimize edilmiş olabilir.
  • Belirli bir LLM'nin indirilip belirli bir cihazda çalıştırılıp çalıştırılamayacağını belirlemenin programatik bir yolu yoktur. Bir cihazın indirme kapasitesi, diğer faktörlerin yanı sıra GPU'da ne kadar VRAM bulunduğuna bağlıdır.

Ancak bazı ampirik bilgilere sahibiz: Bugün, birkaç milyon ila birkaç milyar parametreye sahip bazı modeller tüketici sınıfı cihazlarda tarayıcıda çalışabiliyor.

Örneğin:

  • MediaPipe LLM Tahmini API'si ile Gemma 2B (yalnızca CPU'lu cihazlar için bile uygundur). Deneyin.
  • Transformers.js ile DistilBERT.

Bu, yeni gelişen bir alandır. Ortam değişecektir:

  • WebAssembly ve WebGPU yenilikleri, WebGPU desteğinin daha fazla kitaplığa, yeni kitaplıklara ve optimizasyonlara eklenmesiyle birlikte kullanıcı cihazlarının çeşitli boyutlarda LLM'leri verimli bir şekilde çalıştırmaya giderek daha fazla hazır hale gelmesini bekleyebilirsiniz.
  • Yeni küçültme teknikleri sayesinde daha küçük ve yüksek performanslı LLM'lerin giderek daha yaygın hale gelmesini bekleyin.

Daha küçük LLM'ler için dikkat edilmesi gereken noktalar

Daha küçük LLM'lerle çalışırken her zaman performansı ve indirme boyutunu göz önünde bulundurmalısınız.

Performans

Her modelin kapasitesi büyük ölçüde kullanım alanınıza bağlıdır. Kullanım alanınıza göre hassas ayarlanmış daha küçük bir LLM, daha büyük bir genel LLM'den daha iyi performans gösterebilir.

Ancak aynı model ailesinde, daha küçük LLM'ler daha büyük olanlardan daha az kapasiteye sahiptir. Aynı kullanım alanı için genellikle daha küçük bir LLM kullanırken daha fazla istem mühendisliği çalışması yapmanız gerekir.

Chrome Geliştirici Araçları Ağ panelinin ekran görüntüsü.
Gemma 2B'nin puanı, Gemma 7B'nin puanından düşük.
Kaynak: HuggingFace Open LLM Lider Tablosu, Nisan 2024

İndirme boyutu

Daha fazla parametre, daha büyük bir indirme boyutu anlamına gelir. Bu da küçük olarak kabul edilse bile bir modelin cihaz üzerinde kullanım alanları için makul bir şekilde indirilip indirilemeyeceğini etkiler.

Bir modelin indirme boyutunu parametre sayısına göre hesaplamak için teknikler olsa da bu işlem karmaşık olabilir.

2024'ün başlarından itibaren model indirme boyutları nadiren belgelenir. Bu nedenle, cihaz üzerinde ve tarayıcıda kullanım alanlarınız için indirme boyutunu Chrome Geliştirici Araçları'nın panelinde veya diğer tarayıcı geliştirici araçlarıyla deneysel olarak incelemenizi öneririz.

Chrome Geliştirici Araçları Ağ panelinin ekran görüntüsü.
Chrome Geliştirici Araçları Ağ panelinde, web uygulamasında tarayıcı içi, cihaz üzerinde çıkarım için Gemma 2B ve DistilBERT. İndirme boyutları sırasıyla 1,3 GB ve 67 MB'tır.

Gemma, MediaPipe LLM Tahmin API'si ile kullanılır. DistilBERT, Transformers.js ile kullanılır.

Model küçültme teknikleri

Bir modelin bellek gereksinimlerini önemli ölçüde azaltmak için birden fazla teknik vardır:

  • LoRA (Düşük Sıralı Uyum): Önceden eğitilmiş ağırlıkların dondurulduğu hassas ayar tekniği. LoRA hakkında daha fazla bilgi edinin.
  • Budama: Boyutunu küçültmek için modelden daha az önemli ağırlıkları kaldırma.
  • Kantizasyon: Ağırlıkların hassasiyetini kayan noktalı sayılardan (ör. 32 bit) daha düşük bitlik gösterimler (ör. 8 bit) olacak şekilde azaltma.
  • Bilgi damıtma: Daha büyük, önceden eğitilmiş bir modelin davranışını taklit etmek için daha küçük bir model eğitme.
  • Parametre paylaşımı: Modelin birden fazla bölümü için aynı ağırlıkların kullanılması, benzersiz parametrelerin toplam sayısını azaltır.