# Protokol: karşılaştırma maliyetinden önce kabul edilen bir korpus

Sürüm 1 — 24 Eylül 2026. Bu belge doldurulacak bir protokol önerir; hiçbir ölçülmüş sonuç veya veri kümesi içermez. İlgili notebook, belleği ölçmeyi öğrenmek için küçük bir sentetik MLP kullanır. Aşağıdaki iş protokolünü yürütmez.

## 1. Denemelerden önce faydalı işi tanımlayın

Örnek iş: **1.000 metinlik** bir korpusu sınıflandırmak. Kullanımınızı temsil eden, izin verilen bir veri kümesini kendiniz oluşturun; her metin için benzersiz bir tanımlayıcı ve doğrulanmış bir referans ekleyin. Korpusun, modelin, tokenizer'ın, kodun revizyonunu ve tohumu sabitleyin. Denetime olanak tanımak için beklenen ID listesini ve bireysel çıktıları ayrı ayrı saklayın.

Herhangi bir ölçümden önce şunları tanımlayın: sınıflar, çıktı biçimi, ana metrik (örneğin macro-F1), kabul eşiği ve bir referansa kıyasla izin verilen maksimum bozulma. Uygulamanız için uygun bir tolerans seçin; burada evrensel bir değer verilmemiştir. Eğitim, ayar ve değerlendirme verileri ayrı kalmalıdır.

Bir korpus yalnızca beklenen 1.000 ID'nin tam olarak bir kez bulunması, çıktılarda fazladan yanıt yer almaması, biçimin geçerli olması ve önceden belirlenmiş kalite kuralının karşılanması durumunda kabul edilir. Her biri 1.000 satır içeren iki dosya, tek başına ID'lerin eşitliğini kanıtlamaz. Küme ve yinelenen kayıt kontrolünü arşivleyin.

## 2. Yalnızca duyurulan varyantı değiştirin

Batch'i incelemek için örneğin 1, 4 ve 8 varyantlarını hazırlayın. Aynı korpusu, girdi sırasını, modeli, tokenizer'ı, hassasiyeti ve bağlam sınırını koruyun. Ardından hassasiyeti incelerseniz, ayrı bir deney oluşturun ve kalite kontrolünü yeniden yapın. Kırpmayı açıklayın: metinleri kısaltmak yapılan işi değiştirir.

Gerçek GPU'yu, fiilen kullanılan GPU sayısını, device'ı, sürücüyü, Python'u, PyTorch'u ve CUDA veya ROCm runtime'ını kaydedin. Ayrıca kodunuzun sürümünü, varsa üretim seçeneklerini ve makinedeki her türlü eşzamanlı kullanımı `notes` içine yazın. İki GPU'luk ticari bir paket, programın her ikisini de kullandığı anlamına gelmez.

## 3. Karşılaştırılabilir geçişleri ölçün

Kronometrenin neleri kapsadığını duyurun: yalnızca işleme mi yoksa okuma, tokenizasyon ve yazma dahil tüm zincir mi. Yükleme, ilk geçiş ve ısınmış geçişleri ayırın. Bellek betiği yalnızca kendi MLP'sini ölçer ve tam bir sınıflandırma zincirini kronometrelemez.

Duyurulan ısınmayı gerçekleştirin, ardından her varyant için beş ölçülmüş geçişi değişen veya önceden çekilmiş bir sırada yapın. Her ham süreyi saklayın. Medyanı ve min–maks aralığını raporlamak dağılımı görmeyi sağlar; beş gözlem p95'in sağlam bir tahminini haklı çıkarmaz. Bir hatayı veya yavaş bir geçişi sessizce dışlamayın: satırını koruyun ve olayı açıklayın. İlk geçişleri benzer koşullarda karşılaştırmak isterseniz yeni bir süreçte yeniden başlatın.

PyTorch GPU ölçümleri için, ilk kayıttan önce ve işlemden sonra seçilen device'ı senkronize edin. `allocated` ve `reserved` baseline'larını kaydedin, pik istatistiklerini sıfırlayın, ardından fazın mutlak piklerini saklayın. `allocated`, `reserved` içinde yer alır: ikisini toplamak belleğin bir kısmını iki kez sayar. İki maksimum farklı anlarda ulaşılabilir: aralarındaki fark, belirli bir andaki önbelleğin ölçüsü değildir. Diğer süreçlerin ve PyTorch allocator'ı dışındaki ayırmalar kapsanmaz.

## 4. resultats-bruts.csv dosyasını doldurun

Dağıtılan CSV yalnızca başlıkları içerir. Her geçiş için bir satır yazın; süreler için ondalık nokta ve saniye, bellek için bayt ve paket için USD sent kullanın. Boş bir hücre «ölçülmedi» anlamına gelir; sıfır ise gerçekten sıfır demektir. Bir notta bulunan virgüller, olağan CSV kurallarıyla korunmalıdır.

| Alanlar | Anlam ve giriş |
| --- | --- |
| `experiment_id`, `variant_id` | Deneyin ve varyantın kararlı tanımlayıcıları. |
| `corpus_revision`, `model_revision`, `tokenizer_revision`, `seed` | Değişmez sürümler veya parmak izleri ve bildirilen tohum. |
| `gpu_model`, `gpu_count`, `device`, `driver_version`, `python_version`, `torch_version`, `runtime_version` | Gerçekte kullanılan donanım ve gözlemlenen ortam; bir teklif vaadini kopyalamayın. |
| `precision`, `batch`, `context` | Gerçekte uygulanan yapılandırma. |
| `phase`, `run_index`, `warmup_iterations` | Ayrı faz (`cold` veya `warm`, örneğin), geçiş numarası, ısınma sayısı. Süreleri karıştırmayın. |
| `expected_ids`, `observed_ids` | Beklenen ve gözlemlenen ID sayıları; ayrıntılı listeler çıktılarla birlikte saklanır. |
| `ids_match`, `format_valid` | Gerçek doğrulamadan sonra `true`/`false`, yinelenenler ve ek yanıtlar dahil. |
| `quality_metric`, `quality_threshold`, `quality_tolerance`, `quality_value` | Önceden belirlenmiş ad, eşik ve tolerans, ardından ölçülen değer. Toleransın yönünü ve referansı `notes` içinde belirtin. |
| `corpus_accepted` | Yalnızca tüm doğrulama koşulları sağlanıyorsa `true`; aksi halde `false`. |
| `elapsed_seconds` | Bildirilen kapsamın ham süresi, asla beklenen bir değer değil. |
| `baseline_allocated_bytes`, `baseline_reserved_bytes`, `peak_allocated_bytes`, `peak_reserved_bytes` | Yalnızca ölçülen device için ayrı ölçümler. Ölçülmediyse boş bırakın. |
| `duration_days`, `lots`, `package_total_usd_minor` | Seçilen tam paket, faturalanan lotlar ve sent cinsinden USD toplam fiyat; tek bir harcama beş kez toplanmamalıdır. |
| `accepted_unique_corpora` | Ekonomik analiz için kabul edilen farklı kullanışlı corpus sayısı; bu alan tekrarlar arasında toplanmaz. |
| `notes` | Kapsam, olaylar, kalite kararları, kod revizyonu ve saklanan belgelerin referansları. |

## 5. Üretim uydurmadan hesaplama

Karşılaştırılacak fiyat, 3, 7 veya 30 günlük tam paketin lotlarla çarpımıdır. B200 için bir lot iki GPU içerir ve tarife bu lotu zaten kapsar. `calcul_forfaits.py` bu kuralı sağlanan tarifelere uygular.

Seçilen faydalı iş kabul edilmiş tam bir corpus ise, `--accepted-results` dönem boyunca gerçekten doğrulanan farklı corpus sayısını almalıdır. Aynı corpusun beş tekrarı değişkenliği ölçmeye yarar: beş faydalı çıktı üretmez. Karşılaştırmadan önce birimi belirleyin ve tüm varyantlar için aynı tutun. Ölçülmüş ve kabul edilmiş miktar yoksa bu parametreyi boş bırakın: yalnızca paket maliyeti hesaplanır. Bir hızı otomatik olarak 3, 7 veya 30 güne yansıtmayın.

Doldurulmuş protokolü, tek tek çıktıları, kalite kontrollerini, ham CSV'yi ve ekonomik hesaplamayı birlikte saklayın. Daha hızlı ama kabul edilmemiş bir yapılandırma aynı amacı karşılamaz. Belleği aşan bir yapılandırma bir başarısızlık gözlemi olarak kalır, sıfırla değiştirilecek bir süre değildir.
