Ders 12 / 12
Kenar ve Aygıt Üzerinde Çıkarım
Modeli isteğin kaynağına taşımanın isabetten ne götürdüğünün ve hangi görevde önce götürdüğünün sayılması: aygıta yazılan sayı beştir, bırakılan şey bölge özniteliğini üreten 341 ile 539 satırlık geçmiştir ve o geçmiş bırakıldığında iki sınıflı görev 0,8067'de kalırken üç kademeli görev 0,4833'ten 0,4733'e iner. Nicemleme süpürmesi aynı sırayı verir: iki sınıflı görev seviye 4'e kadar tek bir tahmin oynatmaz, üç kademeli görev seviye 16'da iki ve seviye 8'de beş tahmin oynatır, seviye 2'de ikisi 0,3833 ile 0,2250'ye çöker. Kenarda çalıştırmanın kazandırdığı bağımsızlık doğru yanıt sayısıyla ölçülür: ağ kesintisi payı 0,20'ye çıktığında merkezî kurulumun doğru yanıtı 484'ten 391'e ve 290'dan 234'e iner, kenardaki 484 ile 284'te sabit kalır; iki kurulumun eşitlendiği kesinti payı iki sınıflı görevde 0,0000, üç kademeli görevde 0,0207'dir. Ders kursun kapanışıdır ve on iki dersin sayılarını tek tabloda toplar.
İçindekiler
Bir önceki ders isteği sunucu tarafında ucuzlattı: toplu boyut iki yüze çıktığında tahmin başına okunan satır 22,00’ye indi. Beş derste model paketlendi, yerleştirildi ve ölçeklendi; beşinin altında aynı sessiz varsayım duruyordu — model, isteğin doğduğu yerden ağ üzerinden erişilebilir bir uçtadır. O ağ koptuğunda tahmin başına maliyet tanımsızdır, çünkü tahmin yoktur.
Bu ders modeli isteğin kaynağına taşır. Taşınacak şey küçüktür: üç ağırlık. Taşınamayan şey o ağırlıkların çarptığı özniteliği üreten geçmiştir. Ders önce onu sayar, sonra geçmişin bırakılmasının ve nicemlemenin (quantisation) iki görevden ne götürdüğünü ölçer, en sonunda kenarın bağımsızlığını yanıtlanan istek olarak yazar.
- ED55. Kaynak, hat, model ve küçültme adımları kurgudur; hiçbir kenar aygıtı, çalışma zamanı, hızlandırıcı donanım ya da bulut servisi adı yazılmaz. Tohum 20260218.
- ED56. Etiket dengesizdir:
{0: 1752, 1: 448}, taban sınıf oranı 0,7964; sınama kümesi 600 satır, adım 0,0017. - ED57. Nicemleme ve damıtma (distillation) yordamı Model API’leri ile Uygulama Geliştirme kursunda ölçüldü; tekrarlanmaz, sayıları girdidir.
- ED58. Küçültme iki adımdır: bölge geçmişi aygıtta olmadığı için
bolge_ortdüşer ve model dokuz adaylık ızgarada yeniden eğitilir; ardından özniteliklerseviyeayrı değere indirgenir. - ED59. İki görev ölçülür: görev A iki sınıflı (eşik 40), görev B üç kademeli (eşik 20 ve 40).
- ED60. Ağ kesintisi payı
p, isteklerinppayının merkezden hiç yanıt alamaması demektir; kenar tamamını yanıtlar. İkisini ortak birimle karşılaştıran tek sayı doğru yanıt sayısıdır (yanıtlanan istek çarpı isabet).
Aygıta Taşınamayan Geçmiş
İlk blok kaynağı, hattı ve iki görevi kurar; iki modeli ayrı eğitir ve seviyeyi süpürür.
# KURGUDUR. Olcum aginin sayac okumalari , hattin ilk uc asamasi , oznitelik # yolu , uc agirlikli esik modeli ve kucultme adimlari ders icinde uretilir; # hicbir kenar aygiti , calisma zamani ya da donanim cagrilmaz. Tohum 20260218. TOHUM, M32 = 20260218, 0xFFFFFFFF def uretec(t): x = ((t ^ (t >> 16)) * 2246822507) & M32 x = ((x ^ (x >> 13)) * 3266489909) & M32 s = [(x ^ (x >> 16)) & M32] def sonraki(): s[0] = (s[0] * 1664525 + 1013904223) & M32 return s[0] / 4294967296 return sonraki BOLGE = ["dogu", "bati", "kuzey", "guney", "merkez"] TIP = ["mesken", "isyeri"] DONEM = [f"2026-{a:02d}" for a in range(1, 13)] ABONE = {} for i in range(200): r = uretec(TOHUM + 37 * i) ABONE[f"A{i + 1:03d}"] = {"bolge": BOLGE[int(r() * 5)], "tip": TIP[int(r() * 2)], "baslangic": 10000 + int(r() * 60000)} def kaynak_uret(): kayit = [] for i, (ab, a) in enumerate(ABONE.items()): e = a["baslangic"] for d in DONEM: r = uretec(TOHUM + 101 * i + 7 * DONEM.index(d)) e += 4 + int(r() * 46) kayit.append({"abone": ab, "donem": d, "bolge": a["bolge"], "tip": a["tip"], "endeks": e, "birim": "m3"}) return kayit def a3_tuketim(kayit): tablo = {(k["abone"], k["donem"]): k for k in kayit} cikti = [] for k in kayit: i = DONEM.index(k["donem"]) onceki = tablo.get((k["abone"], DONEM[i - 1])) if i else None if onceki is not None: cikti.append(dict(k, m3=int(k["endeks"]) - int(onceki["endeks"]))) return cikti EGITIM, SINAMA, ESIK = DONEM[1:9], DONEM[9:], 40 def oznitelikler(kayitlar): """Egitim yolu tam gecmisi gorur. Agirliktan bagimsiz , bir kez hesaplanir.""" sirali = sorted(kayitlar, key=lambda k: DONEM.index(k["donem"])) ab, bo = {}, {} for k in sirali: ab.setdefault(k["abone"], []).append((DONEM.index(k["donem"]), k["m3"])) bo.setdefault(k["bolge"], []).append((DONEM.index(k["donem"]), k["m3"])) def ortalama(dizi, i): secili = [v for d, v in dizi if d < i] return round(sum(secili) / len(secili), 4) if secili else 0.0 return {(k["abone"], k["donem"]): { "abone_ort": ortalama(ab[k["abone"]], DONEM.index(k["donem"])), "bolge_ort": ortalama(bo[k["bolge"]], DONEM.index(k["donem"])), "isyeri": 1 if k["tip"] == "isyeri" else 0} for k in kayitlar} def puan(o, w): return w[0] * o["abone_ort"] + w[1] * o["bolge_ort"] + w[2] * o["isyeri"] IZGARA = [(a, b, c) for a in (0.6, 0.8, 1.0) for b in (0.0, 0.2, 0.4) for c in (0, 4, 8)] KENAR_IZGARA = [w for w in IZGARA if w[1] == 0.0] # bolge gecmisi aygitta yok TUM = a3_tuketim(kaynak_uret()) OZ = oznitelikler(TUM) M3 = {(k["abone"], k["donem"]): k["m3"] for k in TUM} EGK = [c for c in M3 if c[1] in EGITIM] SNK = [c for c in M3 if c[1] in SINAMA] N = len(SNK) ALT_A, UST_A = min(o["abone_ort"] for o in OZ.values()), max(o["abone_ort"] for o in OZ.values()) ALT_B, UST_B = min(o["bolge_ort"] for o in OZ.values()), max(o["bolge_ort"] for o in OZ.values()) def gorev_a(v): return 1 if v > ESIK else 0 def gorev_b(v): return 0 if v <= 20 else (1 if v <= ESIK else 2) def egit(gorev, izgara, oz): return max(izgara, key=lambda w: sum(1 for c in EGK if gorev(puan(oz[c], w)) == gorev(M3[c]))) def isabet(gorev, w, oz): return round(sum(1 for c in SNK if gorev(puan(oz[c], w)) == gorev(M3[c])) / N, 4) def payi(gorev): return round(max(sum(1 for c in SNK if gorev(M3[c]) == s) for s in (0, 1, 2)) / N, 4) def nicem_oz(seviye): def q(x, alt, ust): adim = (ust - alt) / (seviye - 1) return alt + round((x - alt) / adim) * adim return {c: {"abone_ort": q(o["abone_ort"], ALT_A, UST_A), "bolge_ort": q(o["bolge_ort"], ALT_B, UST_B), "isyeri": o["isyeri"]} for c, o in OZ.items()} WA, WB = egit(gorev_a, IZGARA, OZ), egit(gorev_b, IZGARA, OZ) WAK, WBK = egit(gorev_a, KENAR_IZGARA, OZ), egit(gorev_b, KENAR_IZGARA, OZ) bs = [sum(1 for c in M3 if ABONE[c[0]]["bolge"] == b) for b in BOLGE] print(f"sunum ufkunda en kalabalik sinif payi: gorev A {payi(gorev_a)} , gorev B {payi(gorev_b)}") print(f"merkez modeli A {WA} isabet {isabet(gorev_a, WA, OZ)}" f" | B {WB} isabet {isabet(gorev_b, WB, OZ)}") print(f"kenar modeli A {WAK} isabet {isabet(gorev_a, WAK, OZ)}" f" | B {WBK} isabet {isabet(gorev_b, WBK, OZ)}") print(f"aygita yazilan sayi 5 (3 agirlik + abonenin 2 toplami) ;" f" birakilan bolge gecmisi {min(bs)}-{max(bs)} satir") t0a = {c: gorev_a(puan(OZ[c], WA)) for c in SNK} t0b = {c: gorev_b(puan(OZ[c], WB)) for c in SNK} print("\nseviye farkli deger A degisen A isabet B degisen B isabet") for s in (256, 16, 12, 8, 4, 2): oz = nicem_oz(s) ta = {c: gorev_a(puan(oz[c], WA)) for c in SNK} tb = {c: gorev_b(puan(oz[c], WB)) for c in SNK} fd = (len(set(o["abone_ort"] for o in oz.values())) + len(set(o["bolge_ort"] for o in oz.values()))) print(f"{s:>6} {fd:>12} {sum(1 for c in SNK if ta[c] != t0a[c]):>9}" f" {isabet(gorev_a, WA, oz)} {sum(1 for c in SNK if tb[c] != t0b[c]):>9}" f" {isabet(gorev_b, WB, oz)}")
sunum ufkunda en kalabalik sinif payi: gorev A 0.8067 , gorev B 0.4833
merkez modeli A (0.6, 0.4, 0) isabet 0.8067 | B (0.6, 0.4, 4) isabet 0.4833
kenar modeli A (0.6, 0.0, 0) isabet 0.8067 | B (1.0, 0.0, 4) isabet 0.4733
aygita yazilan sayi 5 (3 agirlik + abonenin 2 toplami) ; birakilan bolge gecmisi 341-539 satir
seviye farkli deger A degisen A isabet B degisen B isabet
256 199 0 0.8067 0 0.4833
16 21 0 0.8067 2 0.48
12 16 0 0.8067 0 0.4833
8 11 0 0.8067 5 0.4783
4 7 0 0.8067 0 0.4833
2 4 402 0.3833 600 0.225
Dördüncü satır dersin ilk cümlesidir: aygıta yazılan sayı beştir, bırakılan şey 341 ile 539 satırlık bölge geçmişidir. Kenara taşınamayan şey model değil, özniteliği üreten geçmiştir. Bedeli ayrışır: görev A’da isabet 0,8067’de kalır, görev B’de 0,4733’e iner.
İki isabeti tabanın yanına koymak bedelin adını değiştirir. Etiket dengesizdir, taban sınıf oranı 0,7964‘tür; sunum ufkunda görev A’nın en kalabalık sınıfı 0,8067, görev B’nin en kalabalık kademesi 0,4833 pay tutar ve merkez ikisinde de tam o payı verir. Görev A’daki sıfır düşüş bundan gelir: küçültmenin oradan götüreceği bir şey yoktur. Kenar modeli ise görev B’de tabanın 0,0100 altına düşer — her satıra en kalabalık kademeyi diyen bir yordamdan altı adım kötü. Küçültmenin bedeli isabetteki düşüş değil, tabanın hangi yanında kalındığıdır.
Nicemleme aynı sırayı bağımsız doğrular. Görev A seviye 4’e kadar tek bir tahmin oynatmaz; görev B seviye 16’da iki, seviye 8’de beş tahmin oynatır. Bu oynamalar 0,0017’lik çözünürlüğün hemen üstündedir ve süpürme monoton değildir, bu yüzden bozulmanın başladığı yer “16 ile 2 arasında” diye yazılır. Seviye 2’de ikisi de tabanın altına iner: görev A 0,3833 (0,4234 altı), görev B 0,2250 (0,2583 altı). Küçültme ayrımı siler, en ince görevi önce siler ve yeterince ilerlediğinde modeli taban çizgisinin altına taşır.
Kesinti Altında Yanıtlanan İstek
Küçültmenin götürdüğü yazıldı; kazandırdığı yazılmadı.
# Bu blok ilk bloktaki N , OZ , WA , WB , WAK , WBK , gorev_a , gorev_b , # isabet , nicem_oz , uretec ve TOHUM tanimlarini surdurur. mA, mB = isabet(gorev_a, WA, OZ), isabet(gorev_b, WB, OZ) kA, kB = isabet(gorev_a, WAK, OZ), isabet(gorev_b, WBK, OZ) r = uretec(TOHUM + 733) kesinti = [r() for _ in range(N)] print("kesinti payi yanitlanan merkez A kenar A merkez B kenar B") for p in (0.00, 0.02, 0.05, 0.10, 0.20): y = sum(1 for x in kesinti if x >= p) print(f"{p:>12.2f} {y:>10} {round(y * mA):>8} {round(N * kA):>7}" f" {round(y * mB):>8} {round(N * kB):>6}") print(f"donus noktasi: gorev A {1 - kA / mA:.4f} , gorev B {1 - kB / mB:.4f}") print("kenar modeli nicemlenince seviye 8: gorev B", isabet(gorev_b, WBK, nicem_oz(8)), ", seviye 4:", isabet(gorev_b, WBK, nicem_oz(4)))
kesinti payi yanitlanan merkez A kenar A merkez B kenar B
0.00 600 484 484 290 284
0.02 589 475 484 285 284
0.05 566 457 484 274 284
0.10 536 432 484 259 284
0.20 485 391 484 234 284
donus noktasi: gorev A 0.0000 , gorev B 0.0207
kenar modeli nicemlenince seviye 8: gorev B 0.4767 , seviye 4: 0.4533
Kenar sütunları sabittir ve bu kenarın tek gerçek kazancıdır: kesinti payı ne olursa olsun 600 isteğin hepsi yanıtlanır, merkezde yanıtlanan istek 485’e iner. Doğru yanıt görev A’da 484’ten 391‘e, görev B’de 290’dan 234‘e düşer. İki kurulum görev A’da 0,0000, görev B’de 0,0207 kesinti payında eşitlenir: bu payın üstünde, tabanın altına düşmüş kenar modeli yine de daha çok doğru yanıt üretir. Bağımsızlık bir isabet sayısı değildir; isabetle ancak doğru yanıt sayısı üzerinden aynı tabloya girer. Son satır iki küçültmeyi birlikte gösterir: seviye 8’de 0,4767, seviye 4’te 0,4533.
Özet
- Aygıta yazılan sayı beştir; taşınamayan şey 341 ile 539 satırlık bölge geçmişidir.
- Geçmişin bırakılması görev A’da isabeti değiştirmez, görev B’de 0,4733‘e indirir. Taban sınıf oranı 0,7964, görev B’nin en kalabalık kademesi 0,4833’tür: kenar modeli tabanın 0,0100 altındadır, A’daki sıfır ise dayanıklılık değil ölçüsüzlüktür.
- Nicemleme aynı sırayı doğrular: görev A seviye 4’e kadar tek bir tahmin oynatmaz, görev B seviye 16’da iki ve seviye 8’de beş oynatır; seviye 2’de ikisi 0,3833 ve 0,2250’ye çöker.
- Kenar, kesinti payı ne olursa olsun 600 isteğin hepsini yanıtlar; merkezin doğru yanıtı payı 0,20’de 484’ten 391‘e ve 290’dan 234‘e iner. İki kurulum görev A’da 0,0000, görev B’de 0,0207 kesinti payında eşitlenir ve kenarın gerekçesi o orandır.
Kurs Kapanışı
Satırlar ortak birim taşımaz; hangi ölçütle okunduğu ders adının yanındadır ve parantezdeki fark sabitlenmiş kurulum eksi tabandır.
| Ders | Sabitlemesiz taban | Sabitlenmiş kurulum | Bedel |
|---|---|---|---|
yeniden-uretilebilirlik/01 — üç koşumun sınama isabeti |
sabitleme yok: 0,8067 / 0,7955 / 0,8078 (yayılım 0,0123) | üç koşumun ağırlığı aynı: (0.6, 0.4, 0) |
isabet sınama kümesinin taban oranının kendisi, duyarlılık 0,0000 |
yeniden-uretilebilirlik/02 — bir sayıyı üreten koşumu bulmak |
kayıtsız: 1, 2, 3, 5, 18 koşum tekrarı | tam kayıtla beşinde de 0 (−18’e kadar) | 162 alan; yalnız ölçüt tutan defter beş aramadan birini kısaltır |
yeniden-uretilebilirlik/03 — belirsiz koşum sayısı |
sürümsüz: 1 ad, belirsiz koşum 4 | içerik adlı: 3 ad, belirsiz koşum 0 (−4) | 6540 satır (tarih adlı şema 8740); çıktı imzası yutulan yinelenmeyi görmez |
yeniden-uretilebilirlik/04 — aynı ağırlıkla sınama isabeti |
sunum yolu, pencere 1: 0,7800 | öznitelik deposu, pencere 2: 0,8067 (+0,0267) | 6600 saklanan değer ve dördüncü aşama; sapma 600 özniteliği değiştirir, tahmini 16 satırda çevirir |
yeniden-uretilebilirlik/05 — üç koşumun aynılığı |
sabitleme yok: [0,8067 , 0,7955 , 0,8078] | üç kalemle: [0,8067 x 3] | 15 kalem kaydı, 81 aday, 6600 satır; ızgara ile yuvarlamanın katkısı ölçülemez |
yeniden-uretilebilirlik/06 — üretimdeki modelin koşumunu bulmak |
deftersiz: 16 kayıt, 12 aday | defterle: 1 kayıt (−15), 1 aday (−11) | 21 kayıt; aynı ağırlıklı koşumlar 0,7950 ve 0,8067 bildirir |
egitim-ve-dagitim/01 — eğitim satırı |
geç gelen 40 satırla: 1520 | uçtan uca koşum: 1600 (+80), bayat adım 0 | 13800 işlenen satır; yedi kurulumun yedisi de aynı 0,8067’yi bildirir |
egitim-ve-dagitim/02 — durdurulan bozulma sınıfı |
kapısız: 0 / 6 | veri kapısı 4, model kapısı 3, kod kapısı 0 | durdurulan dört koşumun ikisi zaten aynı modeli verecekti; geç gelen hiçbir kapıda durmaz |
egitim-ve-dagitim/03 — 1800 çağrının düşeni |
sözleşmesiz: 600, alan adı değişince 1200 | sözleşmeli: 0 (−1200) | 5 bildirim; eşik alanı düştüğünde hiçbir çağrı düşmez ve 1200 yanıt sessizce değişir |
egitim-ve-dagitim/04 — tahmin başına okunan satır |
kalıbı yazılmamış çağrı: 463,87 | toplu: 11,00 (−452,87), akış: 3,67 | toplu kalıpta yanıt bir dönem yaşlanır ve tek tahmin kullanıldığında 200’ün 199’u boşa üretilir; akışta 1600 kullanılmayan tazeleme |
egitim-ve-dagitim/05 — tahmin başına satır ve bekleme |
boyut 1: 463,87, bekleme 0 varış | boyut 200: 22,00 (−441,87), bekleme 199 varış (+199) | dönem başına 8 istek dolmayan grupta bekler ve sütunda görünmez; hızlandırıcının dönüşü 80 istek |
egitim-ve-dagitim/06 — doğru yanıt, kesinti payı 0,20 |
merkez: 391 (A), 234 (B) | kenar: 484 (+93), 284 (+50) | bölge geçmişi bırakılır, görev B 0,4833’ten 0,4733’e iner; kesişme noktası 0,0207 |
Tablo tek bir kuralın on iki kez yazılmasıdır. Bir modelin sayısı onu üreten yolla birlikte
anlamlıdır; yeniden üretilemeyen sayı bir ölçüm değil bir anıdır. yeniden-uretilebilirlik/01’de
aynı iş üç ayrı sayı verir ve ağırlık üçünde de aynıdır; /03’te aynı ad üç ayrı içerik taşır;
/06’da aynı ağırlıklı koşumlar 0,7950 ve 0,8067 bildirir. Değişen model değil, sayının hangi
yolla üretildiğidir.
İkinci iddia aynı tablodan okunur: sabitlemek de bedel getirir ve katkısı gösterilemeyen
sabitleme ölçülmemiş bir güvence verir. yeniden-uretilebilirlik/05’te üç kalem yeter ve ızgara
ile yuvarlamanın katkısı ölçülemez; /02’de yalnız ölçüt tutan defter beş aramadan yalnız birini
kısaltır; egitim-ve-dagitim/02’de veri kapısının durdurduğu dört koşumun ikisi zaten aynı modeli
verecekti; /04’te bayatlığın ölçülememesi kalıbın güvencesi değil, karar puanının eşiğe 7,6468
uzaklıkta durmasının sonucudur. Dört satırda ödenen sabitlemenin karşılığı alınmamış ya da
gösterilememiştir.
Üçüncü iddia tek bir satırda en keskin hâline gelir. yeniden-uretilebilirlik/04‘te aynı ağırlık
üçlüsüyle isabet eğitim yoluyla 0,8067, sunum yoluyla 0,7800‘dür; model hiç değişmemiştir
ve 0,0267’nin tamamı özniteliğin hangi geçmişle hesaplandığından gelir. egitim-ve-dagitim/03 bunun
sessiz eşidir: eşik alanı paketten düştüğünde hiçbir çağrı düşmez, 1200 çağrının 1200’ü yanıt
değiştirir. Modeli sınamak yetmez; sunumdaki öznitelik yolu ve paketin bildirimi de
sınanmalıdır.
Otuz dokuz derste veri alındı, taşındı, saklandı ve bölüştürüldü; sonra bir modele bağlandı, yeniden üretilebilir kılındı, paketlendi, sunuldu, ölçeklendi ve aygıta taşındı. Hiçbiri modelin çıktıktan sonrasını sormadı. Dünya değişir ve girdi kaymaya başlar; etiket haftalar sonra gelir, yani bugünün isabeti bugün ölçülemez; ve modelin ne zaman emekliye ayrılacağı hiçbir yerde yazılı değildir. Sonraki kurs üretimdeki modeli bir teslim değil bir gözlem konusu sayar ve bu üç soruyu ölçer.
İlerlemeni kaydetmek ve not almak için Giriş yap
Notlarım
Not almak için giriş yapmalısın.