Fine-tuning, retrieval mı yoksa prompt mu? Karar ekonomik
Aynı destek sorusu üç yolla yanıtlanıp uçtan uca fiyatlandı. Fine-tuning, ancak kaldırdığı prompt 492 token'ı aşınca kazanır.
Bu sayfada
İşte tek bir destek sorusu — bu projenin beklediği minimum Node sürümü nedir? — aynı dokümantasyon üzerinde dört şekilde yanıtlandı ve uçtan uca fiyatlandı.
| rota | gönderilen token | tek yanıtın maliyeti |
|---|---|---|
| prompt içinde tüm dokümantasyon, cache yok | 43,311 | $0.066317 |
| prompt içinde tüm dokümantasyon, cached | 43,311 | $0.007864 |
| retrieval ile getirilen en iyi dört alıntı | 1,037 | $0.002906 |
| fine-tuned model, hiç dokümantasyon yok | 28 | $0.002088 |
Fine-tune en ucuzu. Aynı zamanda bu problem için yanlış yanıt — ve ikisi de bir görüşle değil, aynı aritmetikle gösterilebilir.
Bu tablodaki üç sayı, her yerde okuyacağın tavsiyeyle zaten çelişiyor. Cache’i açmak soru başına %88 tasarruf sağladı ve ayda yüz soruda aynı rotayı beş kat daha pahalı hâle getiriyor. Retrieval, cached prompt rotasına göre kırk iki kat daha az token gönderiyor ama yalnızca 2,7 kat daha ucuza mal oluyor. Ve prompt’u yirmi sekiz token’a inen fine-tuned model, retrieval karşısında sadece %28 tasarruf ediyor — çünkü ödediğinin %97’si yanıta gidiyor ve training yanıtları kısaltmıyor.
Bölüm 16 bir faturayı okumak için bir maliyet fonksiyonu kurmuştu. Burada aynı fonksiyon bir mimariye karar veriyor.
Ayrıntıları göster
Bu bölümün önceki bölümlerden ihtiyaç duyduğu şeyler.
- Bölüm 11 LoRA ve QLoRA’yı teknik olarak kurdu: low-rank adapter nedir, neden çok daha az parametre train eder. Bu bölüm bunu yeniden açıklamaz, yalnızca fiyatlandırır.
- Bölüm 16
computeCost’yi, beş faturalanabilir kovayı ve prompt caching için prefix kuralını kurdu. Aşağıdaki maliyet sayfası, üç rota içine takılmış hâliyle o fonksiyondur. - Bölüm 19 retriever’ı kurdu: contextual header ile chunking, hybrid search, dört alıntı slotu, citations. Bu bölüm onu yeniden kullanır ve nasıl çalıştığını değil, çalıştırmanın neye mal olduğunu ölçer.
Buradaki her şey TypeScript, çünkü konu tarifeler, aritmetik ve muhasebe; ortada tensor yok — tek bir istisna dışında, o da olduğu yerde belirtiliyor: fine-tuning’in gerçekte ne öğrettiğini bulmak için bu bölüm bir modeli fine-tune ediyor ve o kısım Python.
Soru yanlış soruluyor
Bölüme bağlantı: Soru yanlış soruluyor“Fine-tune yapmalı mıyız?” sanki bir model sorusuymuş gibi sorulur. Oysa hiçbir benchmark’ın yanıtlamadığı bir şekle sahip bir bütçe sorusudur: bir kez ne ödenir, soru başına ne ödenir ve dünya her değiştiğinde yeniden ne ödenir.
Üç rota aynı şeyi yapmanın üç yolu da değildir ve vendor’lar bunu çoğu blog yazısından daha açık söyler. OpenAI’ın supervised fine-tuning’in en iyi olduğu şeyler tablosu dört kullanım listeler: classification, nüanslı translation, belirli bir formatta content generation ve instruction-following hatalarını düzeltme.1 Bunların hiçbiri “modele bilmediği bir şeyi öğretmek” değildir. Faydanın özeti şudur: “daha az örnek ve context data içeren daha kısa prompts kullanabilirsiniz; bu, ölçekte token maliyetinden tasarruf sağlar ve latency’yi düşürebilir” — özelliği satan şirketten gelen, faturaya dair bir argüman.
Yani:
- Fine-tuning biçim ve davranış öğretir. Ton, format, bir yanıtın şekli, gösterebildiğin ama tarif edemediğin bir sınır. Bunun yayımlanmış en güçlü hâli LIMA’nın Superficial Alignment Hypothesis’idir: bilgi pretraining’den gelir, alignment çoğunlukla hangi format sub-distribution’ında konuşulacağını öğretir — bu yüzden orada bin seçilmiş örnek yetmişti.2
- Retrieval değişen facts sağlar. Dokümantasyonundaki bir düzenlemenin modele dokunmadan yanıta ulaşabildiği üç yöntemden tekidir.
- Prompting gerçek vakaların çoğunu kapsar ve dürüst baseline’dır. In-context learning, Language Models are Few-Shot Learners’dan beri varsayılan yöntemdir: görev prompt içinde gösterilir ve hiçbir weight hareket etmez.3
Ortadaki hatanın kapısını iki ölçümlü makale kapatır. Ovadia ve çalışma arkadaşları bilgiyi unsupervised fine-tuning ile enjekte etmeyi retrieval ile enjekte etmeyle karşılaştırdı; retrieval, base model’in pretraining’de zaten gördüğü facts dâhil tutarlı biçimde kazandı.4 Gekhman ve çalışma arkadaşları hasarı ölçtü: yeni bilgi getiren örnekler yavaş fitted olur ve model sonunda onları fitted ettikçe diğer sorulardaki hallucination oranı yükselir.5 Facts’i fine-tuning ile öğretmek yalnızca başarısız olmaz; train etmediğin yanıtlara da zarar verir.
Bu yarı sonuçlandı. Ekonomik yarı sonuçlanmadı ve bölümün geri kalanı o.
Vaka ve yerinde durmayan dokümantasyon
Bölüme bağlantı: Vaka ve yerinde durmayan dokümantasyonTek vaka, üç yolla çalıştırıldı: her hafta değişen kendi dokümantasyonun üzerinde teknik destek.
Corpus gerçek ve bu diskte: çalışan bir yazılım repository’sinin iç dokümantasyon olarak tuttuğu 23 Markdown dokümanı — build rehberi, brand kuralları, translation brief, on servis kılavuzu, performance ve security notları. Bölüm 7’deki encoding olan o200k_base ile ölçüldü:
documents 23
characters 159,223
words 22,194
tokens (o200k_base) 42,921
tokens with per-file headers 43,158Kırk üç bin token bu karar için rahat bir boyut: her modern window’a sığar, yani üç rota da gerçekten kullanılabilir. On milyonda karar senin yerine verilmiştir ve cevap retrieval’dır.
Şimdi “haftalık” kelimesinin yaptığı iş. Dokümantasyon değişkenliği genellikle iddia edilir; burada ise o repository’nin version history’sinden sayıldı:
| son 26 hafta üzerinden ölçülen | değer |
|---|---|
| 23 dokümana dokunan commit | 40 |
| bunların içinde zaten var olan bir dokümanda yapılan düzenlemeler | 21 |
| en az bir değişiklik olan farklı takvim haftası | 11 |
| ürünün kullanıcıya görünen metin kataloğuna, 8 haftalık ömründe dokunan commit | 157 |
| o 8 haftanın içinde değiştiği takvim haftası | 8 |
Dokümanlar yaklaşık iki haftada bir hareket ediyor. Kullanıcıya görünen strings — ki destek masasına gerçekte sorulanlar bunlardır — var oldukları her hafta değişti, haftada yaklaşık yirmi commit. Seçtiğimiz rota buna dayanmak zorunda ve “train ettiğin şey ne sıklıkla değişiyor?” sorusunun yanıtı bir görüşte değil, kendi repository’nde bir sayıda bulunuyor.
Bu corpus’a karşı konu başına bir tane olmak üzere yirmi gerçekçi destek sorusu yazıldı ve aşağıdaki her rakam bu yirmi soru üzerinden hesaplandı.
Rota bir: her şeyi gönder
Bölüme bağlantı: Rota bir: her şeyi gönderÇalışan en basit şey: tüm corpus’u system prompt’a koy, soruyu sona ekle ve model’in bulmasını sağla.
system instructions 140 tokens
the 23 documents 43,158 tokens
the question (median of 20 measured) 13 tokens
the answer (the one assumption) 150 tokensOradaki her sayı sayıldı, sonuncusu hariç: 150 output token bir varsayım, Bölüm 16’nın faturalandırdığı assistant turn aralığında seçildi. Burada çalıştırılmamış tek rakam odur, üç rotaya da aynı şekilde uygulanır ve break-even bölümü değiştirdiğinde sonucun ne kadar oynadığını tam olarak gösterir.
Provider’ın 7 Eylül 2026’daki sayfasından okunan oranlarla — milyon input token başına $1.50, milyon output başına $9.006 — bu, soru başına $0.066317 eder. On üç token’lık bir yanıt için kırk üç bin token’ı yeniden okumaya para ödüyorsun.
Bölüm 16’nın düzeltmesi doğrudan uygulanır: corpus stabil ve başta, yani mükemmel bir cache prefix; geri okumak onda bir maliyetlidir — soru başına $0.007864, %88 kesinti. Bölüm 16’nın uyarısı da, o bölümün işaretleyip fiyatlandırmadığı biçimde geçerlidir. Bu provider write premium almıyor; kira alıyor. Explicit cache, stored token başına saatlik $0.000001 tutuyor,6 yani 43,298 token’ı sıcak tutmak
herhangi biri bir şey sorsa da sormasa da bu maliyete gelir. Bu, boş bir oda için altı ayda $189.78 demektir. Kirayı soru başına tasarrufa böldüğünde koşul tek satırda çıkar: bu corpus’u caching etmek, haftalık cache rebuild de sayıldığında saatte 0,74 sorunun — ayda 546’nın — üstünde kendini öder. Bunun altında, para tasarrufu için açtığın özellik para kaybettirir.
| altı ay, ayda 100 soru | toplam |
|---|---|
| tüm corpus, cache yok | $39.79 |
| tüm corpus, cached | $196.18 |
Aynı rota, aynı code, tek flag, faturanın beş katı. Bölüm 16 bunun yanlış yerde duran timestamp yüzünden olan bir versiyonunu bulmuştu; burada trafik dışında yanlış hiçbir şey yok. Cache hacim üzerine bir bahistir ve bu provider’da bahsi saatlik koyarsın.
Rota iki: yalnızca önemli olanı gönder
Bölüme bağlantı: Rota iki: yalnızca önemli olanı gönderBölüm 19’un retriever’ı, değiştirilmeden: section boundary’lerden contextual header ile kes, indexle, prompt’a en iyi dört alıntıyı koy. Yirmi soru üzerinden ölçüldü:
chunks produced from the corpus 330
mean tokens of a chunk's own text 124.9
mean tokens of the four retrieved extracts 884
prompt per question (140 + 884 + 13) 1,037
one-off embedding of every chunk 46,823 tokensRota bire göre kırk iki kat daha az prompt token, soru başına $0.002906. Index’i kurmak, milyon embedding token başına $0.15 ile $0.0070 tutar6 — üç sorudan az — ve dokümantasyon her değiştiğinde sıfırdan rebuild etmek yine $0.0070 tutar. Altı ay boyunca tüm index’i her hafta rebuild etmek on sekiz sent tutar.
Bir şeyin üzerinde durmaya değer. Retrieval, prompt caching’i yok eder. Stabil prefix artık 140 token’lık system instruction’dır; 141. token’dan itibaren prompt her call’da farklıdır, çünkü alıntılar soru başına seçilir. Ve 140 token, Bölüm 16’nın alıntıladığı her cache minimumunun altındadır. Bu yüzden rota iki hiç cached olamaz; kulağa kötü geliyor ama değil: 1,037 token’ı cache etmemek, 43,298 token’ı cache etmekten ucuzdur.
Taşımaya değer genel kural şudur: iki büyük token tasarrufu tekniği aynı content üzerinde birbirini dışlar ve kazanan, daha çok token’ı kaldırandır. Retrieval bunların %97,6’sını kaldırır.
Rota üç: dokümantasyonu göndermeyi bırak
Bölüme bağlantı: Rota üç: dokümantasyonu göndermeyi bırakHouse style’da iki yüz örnekle train et, sonra hiç dokümantasyon eklemeden soru sor.
training examples 200
training tokens 24,389
epochs 3
prompt per question (15 + 13) 28Training maliyeti 24,389 × 3 × milyon başına $10.00 = $0.7317. Tüm construction cost bu, bir kahveden ucuz; tam da bu yüzden birçok ekip işe yarayıp yaramadığını kontrol etmeden önce bunu öder.
Şimdi tuzak ve bu bölümün varlık sebebi. Fine-tuned model, çalıştırılırken base model’iyle aynı maliyette değildir. Pricing page tek cümlede söylüyor: “Gemini 3’ten başlayan model inference için tuned model endpoint prediction price, base model’in 1,5 katı olacaktır.”6 Training değil. Model yaşadığı sürece her token’daki inference.
Öyleyse formüle koy. ve base input ve output fiyatları, tuned multiplier, yerine geçtiğin rotanın prompt uzunluğu, fine-tuning sonrası prompt uzunluğu ve answer length olsun. Fine-tuning soru başına yalnızca şu durumda daha ucuzdur:
İlk terim açık: yeni kısa prompt’un, markup ile. İkincisi açık değil ve para oraya gidiyor — answer üzerindeki surcharge, bunun prompt’unla ilgisi yok ve training bunu kısaltamaz. Ölçülen sayılarla — , , , — eşik şudur:
answer 50 tokens -> the prompt it replaces must exceed 192 tokens
answer 150 tokens -> the prompt it replaces must exceed 492 tokens
answer 400 tokens -> the prompt it replaces must exceed 1,242 tokens
answer 1000 tokens -> the prompt it replaces must exceed 3,042 tokensÖlçülen answer length’te 492 token — bunun 450’si prompt değil answer surcharge. Bundan daha kısa bir prompt’u değiştirmek, her hacimde ve sonsuza kadar soru başına daha pahalıdır; eşik assistant’ın ne kadar konuştuğuyla doğrusal büyür, bu yüzden uzun yanıtlar yazan biri ne kadar prompt silerse silsin daha ucuz token’a fine-tune ederek ulaşamaz.
Aynı olgunun diğer uçtan cümlesi şudur. Fine-tuned rotanın soru başına $0.002088’inin %97,0’ı answer’dır. Fine-tuning kalan yüzde üçü optimize eder.
Maliyet sayfası
Bölüme bağlantı: Maliyet sayfasıBu rotaların herhangi birini dört sayı tanımlar: bir kez ne ödediğin, dokümantasyon değiştiğinde ne ödediğin, ne olursa olsun saatlik ne ödediğin ve soru başına ne ödediğin. Bu, Bölüm 16’nın computeCost’sini değiştirmeden genişletir.
import { computeCost, type Pricing, type Usage } from "./cost"; // Chapter 16
export interface Route {
name: string;
setupUSD: number; // paid once, before the first question
perRefreshUSD: number; // paid every time the documentation changes
standingUSDPerHour: number; // paid per hour whatever the traffic
pricing: Pricing;
usage: Usage; // one question and its answer
}
export const perQueryUSD = (r: Route) => computeCost(r.pricing, r.usage);
const HOURS_PER_MONTH = (24 * 365.25) / 12;
export function totalUSD(
r: Route, months: number, queriesPerMonth: number, refreshesPerMonth: number,
) {
return r.setupUSD
+ months * refreshesPerMonth * r.perRefreshUSD
+ months * HOURS_PER_MONTH * r.standingUSDPerHour
+ months * queriesPerMonth * perQueryUSD(r);
}
/** Monthly volume at which `b` overtakes `a`. null = it never does. */
export function crossover(
a: Route, b: Route, months: number, refreshesPerMonth: number,
): number | null {
const fixed = (r: Route) =>
r.setupUSD
+ months * refreshesPerMonth * r.perRefreshUSD
+ months * HOURS_PER_MONTH * r.standingUSDPerHour;
const dFixed = fixed(b) - fixed(a); // b's extra fixed cost
const dVar = perQueryUSD(a) - perQueryUSD(b); // b's per-question saving
if (dVar <= 0) return null; // b is never cheaper
return Math.max(0, dFixed / dVar / months);
}Tuned model farklı bir fiyat listesi değildir, aynı listenin çarpılmış hâlidir:
const TUNED_MULTIPLIER = 1.5; // read from the provider's pricing page, 2026-09-07
const scale = (p: Pricing, k: number): Pricing => ({
input: p.input.map(t => ({ ...t, price: t.price * k })),
cachedInput: p.cachedInput!.map(t => ({ ...t, price: t.price * k })),
output: p.output.map(t => ({ ...t, price: t.price * k })),
});Vurgulanan tek satır, önceki bölümün tüm argümanının code olarak yazılmış hâlidir: multiplier output üzerine de iner.
Altı ay, dokümantasyon haftalık yenilenirken:
| soru / ay | prompt, cached | prompt, cache yok | retrieval | fine-tune |
|---|---|---|---|---|
| 100 | $196.18 | $39.79 | $1.93 | $21.01 |
| 1,000 | $238.65 | $397.90 | $17.62 | $32.28 |
| 10,000 | $663.32 | $3,978.99 | $174.52 | $145.04 |
| 100,000 | $4,909.98 | $39,789.90 | $1,743.49 | $1,272.56 |
Ve bir bütçenin gerçekte ihtiyaç duyduğu dört sayı olan crossover’lar:
retrieval -> fine-tune, documentation never changes: 148 questions / month
retrieval -> fine-tune, documentation refreshed weekly: 3,989 questions / month
prompt (no cache) -> retrieval: 1 question / month
prompt (no cache) -> prompt (cached): 546 questions / monthİlk ikisini birlikte oku, çünkü bölümün ana noktası onlar. Durağan bir corpus fine-tuning’in yüz elli soruda kendini ödemesini sağlar; haftalık değişen bir corpus aynı crossover’ı yirmi yedi kat oynatır ve model hakkında hiçbir şey değişmemiştir — yalnızca onun için ne sıklıkla yeniden ödeme yaptığın değişmiştir. Construction cost dipnottur; maintenance cost karardır.
Buradan yoğun bir destek masasının fine-tune etmesi gerektiği sonucuna varırsan aritmetik seninle aynı fikirde. Yine de yanlış ve sıradaki bölüm nedenini anlatıyor.
Fine-tune gerçekte ne öğrendi
Bölüme bağlantı: Fine-tune gerçekte ne öğrendiMaliyet sayfasının hesaplayamadığı bir sütun var, bu yüzden bu bölüm fine-tune’ı çalıştırıyor: lokal olarak, küçük bir açık model üzerinde, adapter bir library’den çekilmek yerine elle yazılarak. Bölüm 11 LoRA’yı kurmuştu; işte burada Qwen2.5-0.5B-Instruct’nın 24 layer’ının tamamındaki q_proj ve v_proj üzerinde rank 8 ile:
class LoRALinear(nn.Module):
def __init__(self, base: nn.Linear, r=8, alpha=16):
super().__init__(); self.base = base
for p in self.base.parameters():
p.requires_grad = False # the model is frozen
self.A = nn.Parameter(torch.zeros(r, base.in_features))
nn.init.normal_(self.A, std=1 / r)
self.B = nn.Parameter(torch.zeros(base.out_features, r))
self.s = alpha / r
self.on = True # so the same run can compare both
def forward(self, x):
y = self.base(x)
return y + (x @ self.A.T @ self.B.T) * self.s if self.on else yİki yüz training example corpus’tan mekanik olarak geliyor, bu yüzden yeniden üretilebilir: soru, soruya çevrilmiş bir section heading; answer ise o section’ın kendi metni, katı bir house style içinde — Short answer: ile başlayan bir satır, dosya path’iyle Source: başlayan bir satır. Öğretilen formattır; path ise fact’tir. Sonra yirmi held-out soru üzerinde iki sayı: answer house style’da çıkıyor mu ve soruyu gerçekten yanıtlayan dosyanın adını veriyor mu?
İki baseline tabloyu okunur kılar ve ikisi de sonradan eklenmiş fikir değil, Bölüm 4’ün ısrarıdır. Yirmi doğru yanıtın onu aynı dosyadır, bu yüzden soruyu yok sayıp her zaman CLAUDE.md yanıtını veren bir model 10/20 alır. Retriever’ın da kendi tavanı vardır: bu yirmi soru boyunca dört alıntısında doğru dosya 14 kez bulunur ve 7 kez ilk sıradadır; yani onu kullanan herhangi bir reader’ın alabileceği en yüksek skor 14/20’dir.
LoRA modules 48 trainable parameters 540,672 (0.109 % of the model)
400 steps, 2 epochs, 0.76 s/step on 16 CPU threads, 304 s in total
mean loss over the first 50 steps 3.7363 -> over the last 50 steps 2.4197
house style correct source
always answer the most common file -- 10 / 20
the retriever's own ceiling -- 14 / 20
base model, closed book 0 / 20 0 / 20
fine-tuned, closed book 19 / 20 8 / 20
base model, four retrieved extracts 13 / 20 2 / 20
fine-tuned, four retrieved extracts 1 / 20 1 / 20Biçim tamamen ve hızlı öğrenildi. Sıfırdan yirmide on dokuza; 540,672 parametreli bir adapter’dan — model’in %0,109’u — üstelik ortada ekran kartı olmayan bir processor’da beş dakikalık training ile.
Facts öğrenilmedi. Yirmide sekiz, soruyu tamamen yok sayarak aldığın ondan ayırt edilemez; Bölüm 4’ün yirmi sample üzerindeki interval’ı bunu yüksek sesle söyler. O dosya path’leri training data’da üç kez vardı; çıkan şey plausible-looking bir Source: satırıyla bitirme alışkanlığıydı. Bu bölümün başındaki soru sorulduğunda fine-tuned model Short answer: 10.x . . . yanıtını verdi ve CLAUDE.md kaynak gösterdi. CLAUDE.md içinde bulunan doğru yanıt 18.17.0’dır.
Sonra form bozuldu; deneyi haklı çıkaran satır da bu. Fine-tuned model’e bin token’lık retrieved alıntılar ver — training prompt’larının her biri yirmi sekiz token olduğu için hiç görmediği bir prompt şekli — ve house style 19/20’den 1/20’ye çöker. Bu bölümün başındaki soruda 18.17.0 yanıtını verir — doğru ve train edildiği formatın hiçbiri yok. Yani fine-tuning bir format öğretmedi; training set’indeki prompts’a koşullu bir format öğretti ve farklı görünen ilk prompt formatı da beraberinde götürdü. Neye fine-tune edersen model’in iyi olduğu tek input distribution o olur ve bunu kimse spreadsheet’e koymaz.
Metric hakkında son bir not, doğrudan Bölüm 29’a işaret ediyor: “correct source” form ve fact’i birlikte skorlar; iki retrieval satırının da o sorunun fact’ini doğru almasına rağmen korkunç görünmesinin nedeni bu. Tek end-to-end sayı üç şeyi saklıyordu — 14/20 recall’da bir retriever, 0.5B reader ve citation formatı — ve hangisini düzelteceğini seçmek, ölçtükten sonra değil önce ayırmayı gerektirir.
Kontrol etmediğin saat
Bölüme bağlantı: Kontrol etmediğin saatŞimdi vendor’ların senin için doldurduğu sütun. Fine-tuned model sahip olduğun bir varlık değildir; üzerinde bitiş tarihi yazılı, başkasının base model’ine ait bir kiradır. 7 Eylül 2026’da OpenAI’ın pricing page’inin fine-tuning bölümünde şu notice tam olarak yer alıyordu:
OpenAI is winding down the fine-tuning platform. The platform is no longer accessible to new users, but existing users of the fine-tuning platform will be able to create training jobs for the coming months. All fine-tuned models will remain available for inference until their base models are deprecated.7
Zaman çizelgesi gününe kadar tarihlenmiş: 7 Mayıs 2026, hiç fine-tune yapmamış organisations’a kapandı; 2 Temmuz 2026, altmış gün içinde fine-tuned model üzerinde inference çalıştırmamış olanlara kapandı; 6 Ocak 2027, hiç yeni job yok.8 Aynı sayfa fine-tuned model’lerin kendilerinin kapanışını da planlıyor — ft-gpt-3.5-turbo, ft-gpt-4, ft-gpt-4.1-nano, ft-babbage-002, ft-davinci-002 — 23 Ekim 2026’da; her biri için bir recommended replacement base model ile, yani kibarca: yeniden train et.
Diğer frontier vendor sana kira bile satmadı. Anthropic’in documentation index’i 699 sayfa listeliyor ve hiçbiri fine-tuning hakkında değil; Bedrock pricing page’in model-customisation bölümleri Amazon Nova, Amazon Titan, Cohere, Meta ve OpenAI open-weight models’ı kapsıyor, Claude yok.910 Mimarinin bir fine-tune’a bağlıysa üç frontier ailesinden biri hiçbir bütçede senin için mevcut değildir.
Self-hosting, model üzerindeki kirayı makine üzerindeki kirayla değiştirir ve AWS bu aritmetiği kendi sayfasında yapar: customised model için provisioned throughput’un bir model unit’i, bir aylık commitment, “1 model unit × $21.18 × 24 hours × 31 days = $15,757.92” ayda.10 Metali doğrudan kiralamak daha ucuzdur ama bedava değildir — H100 için on demand GPU-hour başına $3.99, preemptible $1.9911 — kimse bir şey sormasa da ayakta kalması gereken tek kart için ayda yaklaşık $2,900. Retrieval rotasının tamamı, ayda on bin soruda altı ay için $174.52’dir.
LoRA’nın teknik değil bütçe argümanı olarak yerini kazandığı yer burasıdır. Aynı model üzerinde ölçüldüğünde attention ve feed-forward layer’lar üzerinde rank-16 adapter 8,798,208 parametredir — model’in %1,781’i, bfloat16’da 17.6 MB — 0.988 GB base weights’e karşı; optimiser ve gradient state’i 140.77 MB’dir, full fine-tuning ise 7.90 GB ister, 56 kat fark. Sonuç daha ucuz training değil; tek loaded base model’in birçok adapter’a hizmet edebilmesidir, GPU’nun fixed cost’unun herhangi bir şeye bölünebilmesinin tek yolu budur. Managed training bunu yansıtır: 16B’ye kadar low-rank için milyon token başına $0.48, full için $0.54, job başına $4.00 minimumla.11 Ayrıntı o tabandır. Üç epoch için 24,389 token’da bu corpus üzerindeki her retraining, hesaplanan $0.04 yerine $4.00 faturalandırılır — yirmi altı haftalık çalışmada doksan bir sentlik aritmetiğe karşı $104 minimum.
Privacy neye mal olur ve distillation neden dördüncü seçenek değildir
Bölüme bağlantı: Privacy neye mal olur ve distillation neden dördüncü seçenek değildirYalnızca faturada görünen iki sütun daha.
Data residency yaklaşık yüzde ona mal olur ve iki provider bu rakamda aynı fikirde. OpenAI, 5 Mart 2026 ve sonrasında yayımlanan model’ler için data-residency endpoints üzerinde “%10 uplift” alır;7 Vertex non-global endpoints’i $1.50 yerine $1.65 fiyatlar, aynı yüzde on.6 Bunu tuned endpoint’in yüzde elli maliyetiyle karşılaştırınca söylenti tersine döner: residency ucuzdur, fine-tuning değildir — ve fine-tuning zaten private seçenek değildir; corpus provider’a her iki durumda da ulaşır, call başına bir kez yerine training zamanında bir kez.
Verine konmuş en açık fiyat aynı sayfadadır; bir fine-tuned model’i iki kez listeler: data sharing enabled iken inference tam yarıdır — input’ta $4.00 yerine $2.00, output’ta $16.00 yerine $8.00.7 Provider’ın gönderdiğini tutmasına izin vermek %50 discount değerindedir; bu da onun için ne kadar değerli olduğunu söyler.
Distillation — büyük bir model’in answers’ı üzerinde kendi küçük model’ini train etmek — genellikle ikisinden de çıkış yolu olarak sunulur. Fiyatlandırınca değildir, çünkü teacher değiştirmeye çalıştığın sistemdir: retrieval rotasına iki yüz soru sorarak iki yüz training example üretmek 200 × $0.002906 = $0.58 tutar; bunlar üzerinde train etmek için $0.73’ün üstüne. Distillation, retrieval pipeline çalıştıktan sonra onu ucuzlatmak için yaptığın bir şeydir ve retriever’ın yanlış aldığı her fact’i miras alır.
Latency olarak ne ödersin
Bölüme bağlantı: Latency olarak ne ödersinPara görünen yarıdır. Diğeri bekleme olarak gelir ve faturayla aynı nedene sahiptir: model bir kelime söylemeden önce tüm prompt’u okur. Bölüm 13 dokunabildiğin bir model üzerinde prefill’i decode’a karşı ölçmüştü; burada aynı ölçüm, tek run, tek makine, prompt uzunluğuna karşı:
| prompt token | ilk token’a kadar süre | token başına |
|---|---|---|
| 28 | 312 ms | 11.14 ms |
| 1,037 | 4,971 ms | 4.79 ms |
| 4,096 | 22,272 ms | 5.44 ms |
| 8,192 | 49,443 ms | 6.04 ms |
Mutlak sayılar on altı CPU thread’i üzerindeki 0.5B model’e aittir ve hosted frontier model hakkında hiçbir şey söylemez. Şekil aynen aktarılır: prefill prompt uzunluğuyla büyür ve token başına maliyet, Bölüm 9’un quadratic terimi görünmeye başladıkça sürünerek artar — bin token’da 4.79 ms, sekiz binde 6.04 ms; sadece daha uzun olduğu için %26 penalty.
Üç rota için sonuç doğrudandır. Rota bir soru başına kırk üç bin token prefill eder ve cache hit bunu katlanılır kılar — Bölüm 16 nedenini açıkladı: cache read prefill işini değiştirir, böylece latency ve parayı tek transaction’da satın alır. Rota iki bin token prefill eder ve önce index’e bir round trip ekler. Rota üç yirmi sekiz token prefill eder ve hiçbir şey eklemez; bu da onu yanıtlamada üçü arasında ölçülebilir biçimde en hızlı kılar. Sadece yanlış şeyi yanıtlar.
Üçünün de cevap olmadığı yerler
Bölüme bağlantı: Üçünün de cevap olmadığı yerlerModel problemi gibi görünen ama olmayan üç failure — burada on dakika, sonra bir ay kazandırır:
Dokümantasyon cevabı içermiyor
Bölüme bağlantı: Dokümantasyon cevabı içermiyorRetrieval kimsenin yazmadığı şeyi retrieve edemez; bunun üzerinde fine-tuning yapmak modele yalnızca kendinden emin konuşmayı öğretir. En çok gelen support question corpus’ta hiçbir yerde yanıtlanmıyorsa çözüm bir teknik yazardır.
Cevap metin değil, action gerektiriyor
Bölüme bağlantı: Cevap metin değil, action gerektiriyor“Siparişim nerede?” bir database query’dir, knowledge question değil. Bu bir tool call’dur — Bölüm 18 — ve ne training ne retrieval onun yerine geçer.
Soru ambiguous ve interface bunu saklıyor
Bölüme bağlantı: Soru ambiguous ve interface bunu saklıyorİki ürün aynı adı paylaştığında mümkün olan en iyi yanıt açıklama istemektir. Bu, output hakkında bir modelling kararı değil, input hakkında bir product kararıdır.
Ve tüm bunların üzerindeki requirement: bu karar evaluation set olmadan verilemez ve fine-tune satan vendor da bunu söylüyor. OpenAI’ın guide’ı “Fine-tuning’e yalnızca evals kurduktan sonra yatırım yapın. Fine-tuned model’inizin base model’den daha iyi performans gösterip göstermediğini belirlemenin güvenilir bir yoluna ihtiyacınız var” diye açılır ve elli iyi örnek hiçbir şeyi değiştirmiyorsa problemin data volume değil task veya prompt olduğunu ekler.1 Bu bölümün kullandığı yirmi soru bir mekanizma gösterir ve supplier seçemez — Bölüm 4 nedenini ve elinde yalnızca yirmi vaka olduğunda ne yapacağını ölçmüştü: tekrar et, eşleştir ve run’lar arasındaki spread’i ölç — bu da Bölüm 29’dur.
Dört sütun ve yalnızca sonuncusu karar verir:
| prompt | retrieval | fine-tune | |
|---|---|---|---|
| ne öğretir | yazabildiğin her şey | değişen facts | form ve davranış |
| construction cost | sıfır | $0.0070 artı bir öğleden sonra | $0.7317 artı eval set |
| soru başına maliyet | cached $0.0079, değilse $0.0663 | $0.0029 | 492 prompt token üstünde $0.0021 |
| maintenance cost | sıfır veya kirada saatlik $0.043 | rebuild başına $0.0070 | değişiklik başına bir retraining, ayrıca retired edilen base model başına bir tane |
Buradan çıkan kural, akılda tutulacak kadar kısa: prompt ile başla; facts hareket ediyorsa retrieval ekle; fine-tune’ı yalnızca hâlâ eksik olan şeyin fact değil shape olduğunu ölçtüğünde yap — ve yapmadan önce prompt’u değil answer’ı fiyatlandır.
Başta kararını vermiş gelenler için rahatsız edici versiyon: bu bölümde ölçülen vakada fine-tuning ayda dört bin sorunun üstünde en ucuz rotadır ve facts üzerinde hâlâ her şeye CLAUDE.md yanıtını vermeyi yenemez.
Sırada ne var
Bölüme bağlantı: Sırada ne varBuradaki her fiyat token başınaydı ve her rota token’ları düzenlemenin farklı bir yoluydu. Bu artık doğru olmamaya başlıyor.
Bölüm 21 metinden ayrılıyor. Modele giren image bir string değil, token sayısını senin seçmediğin bir patch grid’idir; konuşulan bir dakika bir provider’da saniyeyle, diğerinde audio token ile faturalandırılır; synthetic speech character ile, transcription dakika ile, raw compute GPU-second ile satılır. Bu bölümün tek bir cost function ile yanıtladığı soru — hangisi daha ucuz? — units eşleşene kadar sorulamaz bile ve internetteki hiçbir calculator bunları normalize etmez.
Aynı zamanda training’in yeniden ortaya çıktığı yer de burasıdır: trigger word’lü bir image adapter ve sample’dan cloned voice. Bu da sıradaki bölümün açtığı soruyu doğurur; retorik değildir: bir language model’i fine-tuning neredeyse her zaman yanlış satın almaysa, bir image model’i fine-tuning neden neredeyse her zaman doğrusudur?
Kaynaklar ve yöntem
Bölüme bağlantı: Kaynaklar ve yöntemBu bölümdeki her fiyat, eşik ve multiplier provider’ın kendi sayfasından 7 Eylül 2026 tarihinde okundu ve o tarihle alıntılandı, çünkü hepsi değişecek. Ölçülen rakamlar — token counts, chunk sizes, retrieval sizes, training loss, scores, latencies ve version-history counts — aynı gün tek makinede üretildi ve yukarıda tarif edilen corpus’tan yeniden üretilebilir.
Lokal deneylerde greedy decoding ile Qwen/Qwen2.5-0.5B-Instruct kullanıldı, bu yüzden tam olarak yeniden üretilirler; adapter yukarıda yazdırılan on iki satırlık class’tır, q_proj ve v_proj üzerinde rank 8. Corpus, çalışan bir yazılım repository’sinin tracked Markdown documentation’ıdır; append-only iki log hariç tutuldu ve change rate o repository’nin version history’sinden sayıldı.
Referanslar
Bölüme bağlantı: Referanslar-
OpenAI, Supervised fine-tuning,
developers.openai.com/api/docs/guides/supervised-fine-tuning, ve Model optimization,.../guides/model-optimization, ikisine de erişim 2026-09-07. Kaynak: supervised fine-tuning’in en iyi olduğu şeyler tablosu (classification, nuanced translation, belirli bir formatta content generation, instruction-following failures’ı düzeltme); shorter prompts ve lower latency dâhil dört claimed benefit; 10 training example minimumu ve 50 ile başlama önerisi; ayrıca “Only invest in fine-tuning after setting up evals.” ↩ ↩2 -
Zhou, C. et al. LIMA: Less Is More for Alignment. arXiv:2305.11206 (2023). Superficial Alignment Hypothesis — knowledge pretraining’den gelir, alignment hangi formatta konuşulacağını öğretir — ve bin curated example’ın yetmesinin nedeni. ↩
-
Brown, T. et al. Language Models are Few-Shot Learners. arXiv:2005.14165 (2020). Dürüst baseline olarak in-context learning’in kaynağı: task prompt içinde gösterilir ve hiçbir weight güncellenmez. ↩
-
Ovadia, O., Brief, M., Mishaeli, M. and Elisha, O. Fine-Tuning or Retrieval? Comparing Knowledge Injection in LLMs. arXiv:2312.05934 (2023). Retrieval, pretraining’de zaten görülen facts dâhil knowledge injection için unsupervised fine-tuning’i geçti. ↩
-
Gekhman, Z. et al. Does Fine-Tuning LLMs on New Knowledge Encourage Hallucinations? arXiv:2405.05904 (2024). Yeni knowledge getiren examples yavaş fitted olur ve onları fitting etmek unrelated questions üzerinde hallucination’ı artırır. ↩
-
Google, Vertex AI generative AI pricing,
cloud.google.com/vertex-ai/generative-ai/pricing, erişim 2026-09-07. Bu bölümün cost sheet’indeki her rakam: global endpoint’te Gemini 3.5 Flash için milyon input token başına $1.50, cached input $0.15 ve text output $9.00; non-global endpoints %10 daha yüksek; aynı model’in supervised fine-tuning’i 1,000 training token başına $0.01, burada “training tokens are calculated by the total number of tokens in your training dataset, multiplied by your number of epochs”; explicit context cache storage token başına saatlik $0.000001; Gemini Embedding input online 1,000 token başına $0.00015; ve “for model inference starting from Gemini 3, tuned model endpoint prediction price will be 1.5 times of the base model.” notu. ↩ ↩2 ↩3 ↩4 ↩5 -
OpenAI, Pricing,
developers.openai.com/api/docs/pricing, erişim 2026-09-07. Tam alıntılanan wind-down notice’ın ve cross-check için kullanılan mevcut text rates’in kaynağı:gpt-5.6-terrastandard short context milyon token başına $2.00 input, $0.20 cached input, $2.50 cache write ve $12.00 output; batch tier her birinin yarısı. Sayfada yedi base model üzerinde on fine-tuning row var ve bunlardan tam olarak biri token yerine zamanla faturalandırılıyor:o4-mini-2025-04-16için reinforcement fine-tuning, training hour başına $100.00. Aynı sayfa 5 Mart 2026 veya sonrasında yayımlanan model’ler için data-residency endpoints üzerinde %10 uplift not eder. ↩ ↩2 ↩3 -
OpenAI, Deprecations,
developers.openai.com/api/docs/deprecations, erişim 2026-09-07. Self-serve fine-tuning timeline’ın (7 Mayıs 2026, 2 Temmuz 2026, 6 Ocak 2027) ve 23 Ekim 2026’daft-gpt-3.5-turbo,ft-gpt-4,ft-gpt-4.1-nano-2025-04-14,ft-babbage-002veft-davinci-002kapanışının kaynağı; her biri recommended replacement base model ile listelenmiştir. ↩ -
Anthropic, developer documentation index,
platform.claude.com/llms.txt, erişim 2026-09-07. 699 listelenmiş sayfa, hiçbiri fine-tuning hakkında değil;platform.claude.com/docs/en/build-with-claude/fine-tuning404 döndürür. ↩ -
Amazon Web Services, Amazon Bedrock pricing,
aws.amazon.com/bedrock/pricing/, erişim 2026-09-07. Model-customisation bölümlerinin (Amazon Nova, Amazon Titan, Cohere, Meta, Qwen ve OpenAI open-weight models — Claude yok), her custom model’i store etmek için aylık $1.95 ücretin ve alıntılanan worked example’ın kaynağı: “1 model unit × $21.18 × 24 hours × 31 days = $15,757.92”. ↩ ↩2 -
Together AI, Pricing,
together.ai/pricing, erişim 2026-09-07. 16B’ye kadar model’ler için milyon token başına fine-tuning: supervised fine-tuning’de low-rank $0.48 ve full $0.54, direct preference optimisation’da $1.20 ve $1.35; fiyat “training dataset size × number of epochs” artı evaluation tokens olarak hesaplanır ve job başına “a minimum charge of $4.00” vardır. GPU capacity: HGX H100 için on demand GPU-hour başına $3.99, preemptible $1.99, H200 için $5.99. ↩ ↩2