---
title: 'Erişim ile İnce Ayarın Yan Yana Ölçülmesi'
source: 'https://academia.sh/tr/kurslar/rag/erisim-ve-ince-ayar-karsilastirmasi'
course: 'Gömme Vektörleri ve Erişim Artırılmış Üretim'
language: tr
updated: '2026-08-17T18:06:36+00:00'
license: 'CC BY-SA 4.0'
---

# Erişim ile İnce Ayarın Yan Yana Ölçülmesi

Aynı iş yükünde üç ayrı görevin erişimle ve ince ayarla ayrı ayrı ölçülmesi: kırk sorguluk kurgu kümede bilgi tazeliği erişimsiz 0,0000, yalnız erişimle 0,9500, kırk sekiz örnekle ince ayarda 0,6750 çıkıyor ve örnek eklemek bu tavanı kaldırmıyor, çünkü bayat bilgi bir kapsama sorunu değildir. Biçim uyumu erişimle 0,0000 kalıyor, ince ayarla on iki örnekte 1,0000 oluyor: erişimin kazanmadığı görev budur. Alan dili erişimle 0,9500, tam kapsamlı ince ayarla 1,0000. Bedel erişimde istek başına ek belirteç ve kırk erişim adımı, ince ayarda kırk sekiz etiketli örnek. İki koşum farkı erişimsiz tabanda 0,1750, öbür üç kurulumda 0,0000.

Bir önceki ders erişim hattının tek sayısını dört duruma ayırdı ve tek sayının hangi aşamanın
bozulduğunu gizlediğini gösterdi. Ayrım şunu da açığa çıkardı: erişimin işi **isteme giren
bilgiyi** değiştirmektir. Modelin kendisine hiç dokunmaz.

Modele dokunmanın yolu vardır ve ölçülmüştür. M28/K03'ün Model API'leri ile Uygulama Geliştirme
kursunda ince ayar aynı destek görevinde denendi: taban **0,6000**, altmış örnekle istem düzeneği
**0,9667**, aynı altmış örnekle ince ayar **0,9500**. İstek başına bağlam **28,48** belirteçten
**623,48** belirtece çıkıyordu. O yordam burada tekrarlanmaz; o sayılar bu dersin **girdisidir**.
Bu dersin sorusu başkadır: bir görev verildiğinde hangisinin **hangi problemi** çözdüğü, ve hangi
görevde erişimin **hiçbir şey kazandırmadığı**.

- **EH77.** Dağarcık, kavram ekseni, gömme, sorgu kümesi ve yenileme **kurgudur**, ders içinde
  üretilir. Hiçbir gerçek kurum, ürün, belge ya da gömme ucu yoktur.
- **EH78.** **Bilgi tazeliği görevi**: her yordamın bir **yürürlük damgası** vardır. Damga ince ayar
  anlık görüntüsünden sonra bir bölüm yordamda değişti. Doğru yanıt **yürürlükteki** damgadır.
- **EH79.** **Biçim uyumu görevi**: yanıtın iki alanlı sabit kalıba (`yordam | damga`) uyması
  istenir. Bu kalıp kurgudur ve yalnız çıktı kanalını ilgilendirir.
- **EH80.** **Alan dili görevi**: sorgu dilindeki yüzeyin (`hangi dilimdeyim`) hangi yordama
  karşılık geldiğinin bulunması. Bu, bir önceki dersin ölçtüğü işin aynısıdır.
- **EH81.** **İnce ayar burada bir öğrenme benzeticisidir**: eğitim kümesinde **gördüğü** yordamın
  sorgu yüzeyini doğrudan çözer, **gördüğü sınıfta** çıktı kalıbını uygular ve yürürlük damgasını
  **anlık görüntüden** verir. Görmediği yordamda dil modeli benzeticisinin tahminine düşer.
- **EH82.** **Bedel iki ayrı birimdedir ve toplanmaz**: erişimde istek başına ek belirteç ve erişim
  adımı, ince ayarda **etiketli örnek sayısı**. İkisinin ortak bir birimi yoktur.
- **EH83.** Ölçüler kırk sorgu üzerinde alınır; erişim üç parça getirir.

## Üç Görev, Bir İş Yükü

Kurgu yenileme yordamların bir bölümünün yürürlük damgasını değiştirir. İnce ayar anlık görüntüsü
eskisini taşır, dağarcık yenisini.

```python
# KURGUDUR. Dagarcik, kavram ekseni, gomme, sorgu kumesi ve yenileme ders icinde
# uretilir; hicbir gercek kurum, urun, belge ya da gomme ucu yoktur.
TOHUM, M32 = 20260218, 0xFFFFFFFF
BOYUT = 32


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 ayrik(u, w):
    t = 0.0
    for i, x in enumerate(w):
        t += x
        if u < t:
            return i
    return len(w) - 1


def belirtecle(m):
    b = []
    for s in m.lower().replace(",", " , ").split():
        while len(s) > 5:
            b.append(s[:5])
            s = s[5:]
        b.append(s)
    return b


# ---- KURGU anlam ekseni: her kavramin belge dilinde ve sorgu dilinde ayri yuzeyi var
SINIF = ["tarife", "ariza", "sayac", "kesinti", "bakim"]
KOD = {"tarife": "TR", "ariza": "AR", "sayac": "SY", "kesinti": "KS", "bakim": "BK"}
KAVRAM = {                       # kavram: (sinif, belge yuzeyi, sorgu yuzeyi)
    "basamak":   ("tarife", "kademe esigi", "hangi dilimdeyim"),
    "birim":     ("tarife", "birim ucret", "metrekup fiyati"),
    "abonetip":  ("tarife", "abone tipi", "mesken mi isyeri mi"),
    "gecis":     ("tarife", "tarife gecisi", "plan degistirme"),
    "arizakod":  ("ariza", "ariza kodu", "hata numarasi"),
    "sizinti":   ("ariza", "hat sizintisi", "su kacagi"),
    "basinc":    ("ariza", "basinc dususu", "zayif akis"),
    "ekip":      ("ariza", "saha ekibi", "gorevli ne zaman gelir"),
    "endeks":    ("sayac", "endeks degeri", "sayac ustundeki rakam"),
    "okuma":     ("sayac", "okuma yordami", "nasil kaydediliyor"),
    "degisim":   ("sayac", "sayac degisimi", "cihaz yenileme"),
    "dogrula":   ("sayac", "okuma dogrulamasi", "yanlis girilmis mi"),
    "planli":    ("kesinti", "planli kesinti", "onceden duyurulan durma"),
    "duyuru":    ("kesinti", "duyuru kanali", "nereden ogrenirim"),
    "sure":      ("kesinti", "kesinti suresi", "ne kadar surer"),
    "geridonus": ("kesinti", "yeniden verme", "ne zaman gelir"),
    "periyot":   ("bakim", "periyodik bakim", "duzenli kontrol"),
    "vana":      ("bakim", "vana kontrolu", "musluk kapatma duzeni"),
    "filtre":    ("bakim", "filtre degisimi", "temizleme parcasi"),
    "kalib":     ("bakim", "kalibrasyon kaydi", "olcum ayari"),
}
ANAHTAR = list(KAVRAM)
ORTAK = ["kayit", "bolge", "donem", "islem", "form", "onay", "not"]

# ---- KURGU dagarcik
BELGE = []
for i in range(200):
    r = uretec(TOHUM + 7919 * i)
    s = SINIF[ayrik(r(), [0.22, 0.24, 0.20, 0.18, 0.16])]
    kav = [k for k in ANAHTAR if KAVRAM[k][0] == s]
    ana = kav[int(r() * len(kav))]
    n = 2 + int(r() * 4)
    par, kavlar = [], [ana]
    for _ in range(n):
        y = kav[int(r() * len(kav))]
        kavlar.append(y)
        o = ORTAK[int(r() * len(ORTAK))]
        par.append(f"{KAVRAM[y][1]} icin {o} tutulur ve {KAVRAM[ana][1]} ile birlikte yazilir")
    BELGE.append({"kod": f"{KOD[s]}{i + 1:03d}", "sinif": s, "ana": ana, "kavram": kavlar,
                  "baslik": f"{KAVRAM[ana][1]} yordami", "par": par})


# ---- KURGU gomme: yuzey once kavrama, kavram sonra boyuta dusuruluyor
def _kavramla(m, alan=True):
    v = [0.0] * len(ANAHTAR)
    dm = " " + m.lower() + " "
    for i, k in enumerate(ANAHTAR):
        bel, sor = KAVRAM[k][1], KAVRAM[k][2]
        if bel in dm:
            v[i] += 1.0
        if sor in dm:
            v[i] += 1.0 if alan else 0.0      # alan disi gomme sorgu dilini tanimaz
    if not alan:
        for o in ORTAK:
            if " " + o + " " in dm:
                for i in range(len(ANAHTAR)):
                    v[i] += 0.05
    return v


IZDUS = []
for i in range(len(ANAHTAR)):
    r = uretec(TOHUM ^ (i + 1) * 2654435761)
    IZDUS.append([r() * 2 - 1 for _ in range(64)])


def gom(m, boyut=BOYUT, alan=True):
    k = _kavramla(m, alan)
    v = [0.0] * boyut
    for i, a in enumerate(k):
        if a:
            for j in range(boyut):
                v[j] += a * IZDUS[i][j % 64]
    n = sum(x * x for x in v) ** 0.5
    return [x / n for x in v] if n else v


def aci(a, b):
    return sum(x * y for x, y in zip(a, b))


# ---- KURGU sorgu kumesi: sorgu dili belge dilinden ayri
SORGU = []
for i in range(40):
    r = uretec(TOHUM + 104729 * i)
    d = BELGE[int(r() * len(BELGE))]
    SORGU.append({"metin": f"{KAVRAM[d['ana']][2]} {ORTAK[int(r() * len(ORTAK))]}",
                  "sinif": d["sinif"], "kavram": d["ana"]})

# KURGU yenileme: yordamlarin bir bolumu ince ayar anlik goruntusunden sonra degisti.
DAMGA_EGITIM, DAMGA_GUNCEL = {}, {}
for i, k in enumerate(ANAHTAR):
    DAMGA_EGITIM[k] = f"y{i + 1:02d}a"
    DAMGA_GUNCEL[k] = (f"y{i + 1:02d}b"
                       if uretec(TOHUM + 31 * (i + 1))() < 0.45 else f"y{i + 1:02d}a")
BAYAT = [k for k in ANAHTAR if DAMGA_EGITIM[k] != DAMGA_GUNCEL[k]]

PARCA = [{"kod": d["kod"], "ana": d["ana"],
          "metin": p + " yururluk " + DAMGA_GUNCEL[d["ana"]]}
         for d in BELGE for p in d["par"]]
PV = [gom(p["metin"]) for p in PARCA]
OGRENME = [BELGE[int(uretec(TOHUM + 65537 * (i + 1))() * len(BELGE))]["ana"] for i in range(48)]

print(f"dagarcik {len(BELGE)} belge , {len(PARCA)} parca , sorgu {len(SORGU)}")
print(f"yenilenen yordam {len(BAYAT)} / {len(ANAHTAR)} , bayat yordama soran sorgu "
      f"{sum(1 for s in SORGU if s['kavram'] in BAYAT)} / {len(SORGU)}")
print(f"ogrenme kumesi {len(OGRENME)} etiketli ornek , kapsadigi yordam "
      f"{len(set(OGRENME))} , kapsadigi sinif {len({KAVRAM[x][0] for x in set(OGRENME)})}")
```

```
dagarcik 200 belge , 693 parca , sorgu 40
yenilenen yordam 9 / 20 , bayat yordama soran sorgu 13 / 40
ogrenme kumesi 48 etiketli ornek , kapsadigi yordam 20 , kapsadigi sinif 5
```

Yirmi yordamdan dokuzu yenilendi ve kırk sorgunun **on üçü** artık ince ayarın bildiğinden başka
bir yanıt istiyor. Öğrenme kümesi kırk sekiz etiketli örnektir ve tam kapsamlıdır: yirmi yordamın
yirmisini, beş sınıfın beşini de görür. Bu, ince ayara verilebilecek en iyi koşuldur.

## Dört Kurulum

Aynı kırk sorgu dört kurulumda çözülür: erişimsiz taban, yalnız erişim, yalnız ince ayar ve ikisi
birlikte. Üç görev üç ayrı sütundur ve **tek bir sayıda toplanmaz**.

```python
from math import exp


def izno(m):
    h = 2166136261
    for c in m:
        h = ((h ^ ord(c)) * 16777619) & M32
    return h


def getir(q, k=3):
    v = gom(q)
    s = sorted(range(len(PARCA)), key=lambda i: (-aci(v, PV[i]), i))
    return [PARCA[i] for i in s[:k]]


def coz(s, erisim, ince, tohum=TOHUM, sicaklik=0.6):
    """Erisim istemin girdisini, ince ayar modelin kendisini degistirir."""
    par = getir(s["metin"]) if erisim else []
    istem = s["metin"] + " || " + " ".join(p["metin"] for p in par)
    gorulen = set(OGRENME[:ince])
    sq = " " + s["metin"].lower() + " "
    kav = next((x for x in ANAHTAR if KAVRAM[x][2] in sq and x in gorulen), None)
    if kav is None:                      # ince ayar bu yordami gormedi: benzetici tahmin eder
        dm = " " + istem.lower() + " "
        sn = next((KAVRAM[x][0] for x in ANAHTAR if KAVRAM[x][2] in sq), None)
        pu = {x: (0.15 if KAVRAM[x][0] == sn else 0.0) + dm.count(KAVRAM[x][1]) for x in ANAHTAR}
        ad = [x for x in ANAHTAR if pu[x]]
        a = [exp(pu[x] / sicaklik) for x in ad]
        t = sum(a)
        kav = ad[ayrik(uretec(tohum ^ izno(istem))(), [x / t for x in a])]
    if erisim:
        b = par[0]["metin"].split()
        damga = b[b.index("yururluk") + 1]
    else:
        damga = DAMGA_EGITIM[kav] if ince else "yok"
    bicim = ince > 0 and KAVRAM[kav][0] in {KAVRAM[x][0] for x in gorulen}
    return kav, damga, bicim, len(belirtecle(istem))


def olc(erisim, ince, tohum=TOHUM):
    n = len(SORGU)
    t = d = b = bel = 0
    for s in SORGU:
        kav, damga, bic, nb = coz(s, erisim, ince, tohum)
        t += damga == DAMGA_GUNCEL[s["kavram"]]
        d += kav == s["kavram"]
        b += bic
        bel += nb
    return t / n, b / n, d / n, bel


KURULUM = (("erisimsiz taban", 0, 0), ("yalniz erisim", 1, 0),
           ("yalniz ince ayar", 0, 48), ("ikisi birlikte", 1, 48))
print("kurulum            tazelik   bicim  alandili  belirtec  erisim adimi  etiketli ornek")
for ad, e, i in KURULUM:
    t, b, d, bel = olc(e, i)
    print(f"{ad:<18} {t:>7.4f} {b:>7.4f} {d:>9.4f} {bel:>9} {e * len(SORGU):>13} {i:>15}")

print("\nince ayar ornek sayisi supurmesi (erisim yok)")
print("ornek  gorulen kavram  gorulen sinif  tazelik   bicim  alandili")
for i in (0, 6, 12, 24, 48):
    t, b, d, _ = olc(0, i)
    g = set(OGRENME[:i])
    print(f"{i:>5} {len(g):>15} {len({KAVRAM[x][0] for x in g}):>14}"
          f" {t:>9.4f} {b:>7.4f} {d:>9.4f}")

print("\nikinci kosum (tohum 20260219) , alan dili isabeti ve kosum farki")
for ad, e, i in KURULUM:
    a, b = olc(e, i)[2], olc(e, i, TOHUM + 1)[2]
    print(f"{ad:<18} {a:>7.4f} {b:>8.4f} {b - a:>+9.4f}")
```

```
kurulum            tazelik   bicim  alandili  belirtec  erisim adimi  etiketli ornek
erisimsiz taban     0.0000  0.0000    0.3750       231             0               0
yalniz erisim       0.9500  0.0000    0.9500      2559            40               0
yalniz ince ayar    0.6750  1.0000    1.0000       231             0              48
ikisi birlikte      0.9500  1.0000    1.0000      2559            40              48

ince ayar ornek sayisi supurmesi (erisim yok)
ornek  gorulen kavram  gorulen sinif  tazelik   bicim  alandili
    0               0              0    0.0000  0.0000    0.3750
    6               6              4    0.4500  0.7500    0.6250
   12               9              5    0.4500  1.0000    0.7000
   24              15              5    0.4500  1.0000    0.7750
   48              20              5    0.6750  1.0000    1.0000

ikinci kosum (tohum 20260219) , alan dili isabeti ve kosum farki
erisimsiz taban     0.3750   0.2000   -0.1750
yalniz erisim       0.9500   0.9500   +0.0000
yalniz ince ayar    1.0000   1.0000   +0.0000
ikisi birlikte      1.0000   1.0000   +0.0000
```

## Erişimin Kazanmadığı Görev

Üç sütun üç ayrı yanıt verir ve hiçbiri öbürünü kapsamaz.

**Bilgi tazeliğinde erişim kazanır.** Yalnız erişim **0,9500**, tam kapsamlı ince ayar **0,6750**.
Aradaki fark rastlantı değildir: kaybedilen tam olarak yenilenmiş dokuz yordama soran on üç
sorgudur. Süpürme sütunu bunu doğruluyor. Örnek sayısı altıdan kırk sekize çıkarken alan dili
0,6250'den 1,0000'e tırmanıyor, ama tazelik 0,4500'de duruyor ve ancak kapsam tamamlandığında
**0,6750**'de tavan yapıyor. Daha fazla örnek bunu **düzeltmez**, çünkü bayatlık bir kapsama sorunu
değildir: model doğru öğrendiği şeyi doğru hatırlıyor, öğrendiği şey artık yürürlükte değil.

**Biçim uyumunda erişim hiçbir şey kazandırmaz.** Erişimsiz taban 0,0000, yalnız erişim de
**0,0000**. Getirilen üç parça bağlamı zenginleştirir, çıktı kalıbına dokunmaz. İnce ayar aynı
görevi **on iki örnekte 1,0000** yapar; kalıbı öğrenmek için gereken şey yordam kapsaması değil,
**sınıf kapsamasıdır** ve beş sınıf on iki örnekte tamamlanıyor. Erişim istemin **girdisini**,
ince ayar modelin **çıktı davranışını** değiştirir; biçim ikinci kümededir.

**Alan dilinde ikisi de kazanır, tam kapsamda ince ayar öne geçer.** Erişim 0,9500, ince ayar
1,0000. Ama ince ayarın 1,0000'i yirmi yordamın hepsini gören kırk sekiz örneğe bağlıdır; yirmi
dört örnekte aynı sayı **0,7750**'dir. Erişimin 0,9500'ü ise etiketli örnek istemez.

Bedeller ortak birim taşımadığı için ayrı yazılır. Erişim toplam belirteci **231'den 2559'a**
çıkarır ve kırk **erişim adımı** ekler; istek başına 5,8 belirteçten 64,0 belirtece çıkmak
demektir. İnce ayarın belirteci **231'de kalır** ve erişim adımı yoktur, ama kırk sekiz **etiketli
örnek** ister ve damga her yenilendiğinde bu örneklerin bir bölümü geçersizleşir. İkisi birlikte
üç görevde de en iyi sütunu verir ve **iki bedeli birden** öder.

İki koşum farkı son tabloda. Erişimsiz taban ikinci koşumda 0,3750'den 0,2000'e düşüyor
(**−0,1750**); bilgiye dayanmayan bir sayı oynaktır. Öbür üç kurulumda fark **0,0000**. Hem
bağlamdaki kanıt hem de öğrenilmiş eşleme, örneklemenin sonucu döndürmesini engelliyor.

## Özet

- Erişim istemin girdisini, ince ayar modelin çıktı davranışını değiştirir; bu ayrım hangi görevin
  hangisiyle çözüleceğini belirler.
- Bilgi tazeliğinde erişim 0,9500, tam kapsamlı ince ayar 0,6750 yapar; kaybedilen tam olarak
  yenilenmiş dokuz yordama soran on üç sorgudur.
- Örnek sayısını artırmak tazeliği düzeltmez: alan dili 0,6250'den 1,0000'e çıkarken tazelik
  0,4500'de durur ve 0,6750'de tavan yapar.
- Biçim uyumunda erişim 0,0000'dan 0,0000'a hiçbir şey katmaz; ince ayar on iki örnekte 1,0000
  yapar, çünkü kalıp için yordam değil sınıf kapsaması gerekir.
- Bedeller toplanmaz: erişim 231 belirteci 2559'a çıkarıp kırk erişim adımı ekler, ince ayar
  belirteci sabit tutup kırk sekiz etiketli örnek ister.

## Sonraki Adım

İki çözüm de bir varsayımı paylaşıyor: dağarcıktaki her şeyin **düz metin** olduğu. Kurgu
belgelerin tamamı cümlelerden kuruluydu ve parçalama bir cümle dizisini bölmek demekti. Saha
ekibinin gerçek yordam belgeleri böyle değildir; içlerinde satırları ve sütunları anlamı taşıyan
**tablolar** vardır. Bir tablo cümle gibi bölündüğünde satır ile başlık birbirinden ayrılır ve
parça tek başına hiçbir şey söylemez. Bir sonraki ders aynı sorgu kümesinde bunu ölçer: tablonun
satır bazlı ve blok bazlı parçalanması aynı anmayı vermez.
