Büyük Dil Modellerindeki (LLM) "L" büyük bir ölçeğe işaret etse de gerçek daha inceliklidir. Bazı LLM'ler trilyonlarca parametre içerirken diğerleri çok daha azıyla etkili bir şekilde çalışır.
Gerçek hayattan birkaç örneği ve farklı model boyutlarının pratik sonuçlarını inceleyin.
LLM boyutları ve boyut sınıfları
Web geliştiricileri olarak bir kaynağın boyutunu, indirme boyutu olarak düşünme eğilimindeyiz. Bir modelin belgelenen boyutu, modelin parametre sayısını belirtir. Örneğin, Gemma 2B, Gemma'yı 2 milyar parametreyle ifade eder.
LLM'lerin yüz binlerce, milyonlarca, milyarlarca, hatta trilyonlarca parametresi olabilir.
Daha büyük LLM'ler, küçük LLM'lerden daha fazla parametreye sahiptir. Bu da daha karmaşık dil ilişkilerini yakalamalarına ve nüanslı istemleri ele almalarına olanak tanır. Ayrıca sıklıkla daha büyük veri kümeleri üzerinde eğitilirler.
2 veya 7 milyar gibi belirli model boyutlarının yaygın olarak kullanıldığını 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'nin yaklaşık 2 milyar parametresi vardır, ancak tam olarak öyle değildir.
Model boyutu sınıfları, LLM performansını ölçmek için pratik bir yol sunar. Bunları bokstaki ağırlık sınıfları gibi düşünebilirsiniz: Aynı beden sınıfındaki modeller daha karşılaştırılabilirdir. İki 2B model benzer performans sunacaktır.
Bununla birlikte, daha küçük bir model, belirli görevler için daha büyük bir modelle aynı performansa eşit olabilir.
![HuggingFace model boyutu onay kutularının ekran görüntüsü.](https://web.dev/static/articles/llm-sizes/image/model-sizes-hugging-face.png?authuser=5&hl=tr)
GPT-4 ve Gemini Pro veya Ultra gibi en yeni teknoloji LLM'lerin model boyutları her zaman açıklanmasa da bunların yüz milyarlarca veya trilyonlarca parametre içinde olduğu düşünülür.
Tüm modeller, adında parametre sayısını belirtmez. Bazı modellerin sürüm numarası eklenir. Örneğin, Gemini 1.5 Pro, modelin 1.5 sürümünü (1. sürümden sonraki) belirtir.
Geniş kapsamlı dil modeli var mı?
Bir model ne zaman LLM olamayacak kadar küçüktür? AI ve ML topluluğunda LLM'nin tanımı biraz değişken olabilir.
Bazıları milyarlarca parametreye sahip en büyük modelleri gerçek LLM olarak kabul ederken, DistilBERT gibi daha küçük modeller basit NLP modelleri olarak kabul edilir. Diğerleri, LLM'nin tanımına yine DistilBERT gibi daha küçük ama güçlü modelleri içerir.
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 çok fazla işlem gücü gerektirir. Belirli donanıma (TPU'lar) sahip, özel ve güçlü sunucularda çalışmaları gerekir.
Web geliştiricileri olarak dikkat ettiğimiz şeylerden biri, bir modelin indirilip kullanıcının cihazına indirilebilecek kadar küçük olup olmadığıdır.
Ama bu, cevaplanması zor bir soru! Bugünden itibaren, birkaç nedenden dolayı "bu model çoğu orta düzey cihazda çalışabilir" ifadesini bilmeniz kolay değildir:
- Cihaz özellikleri bellek, GPU/CPU özellikleri ve daha fazlasında büyük ölçüde farklılık gösterir. Düşük uçlu Android telefon ile NVIDIA® RTX dizüstü bilgisayar birbirinden oldukça farklıdır. Kullanıcılarınızın hangi cihazlara sahip olduğuna dair veri noktalarınız olabilir. Web'e erişmek için kullanılan temel bir cihaz için henüz bir kesin bilgi veremiyoruz.
- Üzerinde çalıştığı bir model veya çerçeve, belirli donanımlarda çalışacak şekilde optimize edilebilir.
- 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 özelliği, diğer faktörlerin yanı sıra GPU'da ne kadar VRAM bulunduğuna bağlıdır.
Bununla birlikte, bazı deneysel bilgilere sahibiz: Günümüzde birkaç milyon veya birkaç milyar parametreye sahip bazı modeller tüketici seviyesindeki cihazlarda tarayıcıda çalışabilir.
Örneğin:
- MediaPipe LLM Inference API'ye sahip Gemma 2B (yalnızca CPU cihazları için bile uygundur). Deneyin.
- Transformers.js ile DistilBERT.
Bu yeni başlayan bir alandır. Genel ortamın aşağıdaki şekillerde değişmesini bekleyebilirsiniz:
- WebAssembly ve WebGPU yenilikleriyle birlikte WebGPU desteği daha fazla kitaplıkta, yeni kitaplıklarda ve optimizasyonlarda desteklendiğinde, kullanıcı cihazlarının çeşitli boyutlardaki LLM'leri daha verimli bir şekilde çalıştırabilmesi beklenmektedir.
- Yeni daraltma teknikleri sayesinde daha küçük, yüksek performanslı LLM'lerin giderek yaygınlaşmasını 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
Herhangi bir modelin özellikleri büyük ölçüde kullanım alanınıza bağlıdır. Kullanım alanınıza uygun olarak 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 olan LLM'lerden daha az yeteneklidir. Aynı kullanım alanı için daha küçük bir LLM kullanırken genellikle daha fazla istem mühendisliği çalışması yapmanız gerekir.
![Chrome DevTools Network (Ağ) panelinin ekran görüntüsü.](https://web.dev/static/articles/llm-sizes/image/performance.png?authuser=5&hl=tr)
Kaynak: HuggingFace Open LLM Leaderboard, Nisan 2024
İndirme boyutu
Daha fazla parametre, daha büyük bir indirme boyutu anlamına gelir. Bu da, bir modelin, küçük olarak kabul edilse bile cihaz üzerinde kullanım alanları için makul şekilde indirilip indirilemeyeceğini etkiler.
Bir modelin indirme boyutunu parametre sayısına göre hesaplama teknikleri olsa da bu işlem karmaşık olabilir.
2024'ün başlarından itibaren, model indirme boyutları nadiren belgelenmektedir. Bu nedenle, cihaz üzerinde ve tarayıcı içi kullanım durumlarınızda, indirme boyutuna deneysel olarak, Chrome Geliştirici Araçları'nın Ağ panelinden veya diğer tarayıcı geliştirici araçlarıyla bakmanızı öneririz.
![Chrome DevTools Network (Ağ) panelinin ekran görüntüsü.](https://web.dev/static/articles/llm-sizes/image/download-size.png?authuser=5&hl=tr)
Gemma, MediaPipe LLM Inference API ile kullanılır. DistilBERT, Transformers.js ile kullanılır.
Model küçültme teknikleri
Bir modelin bellek gereksinimlerini önemli ölçüde azaltan birçok teknik vardır:
- LoRA (Düşük Sıralama Uyarlama): Önceden eğitilmiş ağırlıkların dondurulduğu ince ayarlama tekniği. LoRA hakkında daha fazla bilgi edinin.
- Budama: Boyutunu küçültmek için, modelden daha az önemli ağırlıkları kaldırın.
- Niceleme: Kayan nokta sayılarından (32 bit gibi) düşük bit gösterimlere (8 bit gibi) ağırlıkların hassasiyetini azaltma.
- Bilgi damıtma: Daha büyük, önceden eğitilmiş bir modelin davranışını taklit etmek için daha küçük bir modeli eğitme.
- Parametre paylaşımı: Modelin birden çok bölümü için aynı ağırlıkların kullanılması, benzersiz parametrelerin toplam sayısının azalması.