Yapay zekâ / Makine öğrenmesi / Akademik araştırma
MiniGPT-M4
Transformer bileşenlerini görünür kılan, özel BPE tokenizer ve Apple Silicon eğitim deneyleri içeren küçük ölçekli dil modeli araştırması.
Araştırma
Python
PyTorch
NumPy
Byte-level BPE
Apple MPS
Kategori için özgün kod tabanlı illüstrasyon; ürün ekran görüntüsü değildir.
Genel bakış
MiniGPT-M4, hazır bir model API’si kullanmak yerine decoder-only bir Transformer’ın temel parçalarını PyTorch ile kuran eğitim ve araştırma projesi. Tokenizer, veri hazırlama, nedensel attention, ağırlık paylaşımı ve üretim aynı kod tabanında incelenebiliyor. Apple MPS ile yerel eğitim yolu ve ayrı arşivlenmiş diyalog ince ayar deneyleri bulunuyor; eğitim verileri ve çalıştırılabilir model ağırlıkları depoya dahil değil.
Problem ve amaç
Dil modeli davranışını anlamak için yalnızca bir inference uç noktasını kullanmak yeterli olmuyor. Tokenların hazırlanması, gelecek tokenların attention içinde gizlenmesi, hedeflerin bir adım kaydırılması ve sohbet kaybının maskelenmesi gibi ayrıntılar sonuca doğrudan etki ediyor. Küçük donanımda deney yapmak da model boyutları ile veri ve eğitim bütçesini birlikte ele almayı gerektiriyor.
Çalışmadaki rolüm
Model mimarisi, tokenizer ve yerel eğitim deneylerinin yazılım geliştirmesi.
Çözüm yaklaşımı
Proje, byte-level BPE kodlamasını token/pozisyon embedding’leri, pre-LayerNorm bloklar ve GELU ileri besleme katmanlarıyla birleştiriyor. Çıkış projeksiyonu token embedding ağırlığını paylaşıyor; eğitim assistant-only hedeflerde -100 maskelemesini destekliyor. Varsayılan yapı 2.048 token sözlüğü, 256 token bağlam, 384 embedding boyutu, 8 katman ve 6 attention head kullanıyor. Eğitim ile checkpoint tabanlı üretim ayrı giriş noktalarına sahip; diyalog deneyleri ana pretraining yolundan ayrı tutuluyor.
Uygulama ayrıntıları
01
Token akışının veri sözleşmesi
TokenDataset, eğitim ve validation dosyalarını uint16 NumPy memmap olarak açıyor; her batch için rastgele başlangıçlar seçip girdiyi ve bir token ileri kaydırılmış hedefi aynı pencereden üretiyor. Böylece ham metnin yeniden işlenmesi eğitim döngüsünden ayrılıyor ve dosyanın tamamını tek bir Python nesnesine yüklemek gerekmiyor. Model girdileri PyTorch için int64’e çevriliyor. Bu tasarımın önemli şartı tokenizer sözlüğü, dosya kodlaması ve checkpoint boyutlarının uyumlu tutulması; veri dosyasının varlığı tek başına bu uyumu kanıtlamıyor.
02
Eğitim döngüsünde görünür kontrol noktaları
train.py, AdamW optimizasyonunu doğrusal warmup ve cosine learning-rate decay ile birleştiriyor. Gradient clipping, periyodik train/validation loss tahmini ve örnek üretimi aynı koşunun farklı gözlem noktalarını oluşturuyor. Checkpoint dosyası model ve optimizer state’ini, adım numarasını ve validation loss bilgisini kaydediyor. Bunlar deneyin izlenmesini kolaylaştıran yazılım mekanizmaları; bir ayarın kodda bulunması o eğitimin tamamlandığını veya modelin kaliteli yanıt ürettiğini göstermiyor. Veri revizyonu, tokenizer ve koşu konfigürasyonu ayrıca kaydedilmeli.
03
Üretim sırasında bağlam ve örnekleme
MiniGPT.generate her yeni token için yalnızca modelin bağlam sınırı içindeki son tokenları kullanıyor. Son pozisyondaki logits, temperature ile ölçekleniyor; top-k seçilmişse daha düşük olasılıklı seçenekler maskeleniyor ve sonraki token multinomial örneklemeyle ekleniyor. Böylece üretim davranışı model forward geçişinden ayrı incelenebiliyor. Sabit bağlam penceresi yerel deneyi basitleştirirken uzun metnin eski bölümlerini dışarıda bırakıyor. Bu uygulamada KV-cache temelli hızlandırma iddiası veya ölçülmüş üretim hızına dayanan performans sonucu sunulmuyor.
Mimari akış
01
Metin hazırlama ve byte-level BPE tokenizer
02
uint16 token dosyaları ve kaydırılmış hedef batch’leri
03
Token/pozisyon embedding’leri ve nedensel Transformer blokları
04
Paylaşılan LM head, kayıp ve optimizasyon
05
Uyumlu checkpoint ile autoregressive üretim
Kaynak açıklamalarından türetilmiş kavramsal akış; bir uygulama ekran görüntüsü değildir.
Temel bileşenler
Özel byte-level BPE tokenizer
Pre-LayerNorm, residual bağlantılar ve nedensel attention
Embedding ile çıkış katmanı arasında ağırlık paylaşımı
Apple MPS / CPU çalışma yolu
Arşivlenmiş DailyDialog ve SmolTalk ince ayar deneyleri
Teknik zorluklar
Tokenizer, veri dosyası ve checkpoint boyutlarının uyumunu korumak.
Rastgele pencere örneklemesi ile sohbet bağlamı ve assistant hedeflerini doğru ilişkilendirmek.
Hazırlanmış veri miktarı ile gerçekten işlenen eğitim tokenlarını ayırmak.
Mühendislik tercihleri
Küçük varsayılan yapı ve MPS desteğiyle yerel deneylere odaklanıldı.
Ana pretraining yolu ve tarihsel SFT denemeleri ayrı tutuldu.
Bileşen doğruluğu, eğitim kalitesinden bağımsız sentetik sözleşmelerle değerlendirildi.
Test ve doğrulama
Açık #8 PR’sindeki dört CPU sözleşme testi geçmiş doğrulamada geçti: nedensellik, ağırlık/kayıp, Unicode tokenizer ve batch hizası.
Veri gerektiren dört eski tanı modülü ayrı kopyada sentetik tokenlarla çalıştı; gerçek pretraining veya checkpoint kalitesi yeniden üretilmedi.
Çıktılar
Modelin attention, tokenizer, veri ve üretim bileşenleri okunabilir ayrı modüllerde mevcut.
Tarihsel 115.706.628 hazırlanmış token ile tarif edilen koşunun 40.960.000 token pozisyonu birbirinden ayrıldı; ikisi de yeni eğitim sonucu değil.
Sınırlar ve mevcut durum
Eğitilmiş ağırlıklar ve eğitim korpusu dahil değil.
Tarihsel loss 1,3553 bağımsız olarak doğrulanmış bir benchmark değil.
Genel talimat takibi veya olgusal doğruluk için doğrulama yok.
Yeni test ve deney açıklamaları açık #8 PR’sinde; ana dala henüz birleşmedi.
Teknik anlatım açık iyileştirme PR’sindeki belgeleri de esas alır. PR’nin ana dala birleştirildiği veya ürünün yayımlandığı anlamına gelmez.
LLM önerilerini deterministik risk politikası, durum makinesi ve onay akışından geçirerek araç çalıştıran; Apple entegrasyonları içeren yerel öncelikli agent çekirdeği.
Görüntü, metin, ses ve tablo verileri üzerinde farklı makine öğrenmesi fikirlerini araştıran, kaynaklarına göre sınıflandırılmış 33 bağımsız notebook arşivi.