Gemma 2: Pratik boyutta açık dil modeli iyileştirmeleri [PDF]
(storage.googleapis.com)- Google DeepMind'in Gemma 2 modeli, 2B·9B·27B ölçeğinde hafif bir açık model ailesi olarak, küçük modellerin daha büyük modellerle rekabet edebilecek performansa ulaşmasını hedefleyerek yayımlandı
- 2B ve 9B modellerinde sonraki token tahmini yerine bilgi damıtımı kullanıldı; 27B ise sıfırdan eğitilerek ölçeğe göre farklı eğitim stratejileri benimsendi
- Mimari tarafta local-global attention dönüşümlü kullanımı, Grouped-Query Attention, logit soft-capping, pre-norm·post-norm RMSNorm bir araya getirilerek hem verimlilik hem de performans hedeflendi
- Eğitim verileri ağırlıklı olarak İngilizce web belgeleri, kod ve bilimsel literatürden oluşuyor; model, multimodal ya da en ileri çok dilli performansı hedefleyen bir model değil
- Değerlendirmelerde benzer ölçekteki açık modellere kıyasla daha yüksek performans gösterse de, gerçek dağıtımdan önce kullanım senaryosuna özel güvenlik testleri gerekiyor
Gemma 2 modeline genel bakış
- Gemma 2, Gemma ailesinin yeni hafif açık modeli olup 2B, 9B ve 27B parametre ölçeklerinde sunuluyor
- 2B ve 9B modelleri, sonraki token tahmini yerine bilgi damıtımı ile eğitildi
- Büyük bir dil modeli öğretmen model olarak kullanılıyor ve öğrenci model her token için olası sonraki token dağılımını öğreniyor
- 2B ve 9B, teorik olarak compute-optimal token sayısından 50 kat fazla token ile damıtma eğitimi aldı
- 27B modeli ise bu çalışma için sıfırdan eğitildi
- Benzer ölçekteki açık modellere kıyasla performans önemli ölçüde iyileşti; bazı benchmark'larda ve insan değerlendirmelerinde 2–3 kat daha büyük modellerle rekabet edebilen sonuçlar gösterdi
- Gerçek kullanımdan önce tüm kullanıcıların dağıtım veya kullanım bağlamına uygun güvenlik testleri yapması gerekiyor
Model mimarisi ve tasarım tercihleri
- Gemma 2, önceki Gemma'ya benzer bir decoder-only Transformer mimarisi kullanıyor
- Ortak tasarım öğeleri şöyle
- Bağlam uzunluğu: 8192 token
- RoPE konum gömme
- GeGLU doğrusal olmayanlığı
- 256,128 kelime hazneli SentencePiece tokenizer
- tied embedding kullanımı
- Başlıca yapısal değişiklikler attention ve normalizasyonda yoğunlaşıyor
- local sliding window attention ile global attention katman bazında dönüşümlü yerleştiriliyor
- local attention için sliding window 4096 token
- global attention kapsamı 8192 token
- attention katmanında ve son katmanda logit soft-capping uygulanıyor
- self-attention katmanının soft_cap değeri 50.0
- son katmanın soft_cap değeri 30.0
- Her Transformer alt katmanının giriş ve çıkışına RMSNorm uygulanarak hem pre-norm hem post-norm kullanılıyor
- Grouped-Query Attention, ablation çalışmalarında performansı korurken çıkarım hızını artıran bir tercih olarak doğrulandı
- local sliding window attention ile global attention katman bazında dönüşümlü yerleştiriliyor
Eğitim verileri ve altyapı
- Ön eğitim token sayısı model ölçeğine göre değişiyor
- Gemma 2 27B: 13 trilyon token
- Gemma 2 9B: 8 trilyon token
- Gemma 2 2B: 2 trilyon token
- Eğitim verileri çoğunlukla İngilizce olup web belgeleri, kod ve bilimsel literatür gibi çeşitli kaynaklardan oluşuyor
- Model bir multimodal model değil ve en ileri çok dilli performans için ayrıca eğitilmedi
- Veri filtreleme, Gemma 1 ile aynı şekilde uygulandı
- İstenmeyen veya güvenli olmayan söylemlerin azaltılması
- Belirli kişisel bilgiler ve hassas verilerin kaldırılması
- Değerlendirme seti kirlenmesinin giderilmesi
- Hassas çıktıların tekrarlanması riskinin azaltılması
- Eğitim altyapısı TPU tabanlı kuruldu
- 2B: TPUv5e 512 çip
- 9B: TPUv4 4096 çip
- 27B: TPUv5p 6144 çip
- Ön eğitimin karbon emisyonu 1247.61 tCO2eq olarak tahmin ediliyor
- Hesaplama, TPU veri merkezlerinin saatlik enerji kullanımına dayanıyor
- Google veri merkezlerinin karbon nötrlüğü enerji verimliliği, yenilenebilir enerji alımı ve karbon dengelemesiyle sağlanıyor
Sonradan eğitim ve sohbet formatı
- Sonradan eğitim, önceden eğitilmiş modelin instruction-tuned modele ince ayarlandığı süreçtir
- Eğitim aşamaları şöyle
- Yalnızca İngilizce metin içeren synthetic ve human-generated prompt-response çiftleriyle SFT uygulanıyor
- İngilizce tercih verileriyle eğitilmiş bir reward model kullanılarak RLHF uygulanıyor
- Her aşamada elde edilen modeller ortalanarak genel performans iyileştiriliyor
- Veri karışımı ve sonradan eğitim reçetesi; yardımseverliği artırma, güvenliği sağlama ve hallucination kaynaklı zararı en aza indirme ölçütlerine göre seçildi
- Gemma 1.1 sonrasındaki sonradan eğitim verileri, iç verilerle dış açık verilerin karıştırılmasıyla genişletildi
- LMSYS-chat-1M'de yalnızca prompt'lar kullanıldı, answer'lar kullanılmadı
- synthetic data üzerinde birden fazla filtreleme aşaması uygulandı
- Kişisel bilgiler
- Güvenli olmayan veya toxic model çıktıları
- Yanlış self-identification verileri
- Yinelenen örnekler
- Gemma 2, Gemma 1 ile aynı control token'ları kullanıyor ancak formatting schema farklı
- Model, üretimin sonunda
<end_of_turn><eos>token'larını açıkça üretiyor - Önceki sürümde yalnızca
<eos>üretiliyordu
- Model, üretimin sonunda
Bilgi damıtımı ve mimari tercih deneyleri
- 2B modelin 500B token ile eğitildiği karşılaştırmada damıtılmış eğitim, sıfırdan eğitilmiş modele göre daha yüksek performans verdi
- 3 benchmark ortalaması: from scratch 60.3, distilled 67.7
- 500B, 2B modelin compute-optimal token sayısının 10 katı
- 200M, 400M ve 1B modellerin doğrulama perplexity karşılaştırmalarında da damıtılmış modeller daha düşük perplexity gösterdi
- 200M: from scratch 23, distilled 21
- 400M: from scratch 19, distilled 17
- 1B: from scratch 17, distilled 15
- 9B modelde GQA ile MHA arasındaki performans farkı küçüktü; GQA daha az parametre kullandığı ve çıkarımda daha hızlı olduğu için tercih edildi
- 4 benchmark ortalaması: MHA 50.3, GQA 50.8
- Aynı 9B parametre sayısında, geniş mimari yerine daha derin mimari biraz daha iyi performans gösterdi
- 4 benchmark ortalaması: Wide 50.8, Deep 52.0
- Çıkarım sırasında sliding window boyutunu 4096, 2048 ve 1024 olarak değiştirmek perplexity üzerinde sınırlı etki yaptı
- 4096: 1.63
- 2048: 1.63
- 1024: 1.64
Otomatik benchmark sonuçları
- 27B ön eğitimli model, HuggingFace değerlendirmelerinde Qwen1.5 32B ve LLaMA-3 70B ile karşılaştırıldı
- MMLU: Gemma-2 27B 75.2, Qwen1.5 32B 74.3, LLaMA-3 70B 79.2
- GSM8K: Gemma-2 27B 74.0, Qwen1.5 32B 61.1, LLaMA-3 70B 76.9
- ARC-c: Gemma-2 27B 71.4, Qwen1.5 32B 63.6, LLaMA-3 70B 68.8
- HellaSwag: Gemma-2 27B 86.4, Qwen1.5 32B 85.0, LLaMA-3 70B 88.0
- Winogrande: Gemma-2 27B 83.7, Qwen1.5 32B 81.5, LLaMA-3 70B 85.3
- 2B ve 9B modeller de önceki Gemma modellerine kıyasla büyük gelişim gösterdi
- 9B model, bazı benchmark'larda önceki sürüme göre %10'a kadar iyileşme gösterdi
- Gemma 2 2B, Gemma 1 2B ile benzer token sayısıyla eğitilmiş olsa da performansı arttı
- Çok sayıda benchmark'ın genel ortalaması şöyle
- Gemma 1 2B: 44.2
- Gemma 2 2B: 48.7
- Gemma 1 7B: 57.9
- Gemma 2 9B: 64.9
- Gemma 2 27B: 69.4
İnsan değerlendirmesi ve Chatbot Arena
- Gemma 2 instruction-tuned modelleri, LMSYS Chatbot Arena içinde blind side-by-side yöntemiyle değerlendirildi
- Elo puanları şöyle
- gemma-2-27b-it: 1218
- gemma-2-9b-it: 1187
- gemma-2-2b-it: 1126
- Karşılaştırma sonuçları, model boyutuna göre güçlü rekabetçiliğe işaret ediyor
- gemma-2-27b-it, llama-3-70b-instruct Elo 1206'dan yüksek
- gemma-2-9b-it, gpt-4-0314 Elo 1186 ile benzer
- gemma-2-2b-it, gpt-3.5-turbo-0613 Elo 1116'dan yüksek
- Ayrı bir insan tercih değerlendirmesinde held-out single-turn prompt'larla güvenlik ve instruction following ölçüldü
- instruction following: Gemma 1.1 IT 7B 24.3%, Gemma 2 IT 2B 26.5%, 9B 34.1%, 27B 37.7%
- safety: Gemma 1.1 IT 7B 42.8%, Gemma 2 IT 2B 57.5%, 9B 57.8%, 27B 55%
- Çok turlu değerlendirme, 500 held-out senaryo ve ortalama 8.4 kullanıcı turu ile yürütüldü
- Kullanıcı memnuniyeti: Gemma 1.1 IT 7B 3.32, Gemma 2 IT 2B 3.64, 9B 4.04, 27B 4.20
- Sohbet hedefinin başarılması: Gemma 1.1 IT 7B 3.36, Gemma 2 IT 2B 3.88, 9B 4.08, 27B 4.24
Ezberleme ve kişisel bilgiler
- Büyük dil modelleri bazı koşullarda eğitim verisini aynen çıktı olarak verebildiği için Gemma 2, verbatim ve approximate memorization değerlendirmelerine tabi tutuldu
- Değerlendirme, 50 token'lık bir prompt verip eğitim verisindeki 50 token'lık ezberlemeyi ölçme yöntemiyle yapıldı
- exact match ölçütü
- %10 edit distance kullanan approximate match ölçütü
- Gemma 2'nin toplam exact memorization oranı %0.1'in altında
- Veri kaynağına göre kod, wiki ve bilimsel kaynaklarda daha fazla ezberleme görüldü ancak genel olarak Gemma 1'den daha düşük seviyede kaldı
- Kişisel bilgi değerlendirmesinde Google Cloud Sensitive Data Protection Tool kullanıldı
- Yüksek ciddiyette kişisel bilgi çıktısı örneği bulunmadı
- Düşük ciddiyette kişisel bilgi içeren ezberlenmiş veri oranı %0.00026 olarak ölçüldü
- Otomatik araçlar bağlamı dikkate almadığı için false positive oluşabilir ve sonuçlar olduğundan yüksek tahmin edilmiş olabilir
Sorumlu dağıtım ve güvenlik
- Gemma 2 geliştirilirken eğitim sırasında güvenlik azaltımları, şeffaf model değerlendirmesi ve Responsible Generative AI Toolkit geliştirilmesi olmak üzere üç eksen uygulandı
- Açık modeller AI teknolojisinin faydalarını yayabilir ancak deepfake görseller, yapay zeka üretimi yanlış bilgi, yasa dışı veya disturbing material üretimi gibi kötüye kullanım riskleri de birlikte değerlendirilmeli
- Gemma için henüz kötü niyetli kullanım bildirimi alınmadı ancak ilgili bildirimler gelirse araştırılacak ve toplulukla birlikte izlenecek
- Zaten daha büyük ve daha güçlü açık modellerin mevcut olduğu dikkate alındığında, Gemma 2'nin genel risk alanı üzerindeki etkisinin sınırlı olduğu değerlendiriliyor
- Güvenlik politikası, Gemini modelleriyle aynı doğrultuda zararlı içerik üretimini önleyecek şekilde tasarlandı
- Çocuklara yönelik cinsel istismar ve sömürü
- Zarara yol açabilecek kişisel bilgilerin ifşası
- Nefret söylemi ve taciz
- Tehlikeli veya kötü niyetli içerik
- Cinsel açıdan açık içerik
- Bilimsel veya tıbbi uzlaşıya aykırı tıbbi tavsiyeler
- instruction-tuned modeller, SFT ve RLHF yoluyla istenmeyen davranışlardan uzaklaşacak şekilde ayarlandı
1 yorum
Hacker News yorumları
27B sürümü çok güçlü
LMSys Chatbot Arena’da Llama-3-70B’den daha yüksek puan aldı ve OpenAI GPT-4 ile Claude-3 Sonnet seviyesinde
Gemma’yı yerelde değerlendirmek istiyorsanız bunu ollama ve promptfoo ile oldukça kolay yapabilirsiniz
Gemma’da hep hoşuma giden küçük bir nokta, “Sure, I can help you” gibi bir giriş yapmadan doğrudan koda geçmesi ve ardından açıklama eklemesi
Eğitim, yanıt yapısına ve anlaşılır olmaya odaklanmış gibi görünüyor
Ayrıca açık kodu basitçe ezberlemeye dayanmayan değerlendirmeler çalıştırmak daha iyi olacağından, bunu kendi testlerinizle değiştirmeniz iyi olur
[0] https://ollama.com/library/gemma2
[1] https://github.com/promptfoo/promptfoo
Aşırı beklentiye kapılmadan önce kendiniz test etmenizi ve Chatbot Arena puanları istikrara kavuşana kadar beklemenizi öneririm
Kişisel değerlendirmemde AI Studio’daki gemma-2-27b-it, Llama 3 70B’den çok daha kötüydü; özellikle akıl yürütme ve temel dünya bilgisi sorularında fark büyüktü
Geç gördüm ama kayıt düşmek için belirteyim: Gemma 2 modelleri Chat Arena performansına göre pekiştirmeli öğrenme ile eğitilmiş gibi görünüyor: https://x.com/natolambert/status/1806384821826109597
Makalenin ilgili kısmı vurgulanmış
En göze çarpan gücünün ne olduğunu merak ediyorum
Küçük modeller benchmark’larda iyi performans gösterse de genelleme konusunda sık sık başarısız oluyordu; aklıma Phi-2 geliyor
İngilizce dışındaki diller için eğitim verilerinin iyileşmesinin etkisi gibi görünüyor
Zor İngilizce prompt’larda Llama-3-70B’den 15 ELO düşük, genel İngilizcede ise 41 ELO düşük
İkincisi gerçekten istatistiksel olarak anlamlı
Gemma ekibinden tekrar merhaba
Bu sürümü yayımlamaktan çok mutluyuz; sorularınız varsa yanıtlarım
Görüşler kişisel görüşlerimdir ve Google DeepMind’ın görüşü değildir
Buna karşılık Google Cloud Vertex’in nasıl çalıştığını ve nasıl ücretlendirildiğini anlamak daha karmaşık; Azure ve AWS de bu amaçla kullanmak için benzer şekilde karmaşık
Google Cloud’un OpenAI uyumlu bir API ve hizmet sunabilmesi iyi olurdu
Bunun farklı bir departman olduğunu biliyorum ama modeli kullanmayı çok daha kolaylaştırırdı
Google Cloud çoğu zaman UX ya da son kullanıcı testi hiç yapılmamış gibi hissettiriyor
aistudio.google.com eskisine göre kesinlikle daha iyi hale geldi
27b’yi www.aistudio,google.com adresinde deneyebilirsiniz; sık kullandığınız prompt’ları girip yanıtları beğenmenizi umarım
Doğrudan tam 8k ya da 16k yerine bu yöntemin seçilme nedenini merak ediyorum
Bunun temel bir mimari fark mı, eğitim seti farkı mı, yoksa başka bir nedeni mi olduğunu merak ediyorum
2.6B/9B’nin Mistral veya Llama-3 yerine Microsoft’un Phi-3 mini 3.8B modeliyle karşılaştırılması gerekmez mi diye düşünüyorum
Makalenin 7. sayfasındaki Tablo 13 ile https://arxiv.org/pdf/2404.14219 içindeki 6. sayfayı karşılaştırınca, genel olarak Phi-3 oldukça daha iyi görünüyor
Yine de bilgi damıtma eğitimi hakkındaki rapor ilginç
2.6B, Phi-3’ün çok gerisinde kalacağı için karşılaştırma yok
2.6B ile 3.8B, 2,6’ya 3,8 diye bakınca çok anlaşılmıyor ama 2,6 milyara karşı 3,8 milyar olarak bakınca oldukça büyük bir boyut farkı; bu yüzden olabilir
Ama Mistral 7B’ye karşı Llama 8B’ye karşı Gemma 9B gibi parametre şişirme ortaya çıkmaya başlıyor
Llama 3’ün 8B’ye geçmesinden itibaren parametre sayılarıyla oynama akımı oluşur mu diye endişelenmiştim, sonra bunun yersiz bir endişe olduğunu düşünmüştüm
Phi-3 ailesinin bilgi çıkarımı/özetleme tarafında daha güçlü bir rakip olduğu için iyi bir karşılaştırma noktası olduğuna katılıyorum
VRAM’i sınırlı iş istasyonlarında bu tür işler için şu anda en beğendiğim model Phi-3 medium, yani phi3:14b-instruct
9B ve 27B sürümleri Ollama’da mevcut: https://ollama.com/library/gemma2
27B modeli AI Studio’da da kullanılabiliyor
https://aistudio.google.com/app/prompts/new_chat?model=gemma...
Şu ana kadar boyutuna göre oldukça güçlü görünüyor
Harika bir sürüm
Yerelde iyi bir arayüzle denemek isterseniz, geliştirdiğim uygulamaya [1] az önce Gemma2 desteği güncellemesini ekledim
1: https://msty.app
msty gerçekten iyi görünüyor
Yerelde barındırdığım LibreChat örneğini kullanma şeklimin yerini alabilir mi diye daha sonra bakmak için yer imlerine ekledim
Birçok soruda uzak modeller yerine yerel modeller kullanmak büyük bir iyileştirme olur gibi görünüyor
Ancak msty'yi açık kaynak değil de kapalı kaynak olarak tutmanızın bir nedeni var mı merak ediyorum
FAQ'daki "why should I trust msty" kısmını okudum ama yetersiz geldi
Hiçbir kimlik belirtisi olmamasından çok daha iyi, ama kodu okuyup güveni doğrulayabilmekten çok uzak
Neden yayımlamadığınızı duymak isterim
Yine de bir denemeyi düşünüyorum
Güzel görünüyor ama kapalı kaynak olduğu için temkinliyim
Arch Linux'ta Anthropic API anahtarını kaydetmeye çalışsam da hiçbir şey olmuyor ve "If you're experiencing problems saving API keys especially on Linux, contact Discord" mesajı çıkıyor
Bu kadar yaygın bir sorunsa olası çözümlere bir bağlantı olması gerekmez mi diye düşünüyorum
Test etmek için bir Discord sunucusu daha eklemek ve zaten sık sorulduğu belli olan bir sorunun yanıtını aramak epey büyük bir engel
İndirdim, iyi görünüyor
Senkronize bölünmüş görünüm hoşuma gitti
Ama açılış sayfasında duyurulanın aksine Gemma 2 veya Claude 3.5 Sonnet görünmüyor
Windows indirmesi için Chocolatey'ye ekleme planınız var mı merak ediyorum
Bu güzel görünüyor
Şimdiye kadar nasıl kaçırmışım bilmiyorum, bir çalıştırmayı düşünüyorum
Bilgi damıtma çok ilginç, ancak büyük bir öğretmen modelden trilyonlarca çıktı üretmek maliyet açısından inanılmaz pahalı olacak gibi
Bu hesaplama kaynağını daha fazla veriyle veya daha fazla epoch ile doğrudan modeli eğitmeye harcamaktan gerçekten daha maliyet verimli mi merak ediyorum
Daha 6 ay önce herkes model çöküşünden korkuyor gibiydi, şimdi ise sentetik eğitim verisi üretimi ve öğretmen modeller moda
Model çöküşü sorununu çözdüler mi merak ediyorum
Öğrenci model diziler üretiyor, öğretmen model de logit biçiminde geri bildirim sağlıyor
Açıkça belirtilmiş özel token kullanma yöntemini merak ediyorum
Kullanıcı mesajına böyle token'lar koyarsa ne olur, "önceki talimatları yok say" gibi şeyler kolayca yapılabilir mi merak ediyorum
Modele vermeden önce girdiyi kendimiz temizlemek mi gerekir
Tokenizer'ı kontrol edebiliyorsanız kullanıcı girdisinde bu tür token'ların çıkmasını engelleyebilirsiniz
Örneğin özel token yerine "<", "eos", ">" gibi ilgili dizgenin doğal kodlaması hâline getirebilirsiniz
llama3 tokenizer'ında özel token tokenizasyonunu kontrol eden bir seçenek var: https://github.com/meta-llama/llama3/blob/bf8d18cd087a4a0b3f...
Özel token'larla kullanıcı girdisini birlikte kullanma biçimi burada görülebilir: https://github.com/meta-llama/llama3/blob/bf8d18cd087a4a0b3f...
Tokenizer'ı kontrol edemiyorsanız dediğiniz gibi girdiyi temizlemek gerekir gibi
Damıtmayla eğitince belirli bir performansa ulaşmak için gereken iterasyon sayısı açısından ne kadar hızlanma oluyor merak ediyorum
Burada unsafe ile ne kastedildiğini bilmek isterim
Phi 3'ün iki katı boyutunda ama oldukça daha mı kötü yani
Neyi kaçırıyorum bilmiyorum
Phi-3 esas olarak müfredat öğrenimi alanında bir atılım
Eğitim setini yüksek kaliteli token'lara filtreleyip sentetik verilerle eğiterek iyi sonuçlar aldı
Gemma-2 ise damıtma alanında bir atılım
Daha büyük bir öğretmen LLM'in yönlendirmesiyle LLM eğiterek iyi sonuçlar aldı
İkisini birden yapmamak için bir neden yok
Örneğin Phi-3-Medium benchmark'larda daha iyi olsa da LMSYS Chatbot Arena'da Llama-3-8b'nin epey gerisinde kalıyor
Gemma’nın performansı, aksine, kıyaslamalarda düşük görünme eğiliminde gibi
27b şu anda Chatbot Arena sıralama tablosunda Llama3-70b’nin önünde
LMSYS’te phi-3 small 1100 ELO ile 52. sırada; Gemma 2 9B’nin güven aralığı ise 1170~1200 ELO ile 15~25. sıralar arasında
Burada doğrudan deneyip o şekilde karşılaştırabilirsiniz: https://aistudio.google.com/app/prompts/new_chat?model=gemma...
Phi 3’ü deneyip denemediğinizi merak ediyorum
Zeki olduğu için kıyaslamalarda iyi sonuç veriyor, ama sohbet veya chatbot olarak pek iyi değil
Gemma 2 çoğu kişi için daha iyi bir genel amaçlı asistan olacak gibi; Phi 3 ise özetleme, RAG, matematik öğrenimi gibi daha belirli kullanımlara uygun, sağlam bir küçük LLM’e daha yakın görünüyor