Bir web sunucusunun aynı anda on binlerce bağlantıya cevap vermesi, yalnızca hızlı bir işlemciye sahip olmakla çözülmez. Asıl mesele, çoğu zaman hiçbir şey yapmadan veri bekleyen bağlantıları düşük maliyetle yönetebilmektir. Linux dünyasındaki epoll ve BSD/macOS tarafındaki kqueue, işletim sistemine “Hazır olanı bana haber ver, diğerleriyle beni uğraştırma” diyerek yüksek eşzamanlılığın kapısını açar.

Devamı...
Linux ağ yığınında paketleri yakalamak, filtrelemek veya yönlendirmek eskiden çekirdek modülü geliştirmeyi ve bazen çekirdeği yeniden derlemeyi gerektiriyordu. eBPF sayesinde artık doğrulanmış küçük programları çekirdek içinde güvenli biçimde çalıştırabiliyoruz. Böylece DDoS filtrelerinden gecikme ölçümüne kadar pek çok işi, kaynak koduna neşter vurmadan gerçekleştirmek mümkün.
Devamı...

Bir işlemci çekirdeği bir thread’i durdurup diğerini çalıştırdığında ekranda hiçbir şey kıpırdamaz; ancak donanım ve işletim sistemi küçük bir bavul toplama töreni gerçekleştirir. Yazmaçlar saklanır, yeni yürütme bağlamı yüklenir, adres çevirileri gözden geçirilir ve önbellek düzeni sarsılabilir. Context switch, yararlı iş üretmeyen fakat çoklu görev için kaçınılmaz olan bu sürecin adıdır.
Devamı...
Linux çekirdeği devasa bir monolitik yapı olsa da her özelliği kalıcı olarak çekirdeğe gömmek zorunda değildir. Yüklenebilir Çekirdek Modülleri (Loadable Kernel Modules veya LKM), çalışan sistemi yeniden başlatmadan sürücü, dosya sistemi ya da ağ özelliği eklememizi sağlar. Bu yazıda küçük bir karakter cihazı geliştirerek modül mimarisini güvenli biçimde keşfedeceğiz.
Devamı...
Fare düğmesine bastığınızda işlemcilerin hep bir ağızdan “Ben bakarım!” diye bağırdığını düşünebilirsiniz. Gerçekte donanım, işletim sistemi ve Gelişmiş Programlanabilir Kesme Denetleyicisi (APIC) birlikte çalışarak sinyalin hangi çekirdeğe gönderileceğini belirler. Bu mekanizma yalnızca kullanıcı girişlerini değil; ağ paketlerini, disk işlemlerini ve zamanlayıcı olaylarını da düzenleyen görünmez bir trafik polisidir.
Devamı...
Zaman serisi modellemek, geçmişteki ipuçlarına bakarak geleceği tahmin etmeye benzer. LSTM bu işi adım adım ilerleyen güçlü bir hafızayla yaparken Temporal Convolutional Network (TCN), zaman eksenine geniş bir evrişim penceresinden bakar. Peki üretim hattındaki sensör verileri, finansal fiyatlar veya trafik yoğunluğu için hangisini seçmeliyiz? Cevap yalnızca doğrulukta değil; veri uzunluğu, eğitim süresi ve donanım kullanımında saklıdır.
Devamı...
Bir fotoğrafta kedi ararken duvardaki çatlakları, masanın desenini veya perde kıvrımlarını uzun uzun incelemeyiz; gözümüz hızla kulak, göz ve pati gibi ayırt edici bölgelere yönelir. Yönlendirilmiş dikkat (targeted attention), sinir ağlarına benzer bir seçicilik kazandırır. Model bütün pikselleri eşit derecede önemli kabul etmek yerine, yaptığı görev açısından anlamlı bölgelere daha yüksek ağırlık verir. Böylece hem tahminler iyileşebilir hem de ağın kararını nereden çıkardığı daha anlaşılır hâle gelebilir.
Devamı...

Bir makine öğrenmesi modeline yeni kolonlar eklemek ilk bakışta ona daha fazla ipucu vermek gibi görünür. Yaş, gelir ve şehir faydalıysa tarayıcı, cihaz, tıklama saati ve yüzlerce davranış özelliği de faydalı olmalıdır, değil mi? Ne yazık ki veri biliminin küçük bir şakası vardır: Masaya daha çok bilgi koyarken modelin önündeki haritayı devasa ve neredeyse boş bir çöle çevirebiliriz. İşte buna boyut laneti denir.
Devamı...

Bir yapay sinir ağı eğitim verisini ezberlemeye başladığında, sınıfın çalışkan öğrencisi gibi görünür; ancak sınav soruları değişince afallar. Dropout, eğitim sırasında bazı nöronları rastgele devre dışı bırakarak bu ezberciliğe müdahale eder. Böylece ağ, bütün yükü birkaç güçlü bağlantının üzerine yıkmak yerine farklı özelliklerden yararlanmayı öğrenir.
Devamı...
Bilgisayarlar kelimeleri doğrudan anlayamaz; onları sayılara dönüştürmemiz gerekir. Ancak bu dönüşüm göründüğünden daha çetrefillidir. Örneğin banka kelimesi, para çektiğimiz bir kurumu da nehir kenarını da anlatabilir. Doğal dil işlemenin yolculuğu, kelimelere tek bir kimlik kartı veren sabit temsillerden, cümleyi okuyup anlama göre yeni kimlik üreten bağlamsal modellere doğru ilerledi.
Devamı...

Bir fotoğrafa bakıp “Masanın üzerindeki kupa ne renk?” sorusunu cevaplamak insanlar için sıradan, makineler içinse iki farklı dünyayı uzlaştırma problemidir. Görüntü piksellerden, soru ise kelimelerden oluşur. Görsel Soru Cevaplama (Visual Question Answering, VQA) sistemlerinin temel görevi, bu iki veri türünü karşılaştırılabilir vektörlere dönüştürerek ortak bir anlam uzayında buluşturmaktır.
Devamı...
Bir görüntü sınıflandırma modeli geliştirmek istiyorsunuz ancak elinizde yalnızca birkaç yüz örnek var. Sıfırdan eğitilen dev bir sinir ağı bu veriyi ezberleyip gerçek dünyada tökezleyebilir. Neyse ki teknoloji devlerinin milyonlarca örnekle eğittiği modellerin öğrendiği zihinsel haritaları ödünç alabiliriz. Transfer öğrenme, küçük veri setlerinin süper gücü tam olarak budur.
Devamı...
Bir makine öğrenmesi modelinin başarısı yalnızca veriye ve algoritmaya bağlı değildir; öğrenme oranı, ağaç derinliği veya düzenlileştirme katsayısı gibi hyperparameter’lar da sonucu ciddi biçimde değiştirir. Bu ayarları elle denemek, karanlık bir odada doğru anahtarı aramaya benzer. Optuna ise önceki denemelerden öğrenir, umut vermeyen deneyleri erkenden durdurur ve hesaplama bütçesini daha mantıklı adaylara yönlendirir.
Devamı...
Tek bir yapay zekânın oyun oynamayı öğrenmesi etkileyicidir; ancak aynı ortama birden fazla öğrenen ajan koyduğumuzda işler hızla bilim kurgu filmine dönüşür. Ajanlar yardımlaşabilir, kaynaklar için kapışabilir, birbirlerini kandırabilir veya ortak bir dil geliştirebilir. Multi-Agent Reinforcement Learning (MARL), yani çok ajanlı pekiştirmeli öğrenme, tam olarak bu hareketli dünyayı inceler.

Devamı...
Bir makine öğrenmesi modeli, kendisine sunulan eğitim verilerini sorgulamadan öğrenir. Peki bu verilerin arasına ustaca hazırlanmış yanıltıcı örnekler karıştırılırsa ne olur? Veri zehirlenmesi saldırılarında kötü niyetli kişiler, devasa veri kümelerinin yalnızca küçük bir bölümünü değiştirerek modelin davranışlarını gizlice yönlendirebilir. Başka bir deyişle, aşçı aynı, tarif aynı; fakat birisi baharat kavanozunu sessizce değiştirmiştir.
Devamı...

Bir çeviri sistemi yüksek BLEU skoru aldığında gerçekten iyi çeviri yapıyor diyebilir miyiz? Kısa cevap: Her zaman değil. BLEU, makine çevirisi dünyasının en meşhur ölçüm araçlarından biri olsa da anlamı, akıcılığı ve bağlamı doğrudan ölçmez. Üstelik bazen kulağa robotik gelen bir çeviriyi ödüllendirirken gayet doğal bir alternatifi cezalandırabilir.
Devamı...
Gradient boosting dünyasında doğruluk kadar eğitim süresi ve bellek tüketimi de önemlidir. LightGBM, sürekli özelliklerdeki her değeri ayrı ayrı incelemek yerine değerleri küçük aralıklara, yani bin adı verilen sepetlere yerleştirerek bu dengeyi değiştirdi. Milyonlarca satırlık veriyle çalışan bir algoritma için bu yaklaşım, tek tek bozuk para saymak yerine onları önceden hazırlanmış kutularda tartmaya benzer.
Devamı...
Bir karar ağacı, verileri dallara ayırırken sürekli aynı soruyu sorar: “Hangi bölünme, sınıfları birbirinden en iyi şekilde ayırır?” Bu soruyu yalnızca sezgilerle cevaplamak yerine düğümlerin ne kadar karışık olduğunu ölçeriz. Sınıflandırma ağaçlarında bu amaçla en sık kullanılan iki ölçüt Gini Impurity ve Entropy’dir. İkisi de aynı hedefe koşar; ancak hedefe giderken kullandıkları matematiksel rota biraz farklıdır.
Devamı...
Bir veri kümesinde aykırı değer ararken çoğu yöntem önce “normal” davranışın nasıl göründüğünü öğrenmeye çalışır. Isolation Forest ise meseleyi tersinden ele alır: Normal değerlerin ayrıntılı profilini çıkarmak yerine, rastgele bölmelerle hangi gözlemlerin daha çabuk yalnız kaldığına bakar. Çünkü kalabalıktan uzak duran bir veri noktasını izole etmek, mahallenin ortasında yaşayan bir noktayı izole etmekten genellikle daha kolaydır.

Devamı...

Bir dil modeline “Bana bir hikâye yaz” dediğinizde bazen güvenli ve tahmin edilebilir, bazen de uzayda simit satan melankolik bir robot kadar sıra dışı sonuçlar alabilirsiniz. Bu farkın önemli nedenlerinden ikisi temperature ve top-p parametreleridir. Bu ayarlar modelin bilgisini değiştirmez; bir sonraki token seçilirken ne kadar temkinli veya maceracı davranacağını belirler.
Devamı...