- Mercury, diffusion yaklaşımını kullanan yeni bir ticari büyük dil modeli (LLM)
- Bu model, birden fazla token'ı paralel olarak tahmin etmesiyle öne çıkan Transformer yapısı üzerine kuruludur
- Mercury Coder, ilk diffusion LLM seti olup kod yazımı için geliştirilmiştir ve Mini ile Small olmak üzere iki boyutta sunulur
- NVIDIA H100 GPU üzerinde saniyede 1109 (Mini), 737 (Small) token işleme hacmine ulaşır ve aynı kalite düzeyinde mevcut hız odaklı modellere kıyasla 10 kata kadar daha hızlı performans gösterir
- Gerçek kullanım benchmark'ları ve Copilot Arena gibi geliştirici değerlendirmelerinde de kalitede 2. sıra ve hızda en üst seviye sonuçlar elde etmiş olup, açık API ve playground da sunar
Genel Bakış
- Mercury, diffusion tabanlı yeni bir büyük dil modeli serisi olup ticari ölçekte çalışan yeni nesil bir LLM'dir
- Tüm modeller, Transformer mimarisi ile parametrize edilmiştir ve birden fazla token'ı paralel olarak tahmin edecek şekilde eğitilmiştir
- Bu rapor, ağırlıklı olarak kod üretim uygulamaları için tasarlanan Mercury Coder'ın ilk ürün ailesini tanıtmaktadır
- Mercury Coder şu anda Mini ve Small olmak üzere iki model boyutunda sunulmaktadır
Başlıca katkılar
- Mercury Coder, hız ve kalite dengesi açısından yeni bir state-of-the-art seviyesine ulaşmaktadır
- Harici değerlendirme kurumu Artificial Analysis ölçümlerine göre:
- Mercury Coder Mini: saniyede 1109 token
- Mercury Coder Small: NVIDIA H100 GPU üzerinde saniyede 737 token performansına ulaşmaktadır
- En hızlı frontier modellere kıyasla benzer kaliteyle ortalama 10 kata kadar daha hızlıdır
- Farklı programlama dilleri ve kullanım senaryolarındaki kod benchmark'ları için ek değerlendirme sonuçları da sunulmaktadır
- Gerçek geliştirici ortamlarında (Copilot Arena) da
- kalite sıralamasında 2.
- hız sıralamasında genel 1. olmuştur
- Herkesin kullanabileceği açık API ( platform.inceptionlabs.ai ) ve ücretsiz sohbet playground'u ( chat.inceptionlabs.ai ) desteklenmektedir
İçindekiler yapısı açıklaması
- Introduction(Giriş)
- Contributions(Başlıca katkılar)
- Inception Mercury Model Family(model ailesinin açıklaması)
- Training(Eğitim süreci)
- Inference(çıkarım yöntemi)
- Capabilities(model yetenekleri)
- Baselines(temel karşılaştırmalar)
- Coding Capabilities(kod üretim yetenekleri)
- Evaluation Benchmarks(değerlendirme benchmark'ları)
Özet
- Mercury, yenilikçi diffusion tabanlı LLM tasarımı ile paralel tahmin yapısını birleştirerek kod üretimi alanında ezici hız ve yüksek kalite sunar
- Farklı model boyutları, güçlü gerçek hizmet benchmark'ları ve kolay erişilebilirliğiyle hem ticari hem de geliştirme ortamları için rekabetçi bir seçenek sunar
1 yorum
Hacker News görüşleri
LLM ajanlarının devreye girmesiyle test performansının daha da ciddi bir CPU darboğazına dönüşeceği, zaten şu anda da tüm ekiplerin CI hızı nedeniyle darboğaz yaşadığı vurgulanıyor
Ajanlar insanlardan 100 kat hızlı kod yazsa bile, testler bir saat sürüyorsa bunun bir anlamı yok
Çalıştığım birçok projede değişikliklerin yansımasını beklerken çok fazla geliştirici zamanı boşa gidiyordu ve birçok çalıştırma I/O veya yetersiz worker sayısı nedeniyle tıkanıyordu
Kodlama ajanları basit ticket'ları hızla PR'a çevirip test başarısızlıklarına anlık tepki vererek düzeltme yaparken, CI darboğazı daha da kötüleşecek
Çoğu projenin test ortamında iyileştirme için büyük alan var ama pratikte yıllardır kayda değer ilerleme olmadan yavaş CI ve yüksek maliyet kanıksanmış durumda
Build'leri tamamen izole etmek için cache'i kapatmak ya da on-premise ortamdan yavaş cloud VM'lere geçmek yüzünden CI daha da yavaşlıyor
Mercury'nin hızı inanılmaz derecede yüksek ve birkaç denememde kod kalitesi de harika, doğru sonuçlar veriyordu; ama şimdi asıl mesele test çalıştırmayı da bu hıza yetiştirmek
Çalıştığım projelerin çoğunda PR onayı beklerken geliştirici zamanının boşa gittiği fikri bana çok ikna edici gelmiyor
Şirket açısından geliştirici zamanı makine zamanından çok daha pahalıdır; geliştiriciler şikayet ediyorsa CI worker sayısını iki katına çıkarmak çözülebilir bir meseledir
Google'da test kararsızlığını debug ederken nadir görülen hataları bulmak için 10 bin makinede testleri 10 bin kez çalıştırdıkları oluyordu
Şu anki iş yerim de benzer bir yaklaşım sunuyor; tek komutla tüm testleri 1000 worker üzerinde paralel çalıştırabiliyor, böylece 1M LOC'lik projede bile 5 dakika içinde geri bildirim almayı hedefliyor
Build'i tamamen izole etmek ile cache kullanmamak aynı şey değil; build'i tamamen izole ederken bile mümkün olan tüm cache'lerden yararlanmak gerekir
Uygulama hızı artarsa darboğazın PM tarafına kayması beklenebilir ve bu durumda değişiklikler daha seri değil daha sıralı işlendiği için çakışmalar büyük ölçüde azalabilir
Spesifikasyon tanım dillerinin (TLA+ vb.) yeniden canlanma ihtimali de var; ajanlar bunları hızla yazıp doğrulayabildiği için toplam entegrasyon testi sayısı azalabilir
Arka plan ajanları yinelenen kodu temizlerken yinelenen testleri de temizleyebilir
Yapay zeka, insan mühendis ekiplerinden farklı olarak monolitik yapıda daha verimli çalışıyor gibi görünüyor; bu da lokalde çalıştırılabilen test kapsamını artırarak flaky testleri azaltabilir ve CI yükünü düşürebilir
Yapay zeka verimliliği artırsa bile buna paralel olarak daha fazla kod, daha hızlı kod üretimi ve çalıştırma nedeniyle yeni sorunlar ortaya çıkacak; insan mühendislerin çözmesi gereken yeni problemler sürekli doğacaktır
LLM'ler 100 satırdan kısa hızlı düzeltmeler ya da rubber duck rolü için fena değil ama büyük proje CI pipeline'ına LLM'i doğrudan sokmak yüzlerce saatlik üretkenlik kaybına yol açabilir
Gerçekte kod yazma becerisini geliştirmeye ayrılması gereken zamanda prompt tuning ve context ayarıyla uğraşılacaksa bunun anlamı yok
LLM tooling konusundaki özgüvenin fazla yüksek olduğunu düşünüyorum ve bunların karmaşık sistemlere iyi uygulanamadığı kanaatindeyim
Önemli bir repository'ye LLM'i gözetimsiz şekilde sokmak, "silah zoruyla olmadıkça" yapılacak bir şey değil diyecek kadar güvensizlik var
Sonuçta LLM çıktısını yarı yarıya yeniden düzenlemek gerekiyor; o zaman da doğrudan kendin yapmak daha iyi
Otomobilden önce yakıt, yağ ve bakım için neredeyse hiç para harcanmıyordu; ama sistemler geliştikçe buna uygun ek altyapı ve maliyetler de beraberinde geliyor
Yapay zeka ile darboğazları çözmek veya daha fazla özellik üretip geliri maksimize etmek, sonra da bu ek gelirle daha fazla CI kaynağı sağlamak gibi döngüsel bir yapı var
AI kullanmak, ekibe 10 geliştirici daha katmış olmak gibi; dolayısıyla destek maliyetlerinin artması da doğal
Verimlilik argümanını mantıklı şekilde ortaya koyup daha fazla CI kaynağı alıp alamayacağını ya da optimizasyon için yol gösterip gösteremeyeceğini yeniden düşünmek gerektiği görüşü
CI kaynağı başına maliyetin ne kadar olduğu merak ediliyor
Bir Python uygulamasında astral.sh araç zinciri ve
uvpaket kurulumu + cache kullanımıyla CI hızını ciddi biçimde artırmış olma deneyimiYakında
mypyyerine astral'ın type checker'ına geçmeyi planlıyor; bunun daha da hızlı olması bekleniyorFrontend'i olan uygulamalarda en yavaş kısım muhtemelen Playwright testleri olur ama başka uygulamalarda bu bile geçerli değil
(Not: Mike doğru kişiyse, onu 2000'lerin başında Google Maps'te birlikte çalıştığım SRE olarak hatırlıyorum; bu yüzden görüşüne güveniyorum)
Mercury playground'da bir regex pattern istediğimde modelin kendi kendine plan yapıp pattern'i yazdıktan sonra testler üretmeye başladığını gördüm
Ama testleri sonsuza dek artırmaya devam etti ve sonunda context sınırına ulaşınca yanıt kesildi
Yaklaşık 30 taneden sonra test sonuçları için yanlış yorumlar yazmaya başladı, 120'yi geçince ise test girdilerinin kendisi bozuldu ve rastgele karakterler çıkmaya başladı
Pattern'in kendisi de zaten doğru değildi ama bu "sonsuz döngü" davranışı daha ilginç bir meseleydi
Bu arada, çok kısa süre öncesine kadar genel amaçlı LLM'ler de böyle "neredeyse sonsuz döngü" gibi görünen tekrar eden çıktılar veriyordu diye hatırlıyorum
Çıktının sadece çok az değiştiği kalıplara sıkışıp kalıyorlardı
Bence bu örnek, "yalnızca token tahminiyle kod doğru şekilde üretilemez" iddiasının tipik bir kanıtı
LLM'ler zaten baştan kod üzerine düşünmeye uygun tasarlanmış sistemler değil
Teknik raporu okuduğumda Mercury'nin Lou et al. 2023, SEDD makalesine dayandığını doğruladım
SEDD'yi from-scratch yeniden uygulayan ilk kişi muhtemelen bendim; kodu da açık
Karmaşık denoising yöntemini de doğrudan uyguladım
Bunu mevcut SEDD'ye göre daha temiz ve okunabilir olacak şekilde tasarladım; tek bir GPU üzerinde oyuncak veri kümesiyle birkaç saat içinde çalıştırılabiliyor
Bu arada DeepMind'ın da diffusion tabanlı bir Gemini modeli var (bağlantı)
Bizzat denediğimde Mercury gibi çok hızlıydı ama yanıt kalitesi diğer Gemini modellerine göre belirgin biçimde daha düşüktü
Kısaca denediğim kadarıyla hız etkileyici ama doğruluk oranı gerçekten epey düşük, buna katılıyorum
Gemini Diffusion demosunun ücretsiz olup olmadığı merak ediliyor
Birkaç gündür waiting list'teyim, o yüzden henüz gerçekten deneme fırsatı bulamadım
Kişisel olarak bu tür ilerlemeler beni çok heyecanlandırıyor
Yakın zamanda bir game jam sırasında AI ile basit bir oyun kodladım ve sürenin yarısından fazlası sonuç beklemekle geçti
Her prompt başına sonuç almak 1-2 dakika sürüyorsa ama bu 10 saniyeye inerse, eskiden bir kez test edebildiğim sürede beş-on deneme yapılabilir
Mercury henüz pratik kullanım için yeterince olgun değil ama Claude 3.0 da bir yıl önce yetersizdi; bundan sonra daha iyi hale geleceği düşünülüyor
Gerçekten heyecan verici bir dönem
Mercury playground'u denedim; hızı gerçekten olağanüstü
Diffusion mode görselleştirmesi de ilginç ama pratikte, görselleştirilen çizgisel gürültüden giderek daha doğru bir duruma rafine olunan süreci gösteriyor gibi
Aslında bunun, rastgele bir vektör uzayından giderek daha belirgin token'lara yakınsama süreci olduğu düşünülüyor
Bazı metin diffusion modelleri sürekli bir latent space kullanıyor ama performansları pek iyi değil
Son dönemde çoğu yaklaşım doğrudan gerçek token çıktısını tahmin etmeye odaklanıyor ve önceki değerleri adım adım düzelterek nihai sonuca yakınsıyor
Yazdığım metin diffusion nasıl çalışır açıklaması faydalı olabilir
Bağlantı: https://chat.inceptionlabs.ai/
Gerçekten akıl almaz derecede hızlı
GPU'ya yakın kodların çoğunda performans optimizasyonu için çok büyük alan var
Ama arXiv makalesinin gerçek araştırmadan çok pazarlamaya yakın olduğu yönünde şüphe var
Farklı görüşlere açık
Mercury modelinin fiyatlandırması
1 milyon output token başına 1 dolar, 1 milyon input token başına 0.25 dolar
Ayrıntılı fiyatlandırma için buraya bakılabilir
Performansa duyarlı senaryolarda Mercury ile Groq'u (Llama 3.1 8b, Llama 4 Scout) karşılaştırınca performanslar benzerdi ama fiyat tarafında Groq çok daha avantajlıydı
Diffusion modellerinin open source olarak çıkmasını umuyorum, ilgiyle takip ediyorum
Playground kodunda ve API yanıtlarında
gpt-3.5-turboile"openai": truealanları görünüyor; gerçekten kendi dLLM'leri yerine OpenAI mı çağrılıyor diye merak ediliyorSağ üstteki diffusion effect özelliği de sadece animasyon efekti gibi görünüyor
Her şey kulağa harika geliyor ama
Hizmete kullanıcı gönderisi gönderildiğinde, dünya çapında münhasır olmayan, kalıcı, telifsiz, ücretsiz ve tamamen devredilebilir bir lisans Inception'a verilmiş oluyor
Yani kullanıcı içeriği AI model eğitimi amacıyla kullanılabiliyor
(Ancak OpenRouter üzerinden gelen kullanımların eğitime dahil edilmediğine dair bir istisna maddesi var)