---
title: 'Kapalı ve Açık Ağırlıklı Modeller'
source: 'https://academia.sh/tr/kurslar/yz-muhendisligine-giris/kapali-ve-acik-agirlikli-modeller'
course: 'Yapay Zekâ Mühendisliğine Giriş'
language: tr
updated: '2026-08-17T18:06:36+00:00'
license: 'CC BY-SA 4.0'
---

# Kapalı ve Açık Ağırlıklı Modeller

İki erişim biçimi üç ölçütte sayıyla karşılaştırılıyor ve her ölçüt başka bir biçimi öne çıkarıyor. Elde tutulan ayar kapalı ağırlıklı biçimde 3/9, açık ağırlıklı biçimde 9/9. Birim bedelde kapalı biçim 0,7917 isabeti istek başına 38,3 belirteçle tutuyor, açık biçim aynı isabete altı örnek eklendikten sonra 176,3 belirteçle ulaşıyor ve oran 4,60 çıkıyor. Veri sınırında kapalı biçimde 24/24 istek, 919 belirteç ve 72 sayısal alan kurum sınırını aşıyor, açık biçimde hiçbiri aşmıyor. İki ölçüt açık, biri kapalı ağırlıklı biçimi seçiyor ve üç sayının ortak birimi yok.

Önceki derste eklenen her düzenek modelin çevresine kuruldu ve modele erişimin verili olduğu
varsayıldı. O erişimin kendisi bir karardır. Bir dil modeline yalnız uzaktaki bir **model uç
noktası** üzerinden ulaşılabilir; ya da modelin **ağırlıkları** elde tutulur ve kendi donanımında
çalıştırılır. İlkine **kapalı ağırlıklı**, ikincisine **açık ağırlıklı** erişim denir.

Bu ayrım genelde bir tercih tartışması gibi konuşulur ve tartışma çoğu zaman iki tarafın da
doğru olduğu yerde biter, çünkü taraflar farklı ölçütlerden konuşur. Bu ders onu üç ölçütte
sayıya çevirir: elde kalan ayar sayısı, aynı işi bitirmenin belirteç bedeli, ve kurum sınırını
aşan veri. Üçü de bir mühendisin kendi tarafından, modelin içine hiç bakmadan sayabileceği
büyüklüklerdir. Hiçbir model, sağlayıcı ya da lisans adı geçmez, çünkü ölçülen şey ürün değil
**erişim biçiminin yapısıdır**; adlar beş yılda değişir, yapı değişmez.

- **DL58. Görev kümesi ve benzetici öncekiyle aynıdır**: 24 kurgu destek talebi beş sınıfa
  ayrılır, ölçü isabettir. Talepler, sınıflar ve okumalar **kurgudur**.
- **DL59. İki erişim biçimi tek bir farkla modellenir:** benzeticinin **tanıdık öbek kümesinin
  genişliği**. Kapalı biçimde geniş, açık biçimde dardır. Bu, kurgunun varsayımıdır ve gerçek
  modellerin yeteneği hakkında bir iddia değildir; ölçülen şey farkın **bedele nasıl döndüğüdür**.
- **DL60. Açık biçimin düzeneği örnek eklemektir.** İsteme konan her kurgu örnek 23 belirteç
  tutar ve tanıdık öbek kümesini bir basamak genişletir.
- **DL61. Elde tutulan denetim, dokuz ayarlık kurgu listede** her ayarın hangi biçimde
  kararlaştırılabildiği sayılarak ölçülür.
- **DL62. Veri sınırı üç sayıyla ölçülür:** kurum sınırını aşan istek sayısı, belirteç sayısı ve
  sayısal alan sayısı. Sayısal alanlar kurgu abone numaraları ile sayaç okumalarıdır; bu ölçüt
  verinin niteliğini değil, sınırı aşan miktarını sayar.
- **DL63. Belirsizlik iki koşumla ölçülür**; ikinci koşum tohum 20260219 ile alınır. İki biçim
  aynı benzeticiyi paylaştığı için, aynı genişlikte aynı sayıyı vermeleri beklenir ve bu tabloda
  bir denetim noktası olarak kullanılır.
- **DL64. Ölçütler ayrı ayrı okunur, toplanmaz.** Ayar sayısı, belirteç sayısı ve sınırı aşan
  istek sayısı ortak bir birime çevrilmez; her ölçütün kazananı ayrı yazılır.

## Birim Bedel: Aynı İsabet Kaça Mal Oluyor

```python
# ORTAK -- KURGUDUR. Iki erisim bicimi ayni benzetici uzerinde kurulur; hicbir model,
# saglayici ya da lisans anilmaz. Kurgudaki tek fark tanidik obek kumesinin genisligidir.
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


def belirtecle(metin):
    """Kurgu belirtecleyici: harf obekleri dorder, rakam obekleri ikiser bolunur."""
    cikti, tampon = [], ""
    for ch in metin + " ":
        if ch.isalnum():
            tampon += ch
            continue
        if tampon:
            n = 2 if tampon.isdigit() else 4
            cikti += [tampon[i:i + n] for i in range(0, len(tampon), n)]
            tampon = ""
        if ch.strip():
            cikti.append(ch)
    return cikti


BAS = [("sayac okunmadi tahmini fatura cikti", "olcum"),
       ("fatura tutari gecen aya gore iki kat cikti", "odeme"),
       ("gece boyunca su basinci dustu", "tesisat"),
       ("planli kesinti bildirimi ulasmadi", "kesinti"),
       ("abonelik devri sayaca islenmedi", "sozlesme")]
EK = ["sayacin numarasi degistirilmis olabilir", "adres bilgisi eski gorunuyor",
      "onceki ay ayni sorun yasanmadi", "sayaca ulasilamiyor kapi kapali",
      "kesinti suresi beklenenden uzun surdu", "otomatik talimat sayacta yok"]
SOZLUK = {"kesinti": ["kesi", "bild"], "olcum": ["okun", "olcu", "tahm"],
          "tesisat": ["basi", "dust", "tesi", "vana"],
          "odeme": ["fatu", "odem", "tali", "tuta"],
          "sozlesme": ["abon", "adre", "devr", "sozl"]}
SINIFLAR = list(SOZLUK)
ORNEK_BELIRTEC = 23                             # isteme eklenen her kurgu ornegin bedeli
TALEP = []
for i in range(24):
    r = uretec(TOHUM + 31 * i)
    a, b = 100000 + int(r() * 380000), 100000 + int(r() * 380000)
    TALEP.append({"no": 4100 + i, "sinif": BAS[i % 5][1],
                  "metin": f"abone {4100 + i}: {BAS[i % 5][0]}, {EK[(5 * i + 2) % 6]}."
                           f" ana sayac {a} ara sayac {b}."})


def cagir(t, genislik, tohum):
    """Benzetici: tanidigi obeklerle etiket secer; ilk iki aday esitse belirsiz doner."""
    bel, sz = belirtecle(t["metin"]), {s: set(o[:genislik]) for s, o in SOZLUK.items()}
    p = sorted(((sum(b in sz[s] for b in bel), s) for s in SINIFLAR), key=lambda x: (-x[0], x[1]))
    if p[0][0] == 0 or p[0][0] == p[1][0]:
        return "belirsiz"                       # iki etiket birden yazilir, bicim denetimi gecmez
    r = uretec(tohum + 1009 * genislik + 7 * t["no"])
    return p[1][1] if r() < 0.14 else p[0][1]


def olc(genislik, ornek, tohum=TOHUM):
    dogru = belirtec = 0
    for t in TALEP:
        dogru += cagir(t, genislik, tohum) == t["sinif"]
        belirtec += len(belirtecle(t["metin"])) + ornek * ORNEK_BELIRTEC
    return dogru / 24, belirtec / 24


print("erisim bicimi      ornek  isabet A  isabet B  cagri  belirtec/istek")
for ad, g, o in (("kapali agirlikli", 4, 0), ("acik agirlikli  ", 1, 0),
                 ("acik agirlikli  ", 2, 2), ("acik agirlikli  ", 3, 4),
                 ("acik agirlikli  ", 4, 6)):
    a, bel = olc(g, o)
    b = olc(g, o, TOHUM + 1)[0]
    print(f"{ad}     {o}    {a:.4f}    {b:.4f}   1.0000     {bel:>5.1f}")
```

```
erisim bicimi      ornek  isabet A  isabet B  cagri  belirtec/istek
kapali agirlikli     0    0.7917    0.7083   1.0000      38.3
acik agirlikli       0    0.1250    0.1667   1.0000      38.3
acik agirlikli       2    0.3750    0.3750   1.0000      84.3
acik agirlikli       4    0.5833    0.6667   1.0000     130.3
acik agirlikli       6    0.7917    0.7083   1.0000     176.3
```

Çıplak çağrıda iki biçim aynı belirteci harcıyor ve aynı sayıyı vermiyor: kapalı **0,7917**, açık
**0,1250**. Fark modelin kendisinden değil, açık biçimde koşan benzeticinin dar öbek kümesinden
geliyor — kurgunun varsayımı budur. Önemli olan bundan sonrası: fark **kapatılabilir bir
farktır** ve kapatmanın fiyatı belirteçle yazılıdır.

İsteme iki örnek eklendikçe isabet **0,3750**, **0,5833** ve **0,7917** basamaklarını çıkıyor.
Altıncı örnekte açık biçim kapalı biçimin sayısına tam olarak yetişiyor: **0,7917** karşısında
**0,7917**, ve ikinci koşumda da **0,7083** karşısında **0,7083**. İki biçim artık aynı işi
yapıyor. Yapmadıkları tek şey aynı fiyata yapmak: istek başına **38,3** belirteç karşısında
**176,3** belirteç. Çağrı sayısı ikisinde de bir, gecikme sınıfı ikisinde de tek çağrıdır; fark
tamamen istemin uzunluğundadır.

Merdivenin okunması gereken yeri şurası: **bedel modelden isteme taşındı**. Açık ağırlıklı biçimde
modelin bilmediği şey, her istekte yeniden anlatılıyor. Bu, düzeneğin genel yasasının bu dersteki
görünümüdür — bir yerde eksik olan şey başka bir yerde belirteçle ödenir, ve o ödeme her istekte
tekrarlanır. Yirmi dört isteklik bir kümede fark 3.312 belirteçtir; istek sayısı büyüdükçe fark
doğru orantılı büyür, çünkü örnekler önbelleğe alınmadıkça her çağrıda yeniden gönderilir.

Bir de tabloda görünmeyen bir sayı var. Benzetici, ilk iki adayın puanı eşit olduğunda tek bir
etiket yerine iki etiketi birden yazıyor ve biçim denetiminden geçemiyor; bu yanıtlar isabetsiz
sayılıyor. Dar öbek kümesiyle bu durum sık, geniş kümeyle seyrektir. Yani açık biçimin düşük
sayısının bir kısmı yanlış etiketten değil, **kullanılamayan çıktıdan** geliyor. Ölçü tek sayıya
indirgendiğinde bu ayrım kayboluyor, oysa iki başarısızlık türünün ürün tarafındaki karşılığı
farklıdır: yanlış etiket sessizce yanlış bir işi başlatır, biçim bozukluğu ise duran bir istektir.

## Elde Tutulan Denetim ve Veri Sınırı

```python
AYAR = [("agirliklarin kendisi", 0, 1), ("belirtecleyici", 0, 1), ("surum sabitleme", 0, 1),
        ("baglam penceresi siniri", 0, 1), ("hiz siniri", 0, 1), ("kesintide geri alma", 0, 1),
        ("dagilim sicakligi", 1, 1), ("durdurma kosulu", 1, 1), ("cikti uzunlugu siniri", 1, 1)]
KAPALI, ACIK = sum(k for _, k, _ in AYAR), sum(a for _, _, a in AYAR)
print("ayar                     kapali agirlikli  acik agirlikli")
for ad, k, a in AYAR:
    print(f"{ad:<25}      {'elde' if k else '  - ':^4}          {'elde' if a else '  - ':^4}")
print(f"olcut 1 -- elde tutulan ayar: kapali {KAPALI}/{len(AYAR)}, acik {ACIK}/{len(AYAR)}")
kimlik = sum(sum(w.isdigit() for w in t["metin"].replace(":", " ").replace(".", " ").split())
             for t in TALEP)
disari = sum(len(belirtecle(t["metin"])) for t in TALEP)
print(f"olcut 3 -- kurum sinirini asan: kapali {len(TALEP)}/{len(TALEP)} istek,"
      f" {disari} belirtec, {kimlik} sayisal alan")
print(f"                                acik   0/{len(TALEP)} istek, 0 belirtec, 0 sayisal alan")
```

```
ayar                     kapali agirlikli  acik agirlikli
agirliklarin kendisi             -           elde
belirtecleyici                   -           elde
surum sabitleme                  -           elde
baglam penceresi siniri          -           elde
hiz siniri                       -           elde
kesintide geri alma              -           elde
dagilim sicakligi              elde          elde
durdurma kosulu                elde          elde
cikti uzunlugu siniri          elde          elde
olcut 1 -- elde tutulan ayar: kapali 3/9, acik 9/9
olcut 3 -- kurum sinirini asan: kapali 24/24 istek, 919 belirtec, 72 sayisal alan
                                acik   0/24 istek, 0 belirtec, 0 sayisal alan
```

Dokuz ayarın **üçü** kapalı ağırlıklı erişimde elde kalıyor: dağılım sıcaklığı, durdurma koşulu
ve çıktı uzunluğu sınırı. Bunlar istekle birlikte gönderilen ayarlardır. Kalan **altısı** elde
değildir ve hepsinin ortak yanı vardır: ağırlıklar, belirteçleyici, sürüm, pencere sınırı, hız
sınırı ve kesinti anında eski davranışa dönme, **modelin çalıştığı yere ait** kararlardır. Model
başkasının makinesinde çalışıyorsa o kararlar da başkasındadır. Açık ağırlıklı erişimde dokuzu da
elde kalır, çünkü çalıştıran taraf ile karar veren taraf aynıdır.

Bunun görünmeyen bir sonucu, sürümün sabitlenememesidir. Yedinci derste ölçülen uydurma oranı,
altıncı derste ölçülen görev isabeti ve bu derste ölçülen 0,7917, hepsi belirli bir davranışa
aittir. O davranış haber verilmeden değiştiğinde bütün ölçüler yeniden alınmalıdır ve eski
sayıların hiçbiri geçerli değildir. Kapalı ağırlıklı erişimde ölçünün ömrü, elde olmayan bir
kararın ömrüyle sınırlıdır.

Üçüncü ölçüt aynı tabloda okunuyor. Kapalı biçimde yirmi dört isteğin **24**'ü, **919** belirteç
ve **72** sayısal alan kurum sınırını aşıyor; bu sayısal alanlar kurgu abone numaraları ile sayaç
okumalarıdır. Açık biçimde üç sayı da sıfırdır. Bu ölçüt ikisi arasında bir derece farkı değil,
**bir eşik farkıdır**: sınırı aşan veri ya vardır ya yoktur.

Tabloyu tek yönlü okumamak gerekir. Kapalı ağırlıklı erişimde elde olmayan altı ayarın karşılığında
kuruma geçmeyen bir yük vardır: modelin çalıştırılması, donanımın ayrılması, sürümün taşınması ve
kesintinin karşılanması. Açık ağırlıklı erişimde bu dokuz ayar elde kalır çünkü **dokuz sorumluluk
da elde kalır**. Ölçüt "elde tutulan denetim" diye adlandırıldığında bu simetri görünmez olur;
sayının yanına ne kazandırdığı kadar ne yüklediği de yazılmalıdır. Bu dersin ölçtüğü şey hangi
biçimin iyi olduğu değil, iki biçimin **hangi ölçütte ayrıldığıdır**.

## Seçim Hangi Ölçütte Değişiyor

```python
kb, ab = olc(4, 0), olc(4, 6)
print("olcut         kapali agirlikli    acik agirlikli     kazanan")
print(f"denetim         {KAPALI}/9 ayar           {ACIK}/9 ayar          acik")
print(f"birim bedel   {kb[1]:>6.1f} belirtec    {ab[1]:>6.1f} belirtec     kapali")
print(f"veri siniri    24/24 istek        0/24 istek        acik")
print(f"ayni isabet {kb[0]:.4f} icin bedel orani {ab[1] / kb[1]:.2f}")
print(f"iki olcut acik agirlikli bicimi, biri kapali agirlikli bicimi secer;"
      f" ortak birim yok")
```

```
olcut         kapali agirlikli    acik agirlikli     kazanan
denetim         3/9 ayar           9/9 ayar          acik
birim bedel     38.3 belirtec     176.3 belirtec     kapali
veri siniri    24/24 istek        0/24 istek        acik
ayni isabet 0.7917 icin bedel orani 4.60
iki olcut acik agirlikli bicimi, biri kapali agirlikli bicimi secer; ortak birim yok
```

Seçim **birim bedel ölçütünde değişiyor**. Denetim ve veri sınırı açık ağırlıklı biçimi
seçerken, birim bedel kapalı biçimi seçiyor ve farkı küçük değil: aynı isabet için **4,60 kat**
belirteç. İki ölçüt bir tarafta, biri öbür tarafta olduğu için "çoğunluk açığı seçiyor" demek
yanlış olur, çünkü üç sayının **ortak birimi yoktur**. Ayar sayısı ile belirteç sayısı toplanamaz;
sınırı aşan istek sayısı ile ikisi de karşılaştırılamaz.

Bu, bir eksiklik değil ölçünün doğru okunmasıdır. Karar, ölçütlerin **ağırlıklandırılmasıyla**
verilir ve ağırlığı veren şey sistemin bağlamıdır. Yanıtın gecikmesinden çok verinin nereye
gittiğine bakan bir kurumda üçüncü ölçüt tek başına kararı verir ve 4,60 katlık bedel kabul edilir.
Belirteç bütçesi dar olan bir kurumda ikinci ölçüt baskındır. Aynı üç sayı, ağırlık değiştikçe iki
farklı kararı da destekler; değişen şey ölçüm değil ağırlıktır.

Kursun kuralı burada ikinci kez işliyor: verilmiş bir bileşen yüzeyinden ölçülür. Bu derste
ölçülen hiçbir sayı modelin içinden gelmedi. Ayar sayısı arayüzün neye izin verdiğinden, belirteç
sayısı isteme ne konulduğundan, sınırı aşan veri isteğin nereye gittiğinden okundu. Üçü de içine
bakılamayan bir bileşenin dışarıya bıraktığı izlerdir ve üçü de bir mühendisin kendi kodundan
sayabileceği şeylerdir. Bir erişim biçimini "daha güçlü" ya da "daha güvenli" diye nitelemek yerine
bu üç sayıyı yazmanın kazancı budur: nitelemeler tartışılır, sayılar karşılaştırılır. Sayının
yanında bedeli yazılmadığında ise karşılaştırma yine tartışmaya döner — 0,7917 iki satırda da aynı
görünür, aralarındaki 4,60 kat yalnız bedel sütununda vardır.

## Özet

- Kapalı ağırlıklı erişim dokuz ayarın 3'ünü, açık ağırlıklı erişim 9'unu elde bırakıyor; elde
  olmayan altı ayarın hepsi modelin çalıştığı yere ait kararlardır.
- Çıplak çağrıda isabet 0,7917 karşısında 0,1250; isteme altı örnek eklendiğinde açık biçim iki
  koşumda da kapalı biçimin sayısına yetişiyor (0,7917 ve 0,7083).
- Aynı isabetin bedeli istek başına 38,3 belirtece karşı 176,3 belirteç, oran 4,60 kattır; çağrı
  sayısı ve gecikme sınıfı ikisinde de aynıdır.
- Veri sınırında kapalı biçimde 24/24 istek, 919 belirteç ve 72 sayısal alan kurum sınırını
  aşıyor, açık biçimde hiçbiri aşmıyor; bu bir derece değil eşik farkıdır.
- Seçim birim bedel ölçütünde değişiyor ve üç sayının ortak birimi olmadığı için karar
  ağırlıklandırmayla verilir.

## Sonraki Adım

Bu ders iki biçimi karşılaştırdı ve kararın ağırlığa kaldığı yerde durdu. Gerçek bir seçimde
seçenek iki tane değildir ve ölçüt üç tane değildir: aynı erişim biçiminin içinde yetenek, gecikme
ve belirteç bedeli birbirinden ayrı adaylar vardır, ve mahremiyet bunların üstünde ayrı bir ölçüt
olarak durur. Sonraki ders üç adayı benzetici düzeyinde kurar, dört ölçütte sayar ve tek bir soruyu
yanıtlar: ağırlıklar değiştiğinde kazanan değişiyor mu, ve değişiyorsa hangi eşikte. Ağırlık
taraması ve normalleştirme yordamı Python ile Veri Analizi kursundaki Ortam Seçimi dersinde
ölçüldü; burada tekrarlanmayacak, yalnız sonucu kullanılacak.
