---
title: 'Erişim Artırılmış Üretim Nedir'
source: 'https://academia.sh/tr/kurslar/rag/erisim-artirilmis-uretim-nedir'
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 Artırılmış Üretim Nedir

İki yüz belgelik kurgu bir dağarcıkta aynı kırk sorgunun üç kurulumda koşturulması ve erişim ile üretimin iki ayrı sütun olarak basılması: erişimsiz taban üretimde 0,1750 tutarken alan içi gömmeyle kurulan hat erişim anmasını 0,9500'e, üretimi 0,9250'ye çıkarıyor, alan dışı gömmeyle kurulan aynı hat ise anmayı 0,1750'de bırakıp üretimi 0,0500'e, yani tabanın altına düşürüyor. Bedel yan yana yazılıyor: 3174 belirteçten 5343 belirtece, sıfır erişim adımından yirmi yedi bin yedi yüz yirmi adıma, doğru yanıt başına 453,4 belirteçten 144,4 belirtece ve yanlış parçalı kurulumda 2706,5 belirtece. Altı tohumun koşumu bu iş yükünün eşiğini 0,0750 olarak veriyor ve doğru parça gelen otuz sekiz sorgunun biri yine de yanlış yanıtlanıyor.

Önceki konunun altı dersi tek bir işi yaptı: bir sorguya karşılık dağarcıktan bir parça buldu.
Gömme bir arama anahtarı olarak kuruldu, alan uyumunun kaybı ölçüldü, benzerlik ölçütü seçildi,
tam taramanın yerine dizinli arama kondu, meta veri süzgeci eklendi ve iki sıralama birleştirildi.
Altısında da ölçü aynı yerdeydi: getirilen parça doğru muydu.

Sorulmayan şey, o parçanın modele verildiğinde ne yaptığıdır. **Erişim artırılmış üretim**,
dağarcıktan seçilen parçaları isteme koyup modeli o parçalarla çağırmaktır. Bu dersin kurduğu
kural on altı ders boyunca sürer: **erişim ile üretim ayrı ölçülür.** İkisi tek sayıya
indirildiğinde hangi aşamanın bozduğu görünmez.

- **EH1.** Kod bir **benzeticidir**; gerçek bir gömme ya da model uç noktası çağrılmaz. Dağarcık,
  kavram ekseni ve sorgular **kurgudur**, tohum **20260218**.
- **EH2.** Gömmenin tanımı, açı benzerliği ve komşuluk M27/K06'nın doğal dil işleme kursunda
  ölçüldü ve **tekrarlanmaz**. Burada gömme yalnız bir **arama anahtarıdır**.
- **EH3.** Her kavramın **belge dilinde** bir yüzeyi (`kademe esigi`), **sorgu dilinde** başka bir
  yüzeyi (`hangi dilimdeyim`) vardır ve ikisi hiçbir belirteç paylaşmaz: abonenin sorduğu sözcükle
  kaydın yazıldığı sözcük aynı değildir.
- **EH4.** Benzeticinin iç izi **belge dilini** tanır, sorgu dilinin ise yalnız yedi kavramlık
  bölümünü tanır. Erişimsiz tabanın tek kaynağı budur.
- **EH5.** Erişim birimi bu derste kaynağın **kendi paragraf sınırıdır** ve buna **parça** denir;
  sınırın bir karar olduğu üçüncü derste ölçülür.
- **EH6.** **Erişim anması**, hedef kavramı taşıyan en az bir parçanın ilk üçte bulunma payıdır;
  **erişim kesinliği**, ilk üçteki hedef kavramlı parçaların oranı; **sınıf isabeti** ilk üçün
  hedef sınıftan gelme oranı. Sınıf isabeti kolay ölçüttür, kavram isabeti zor olandır.
- **EH7.** **Üretim ölçüsü**, yanıtın hedef kavramı adıyla vermesidir ve erişim ölçüsüyle aynı
  sütunda toplanmaz. Hız sınırı çağrı sayısına bağlıdır: kırk çağrının otuz yedincisi boş döner,
  üç kurulumda da aynı yerde olduğu için karşılaştırmayı bozmaz.

## Dağarcık ve Ölçü Birimi

Aşağıdaki blok kurgu dağarcığı, kavram ekseni, gömme benzeticisi ve sorgu kümesini kurar. Yirmi
kavramın her biri bir sınıfa bağlıdır ve iki yüzeyle yazılır.

```python
# KURGUDUR. Asagidaki dagarcik, kavram ekseni ve gomme bir benzeticidir; gercek bir
# gomme uc noktasi cagrilmaz. Tohum 20260218.
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"]})

# ---- parca: bu derste birim, kaynagin kendi paragraf siniridir
PARCA = [{"kod": d["kod"], "sinif": d["sinif"], "metin": p,
          "kavram": [k for k in ANAHTAR if KAVRAM[k][1] in p]}
         for d in BELGE for p in d["par"]]

print("belge %d  parca %d  kavram %d  sorgu %d  parca basina %.1f belirtec"
      % (len(BELGE), len(PARCA), len(ANAHTAR), len(SORGU),
         sum(len(belirtecle(x["metin"])) for x in PARCA) / len(PARCA)))
print("sinif", {s: sum(d["sinif"] == s for d in BELGE) for s in SINIF})
```

```
belge 200  parca 693  kavram 20  sorgu 40  parca basina 16.3 belirtec
sinif {'tarife': 52, 'ariza': 46, 'sayac': 39, 'kesinti': 32, 'bakim': 31}
```

Ölçek buradan okunur: altı yüz doksan üç parça, parça başına on altı belirteç. Bir sorgunun yanıtı
on bin belirteçlik yığının içindedir ve bağlam penceresine sığan şey bunun yüzde biri kadardır.

## Üç Kurulum

İkinci blok dil modeli benzeticisini kurar ve aynı kırk sorguyu üç kurulumda koşturur. Benzetici
M28/K01'de kurulan aileden gelir: belirteç sayar, bağlam penceresi ve durdurma koşulu taşır, hız
sınırına takılabilir, aynı istemi aynı tohumla çağırdığında aynı yanıtı verir. Tek uyarlama yanıt
uzayıdır: model yirmi kavramdan birini yazar.

**Erişimsiz taban** modeli yalnız sorguyla çağırır. **Erişimli** kurulum alan içi gömmeyle en
yakın üç parçayı isteme koyar. **Yanlış parçalı** kurulum aynı hattı alan dışı bir gömmeyle kurar
ve elle bozulmuş bir düzenek değildir: sorgu dilini tanımayan bir gömme seçildiğinde ortaya çıkan
hattın kendisidir.

```python
import math
# ---- KURGU dil modeli benzeticisi: yanit uzayi yirmi kavram
PENCERE, EN_UZUN = 240, 24
ON_BILGI = {"sizinti", "basinc", "sure", "degisim", "vana", "duyuru", "gecis"}
SERBEST = ["talep {k} kavramina baglandi ve kayda gecti",
           "{k} kaydi olusturuldu ilgili birime iletildi",
           "kaydiniz alindi ilgili birim donus yapacak"]
SAYAC = [0]


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


def cagir(istem, tohum=TOHUM, sicaklik=0.6, en_uzun=EN_UZUN):
    SAYAC[0] += 1
    b = belirtecle(istem)
    if len(b) > PENCERE:
        return {"durum": "baglam_asimi", "giris": len(b), "cikis": 0, "yanit": ""}
    if SAYAC[0] % 37 == 0:                               # hiz siniri cagri sayisina bagli
        return {"durum": "hiz_siniri", "giris": len(b), "cikis": 0, "yanit": ""}
    r = uretec(tohum ^ izno(istem))
    dm = " " + istem.lower() + " "
    p = {k: 0.15 for k in ANAHTAR}
    for k in ANAHTAR:
        p[k] += 2.0 * dm.count(KAVRAM[k][1])             # belge dilini model taniyor
        if k in ON_BILGI and KAVRAM[k][2] in dm:
            p[k] += 2.0                                  # sorgu dilinin bilinen payi
    if sicaklik <= 0.0:
        k = max(sorted(p), key=lambda a: p[a])
    else:
        w = [math.exp(p[a] / sicaklik) for a in sorted(p)]
        k = sorted(p)[ayrik(r(), [x / sum(w) for x in w])]
    y = k if "tek" in b else SERBEST[int(r() * 3)].format(k=k)
    cb = belirtecle(y)
    if len(cb) > en_uzun:
        cb, y = cb[:en_uzun], " ".join(cb[:en_uzun])
    return {"durum": "tamam", "giris": len(b), "cikis": len(cb), "yanit": y}


def oku(y):
    return next((s for s in y.split() if s in ANAHTAR), None)


YONERGE = ("Talebi su kavramlardan birine bagla: " + " , ".join(ANAHTAR) +
           " . Yanit olarak tek kavram yaz . ")
VEK = {True: [gom(x["metin"]) for x in PARCA],
       False: [gom(x["metin"], alan=False) for x in PARCA]}


def kosum(kip, tohum=TOHUM, k=3):
    SAYAC[0] = 0
    anma = kes = snf = dog = gir = cik = 0
    for s in SORGU:
        if kip == "erisimsiz":
            istem = YONERGE + "Talep: " + s["metin"]
        else:
            alan = kip == "erisimli"
            v = gom(s["metin"], alan=alan)
            ug = sorted(range(len(PARCA)), key=lambda i: -aci(v, VEK[alan][i]))[:k]
            istem = (YONERGE + "Kaynak: " + " . ".join(PARCA[i]["metin"] for i in ug) +
                     " . Talep: " + s["metin"])
            h = [s["kavram"] in PARCA[i]["kavram"] for i in ug]
            anma += any(h)
            kes += sum(h) / k
            snf += sum(PARCA[i]["sinif"] == s["sinif"] for i in ug) / k
        y = cagir(istem, tohum)
        gir, cik = gir + y["giris"], cik + y["cikis"]
        dog += oku(y["yanit"]) == s["kavram"]
    n = len(SORGU)
    return {"anma": anma / n, "kes": kes / n, "snf": snf / n, "uretim": dog / n,
            "bel": gir + cik, "parca": 0 if kip == "erisimsiz" else k * n,
            "adim": 0 if kip == "erisimsiz" else len(PARCA) * n, "dogru": dog}


print("kurulum        ERISIM: anma kesinlik  sinif  URETIM  BEDEL: belirtec parca"
      "   adim  belirtec/dogru")
for kip in ("erisimsiz", "erisimli", "yanlis parca"):
    a = kosum("yanlis" if kip.startswith("yanlis") else kip)
    e = ("       -        -      -" if kip == "erisimsiz"
         else "  %.4f   %.4f %.4f" % (a["anma"], a["kes"], a["snf"]))
    print("%-13s%s  %.4f          %6d %5d %6d %14.1f"
          % (kip, e, a["uretim"], a["bel"], a["parca"], a["adim"],
             a["bel"] / a["dogru"]))
```

```
kurulum        ERISIM: anma kesinlik  sinif  URETIM  BEDEL: belirtec parca   adim  belirtec/dogru
erisimsiz           -        -      -  0.1750            3174     0      0          453.4
erisimli       0.9500   0.9500 0.9500  0.9250            5343   120  27720          144.4
yanlis parca   0.1750   0.1750 0.2500  0.0500            5413   120  27720         2706.5
```

## Tablonun Üç Okuması

Birinci okuma erişimin ne kattığıdır. Erişimsiz taban **0,1750**'dir: kırk sorgunun yedisi doğru,
ve o yedisi benzeticinin sorgu dilinden tanıdığı kavramlara denk gelenlerdir. Alan içi gömmeyle
kurulan hat üretimi **0,9250**'ye çıkarıyor; fark **+0,7500**, yani otuz sorgu.

İkinci okuma bedeldir. Toplam belirteç **3174'ten 5343'e** çıkıyor (1,68 kat), her sorgu için üç
parça getiriliyor ve dağarcığın tamamı taranıyor: sorgu başına altı yüz doksan üç karşılaştırma,
kırk sorguda **27720 erişim adımı**. Bu adım bir model çağrısı değildir ama bedavaya da gelmez.
Doğru yanıt başına okunduğunda hesap tersine döner: **453,4 belirteçten 144,4 belirtece**.

Üçüncü okuma bu kursun ikinci iddiasıdır: **erişim de bozar.** Yanlış parçalı kurulum tabandan
**daha çok** belirteç harcıyor (5413) ve üretimi **0,0500**'e, yani tabanın **0,1750**'sinin
altına düşürüyor. Getirilen parçalar belge dilinde yazılmıştır ve model belge dilini tanır, bu
yüzden yanlış kavramları **güvenle** okur; erişimsiz modelin belirsiz tahmini, yanlış kaynağın
kesin yanlışına dönüşüyor. Doğru yanıt başına bedel **2706,5 belirtece** çıkıyor.

Erişim sütunu da iki sayıyla okunur: alan dışı kurulumda sınıf isabeti **0,2500**, yani beş sınıf
arasından rastgele seçim düzeyinde, kavram isabeti **0,1750**. Tek bir isabet sayısı basılsaydı
hangi ölçütün konuşulduğu belirsiz kalırdı.

## Eşik ve İki Sütunun Ayrılması

Bir fark ancak koşum değişkenliğinden büyükse fark sayılır. Bu eşik M28/K03'te kendi iş yükünde
ölçülmüştü; bu kurs onu **devralmaz**. Üçüncü blok aynı üç kurulumu altı tohumla koşturur ve
ardından erişim ile üretim sütunlarının ayrıldığı yeri sayar.

```python
print("kurulum        alti tohumun uretim isabeti                         yayilim")
esik = 0.0
for kip in ("erisimsiz", "erisimli", "yanlis"):
    v = [kosum(kip, TOHUM + i)["uretim"] for i in range(6)]
    esik = max(esik, max(v) - min(v))
    print("%-13s %s   %.4f" % (kip, " ".join("%.4f" % x for x in v), max(v) - min(v)))
print("bu kursun esigi %.4f  (kirk sorgunun %d'i)" % (esik, round(esik * 40)))

SAYAC[0] = 0
gd = gy = 0
for s in SORGU:
    v = gom(s["metin"])
    ug = sorted(range(len(PARCA)), key=lambda i: -aci(v, VEK[True][i]))[:3]
    if not any(s["kavram"] in PARCA[i]["kavram"] for i in ug):
        continue
    istem = (YONERGE + "Kaynak: " + " . ".join(PARCA[i]["metin"] for i in ug) +
             " . Talep: " + s["metin"])
    d = oku(cagir(istem)["yanit"]) == s["kavram"]
    gd, gy = gd + d, gy + (not d)
print("dogru parca gelen %d sorgu: %d dogru yanit, %d yanlis yanit" % (gd + gy, gd, gy))
```

```
kurulum        alti tohumun uretim isabeti                         yayilim
erisimsiz     0.1750 0.2250 0.2250 0.2000 0.2250 0.1500   0.0750
erisimli      0.9250 0.9250 0.9250 0.9250 0.9250 0.9250   0.0000
yanlis        0.0500 0.0500 0.0750 0.0750 0.1000 0.0500   0.0500
bu kursun esigi 0.0750  (kirk sorgunun 3'i)
dogru parca gelen 38 sorgu: 37 dogru yanit, 1 yanlis yanit
```

Bu kursun eşiği **0,0750**'dir: kırk sorgunun üçü. Bundan küçük bir üretim farkı bu iş yükünde
**ölçülmemiş** sayılır. Yayılım kurulumdan kuruluma da değişiyor: erişimsiz tabanda 0,0750,
erişimli hatta **0,0000**. Kaynak verilmiş bir modelin çıktısı tohuma bağlı kalmıyor, çünkü doğru
kavram öbürlerinin çok üstünde puan alıyor. Belirsizlik bilginin olmadığı yerde büyür; erişimin az
yazılan ikinci kazancı budur.

Erişim ölçüsü ise tohumdan bağımsızdır, çünkü gömme ve sıralama belirlenimlidir. Eşik bu yüzden
yalnız **üretim** sütununa uygulanır. İki sütunu ayrı tutmanın karşılığı son satırdır: doğru parça
gelen **otuz sekiz** sorgunun otuz yedisi doğru yanıtlanıyor, **biri** yanlış. O sorguda arıza
üretim aşamasındadır; tek bir sayı basılsaydı bu sorgu, parçayı getiremeyen iki sorguyla aynı
kutuya düşerdi.

## Özet

- Erişim artırılmış üretim, dağarcıktan seçilen parçaların isteme konup modelin o parçalarla
  çağrılmasıdır; kursun kuralı, erişim ile üretimin **ayrı ölçülmesidir**.
- Aynı kırk sorguda erişimsiz taban 0,1750, alan içi gömmeyle kurulan hat 0,9250 üretim veriyor.
- Bedel yazılmadan kazanç okunmaz: toplam belirteç 3174'ten 5343'e çıkıyor, sorgu başına üç parça
  ve 693 karşılaştırma ekleniyor; doğru yanıt başına belirteç ise 453,4'ten 144,4'e iniyor.
- Alan dışı gömmeyle kurulan aynı hat üretimi 0,0500'e, yani erişimsiz tabanın **altına**
  düşürüyor ve bunu daha çok belirteç harcayarak yapıyor: erişim de bozar.
- Bu iş yükünün ölçüm eşiği altı tohumlu koşumdan 0,0750 çıkıyor; erişimli hatta yayılım 0,0000.
- Doğru parça gelen otuz sekiz sorgunun biri yine de yanlış yanıtlanıyor.

## Sonraki Adım

Bu derste dağarcık hazır geldi: temiz paragraflar, yerli yerinde sınırlar, ayrı tutulmuş kod ve
sınıf alanları. Gerçek bir kaynak böyle gelmez; saha kayıtları form başlıkları, sayfa altlıkları,
satır ortasından bölünmüş cümleler ve metnin içine gömülmüş kod alanları taşır. Bu artıkların
erişime ne yaptığı hiç sorulmadı: hangi hazırlığın anmayı yükselttiği, ve hazırlığın kendisinin
**neyi attığı**. Sonraki ders aynı dağarcığın ham hâlinden başlar, üç hazırlık düzeyini aynı sorgu
kümesinde ölçer ve kaba bir temizleme kuralının attığı satırları sayar.
