İçeriğe geç

Model bilmiyor, bildiğini sanıyor

7 yıllık bir çalışanın yıllık izni kaç iş günü?
İngilizce, logların yazdığı gibi: “How many working days of annual leave does an employee with 7 years of service get?”
→ 25-30 iş günü
bare model, no documents

Model günün sorusuna sayı uydurdu. Politikadaki sayı başka.

How many working days ofannual leave does an employeewith 7 years of service get?gemma3:4bhiç doküman yok25-30 iş günü“depending on the company’s policy”cevap token token yazılır, her adımda en olası devam:… servicegets25-30workingdays…bir sayı gelmesi olası;doğru sayı olduğunu kontrol eden yokpolitika: 22 iş günü
gemma3:4bağırlıklar: yaklaşık 4 milyar sayıbildiği her şey bu sayılara dağılmışeğitim verisiinternet · kitap · kodeğitimeğitim bitti: sayılar donduKraken Airizin politikası✗eğitimde yoktucevapsayılar okunur, yazılmazsoruher soruda aynı sayılar① ağırlıkları değiştir: fine-tune② soruyla birlikte önüne koy: RAG
  1. Kaynaksız soru

    Günün sorusunu modele tek başına sorduk. Cevabın şirketin politikasına göre değiştiğini söyledi (“depending on the company’s policy”). Bu kulağa temkinli geliyor. Ama yine de sayı verdi: 25-30 iş günü. Model Kraken Air’in politikasını hiç görmedi; bu sayılar oradan gelmiyor.

  2. Nasıl yazdı?

    Model cevabı token token yazar: her adımda, o ana kadarki metne en olası devamı seçer. “How many working days” gibi bir sorudan sonra metinlerde çoğunlukla bir sayı gelir. Sayının doğruluğunu kontrol eden bir adım yok.

  3. Bilgi nerede duruyor?

    Modelin bildiği her şey ağırlıklarında: gemma3:4b’de yaklaşık 4 milyar sayı. Eğitim bu sayıları, metni daha iyi tahmin edecek şekilde azar azar ayarlar. Bilgi tek bir yerde değil, sayılara dağılmış.

  4. Eğitim bitti, sayılar dondu

    Eğitim bitince ağırlıklar dondurulur. Her soru onları okur, hiçbiri yazmaz; sohbet de modele bir şey öğretmez. Kraken Air’in politikası eğitim verisinde yoktu, yani bu sayılarda da yok.

  5. Bilmediğini bilmiyor

    Politika 22 iş günü diyor. Bu sayı modelin verdiği aralığın içinde bile değil. Model çekince koydu ama “bilmiyorum” demedi. Modelin içinde “bunu bilmiyorum” diye yanan bir ışık yok. Uydurulan cevap da doğru cevap kadar akıcı çıkar. Buna halüsinasyon denir.

    Kaynaksız başka bir soru: npm run step -- 0 "How many days do I have to upload my receipts after a trip?"
  6. Bilgiyi modele vermenin iki yolu

    Ya modeli kendi örneklerimizle yeniden eğitip ağırlıklarını değiştiririz (fine-tune) ya da her soruda ilgili metni soruyla birlikte modelin önüne koyarız (RAG). Önce RAG’i deneyeceğiz; fine-tune’a bölümün sonunda döneceğiz.

Model: “… gets 25-30 working days of annual leave, depending on the company’s policy.” Politikanın kendisi corpus/2025/hr-leave.md içinde; 14. yıla kadar her kıdem yılı bir satır, son satır “15 or more”:

corpus/2025/hr-leave.md
| Years of service (full years) | Annual paid leave (working days) |
|---|---|
| 1 | 16 |
| 2 | 16 |
| 3 | 18 |
| 4 | 18 |
| 5 | 22 |
| 6 | 22 |
| 7 | 22 |
| 8 | 22 |
| 9 | 22 |
| 10 | 25 |
| 11 | 25 |
| 12 | 25 |
| 13 | 25 |
| 14 | 25 |
| 15 or more | 28 |

0-bare.ts dosyasının bütün kodu: soruyu modele doğrudan sorar; doküman yok, arama yok.

src/steps/0-bare.ts
// STEP 0 — BARE MODEL
// Gate: before building anything, ask the model on its own. It has never seen our policy handbook —
// watch what it does instead of saying so.
import { config } from "../lib/config.js";
import { done, line, stepHeader, yellow } from "../lib/log.js";
import { generate } from "../lib/ollama.js";
/**
* What it does: sends the question to the chat model with no documents and returns its answer.
*
* Ask the chat model a question with no sources at all.
* @param question defaults to the day's question
* @returns the model's answer text
*/
export async function run(question = config.dayQuestion): Promise<string> {
stepHeader(0, "bare model");
const t0 = performance.now();
line("IN", question);
line("WHAT", `ask ${config.chatModel} directly — no documents, no search`);
const gen = await generate(question, { system: "Answer briefly." });
line("OUT", `${gen.promptTokens} prompt tokens · ${gen.outputTokens} output tokens`);
console.log(`\n${yellow(gen.text)}\n`);
done(t0);
return gen.text;
}
npm run step -- 0
$ npm run step -- 0
━━ STEP 0/8 · BARE MODEL
IN How many working days of annual leave does an employee with 7 years of service get?
WHAT ask gemma3:4b directly — no documents, no search
OUT 37 prompt tokens · 32 output tokens
Typically, an employee with 7 years of service gets 25-30 working days of annual leave, depending on the company's policy.
TIME 985 ms

OUT satırındaki prompt token sayısına bakın: RAG’de soruyla birlikte kaynaklar da gideceği için bu sayı büyüyecek.

Politikada cevabı olan başka bir soruyu modele kaynaksız sorun:

Terminal window
npm run step -- 0 "How many days do I have to upload my receipts after a trip?"

Sonra cevabı politikayla karşılaştırın: corpus/2025/travel-expenses.md, 7. bölüm. Model ne kadar emin konuşuyor?

npm run step -- 0 (fişler)
$ npm run step -- 0 "How many days do I have to upload my receipts after a trip?"
━━ STEP 0/8 · BARE MODEL
IN How many days do I have to upload my receipts after a trip?
WHAT ask gemma3:4b directly — no documents, no search
OUT 33 prompt tokens · 19 output tokens
It varies by company, but most require receipts to be uploaded within **30 days**.
TIME 602 ms

Model 30 gün yazıyor, hem de kalın. Emin konuşuyor. Şimdi politika:

corpus/2025/travel-expenses.md
## 7. Expense Reports and Receipts
Upload all travel costs to the travel portal within 15 calendar days
after you return. Add scanned copies of the invoices and receipts.
Reports sent after 15 days are not processed and not paid.

Politika 30 değil, 15 gün diyor. Modele güvenen, fişlerini geç yükler ve parasını alamaz. Yanlış cevap da doğrusu kadar emin konuşur.

Hiç ayar yapmadan “bilmiyorum” diyen model var mı?

Güvenilir biçimde yok: bazı modeller bazen çekimser kalır, ama hangi soruda kalacağını önceden bilemezsiniz. RAG’de “bilmiyorum” tasarlanır; nasıl tasarlandığı F · Cevap üretimi sayfasında.

Daha büyük bir model bilir mi?

Kamuya açık konularda daha çok şey bilir. Kraken Air kurgu; bir şirketin iç dokümanları da hiçbir modelin eğitim verisinde yoktur. Büyük model de bu soruda ya uydurur ya susar; hangisini yapacağını da siz seçemezsiniz.

Sohbet ederken öğrenmiyor mu?

Hayır. Önceki mesajlar her seferinde prompt’a yeniden eklenir; bu yüzden hatırlıyor gibi görünür. Sohbet bitince hiçbir şey kalmaz, ağırlıklar değişmez.

Bilmiyor — ve bilmediğini bilmiyor.