---
title: 'Model Depoları ve Kullanım Koşulları'
source: 'https://academia.sh/tr/kurslar/model-apileri/model-depolari-ve-lisanslar'
course: "Model API'leri ile Uygulama Geliştirme"
language: tr
updated: '2026-08-17T18:06:38+00:00'
license: 'CC BY-SA 4.0'
---

# Model Depoları ve Kullanım Koşulları

Bir kullanım senaryosunda dört kullanım koşulu sınıfının kaç dağıtım seçeneğini kapattığının sayılması: dört varlık türü ile dört kanaldan kurulu on altı seçenekten kullanım sınırı tek başına 6, yeniden dağıtım hakkı 3, türev çalışma koşulu 2 ve ticari kullanım kaydı 2 seçenek kapatıyor, toplam 13; birlikte kapattıkları ise 10, çünkü üç seçenek birden fazla koşulla kapanıyor. Açık kalan altı seçeneğin dördü tek kanaldadır. Kullanım sınırının kaldırılması altı değil üç seçenek açar. Aylık istek hacmi üç katına çıktığında açık seçenek altıdan dörde, on katına çıktığında bire iner. Ders M28/K03 kursunun kapanışıdır.

Bir önceki derste küçük model büyük modelin çıktısından doğdu. Ondan önceki derste elde uyarlama
farkları kaldı. İkisi de aynı türden nesnelerdir: bir başkasının modelinden **türetilmiş**, tek
başına bir anlamı olmayan sayı yığınları. Bu nesneleri kendi sunucunda çalıştırmak, kiraladığın
ortak bir ortama koymak, abonelere bir paket içinde vermek ya da herkese açık bırakmak birbirinin
aynı değildir.

Bu dersin ölçtüğü şey bir metnin ne dediği değil, **kaç seçeneğin kapandığıdır**. Dağıtım
seçenekleri sayılabilir bir kümedir; kullanım koşulları bu küme üzerinde birer süzgeçtir. Süzgeçler
uygulandığında geriye kaç seçenek kaldığı, hangi süzgecin **tek başına** ne kadar kapattığı ve
kaldırıldığında ne kadarını **geri açtığı** ayrı ayrı sayılabilir. Sayım tamamen belirlenmiştir;
tohuma bağlı hiçbir çekiliş yoktur, bu yüzden ölçü koşumdan bağımsızdır.

- **YM42.** Varlık türleri, kanallar, hacimler ve koşul sınıfları **kurgudur** ve ders içinde
  tanımlanır. Hiçbir depo, lisans, kurum, ülke ya da düzenleme adı geçmez; koşullar yalnız
  **sınıflarıyla** anılır.
- **YM43.** Dört **varlık türü** dağıtılabilir: yalnız çıktı, uyarlama farkı, tam ağırlık kopyası
  ve damıtılmış küçük model. Son ikisi önceki iki dersin ürettiği nesnelerdir.
- **YM44.** Dört **kanal** vardır: kurum içi, kiralanan ortak ortam, ücretli abone paketi ve açık
  yayım. Her kanalın aylık istek hacmi, kurum sınırının dışına çıkıp çıkmadığı, ticari olup
  olmadığı ve alıcısının bilinip bilinmediği yazılıdır.
- **YM45.** **Kullanım sınırı**, taban modelin çalıştığı bir seçenekte aylık istek eşiğinin
  aşılamayacağını söyler. **Yeniden dağıtım hakkı**, taban ağırlığın bir kopyasının kurum sınırının
  dışına çıkamayacağını söyler. **Türev çalışma koşulu**, türetilmiş bir varlığın ancak koşulların
  alıcıyla birlikte taşınabildiği bir kanalda verilebileceğini söyler. **Ticari kullanım kaydı**,
  ticari bir kanalda kullanımın hangi tabana dayandığının kayda geçmesini ister ve bu kayıt taban
  modelin çağrı defterinden üretilir.
- **YM46.** Bu bir hukuk dersi değildir. Sayılan şey metinlerin anlamı değil, **belirli koşul
  yüklemlerinin kapattığı seçenek adedidir**; yüklemler yukarıda yazılıdır ve kodda birebir
  görünür.

## Dört Koşul Sınıfı ve On Altı Seçenek

Koşulların hepsi aynı anda uygulanır ve bir seçenek en az bir koşula takılıyorsa kapanır. Bu
yüzden tek başına en çok kapatan koşul, kaldırıldığında en çok açan koşul olmak zorunda değildir.

```python
# KURGUDUR. Varlik turleri, kanallar, hacimler ve dort kosul sinifi ders icinde
# tanimlanir; hicbir depo, lisans, kurum ya da duzenleme adi gecmez.
VARLIK = [  # ad, taban model calisir mi, taban agirligin kopyasi mi, turev mi
    ("yalniz cikti", True, False, False),
    ("uyarlama farki", True, False, True),
    ("tam agirlik kopyasi", True, True, False),
    ("damitilmis kucuk model", False, False, True)]
KANAL = [   # ad, aylik istek, kurum disina cikiyor mu, ticari mi, alici biliniyor mu
    ("kurum ici", 40000, False, False, True),
    ("kiralanan ortak ortam", 120000, True, True, True),
    ("ucretli abone paketi", 900000, True, True, True),
    ("acik yayim", 3000000, True, False, False)]
SECENEK = [(v, k) for v in VARLIK for k in KANAL]


def k1(v, k, esik):
    """Kullanim siniri: taban modelin calistigi secenekte aylik istek esigi asilamaz."""
    return v[1] and k[1] > esik


def k2(v, k, esik):
    """Yeniden dagitim hakki: taban agirligin kopyasi kurum sinirinin disina cikamaz."""
    return v[2] and k[2]


def k3(v, k, esik):
    """Turev calisma kosulu: turetilmis varlik ancak kosullarin aliciyla birlikte
    tasinabildigi kanalda verilebilir."""
    return v[3] and not k[4]


def k4(v, k, esik):
    """Ticari kullanim kaydi: ticari kanalda kullanimin hangi tabana dayandigi kayda
    gecer; kayit taban modelin cagri kaydindan uretilir."""
    return k[3] and not v[1]


KOSUL = [("kullanim siniri", k1), ("yeniden dagitim hakki", k2),
         ("turev calisma kosulu", k3), ("ticari kullanim kaydi", k4)]


def kapali(secenek, kosullar, esik):
    return [ad for ad, f in kosullar if f(*secenek, esik)]


def sayim(kosullar, esik, hacim=1):
    kanal = [(a, h * hacim, d, t, b) for a, h, d, t, b in KANAL]
    sec = [(v, k) for v in VARLIK for k in kanal]
    return sum(1 for s in sec if kapali(s, kosullar, esik)), len(sec)


ESIK = 250000
print(f"secenek {len(SECENEK)} = {len(VARLIK)} varlik x {len(KANAL)} kanal ,"
      f" aylik istek esigi {ESIK}")
print("\nkosul                    tek basina  kaldirilinca acilan")
kapanan = 0
for ad, f in KOSUL:
    tek = sum(1 for s in SECENEK if f(*s, ESIK))
    eksik = sayim([x for x in KOSUL if x[0] != ad], ESIK)[0]
    hepsi = sayim(KOSUL, ESIK)[0]
    kapanan += tek
    print(f"{ad:<24} {tek:>10}  {hepsi - eksik:>19}")
hepsi = sayim(KOSUL, ESIK)[0]
print(f"{'toplam':<24} {kapanan:>10}  {'':>19}")
print(f"\ndort kosul birlikte {hepsi} secenegi kapatiyor , acik kalan {len(SECENEK) - hepsi}")
print("\nvarlik                  acik kalan kanallar")
for v in VARLIK:
    acik = [k[0] for k in KANAL if not kapali((v, k), KOSUL, ESIK)]
    print(f"{v[0]:<23} {' , '.join(acik) if acik else 'yok'}")
```

```
secenek 16 = 4 varlik x 4 kanal , aylik istek esigi 250000

kosul                    tek basina  kaldirilinca acilan
kullanim siniri                   6                    3
yeniden dagitim hakki             3                    1
turev calisma kosulu              2                    1
ticari kullanim kaydi             2                    2
toplam                           13                     

dort kosul birlikte 10 secenegi kapatiyor , acik kalan 6

varlik                  acik kalan kanallar
yalniz cikti            kurum ici , kiralanan ortak ortam
uyarlama farki          kurum ici , kiralanan ortak ortam
tam agirlik kopyasi     kurum ici
damitilmis kucuk model  kurum ici
```

Dört koşul **tek başına** 6, 3, 2 ve 2 seçenek kapatıyor; toplam **13**. Birlikte kapattıkları ise
**10**. Aradaki üç seçenek birden fazla koşula takılıyor, yani iki kez sayılmış durumda. Kapatma
sayılarını toplamak, koşulların etkisini bir buçuk kat abartır.

Kaldırılınca açılan sütunu bunun karşılığıdır. Kullanım sınırı tek başına altı seçenek kapatıyor
ama kaldırıldığında yalnız **üç** seçenek açılıyor; kalan üçü yeniden dağıtım hakkına ya da türev
çalışma koşuluna zaten takılıyordu. Ticari kullanım kaydı ise tek başına yalnız iki seçenek
kapatıyor ve kaldırıldığında **ikisini de** geri açıyor; hiçbir koşulla örtüşmüyor. Bir koşulun
ağırlığı kapattığı sayıda değil, **tek başına kapattığı** sayıdadır.

Son tablo hangi seçeneklerin ayakta kaldığını gösteriyor. Tam ağırlık kopyası ile damıtılmış küçük
model için geriye tek bir kanal kalıyor: kurum içi. Bunlar bu kursun ürettiği iki nesnedir. Uyarlama
farkı ile damıtılmış model aynı sayıda seçenek kapatmıyor da: uyarlama farkı taban modeli
çalıştırdığı için kullanım sınırına takılıyor, damıtılmış model çalıştırmadığı için ticari kullanım
kaydını üretemiyor. İkisi de daralıyor, ama **ayrı koşullardan**.

## Eşik ve Hacim Değişince

Aynı koşullar sabit bir sayı vermez; sayı senaryonun büyüklüğüne bağlıdır.

```python
cok = sum(1 for s in SECENEK if len(kapali(s, KOSUL, ESIK)) > 1)
print(f"birden fazla kosulla kapanan secenek {cok} ; tek kosulla kapanan"
      f" {hepsi - cok} ; toplam kapanan {hepsi}")
print("\nesik ve hacim duyarliligi (kosumdan bagimsiz sayim):")
print("      esik  hacim  kapanan  acik  kullanim sinirinin tek basina kapattigi")
for esik, h in ((100000, 1), (250000, 1), (1000000, 1), (5000000, 1),
                (250000, 3), (250000, 10)):
    kap, top = sayim(KOSUL, esik, h)
    tek = sum(1 for v in VARLIK for k in KANAL if k1(v, (k[0], k[1] * h), esik))
    print(f"{esik:>10}  {str(h) + 'x':>5}  {kap:>7}  {top - kap:>4}  {tek:>38}")
```

```
birden fazla kosulla kapanan secenek 3 ; tek kosulla kapanan 7 ; toplam kapanan 10

esik ve hacim duyarliligi (kosumdan bagimsiz sayim):
      esik  hacim  kapanan  acik  kullanim sinirinin tek basina kapattigi
    100000     1x       12     4                                       9
    250000     1x       10     6                                       6
   1000000     1x        8     8                                       3
   5000000     1x        7     9                                       0
    250000     3x       12     4                                       9
    250000    10x       15     1                                      12
```

Eşik dört katına çıktığında açık seçenek altıdan sekize çıkıyor, eşik tamamen gevşediğinde dokuza.
Ters yönde ise değişim daha serttir: aylık hacim üç katına çıktığında açık seçenek **dörde**, on
katına çıktığında **bire** iniyor. On kat hacimde kurum içi kanal bile eşiği aşıyor ve geriye
yalnız damıtılmış modelin kurum içinde çalıştırılması kalıyor. Koşullar değişmedi; büyüyen şey iş
yüküydü. Bir dağıtım kararı, koşul metni okunduğu gün değil, **hacim eşiği geçtiği gün** kapanır.

## Özet

- On altı dağıtım seçeneği dört varlık türü ile dört kanaldan kurulur; koşullar bu küme üzerinde
  birer yüklemdir ve sayım koşumdan bağımsızdır.
- Dört koşulun tek başına kapattığı toplam 13, birlikte kapattıkları 10'dur; üç seçenek birden
  fazla koşula takılır.
- Kullanım sınırı tek başına 6 seçenek kapatır ama kaldırıldığında 3 seçenek açar; ticari kullanım
  kaydı 2 kapatır ve 2 açar, yani hiçbir koşulla örtüşmez.
- Tam ağırlık kopyası ile damıtılmış küçük model için geriye tek kanal kalır, ama biri kullanım
  sınırından biri ticari kullanım kaydından daralır.
- Aylık hacim üç katına çıktığında açık seçenek 6'dan 4'e, on katına çıktığında 1'e iner: kararı
  kapatan şey koşul metni değil, eşiğin geçildiği gündür.

## Kurs Kapanışı

| Ders | Düzeneksiz | Düzenekli | Bedel |
|---|---|---|---|
| `api-kullanimi/01` — konuşma durumu | durum gönderilmiyor 0,2000 | tam döküm 0,8250 (**+0,6250**) | giriş belirteci 8346 → 31160 |
| `api-kullanimi/02` — ilk parça | akışsız, etiket sonda 16,03 adım | akış + etiket başta 4,96 adım (**−11,07**) | belirteç aynı; kurtarılan kesik yanıt 0 → 31 |
| `api-kullanimi/03` — geçerli araç çağrısı oranı | katalog yok 0,0500 | ad + parametre 0,6917 (**+0,6417**) | giriş 3694 → 11614; kalıntı 14 yanlış araç |
| `api-kullanimi/04` — şemaya uyum | isteme yazılan şema 0,7583 | arayüz alanı 0,9000 (**+0,1417**) | giriş belirteci 7654 → 4294; doğru kayıt başına 125,8 → 65,7 |
| `api-kullanimi/05` — kullanılabilir kayıt oranı | ince ızgara 0,8167 (183 belirteç) | kırpık ızgara 0,7000 (**−0,1167**) | kayıt başına 224,1 → 60,0 belirteç |
| `api-kullanimi/06` — üç komşunun aynı konudan olma payı | 144 boyut 0,9259 | 72 boyut 0,9028 (**−0,0231**) | saklanan sayı 10368 → yarısı |
| `api-kullanimi/07` — taşınan alan sayısı | sağlayıcının kendi arayüzü 12 | ortak arayüz 8 (**−4**) | çıkış belirteci 773 → 1638; okunabilen kesilme 0 |
| `api-kullanimi/08` — çağrı sayısı / etkilenen istek | toplu boyut 1: 120 çağrı, 1 istek | toplu boyut 12: 10 çağrı (**−110**), 12 istek | giriş 5854 → 1784; boyut 18'de isabet 0,0667 |
| `yz-uretim-kalitesi/01` — ağır yükte tamamlama payı | düzeneksiz 0,8562 | geri çekilmeli deneme 0,8750 (**+0,0188**) | koşum farkı da 0,0188; komşu akış 0,9500 → 0,8667 |
| `yz-uretim-kalitesi/02` — doğru yanıt payı | önbelleksiz 0,9333 | uzun ömürlü yanıt önbelleği 0,5542 (**−0,3791**) | çağrı 240 → 29; bayat pay 0,0208 → 0,4417 |
| `yz-uretim-kalitesi/03` — bekleme adımı / doğruluk | büyük bağlam 3,0000 adım, 0,9292 | iki aşamalı 1,7500 adım (**−1,2500**), **−0,0125** | giriş belirteci 19716 |
| `yz-uretim-kalitesi/04` — istek başına belirteç | kısaltmasız 81,6 | üç kısaltma politikası 50,5 (**−31,1**) | doğru etiket başına okununca sıralama değişiyor |
| `yz-uretim-kalitesi/05` — toplam isabet | yedeksiz 0,8450 | yedekli 0,8850 (**+0,0400**) | kesintisiz tabana göre 0,8975 → 0,8850; yedek katman 0,6667 |
| `yz-uretim-kalitesi/06` — isabet / oynayan yanıt payı | kalemler sabit 0,9125 | biçim sözcüğü serbest 0,5525 (**−0,3600**) | sağlayıcıdaki üç kalem oynadığında pay 0,1150 |
| `yz-destekli-gelistirme/01` — kabul edilen görev (24) | bağlamsız 7 | bütün kod tabanı 18 (**+11**) | 1104 → 4224 belirteç; bin belirteçte kabul 6,34 → 4,26 |
| `yz-destekli-gelistirme/02` — beklenen kabul | bütün dosyalar 0,6921 | seçilmiş dosyalar 0,8233 (**+0,1312**) | 4224 → 2274 belirteç; 120 → 45 dosya |
| `yz-destekli-gelistirme/03` — doğru adım (480) | sekiz adımda bir durma 355 | her adımda durma 478 (**+123**) | durma 60 → 479; kaçan hata 21 → 1 |
| `yz-destekli-gelistirme/04` — yakalanan kusur (28) | denetimsiz 0 | üç denetim 26 (**+26**) | kaçan 2; biri hiç uyarı almadan giriyor |
| `yz-destekli-gelistirme/05` — ayırt edilen bozuk sürüm (6) | üretilen sınama kümesi 3 | tek elle hiza maddesi 4 (**+1**) | 14 sınamanın 2'si temiz kodda düşüyor, 9'u hiçbir şey ayırmıyor |
| `yz-destekli-gelistirme/06` — sır sınıfı kapsaması | süzgeçsiz 0,0000 | alan adı süzgeci 0,9333 (**+0,9333**) | serbest metinde 12 iz kalıyor; kabul edilenlerde yanlış payı 0,5263 |
| `yerel-modeller/01` — etiket isabeti / eşzamanlı istek | küçük ölçek 0,6333, 248 istek | büyük ölçek 0,8667 (**+0,2334**), 5 istek | isabet çarpı eşzamanlı istek 157,1 → 4,3 |
| `yerel-modeller/02` — beş sınıflı konu isabeti | 16 basamak 0,8667 | 4 basamak 0,8000 (**−0,0667**) | bellek 34,3 → 8,6 milyar basamak; eşzamanlı istek 5 → 62 |
| `yerel-modeller/03` — isabet (60 kayıt) | taban 0,6000 | 60 örnekle istem 0,9667, ince ayar 0,9500 (**−0,0167**) | istek başına bağlam 28,48 → 623,48 belirteç; 180 adım, ağırlığın 0,2992'si |
| `yerel-modeller/04` — saha isabeti | uyarlama yok 0,2500 | düşük ranklı ek 0,9583 (**+0,7083**) | güncellenen pay 0,2094; sekiz sahada 18336 → 6132 sayı |
| `yerel-modeller/05` — konu isabeti | altı insan etiketi 0,5000 | 240 öğretmen etiketi 0,6333 (**+0,1333**) | 240 çağrı, 3256 belirteç; sayma görevi 0,5833 → 0,3667 |
| `yerel-modeller/06` — açık dağıtım seçeneği (16) | koşul okunmadan 16 | dört koşul sınıfı 6 (**−10**) | hacim on katına çıkınca 1 |

Kursun kuralı tabloda satır satır yazılıdır: **bir model çağrısı bir işlev çağrısı değil bir ağ
işlemidir; başarısızlığı yazılmayan çağrı ölçülmemiş sayılır.** Düzeneksiz sütunundaki sayıların
hiçbiri kötü bir kod yüzünden düşük değildir. Hepsi, çağrının gecikeceği, sıraya gireceği, yarıda
kesileceği, reddedileceği ya da bir başkasının sınırını tüketeceği hesaba katılmadığı için
düşüktür.

**İkinci iddia da aynı tablodan okunur: eklenen dayanıklılık işi kötüleştirebilir.** Bunu adıyla
yazan satırlar şunlardır. `yz-uretim-kalitesi/01`'de sabit aralıklı yeniden deneme ağır yükte
tamamlamayı düzeneksizin altına indirir ve aynı sınırı paylaşan etkileşimli akışı 0,9500'den
0,8667'ye düşürür. `yz-uretim-kalitesi/02`'de yanıt önbelleği çağrıyı 240'tan 29'a indirirken doğru
yanıt payını 0,9333'ten 0,5542'ye götürür. `yz-uretim-kalitesi/05`'te yedek katman toplam isabeti
yükseltiyor gibi görünür, ama kesintisiz tabana göre okunduğunda düşüş vardır ve yedeğe düşen
isteklerin isabeti 0,6667'dir. `yz-destekli-gelistirme/02`'de bağlamı büyütmek beklenen kabulü
0,8233'ten 0,6921'e indirir. `api-kullanimi/07`'de ortak arayüz çıkış belirtecini iki katına
çıkarır ve 117 kesilmenin hiçbirini okunabilir kılmaz. `api-kullanimi/08`'de toplu boyutu
büyütmek çağrıyı 120'den 10'a indirirken bağlam penceresini aşırma noktasında isabeti 0,0667'ye
düşürür. `yerel-modeller/03`'te altmış örnekle ince ayar istem düzeneğini geçmez.
`yerel-modeller/05`'te damıtma sayma görevinde 0,5833'ten 0,3667'ye götürür. Sekiz ayrı yerde
düzenek, eklendiği için ödedi.

Yirmi altı derste çağrı bir ağ işlemi olarak ele alındı ve her düzeneğin bedeli yazıldı. Bir şey
hiç sorulmadı: modele verilen **bilgi** hep istemin içine **elle** kondu. Belge dağarcığı kurgu
olarak vardı, ama bin belgelik bir dağarcıktan o isteme **hangi üçünün** gireceği, o seçimin
**hangi tabana karşı** ölçüleceği ve yanlış üçlüyü seçmenin bedelinin ne olduğu bir kez bile
sayılmadı. Sonraki kurs bu seçimi bir ölçüm nesnesine dönüştürür.
