AI/ML & Machine Learning
Yüksek performanslı yapay zeka ve makine öğrenmesi kütüphanesi
15
Modül
28.8x
Hızlanma
70 GB/s
SIMD
882x
Sıkıştırma
Genel Bakış
BERK AI/ML kütüphanesi, modern yapay zeka ve makine öğrenmesi uygulamaları için kapsamlı araçlar sunar. PyTorch ve TensorFlow ile uyumlu API tasarımı, SIMD optimizasyonları ve paralel işleme desteği ile yüksek performans sağlar.
Temel Özellikler
- SIMD Optimizasyonu: AVX2 desteği ile 70 GB/s throughput
- Paralel İşleme: Rayon ile 4.96x hızlanma
- LZ4 Sıkıştırma: Model kaydetme 28.8x daha hızlı, 882x küçük dosyalar
- Cache Optimizasyonu: Bloklu matris çarpımı ile 2.5x hızlanma
- LLM Desteği: OpenAI, Anthropic, Gemini, Ollama API entegrasyonu
- Sıfır Bağımlılık: Tamamen BERK ile yazılmış, native performans
Performans Metrikleri
| Optimizasyon | Öncesi | Sonrası | İyileştirme |
|---|---|---|---|
| Matris Çarpımı (256×256) | 0.97 GFLOPS | 2.47 GFLOPS | 2.5x |
| Model Kaydetme (34.9 MB) | 880 ms | 30 ms | 28.8x |
| Model Dosya Boyutu | 131 MB | 0.15 MB | 882x küçük |
| SIMD Throughput | 8.75 GB/s | 70 GB/s | 8x |
| Batch Processing | 4,410 batch/sn | 18,546 batch/sn | 4.96x |
| Model Yükleme | ~1000 ms | 99 ms | 10.1x |
AI/ML Modülleri
Hızlı Başlangıç
Basit Sinir Ağı
modül kullan ai/tensor;
kullan ai/nn;
kullan ai/optim;
// Model oluştur
değişken model = Sequential::yeni([
Linear::yeni(784, 128),
ReLU::yeni(),
Dropout::yeni(0.2),
Linear::yeni(128, 10),
Softmax::yeni()
]);
// Optimizer
değişken optimizer = Adam::yeni(model.parametreler(), lr: 0.001);
// Eğitim döngüsü
her epoch içinde aralık(10) için yap
değişken çıktı = model.ileri(X_train);
değişken kayıp = cross_entropy(çıktı, y_train);
optimizer.sıfırla();
kayıp.geri();
optimizer.adım();
yazdir("Epoch {}: Kayıp = {:.4f}", epoch, kayıp);
son
LLM API Kullanımı
kullan ai/llm;
kullan async;
async fonksiyon sohbet() yap
// OpenAI istemcisi
değişken client = OpenAI::yeni("api-key");
// Chat tamamlama
değişken yanit = await client.chat([
{ role: "user", content: "Merhaba!" }
]);
yazdir(yanit.content);
son
Model Kaydetme/Yükleme (LZ4)
kullan ai/model;
// Model kaydet (LZ4 compressed - 28.8x faster)
model.kaydet("model.berk"); // 880ms → 30ms
// Model yükle (10x faster)
değişken loaded_model = Model::yukle("model.berk"); // 99ms vs 1000ms
// Dosya boyutu: 131 MB → 0.15 MB (882x smaller)
Teknik Detaylar
SIMD Optimizasyonu
AVX2 komut seti ile 256-bit vektör işlemleri:
- 8 float paralel toplama/çıkarma/çarpma/bölme
- Runtime CPU özellik tespiti
- Otomatik scalar fallback AVX2 yoksa
- 70 GB/s throughput büyük tensörler için
Bloklu Matris Çarpımı
L1 cache-optimized tiling:
- 32×32 bloklar (4KB, L1 cache: 32KB)
- Cache miss oranını minimize eder
- 256×256 matrisler için 2.5x hızlanma
- 512×512 matrisler için 1.8x hızlanma
LZ4 Model Sıkıştırma
Hızlı lossless compression:
- Level 1 (fast) compression
- Binary format: BERK magic + version + data
- 28.8x daha hızlı kaydetme
- 882x daha küçük dosyalar
- 100% doğruluk, data integrity korunur
Paralel Batch İşleme
Rayon ile çoklu iş parçacığı:
- Batch processing 4.96x daha hızlı
- 18,546 batch/sn (vs 4,410 sequential)
- Work stealing ile load balancing
- Otomatik thread pool yönetimi
Platform Desteği
| Platform | SIMD | Paralel | LZ4 |
|---|---|---|---|
| x86_64 (Intel/AMD) | ✓ AVX2 | ✓ | ✓ |
| ARM64 (Apple Silicon) | ✓ NEON | ✓ | ✓ |
| ARM32 | Scalar | ✓ | ✓ |
| WASM | ✓ SIMD128 | Limited | ✓ |
Sonraki Adımlar
- tensor - Tensör işlemlerini öğrenin
- nn - Sinir ağı katmanlarını keşfedin
- train - Model eğitimi yapın
- model - Model kaydetme/yükleme
- llm - LLM API'lerini kullanın
- metrics - Değerlendirme metrikleri
- vision - Bilgisayarlı görü
- nlp - Doğal dil işleme
- rl - Pekiştirmeli öğrenme
Not: AI/ML kütüphanesi aktif geliştirme aşamasındadır. Yeni özellikler ve optimizasyonlar düzenli olarak eklenmektedir.
Versiyon: v0.9.0 (Aralık 2025)