Bilgi merkezi

Simülasyon ve Belirsizlik

Tekrarlanabilir Monte Carlo: Aynı seed neden yetmez?

Model snapshot, PRNG ve runtime sürümü, çalışma ayarları ve paralel akışlar: Monte Carlo'yu tekrar üretmek için gereken kayıtlar.

Bir simülasyon raporunda “seed = 42” yazması iyi bir başlangıçtır. Fakat başka bir bilgisayarda, farklı kütüphane sürümünde veya farklı paralel iş planında aynı sayılar elde edileceği anlamına gelmez. Seed, tekrar üretilebilirlik sözleşmesinin yalnızca bir parçasıdır.

Bir risk sonucunun daha sonra incelenebilmesi için hem modeli hem hesabın yürütüldüğü koşulları bilmek gerekir. “Geçen ayki VaR neden değişti?” sorusu, model farkı, veri farkı ve rastlantısal örnekleme farkını ayrı incelemeyi gerektirir. Yalnızca ekran görüntüsü bu işi yapamaz.

Seed neyi kontrol eder?

Pseudo-random number generator (PRNG), iç durumundan bir sayı dizisi üretir. Seed, bu durumun başlatılmasında kullanılan girdidir. Aynı PRNG, aynı başlatma yöntemi ve aynı çağrı sırası altında aynı rastlantısal dizinin üretilmesi hedeflenebilir.

Dağılım örnekleyicisi ise bu temel sayıları Poisson, normal veya başka dağılıma dönüştürür. Algoritma değişirse aynı temel akıştan farklı örnekler türeyebilir. Bazı yöntemlerin tükettiği rastlantısal sayı adedi de değişkendir; bir düğümdeki değişim daha sonraki düğümlerin örneklerini etkileyebilir.

Bu yüzden seed'in yanında RNG algoritması/sürümü ve dağılım örnekleme yöntemleri önemlidir. Bir kütüphanenin belgelenmiş uyumluluk sözü, her başka kütüphane veya gelecek sürüm için otomatik olarak geçerli değildir.

Model de sabitlenmeli

Aynı seed ile değişmiş model aynı sonucu üretmemelidir. Parametre, dağılım, birim, ifade veya ortak faktör bağlantısı değişmiş olabilir. Böyle bir farkı “simülasyon tutarsız” diye açıklamak yerine model snapshot'larını karşılaştırmak gerekir.

Bir snapshot, çalıştırma anındaki kanonik modeli değişmez biçimde temsil etmelidir. Girdilerin sırası, serialize/deserialize semantiği, referans verilen alt modeller ve veri/varsayım özeti kayıtlı olmalıdır. Bir dosyanın adının aynı kalması içeriğinin aynı kaldığını kanıtlamaz; hash veya sürüm bağlantısı yararlıdır.

Ortak bir rastlantısal faktörün iki alt modelde tek örneklenmesi de model semantiğinin parçasıdır. Yeniden çalıştırmada yanlışlıkla iki bağımsız örnek kullanılması, seed aynı olsa bile modelin anlamını değiştirir.

Paralel yürütme neden farklılık yaratır?

Bir işi sekiz worker'a bölmek, tek worker'ın çağrı sırasını otomatik olarak korumaz. Worker'lar ortak bir RNG'yi sıraya bağlı biçimde tüketiyorsa zamanlama sonucu etkileyebilir. Sabit shard/task akış eşlemesi veya uygun bağımsız alt akış tasarımı gerekir.

Worker başına aynı seed'i vermek de güvenli bir çözüm değildir; aynı dizinin tekrarına ve korelasyon sorununa yol açabilir. Seed spawning veya counter-based yöntemler gibi yaklaşımlar, amaç ve kütüphane garantileriyle değerlendirilir. “Paralel” etiketi kendi başına istatistiksel bağımsızlık sağlamaz.

Task kimliği, stream kimliği, batch boyutu ve sonuç birleştirme planı tekrar üretilebilirlik sözleşmesinin parçası olabilir. Worker sayısı değiştiğinde neyin korunacağı açıkça belgelenmelidir. Her tasarım bit düzeyinde özdeşlik hedeflemek zorunda değildir; ama hangi seviye sağlandığını söylemelidir.

Floating-point ayrıntısı da vardır

Toplamanın sırası gerçek sayılarda sonucu değiştirmez; sonlu floating-point aritmetikte değiştirebilir. Paralel reduction, mimari veya matematik kütüphanesi farklı olduğunda son basamaklar değişebilir. Bu farkın kabul edilebilirliği, metrik ve karar toleransıyla birlikte tanımlanmalıdır.

Bu nedenle iki ayrı hedefi ayırmak yararlıdır: bit düzeyinde tekrar, tam aynı çıktıyı üretmek; sayısal/istatistiksel uyum, tanımlanmış tolerans veya dağılım özellikleri içinde eşleşmek. Birini test edip diğeri için söz vermek yanıltıcıdır.

Örneğin ortalama için küçük son-basamak farkı önemsizken bir kısıt eşiğinin hemen yanındaki sonuçta yöntem hassasiyeti önemli olabilir. Karar sistemi, tolerans ve eşik davranışını açıkça tanımlamalıdır.

Bir koşu kaydı neleri içermeli?

  • Immutable model snapshot ve şema sürümü.
  • Veri veya uzman varsayımı özeti; uygun yerde veri hash'i.
  • Seed, RNG algoritması ve sürümü.
  • Engine, sampler, solver ve runtime sürümleri.
  • Iterasyon, batch, worker/stream planı ve çalışma profili.
  • Metrik tanımları, quantile yöntemi ve hata değerlendirmesi.
  • Kod/konfigürasyon bağlantısı, koşu zamanı ve kimliği.
  • Belgelenmiş yeniden üretilebilirlik seviyesi.

Bu liste bir ürün API'sinin mevcut olduğu anlamına gelmez. Risk Studio'nun hedef iş akışı ve güven yaklaşımı bu kayıtları tasarım gereksinimi olarak ele alır. Ghost web sitesi bunları üreten bir simulation runtime değildir.

Aynı akışla senaryo kıyaslamak

İki senaryonun karşılaştırmasında uygun şekilde ortak rastlantısal sayılar kullanılması, fark tahmininin varyansını azaltmaya yardımcı olabilir. Bunun için model eşlemesi ve bağımlılık anlamı korunmalıdır. Aynı seed yazmak, iki senaryonun rastlantısal girdilerini doğru eşleştirdiğini kanıtlamaz.

Bir senaryo farklı sayıda RNG çağrısı tüketiyorsa akışlar ayrışabilir. Ortak faktörün hangi işlevle beslendiği veya yeni bir koşullu dalın akışı nasıl tükettiği incelenmelidir. Yöntemin faydası sorun ve eşleme koşullarına bağlıdır; her karşılaştırma için otomatik üstünlük beklenmez.

Müdahale etkisi verisi eksikse daha iyi eşleme bu boşluğu dolduramaz. Üretim örneğinde bakım ROI'si yayımlanmamasının nedeni seed eksikliği değil, maliyet/etki girdilerinin verilmemesidir.

Tekrarlanabilirlik doğruluğu kanıtlamaz

Yanlış model de kusursuz biçimde tekrar edilebilir. Tekrarlanabilirlik inceleme ve tanılamayı mümkün kılar; verification/validation'ın yerine geçmez. Bunun tersine istatistiksel olarak makul görünen bir çıktı da kaynak izi kayıpsa savunulabilir bir rapor sayılmaz.

İyi deney kaydı, aynı koşuyu tekrar çalıştırmanın yanı sıra sonucu sorgulamayı sağlar. Model farkı, parametre farkı, ortam farkı ve yöntem farkı birbirine karıştırılmadığında araştırma daha kontrollü olur.

Kaynak ve yayın notu

AI desteğiyle hazırlanmıştır. İçerik yöntem açıklamasıdır; yayımlanmış Risk Studio runtime sözleşmesi veya performans raporu değildir.

Yöntem yazısı · Örnekler eğitim amaçlıdır. Risk Studio konseptine ait çalışan ürün sonuçları değildir.

Örnek modeli incele ↗