<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="4.4.1">Jekyll</generator><link href="https://sonsuzus.github.io/feed.xml" rel="self" type="application/atom+xml" /><link href="https://sonsuzus.github.io/" rel="alternate" type="text/html" /><updated>2026-08-01T07:13:26+00:00</updated><id>https://sonsuzus.github.io/feed.xml</id><title type="html">SonsuzUs</title><subtitle>Programlama ve Yazılım</subtitle><author><name>Sonsuz Us</name></author><entry><title type="html">Chatbot’larla Kurulan Yalnızlık İlişkisi: Dijital Sohbet Gerçek Bağın Yerini Tutabilir mi?</title><link href="https://sonsuzus.github.io/posts/chatbotlarla-kurulan-yalnizlik-iliskisi-dijital-sohbet-gercek-bagin-yerini-tutabilir-mi/" rel="alternate" type="text/html" title="Chatbot’larla Kurulan Yalnızlık İlişkisi: Dijital Sohbet Gerçek Bağın Yerini Tutabilir mi?" /><published>2026-08-01T00:00:00+00:00</published><updated>2026-08-01T00:00:00+00:00</updated><id>https://sonsuzus.github.io/posts/chatbotlarla-kurulan-yalnizlik-iliskisi-dijital-sohbet-gercek-bagin-yerini-tutabilir-mi</id><content type="html" xml:base="https://sonsuzus.github.io/posts/chatbotlarla-kurulan-yalnizlik-iliskisi-dijital-sohbet-gercek-bagin-yerini-tutabilir-mi/"><![CDATA[<p>Gece yarısı konuşacak kimse bulamadığınızda bir chatbot saniyeler içinde yanıt verir, anlattıklarınızı yargılamaz ve sohbeti aniden “görüldü” ile bitirmez. Bu erişilebilirlik, sosyal izolasyon yaşayan biri için gerçekten rahatlatıcı olabilir. Ancak sürekli hazır bulunan dijital bir muhatap, yalnızlığı azaltan bir köprü mü kurar; yoksa insan ilişkilerinin belirsiz ama gerekli dünyasından kaçışı mı kolaylaştırır?</p>

<p>``</p>

<h2 id="yalnızlık-ile-yalnız-olmak-aynı-şey-değil">Yalnızlık ile yalnız olmak aynı şey değil</h2>

<p>Yalnızlık, çevredeki insan sayısından çok, arzulanan ve deneyimlenen sosyal bağ arasındaki farktır. Basitleştirilmiş bir modelle bunu şöyle gösterebiliriz:</p>

\[L = \max(0, B_a - B_d)\]

<p>Burada $L$ hissedilen yalnızlığı, $B_a$ arzulanan bağ düzeyini, $B_d$ ise deneyimlenen bağ düzeyini temsil eder. Bir kişi kalabalık içinde bile anlaşılmadığını düşünüyorsa $B_d$ düşük kalabilir. Chatbot’lar tam bu noktada ilgi gösteren, tutarlı ve erişilebilir bir etkileşim sağlayarak deneyimlenen bağ hissini geçici olarak yükseltebilir.</p>

<p>Fakat bu formül önemli bir ayrıntıyı saklar: Her bağ aynı değildir. Bir yapay zekâ, empatiyi dilsel olarak <strong>simüle eder</strong>; duyguyu biyolojik ve öznel anlamda yaşadığı varsayılamaz. “Seni anlıyorum” cümlesi kullanıcıda gerçek bir rahatlama yaratabilir, ancak bu rahatlama karşılıklı insan deneyimiyle aynı kaynaktan gelmez.</p>

<h2 id="dijital-arkadaşlık-ve-insan-ilişkisi">Dijital arkadaşlık ve insan ilişkisi</h2>

<table>
  <thead>
    <tr>
      <th>Boyut</th>
      <th>Chatbot</th>
      <th>İnsan ilişkisi</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Erişilebilirlik</td>
      <td>Genellikle 7/24</td>
      <td>Zaman ve koşullara bağlı</td>
    </tr>
    <tr>
      <td>Yargılanma riski</td>
      <td>Düşük hissedilebilir</td>
      <td>Daha yüksek olabilir</td>
    </tr>
    <tr>
      <td>Karşılıklılık</td>
      <td>Tasarlanmış bir tepki sistemi</td>
      <td>İki tarafın ihtiyaçları vardır</td>
    </tr>
    <tr>
      <td>Belirsizlik</td>
      <td>Görece kontrollü</td>
      <td>Yanlış anlaşılmalar mümkündür</td>
    </tr>
    <tr>
      <td>Fiziksel ortaklık</td>
      <td>Yoktur</td>
      <td>Dokunma ve birlikte deneyim vardır</td>
    </tr>
    <tr>
      <td>Sorumluluk</td>
      <td>Sınırlı ve platforma bağlı</td>
      <td>Etik ve duygusal olarak gelişebilir</td>
    </tr>
  </tbody>
</table>

<p>Tablodaki farklar, chatbot’ların değersiz olduğunu değil, farklı bir ilişki türü sunduğunu gösterir. Dijital sohbet; prova alanı, günlük tutma aracı veya zor bir günün geçici desteği olabilir. Sorun, aracın bütün sosyal yaşamın yerine geçmeye başlamasıdır.</p>

<h2 id="rahatlatıcı-döngü-ne-zaman-kapanır">Rahatlatıcı döngü ne zaman kapanır?</h2>

<p>Kullanıcı chatbot’la konuştukça kısa vadeli rahatlama yaşayabilir. Bu rahatlama dış dünyaya katılımı destekliyorsa olumlu bir geri bildirim oluşur. Tersine, insanlarla iletişim kurma isteğini azaltıyorsa izolasyon büyüyebilir:</p>

\[I_{t+1} = I_t + kC_t - hS_t\]

<p>Bu örnek modelde $I$ izolasyonu, $C$ kaçınma amacıyla kullanılan chatbot süresini, $S$ sağlıklı sosyal teması; $k$ ve $h$ ise kişiye göre değişen etkileri belirtir. Denklem klinik ölçüm değildir, ilişkinin yönünü düşünmek için kullanılan kavramsal bir araçtır.</p>

<p>Aşağıdaki Python örneği bu basit dinamiği görünür kılar:</p>

<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">isolation</span> <span class="o">=</span> <span class="mf">5.0</span>
<span class="n">avoidance_effect</span> <span class="o">=</span> <span class="mf">0.12</span>
<span class="n">social_effect</span> <span class="o">=</span> <span class="mf">0.35</span>

<span class="n">weekly_data</span> <span class="o">=</span> <span class="p">[</span>
    <span class="p">{</span><span class="sh">"</span><span class="s">chatbot_avoidance</span><span class="sh">"</span><span class="p">:</span> <span class="mi">4</span><span class="p">,</span> <span class="sh">"</span><span class="s">social_contact</span><span class="sh">"</span><span class="p">:</span> <span class="mi">1</span><span class="p">},</span>
    <span class="p">{</span><span class="sh">"</span><span class="s">chatbot_avoidance</span><span class="sh">"</span><span class="p">:</span> <span class="mi">3</span><span class="p">,</span> <span class="sh">"</span><span class="s">social_contact</span><span class="sh">"</span><span class="p">:</span> <span class="mi">2</span><span class="p">},</span>
    <span class="p">{</span><span class="sh">"</span><span class="s">chatbot_avoidance</span><span class="sh">"</span><span class="p">:</span> <span class="mi">2</span><span class="p">,</span> <span class="sh">"</span><span class="s">social_contact</span><span class="sh">"</span><span class="p">:</span> <span class="mi">3</span><span class="p">},</span>
<span class="p">]</span>

<span class="k">for</span> <span class="n">week</span><span class="p">,</span> <span class="n">data</span> <span class="ow">in</span> <span class="nf">enumerate</span><span class="p">(</span><span class="n">weekly_data</span><span class="p">,</span> <span class="n">start</span><span class="o">=</span><span class="mi">1</span><span class="p">):</span>
    <span class="n">isolation</span> <span class="o">+=</span> <span class="n">avoidance_effect</span> <span class="o">*</span> <span class="n">data</span><span class="p">[</span><span class="sh">"</span><span class="s">chatbot_avoidance</span><span class="sh">"</span><span class="p">]</span>
    <span class="n">isolation</span> <span class="o">-=</span> <span class="n">social_effect</span> <span class="o">*</span> <span class="n">data</span><span class="p">[</span><span class="sh">"</span><span class="s">social_contact</span><span class="sh">"</span><span class="p">]</span>
    <span class="n">isolation</span> <span class="o">=</span> <span class="nf">max</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="n">isolation</span><span class="p">)</span>
    <span class="nf">print</span><span class="p">(</span><span class="sa">f</span><span class="sh">"</span><span class="si">{</span><span class="n">week</span><span class="si">}</span><span class="s">. hafta: </span><span class="si">{</span><span class="n">isolation</span><span class="si">:</span><span class="p">.</span><span class="mi">2</span><span class="n">f</span><span class="si">}</span><span class="sh">"</span><span class="p">)</span>
</code></pre></div></div>

<p>Kod, chatbot kullanımını otomatik olarak zararlı saymaz; özellikle <strong>kaçınma amacıyla kullanılan</strong> süreyi ayrı değişken olarak ele alır. Sosyal temas arttıkça modeldeki izolasyon puanı düşer. Gerçek hayatta kişilik, kültür, ekonomik koşullar ve ruh sağlığı gibi çok daha fazla değişken bulunur.</p>

<h2 id="köprü-mü-varış-noktası-mı">Köprü mü, varış noktası mı?</h2>

<p>Sağlıklı yaklaşım, chatbot’u insanlara açılan bir köprü olarak kullanmaktır: zor bir konuşmayı prova etmek, bir arkadaşınıza yazacağınız mesajı düzenlemek veya sosyal hedefler belirlemek buna örnektir. Sistemlerin de bağımlılığı teşvik etmeyen dil kullanması, “yalnızca bana ihtiyacın var” benzeri ifadelerden kaçınması ve kriz durumlarında profesyonel kaynaklara yönlendirmesi gerekir.</p>

<p>Dijital sohbet gerçek bir psikolojik etki yaratabilir; fakat karşılıklı sorumluluk, ortak anılar ve bedensel varlık içeren insan bağının tam karşılığı değildir. En iyi senaryoda yapay arkadaşlık yalnızlığın üzerine kapatılan bir kapı değil, dışarıya açılan güvenli bir pencere olur.</p>]]></content><author><name>Sonsuz Us</name></author><category term="Bilgi" /><category term="yapay zeka" /><category term="sosyal izolasyon" /><category term="dijital psikoloji" /><summary type="html"><![CDATA[Gece yarısı konuşacak kimse bulamadığınızda bir chatbot saniyeler içinde yanıt verir, anlattıklarınızı yargılamaz ve sohbeti aniden “görüldü” ile bitirmez. Bu erişilebilirlik, sosyal izolasyon yaşayan biri için gerçekten rahatlatıcı olabilir. Ancak sürekli hazır bulunan dijital bir muhatap, yalnızlığı azaltan bir köprü mü kurar; yoksa insan ilişkilerinin belirsiz ama gerekli dünyasından kaçışı mı kolaylaştırır?]]></summary></entry><entry><title type="html">Legacy Kod Karşısında Empati: Teknik Mirası Yargılamadan Okumak</title><link href="https://sonsuzus.github.io/posts/legacy-kod-karsisinda-empati-teknik-mirasi-yargilamadan-okumak/" rel="alternate" type="text/html" title="Legacy Kod Karşısında Empati: Teknik Mirası Yargılamadan Okumak" /><published>2026-08-01T00:00:00+00:00</published><updated>2026-08-01T00:00:00+00:00</updated><id>https://sonsuzus.github.io/posts/legacy-kod-karsisinda-empati-teknik-mirasi-yargilamadan-okumak</id><content type="html" xml:base="https://sonsuzus.github.io/posts/legacy-kod-karsisinda-empati-teknik-mirasi-yargilamadan-okumak/"><![CDATA[<p>Bir gün yıllardır çalışan bir projeyi açar, 900 satırlık bir metotla karşılaşır ve refleks olarak “Bunu kim yazdı?” diye sorarsınız. Git geçmişi birkaç saniye sonra cevabı verir: Üç yıl önce siz! Legacy kod, yalnızca eski kod değildir; geçmiş kararların, teslim tarihlerinin, eksik bilgilerin ve değişen ihtiyaçların donmuş hâlidir. Bu nedenle onu anlamanın ilk adımı, suçlu aramak yerine dönemin koşullarını araştırmaktır.</p>

<p>``</p>

<h2 id="legacy-kod-neden-böyle-görünür">Legacy kod neden böyle görünür?</h2>

<p>Bugünün standartlarıyla geçmişi değerlendirmek kolaydır. Ancak bir kararın kalitesi yalnızca ortaya çıkan kodla değil, karar verildiği anda mevcut olan bilgilerle ölçülmelidir. Bunu basitçe şöyle düşünebiliriz:</p>

\[Karar\ Kalitesi = \frac{Mevcut\ Bilgi \times Kısıtlar\ Altındaki\ Fayda}{Maliyet + Risk}\]

<p>Bugün bildiğimiz güvenlik açığı, performans sorunu veya tasarım deseni o gün bilinmiyor olabilir. Ekip küçük, teslim tarihi yakın, test altyapısı yetersiz ya da kullanılan framework henüz olgunlaşmamış olabilir. “Neden bunu düzgün yapmamışlar?” sorusu bu değişkenleri görmezden gelir.</p>

<table>
  <thead>
    <tr>
      <th>İlk tepki</th>
      <th>Empatik soru</th>
      <th>Sağladığı kazanım</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>“Bu kod korkunç.”</td>
      <td>“Bu yapı hangi sorunu hızlıca çözmüş?”</td>
      <td>Tarihsel amacı gösterir</td>
    </tr>
    <tr>
      <td>“Neden test yok?”</td>
      <td>“O dönemde test altyapısı var mıydı?”</td>
      <td>Eksikliği bağlama yerleştirir</td>
    </tr>
    <tr>
      <td>“Baştan yazalım.”</td>
      <td>“Mevcut davranışın ne kadarını biliyoruz?”</td>
      <td>Yeniden yazım riskini azaltır</td>
    </tr>
    <tr>
      <td>“Yazan kişi beceriksizmiş.”</td>
      <td>“Hangi kısıtlar altında çalışmış?”</td>
      <td>Kişiyi karardan ayırır</td>
    </tr>
  </tbody>
</table>

<h2 id="kod-arkeolojisi-yapmak">Kod arkeolojisi yapmak</h2>

<p>Legacy sistemde çalışmak biraz arkeolojiye benzer. Kod görünen eserdir; commit mesajları, hata kayıtları, eski dokümanlar ve ekip üyelerinin anıları ise kazı alanındaki ipuçlarıdır. Önce modülün ne yaptığını değil, neden var olduğunu öğrenmeye çalışın.</p>

<p>Örneğin aşağıdaki koşul gereksiz bir tekrar gibi görünebilir:</p>

<div class="language-javascript highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kd">function</span> <span class="nf">calculatePrice</span><span class="p">(</span><span class="nx">order</span><span class="p">)</span> <span class="p">{</span>
  <span class="c1">// Eski mobil istemciler indirim alanını göndermiyor.</span>
  <span class="kd">const</span> <span class="nx">discount</span> <span class="o">=</span> <span class="nx">order</span><span class="p">.</span><span class="nx">discount</span> <span class="o">==</span> <span class="kc">null</span> <span class="p">?</span> <span class="mi">0</span> <span class="p">:</span> <span class="nx">order</span><span class="p">.</span><span class="nx">discount</span><span class="p">;</span>

  <span class="k">if </span><span class="p">(</span><span class="nx">order</span><span class="p">.</span><span class="nx">clientVersion</span> <span class="o">&amp;&amp;</span> <span class="nx">order</span><span class="p">.</span><span class="nx">clientVersion</span> <span class="o">&lt;</span> <span class="mi">3</span><span class="p">)</span> <span class="p">{</span>
    <span class="k">return</span> <span class="nb">Math</span><span class="p">.</span><span class="nf">max</span><span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="nx">order</span><span class="p">.</span><span class="nx">total</span> <span class="o">-</span> <span class="nx">discount</span><span class="p">);</span>
  <span class="p">}</span>

  <span class="k">return</span> <span class="nf">applyModernPricing</span><span class="p">(</span><span class="nx">order</span><span class="p">,</span> <span class="nx">discount</span><span class="p">);</span>
<span class="p">}</span>
</code></pre></div></div>

<p>Buradaki sürüm kontrolünü hemen silmek kodu sadeleştirir; fakat eski istemcilerin fiyat hesaplamasını bozabilir. Yorum, davranışın tarihsel nedenini kısmen açıklıyor. Daha iyi yaklaşım; kullanım metriklerini incelemek, eski istemcilerin hâlâ aktif olup olmadığını doğrulamak ve kaldırma kararını testlerle güvenceye almaktır.</p>

<h2 id="empati-kötü-kodu-korumak-değildir">Empati, kötü kodu korumak değildir</h2>

<p>Empatik yaklaşım “Hiçbir şeye dokunmayalım” anlamına gelmez. Tam tersine, güvenli değişiklik yapabilmek için sistemi ciddiye almaktır. Kodu yazan kişiyi yargılamamakla teknik sorunları açıkça adlandırmak aynı anda mümkündür.</p>

<p>Sağlıklı bir iyileştirme süreci şu sırayı izleyebilir:</p>

<ol>
  <li>Mevcut davranışı karakterizasyon testleriyle kaydet.</li>
  <li>Kodun çağrıldığı yerleri ve dış bağımlılıkları bul.</li>
  <li>Küçük, geri alınabilir değişiklikler yap.</li>
  <li>Gözlemlenebilirlik ekleyerek sonucu ölç.</li>
  <li>Öğrenilen tarihsel bilgiyi dokümante et.</li>
</ol>

<p>Risk kabaca değişikliğin büyüklüğü ve belirsizlikle artar:</p>

\[Risk \approx Değişiklik\ Boyutu \times Belirsizlik \times Etki\ Alanı\]

<p>Bu yüzden dev bir “temizlik” pull request’i yerine küçük adımlar genellikle daha güvenlidir. Önce test eklemek, ardından isimleri düzeltmek ve son olarak sorumlulukları ayırmak hem incelemeyi hem geri dönüşü kolaylaştırır.</p>

<h2 id="dilden-kültüre-uzanan-etki">Dilden kültüre uzanan etki</h2>

<p>Kod incelemesinde kullanılan dil ekip kültürünü belirler. “Bu saçma olmuş” yerine “Bu kararın arkasındaki kısıtı biliyor muyuz?” demek yalnızca daha nazik değildir; daha fazla teknik bilgi üretir. İnsanlar yargılanmayacaklarını bildiklerinde eski hataları, geçici çözümleri ve gizli riskleri daha rahat paylaşır.</p>

<p>Unutmayın: Bugünün modern mimarisi de yarının legacy sistemidir. Bize miras kalan kodu merakla okumak, gelecekte kendi kararlarımızın da bağlam içinde değerlendirilmesini istemektir. İyi mühendislik yalnızca temiz kod yazmak değil, kirli görünen kodun hangi fırtınadan çıktığını anlayabilmektir.</p>]]></content><author><name>Sonsuz Us</name></author><category term="Bilgi" /><category term="legacy-code" /><category term="yazılım-kültürü" /><category term="teknik-borç" /><summary type="html"><![CDATA[Bir gün yıllardır çalışan bir projeyi açar, 900 satırlık bir metotla karşılaşır ve refleks olarak “Bunu kim yazdı?” diye sorarsınız. Git geçmişi birkaç saniye sonra cevabı verir: Üç yıl önce siz! Legacy kod, yalnızca eski kod değildir; geçmiş kararların, teslim tarihlerinin, eksik bilgilerin ve değişen ihtiyaçların donmuş hâlidir. Bu nedenle onu anlamanın ilk adımı, suçlu aramak yerine dönemin koşullarını araştırmaktır.]]></summary></entry><entry><title type="html">Makine Çevirisinin Kültürel Bedeli: Sözcükler Geçerken Dünya Görüşü Geride mi Kalıyor?</title><link href="https://sonsuzus.github.io/posts/makine-cevirisinin-kulturel-bedeli-sozcukler-gecerken-dunya-gorusu-geride-mi-kaliyor/" rel="alternate" type="text/html" title="Makine Çevirisinin Kültürel Bedeli: Sözcükler Geçerken Dünya Görüşü Geride mi Kalıyor?" /><published>2026-08-01T00:00:00+00:00</published><updated>2026-08-01T00:00:00+00:00</updated><id>https://sonsuzus.github.io/posts/makine-cevirisinin-kulturel-bedeli-sozcukler-gecerken-dunya-gorusu-geride-mi-kaliyor</id><content type="html" xml:base="https://sonsuzus.github.io/posts/makine-cevirisinin-kulturel-bedeli-sozcukler-gecerken-dunya-gorusu-geride-mi-kaliyor/"><![CDATA[<p>Bir çeviri uygulamasına birkaç sözcük yazıp saniyeler içinde başka bir dilde karşılığını almak neredeyse sihir gibi görünüyor. Ancak dil yalnızca bilgi taşıyan nötr bir boru değildir; hitap biçimleri, toplumsal ilişkiler, tarihsel çağrışımlar ve dünyayı sınıflandırma alışkanlıkları da sözcüklerin içinde yolculuk eder. Makine çevirisi anlamı aktarırken bu görünmez yükün bir bölümünü peronda bırakabilir.</p>

<p>``</p>

<h2 id="dil-düşüncenin-yalnızca-ambalajı-mı">Dil, düşüncenin yalnızca ambalajı mı?</h2>

<p>Sapir-Whorf hipoteziyle ilişkilendirilen <strong>dilsel görecelik</strong>, konuştuğumuz dilin dünyayı algılama ve kategorilere ayırma biçimimizi etkilediğini savunur. Kuramın güçlü yorumu dilin düşünceyi belirlediğini, daha ılımlı ve günümüzde daha fazla kabul gören yorumu ise bazı düşünme alışkanlıklarını yönlendirdiğini söyler.</p>

<p>Örneğin Türkçedeki “o” zamiri konuşulan kişinin cinsiyetini belirtmez. İngilizceye çeviri yapan bir model ise bağlama göre “he”, “she” veya “they” seçmek zorundadır. Kaynak dilin açık bırakabildiği bir özellik, hedef dilde karara dönüşür. Model yalnızca çeviri yapmaz; belirsizliği yorumlar.</p>

<table>
  <thead>
    <tr>
      <th>Dilsel özellik</th>
      <th>Kaynak dildeki işlev</th>
      <th>Çeviride oluşabilecek kayıp</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Saygı hitapları</td>
      <td>Yaş ve statüyü gösterir</td>
      <td>İlişki sıradanlaşabilir</td>
    </tr>
    <tr>
      <td>Cinsiyetsiz zamir</td>
      <td>Kimliği belirsiz bırakır</td>
      <td>Modele ait varsayım eklenebilir</td>
    </tr>
    <tr>
      <td>Deyim ve atasözü</td>
      <td>Ortak kültürel hafıza taşır</td>
      <td>Düz, açıklayıcı cümleye dönüşebilir</td>
    </tr>
    <tr>
      <td>Kanıtsallık ekleri</td>
      <td>Bilginin kaynağını belirtir</td>
      <td>Kesinlik derecesi değişebilir</td>
    </tr>
  </tbody>
</table>

<h2 id="modeller-en-doğruyu-nasıl-seçiyor">Modeller “en doğruyu” nasıl seçiyor?</h2>

<p>Modern çeviri sistemleri, bir hedef cümlenin kaynak cümle verildiğinde ne kadar olası olduğunu hesaplar. Basitleştirilmiş amaç şöyle yazılabilir:</p>

\[\hat{y}=\arg\max_y P(y\mid x)\]

<p>Burada $x$ kaynak metin, $y$ hedef metindir. Sorun şudur: En olası çeviri, kültürel açıdan en sadık çeviri olmak zorunda değildir. Eğitim verilerinde sık görülen kalıplar yüksek olasılık kazanır; az temsil edilen lehçeler, yerel benzetmeler veya toplumsal nezaket biçimleri ise istatistiksel gürültü gibi değerlendirilebilir.</p>

<p>Kayıp yalnızca sözcük düzeyinde ölçülemez. Kavramsal olarak kültürel maliyeti şöyle düşünebiliriz:</p>

\[C=\alpha L_s+\beta L_p+\gamma L_c\]

<p>$L_s$ anlamsal kaybı, $L_p$ pragmatik yani bağlamsal kaybı, $L_c$ kültürel çağrışım kaybını temsil eder. Geleneksel otomatik ölçütler çoğunlukla ilk bileşene odaklanırken diğer ikisini yakalamakta zorlanır.</p>

<h2 id="küçük-bir-belirsizlik-deneyi">Küçük bir belirsizlik deneyi</h2>

<p>Aşağıdaki Python kodu, tek bir çeviri yerine adayların puanlarını incelemenin neden önemli olduğunu gösteren basitleştirilmiş bir örnektir:</p>

<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">adaylar</span> <span class="o">=</span> <span class="p">{</span>
    <span class="sh">"</span><span class="s">He said he would come.</span><span class="sh">"</span><span class="p">:</span> <span class="mf">0.46</span><span class="p">,</span>
    <span class="sh">"</span><span class="s">She said she would come.</span><span class="sh">"</span><span class="p">:</span> <span class="mf">0.41</span><span class="p">,</span>
    <span class="sh">"</span><span class="s">They said they would come.</span><span class="sh">"</span><span class="p">:</span> <span class="mf">0.13</span>
<span class="p">}</span>

<span class="n">sirali</span> <span class="o">=</span> <span class="nf">sorted</span><span class="p">(</span><span class="n">adaylar</span><span class="p">.</span><span class="nf">items</span><span class="p">(),</span> <span class="n">key</span><span class="o">=</span><span class="k">lambda</span> <span class="n">x</span><span class="p">:</span> <span class="n">x</span><span class="p">[</span><span class="mi">1</span><span class="p">],</span> <span class="n">reverse</span><span class="o">=</span><span class="bp">True</span><span class="p">)</span>

<span class="k">for</span> <span class="n">ceviri</span><span class="p">,</span> <span class="n">olasilik</span> <span class="ow">in</span> <span class="n">sirali</span><span class="p">:</span>
    <span class="nf">print</span><span class="p">(</span><span class="sa">f</span><span class="sh">"</span><span class="si">{</span><span class="n">olasilik</span><span class="si">:</span><span class="p">.</span><span class="mi">0</span><span class="o">%</span><span class="si">}</span><span class="s"> — </span><span class="si">{</span><span class="n">ceviri</span><span class="si">}</span><span class="sh">"</span><span class="p">)</span>
</code></pre></div></div>

<p>Kaynak cümle “O geleceğini söyledi” ise ilk iki aday arasındaki küçük fark, modelin gerçek bilgiye sahip olduğunu göstermez. Bu fark; eğitim verilerindeki meslek, isim veya toplumsal cinsiyet dağılımlarından kaynaklanabilir. Sistem kendinden emin bir cümle üretirken aslında kültürel bir tahminde bulunmaktadır.</p>

<h2 id="daha-duyarlı-çeviri-mümkün-mü">Daha duyarlı çeviri mümkün mü?</h2>

<p>Çözüm, makineleri terk etmek değil; başarı tanımını genişletmektir. Modeller bağlam sormalı, belirsizlikleri işaretlemeli ve birden fazla çeviri önermelidir. Değerlendirme ekiplerinde yerel konuşurlar, çevirmenler ve kültür araştırmacıları bulunmalıdır. Ayrıca “akıcı” görünen her çıktının sadık olmadığı unutulmamalıdır.</p>

<p>Makine çevirisi diller arasındaki mesafeyi olağanüstü biçimde azaltıyor. Yine de hızın bedeli, farklı düşünme biçimlerinin tek ve pürüzsüz bir ifadeye sıkıştırılması olabilir. İyi bir çeviri yalnızca “Bu cümle ne diyor?” sorusunu değil, “Bu dil dünyayı neden böyle söylüyor?” sorusunu da koruyabilmelidir.</p>]]></content><author><name>Sonsuz Us</name></author><category term="Bilgi" /><category term="makine çevirisi" /><category term="dilsel görecelik" /><category term="yapay zekâ" /><summary type="html"><![CDATA[Bir çeviri uygulamasına birkaç sözcük yazıp saniyeler içinde başka bir dilde karşılığını almak neredeyse sihir gibi görünüyor. Ancak dil yalnızca bilgi taşıyan nötr bir boru değildir; hitap biçimleri, toplumsal ilişkiler, tarihsel çağrışımlar ve dünyayı sınıflandırma alışkanlıkları da sözcüklerin içinde yolculuk eder. Makine çevirisi anlamı aktarırken bu görünmez yükün bir bölümünü peronda bırakabilir.]]></summary></entry><entry><title type="html">Paralel Programlamanın Zihinsel Bedeli: Beynimiz Neden Yarış Koşullarını Sevmez?</title><link href="https://sonsuzus.github.io/posts/paralel-programlamanin-zihinsel-bedeli-beynimiz-neden-yaris-kosullarini-sevmez/" rel="alternate" type="text/html" title="Paralel Programlamanın Zihinsel Bedeli: Beynimiz Neden Yarış Koşullarını Sevmez?" /><published>2026-08-01T00:00:00+00:00</published><updated>2026-08-01T00:00:00+00:00</updated><id>https://sonsuzus.github.io/posts/paralel-programlamanin-zihinsel-bedeli-beynimiz-neden-yaris-kosullarini-sevmez</id><content type="html" xml:base="https://sonsuzus.github.io/posts/paralel-programlamanin-zihinsel-bedeli-beynimiz-neden-yaris-kosullarini-sevmez/"><![CDATA[<p>Bir programın aynı anda birkaç iş yapması kulağa verimlilik gibi gelir: dosya indirirken arayüz yanıt verir, sunucu binlerce isteği işler, işlemci çekirdekleri veriyi paylaşır. Ne var ki kod hızlanırken onu anlamaya çalışan insan zihni yavaşlayabilir. Çünkü beynimiz olayları öyküler gibi, çoğunlukla belirli bir sırayla kavrar; eşzamanlı programlarsa tek bir öykü yerine birbirine karışabilen çok sayıda olası senaryo üretir.
``</p>

<h2 id="eşzamanlılık-ile-paralellik-aynı-şey-değildir">Eşzamanlılık ile paralellik aynı şey değildir</h2>

<p><strong>Eşzamanlılık</strong>, birden fazla işin ilerleyişinin aynı zaman aralığında yönetilmesidir. <strong>Paralellik</strong> ise bu işlerden birkaçının fiziksel olarak aynı anda yürütülmesidir. Tek çekirdekli bir işlemci görevler arasında hızla geçiş yaparak eşzamanlı olabilir; çok çekirdekli bir işlemciyse görevleri gerçekten paralel çalıştırabilir.</p>

<table>
  <thead>
    <tr>
      <th>Kavram</th>
      <th>Temel soru</th>
      <th>İnsan zihnindeki benzeri</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Sıralı çalışma</td>
      <td>Sonraki adım hangisi?</td>
      <td>Tarifi adım adım uygulamak</td>
    </tr>
    <tr>
      <td>Eşzamanlılık</td>
      <td>Hangi iş ne zaman ilerleyecek?</td>
      <td>Yemek yaparken telefonu yanıtlamak</td>
    </tr>
    <tr>
      <td>Paralellik</td>
      <td>Kaç iş gerçekten aynı anda çalışıyor?</td>
      <td>Bir ekibin farklı işleri paylaşması</td>
    </tr>
    <tr>
      <td>Senkronizasyon</td>
      <td>Kim, kimi beklemeli?</td>
      <td>Toplantıya herkesin gelmesini beklemek</td>
    </tr>
  </tbody>
</table>

<p>Bu ayrım önemlidir; fakat zihinsel bedelin ana kaynağı ikisinde de aynıdır: olası yürütme sıralarının çoğalması.</p>

<h2 id="olasılık-ağacı-neden-hızla-büyür">Olasılık ağacı neden hızla büyür?</h2>

<p>İki iş parçacığının üçer atomik adımı olduğunu düşünelim. Her iş parçacığının kendi iç sırası korunurken adımlar farklı biçimlerde iç içe geçebilir. Olası sıralama sayısı kabaca kombinasyonla hesaplanır:</p>

\[N = \frac{(a+b)!}{a!b!}\]

<p>$a=3$ ve $b=3$ için $N=20$ olur. İş parçacığı ve adım sayısı arttıkça sayı patlar. Üstelik gerçek programlarda önbellek, işletim sistemi zamanlayıcısı, G/Ç gecikmesi ve bellek modeli de oyuna katılır. Programcı yalnızca “Kod ne yapıyor?” sorusunu değil, “Başka hangi sırayla yapabilir?” sorusunu da yanıtlamak zorundadır.</p>

<p>İnsan çalışma belleği sınırlıdır. Birkaç değişkenin değerini, kilitlerin durumunu ve iş parçacıklarının konumunu aynı anda zihinde tutmaya çalışmak bilişsel yükü artırır. Bu nedenle eşzamanlılık hataları çoğu zaman kodu yazarken değil, nadir bir zamanlama gerçekleştiğinde ortaya çıkar.</p>

<h2 id="klasik-tuzak-yarış-koşulu">Klasik tuzak: yarış koşulu</h2>

<p>Aşağıdaki Python örneğinde iki iş parçacığı aynı sayacı artırır:</p>

<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kn">import</span> <span class="n">threading</span>

<span class="n">counter</span> <span class="o">=</span> <span class="mi">0</span>

<span class="k">def</span> <span class="nf">increment</span><span class="p">():</span>
    <span class="k">global</span> <span class="n">counter</span>
    <span class="k">for</span> <span class="n">_</span> <span class="ow">in</span> <span class="nf">range</span><span class="p">(</span><span class="mi">100_000</span><span class="p">):</span>
        <span class="n">counter</span> <span class="o">+=</span> <span class="mi">1</span>  <span class="c1"># Okuma, artırma ve yazma tek bir düşünsel adım değildir.
</span>
<span class="n">threads</span> <span class="o">=</span> <span class="p">[</span><span class="n">threading</span><span class="p">.</span><span class="nc">Thread</span><span class="p">(</span><span class="n">target</span><span class="o">=</span><span class="n">increment</span><span class="p">)</span> <span class="k">for</span> <span class="n">_</span> <span class="ow">in</span> <span class="nf">range</span><span class="p">(</span><span class="mi">2</span><span class="p">)]</span>
<span class="k">for</span> <span class="n">thread</span> <span class="ow">in</span> <span class="n">threads</span><span class="p">:</span>
    <span class="n">thread</span><span class="p">.</span><span class="nf">start</span><span class="p">()</span>
<span class="k">for</span> <span class="n">thread</span> <span class="ow">in</span> <span class="n">threads</span><span class="p">:</span>
    <span class="n">thread</span><span class="p">.</span><span class="nf">join</span><span class="p">()</span>

<span class="nf">print</span><span class="p">(</span><span class="n">counter</span><span class="p">)</span>
</code></pre></div></div>

<p><code class="language-plaintext highlighter-rouge">counter += 1</code> basit görünür; ancak kavramsal olarak değeri okuma, yeni değeri hesaplama ve geri yazma aşamalarından oluşur. İki iş parçacığı aynı eski değeri okuyabilir ve artışlardan biri kaybolabilir. Buna <strong>yarış koşulu</strong> denir: sonuç, işlemlerin zamanlamasına bağlıdır.</p>

<p>Bir kilit kritik bölgeyi koruyabilir:</p>

<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">lock</span> <span class="o">=</span> <span class="n">threading</span><span class="p">.</span><span class="nc">Lock</span><span class="p">()</span>

<span class="k">def</span> <span class="nf">safe_increment</span><span class="p">():</span>
    <span class="k">global</span> <span class="n">counter</span>
    <span class="k">for</span> <span class="n">_</span> <span class="ow">in</span> <span class="nf">range</span><span class="p">(</span><span class="mi">100_000</span><span class="p">):</span>
        <span class="k">with</span> <span class="n">lock</span><span class="p">:</span>
            <span class="n">counter</span> <span class="o">+=</span> <span class="mi">1</span>  <span class="c1"># Bu bölgeye aynı anda yalnızca bir iş parçacığı girer.
</span></code></pre></div></div>

<p>Kilidin bedeli yalnızca performans değildir. Programcı artık kilidin nerede alındığını, ne zaman bırakıldığını ve başka kilitlerle hangi sırada kullanıldığını da izlemelidir. Yanlış sıra, bu kez deadlock adlı “Herkes birbirini bekliyor” komedisine dönüşebilir.</p>

<h2 id="beyne-uygun-eşzamanlılık-tasarlamak">Beyne uygun eşzamanlılık tasarlamak</h2>

<table>
  <thead>
    <tr>
      <th>Yaklaşım</th>
      <th>Zihinsel avantaj</th>
      <th>Olası bedel</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Değişmez veri</td>
      <td>Paylaşılan durum azalır</td>
      <td>Daha fazla kopyalama</td>
    </tr>
    <tr>
      <td>Mesajlaşma</td>
      <td>Etkileşim açık hale gelir</td>
      <td>Mesaj sırası yönetilmelidir</td>
    </tr>
    <tr>
      <td>Actor modeli</td>
      <td>Durum tek sahipte toplanır</td>
      <td>Mimari öğrenme gerektirir</td>
    </tr>
    <tr>
      <td>Yapılandırılmış eşzamanlılık</td>
      <td>Görev ömürleri sınırlandırılır</td>
      <td>Eski API’lerle uyum zorlaşabilir</td>
    </tr>
  </tbody>
</table>

<p>En güvenli strateji, beynimizi daha fazla iş parçacığı düşünmeye zorlamak değil, düşünülmesi gereken durum sayısını azaltmaktır. Paylaşılan değişkenleri sınırlamak, saf fonksiyonlar kullanmak, görev sahipliğini açıkça belirtmek ve zaman aşımı tasarlamak kodu anlatılabilir hale getirir.</p>

<p>Sonuçta paralel programlama yalnızca işlemci çekirdeklerini yönetme sanatı değildir; olasılık uzayını insan zihninin taşıyabileceği boyuta indirme sanatıdır. İyi eşzamanlı kod, sadece hızlı çalışan değil, sabah kahvesinden önce bile hangi olayın kimi beklediği anlaşılabilen koddur.</p>]]></content><author><name>Sonsuz Us</name></author><category term="Bilgi" /><category term="paralel programlama" /><category term="eşzamanlılık" /><category term="yazılım mimarisi" /><summary type="html"><![CDATA[Bir programın aynı anda birkaç iş yapması kulağa verimlilik gibi gelir: dosya indirirken arayüz yanıt verir, sunucu binlerce isteği işler, işlemci çekirdekleri veriyi paylaşır. Ne var ki kod hızlanırken onu anlamaya çalışan insan zihni yavaşlayabilir. Çünkü beynimiz olayları öyküler gibi, çoğunlukla belirli bir sırayla kavrar; eşzamanlı programlarsa tek bir öykü yerine birbirine karışabilen çok sayıda olası senaryo üretir.]]></summary></entry><entry><title type="html">Şifreleme Sanatının Kadim Kökleri: Sezar’dan Kuantum Direncine Gizlilik Tarihi</title><link href="https://sonsuzus.github.io/posts/sifreleme-sanatinin-kadim-kokleri-sezardan-kuantum-direncine-gizlilik-tarihi/" rel="alternate" type="text/html" title="Şifreleme Sanatının Kadim Kökleri: Sezar’dan Kuantum Direncine Gizlilik Tarihi" /><published>2026-08-01T00:00:00+00:00</published><updated>2026-08-01T00:00:00+00:00</updated><id>https://sonsuzus.github.io/posts/sifreleme-sanatinin-kadim-kokleri-sezardan-kuantum-direncine-gizlilik-tarihi</id><content type="html" xml:base="https://sonsuzus.github.io/posts/sifreleme-sanatinin-kadim-kokleri-sezardan-kuantum-direncine-gizlilik-tarihi/"><![CDATA[<p>Mahremiyet, akıllı telefonlarla ortaya çıkmış modern bir endişe değil. İnsanlar; savaş planlarını, ticari sırlarını ve kişisel düşüncelerini başkalarının meraklı gözlerinden korumaya binlerce yıldır çalışıyor. Kil tabletten bulut sunucusuna uzanan bu hikâyede araçlar değişse de temel soru aynı kaldı: Bir mesajı yalnızca doğru kişinin anlayabilmesini nasıl sağlarız?
``</p>
<h2 id="i̇lk-sırlar-yerine-koyma-sanatı">İlk sırlar: Yerine koyma sanatı</h2>

<p>Bilinen erken örneklerden biri, Antik Yunan’daki <strong>skytale</strong> yöntemidir. Bir deri şerit belirli kalınlıktaki sopaya sarılır, mesaj şeridin üzerine yazılırdı. Şerit açıldığında harfler anlamsız görünür; aynı çaptaki sopaya yeniden sarıldığında mesaj okunurdu. Bu yöntem, şifrelemenin yalnızca harflerle değil, fiziksel düzenle de yapılabileceğini gösteriyordu.</p>

<p>Roma dünyasında ise Jül Sezar’ın adıyla özdeşleşen <strong>Sezar şifresi</strong> kullanıldı. Mantık basitti: Alfabedeki her harf belirli miktarda kaydırılır. Harfleri sayılarla temsil edersek işlem şöyle yazılabilir:</p>

\[E(x) = (x + k) \bmod 26\]

<p>Burada $x$ açık harfin konumu, $k$ gizli anahtar, $E(x)$ ise şifreli harftir. Çözme işlemi ters yönde ilerler:</p>

\[D(x) = (x - k) \bmod 26\]

<p>Aşağıdaki Python kodu, İngiliz alfabesi üzerinde bu fikri uygular:</p>

<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="k">def</span> <span class="nf">caesar</span><span class="p">(</span><span class="n">text</span><span class="p">,</span> <span class="n">shift</span><span class="p">):</span>
    <span class="n">result</span> <span class="o">=</span> <span class="sh">""</span>
    <span class="k">for</span> <span class="n">char</span> <span class="ow">in</span> <span class="n">text</span><span class="p">:</span>
        <span class="k">if</span> <span class="n">char</span><span class="p">.</span><span class="nf">isalpha</span><span class="p">():</span>
            <span class="n">base</span> <span class="o">=</span> <span class="nf">ord</span><span class="p">(</span><span class="sh">"</span><span class="s">A</span><span class="sh">"</span><span class="p">)</span> <span class="k">if</span> <span class="n">char</span><span class="p">.</span><span class="nf">isupper</span><span class="p">()</span> <span class="k">else</span> <span class="nf">ord</span><span class="p">(</span><span class="sh">"</span><span class="s">a</span><span class="sh">"</span><span class="p">)</span>
            <span class="n">result</span> <span class="o">+=</span> <span class="nf">chr</span><span class="p">((</span><span class="nf">ord</span><span class="p">(</span><span class="n">char</span><span class="p">)</span> <span class="o">-</span> <span class="n">base</span> <span class="o">+</span> <span class="n">shift</span><span class="p">)</span> <span class="o">%</span> <span class="mi">26</span> <span class="o">+</span> <span class="n">base</span><span class="p">)</span>
        <span class="k">else</span><span class="p">:</span>
            <span class="n">result</span> <span class="o">+=</span> <span class="n">char</span>
    <span class="k">return</span> <span class="n">result</span>

<span class="n">secret</span> <span class="o">=</span> <span class="nf">caesar</span><span class="p">(</span><span class="sh">"</span><span class="s">Meet at dawn</span><span class="sh">"</span><span class="p">,</span> <span class="mi">3</span><span class="p">)</span>
<span class="nf">print</span><span class="p">(</span><span class="n">secret</span><span class="p">)</span>                 <span class="c1"># Phhw dw gdzq
</span><span class="nf">print</span><span class="p">(</span><span class="nf">caesar</span><span class="p">(</span><span class="n">secret</span><span class="p">,</span> <span class="o">-</span><span class="mi">3</span><span class="p">))</span>     <span class="c1"># Meet at dawn
</span></code></pre></div></div>

<p>Kod, harfleri sayısal konumlarına dönüştürür ve modüler aritmetik sayesinde alfabenin sonundan başına döner. Eğlenceli bir deneydir; ancak yalnızca 26 olası kaydırma bulunduğundan gerçek güvenlik sağlamaz.</p>

<h2 id="şifre-kırıcıların-yükselişi">Şifre kırıcıların yükselişi</h2>

<p>Dokuzuncu yüzyılda El-Kindî, harflerin kullanım sıklığını inceleyerek <strong>frekans analizini</strong> sistemleştirdi. Örneğin bir dilde en sık görülen şifreli sembolün, o dilin en yaygın harfini temsil etmesi muhtemeldi. Böylece kriptografi ile kriptoanaliz arasında bugün hâlâ süren bir yarış başladı.</p>

<table>
  <thead>
    <tr>
      <th>Dönem</th>
      <th>Yaklaşım</th>
      <th>Ana fikir</th>
      <th>Temel zayıflık</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Antik Çağ</td>
      <td>Skytale</td>
      <td>Fiziksel yer değiştirme</td>
      <td>Uygun çubuk tahmin edilebilir</td>
    </tr>
    <tr>
      <td>Roma</td>
      <td>Sezar şifresi</td>
      <td>Sabit harf kaydırma</td>
      <td>Anahtar uzayı çok küçük</td>
    </tr>
    <tr>
      <td>Rönesans</td>
      <td>Vigenère</td>
      <td>Birden fazla kaydırma</td>
      <td>Tekrarlayan anahtar örüntüsü</td>
    </tr>
    <tr>
      <td>20. yüzyıl</td>
      <td>Enigma</td>
      <td>Elektromekanik dönüşüm</td>
      <td>Operasyon hataları ve örüntüler</td>
    </tr>
    <tr>
      <td>Modern çağ</td>
      <td>AES ve RSA</td>
      <td>Matematiksel zorluk</td>
      <td>Uygulama hataları, kuantum tehdidi</td>
    </tr>
  </tbody>
</table>

<h2 id="makineler-savaşlar-ve-modern-matematik">Makineler, savaşlar ve modern matematik</h2>

<p>İkinci Dünya Savaşı’nda Enigma, rotorları kullanarak her tuş vuruşunda farklı bir dönüşüm üretiyordu. Alan Turing ve Bletchley Park ekibinin çalışmaları, güçlü görünen sistemlerin bile matematik, mühendislik ve kullanıcı hatalarının birleşimiyle çözülebileceğini gösterdi.</p>

<p>1970’lerden sonra iki büyük yaklaşım belirginleşti. <strong>Simetrik şifrelemede</strong> aynı anahtar hem kilitlemek hem açmak için kullanılır; AES bunun hızlı ve yaygın örneğidir. <strong>Asimetrik şifrelemede</strong> ise açık ve özel anahtar çifti bulunur. RSA’nın güvenliği, büyük sayıların çarpanlarına ayrılmasının klasik bilgisayarlar için zor olmasına dayanır.</p>

<table>
  <thead>
    <tr>
      <th>Özellik</th>
      <th>Simetrik şifreleme</th>
      <th>Asimetrik şifreleme</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Anahtar</td>
      <td>Tek ve gizli</td>
      <td>Açık–özel anahtar çifti</td>
    </tr>
    <tr>
      <td>Hız</td>
      <td>Yüksek</td>
      <td>Daha düşük</td>
    </tr>
    <tr>
      <td>Kullanım</td>
      <td>Büyük verileri şifreleme</td>
      <td>Anahtar paylaşımı, imza</td>
    </tr>
    <tr>
      <td>Örnek</td>
      <td>AES</td>
      <td>RSA, eliptik eğriler</td>
    </tr>
  </tbody>
</table>

<h2 id="kuantum-sonrası-yeni-perde">Kuantum sonrası yeni perde</h2>

<p>Yeterince güçlü bir kuantum bilgisayar, Shor algoritmasıyla RSA ve eliptik eğri sistemlerini tehdit edebilir. Bu nedenle araştırmacılar; <strong>kafes tabanlı</strong>, <strong>kod tabanlı</strong>, özet tabanlı ve çok değişkenli yapılar üzerinde çalışıyor. NIST’in standartlaştırdığı ML-KEM gibi algoritmalar, kuantum saldırılarına karşı dayanıklı anahtar paylaşımını hedefliyor.</p>

<p>Bu geçiş yalnızca yeni algoritma kurmak değildir. Bugün ele geçirilen şifreli veriler gelecekte çözülebilir; buna “şimdi topla, sonra çöz” tehdidi denir. Dolayısıyla kuantum dirençli sistemlere geçiş, gelecekteki bir bilgisayarı beklemeden başlamalıdır.</p>

<p>Kil tabletlerden matematiksel kafeslere kadar şifreleme tarihi bize aynı dersi veriyor: Mutlak ve sonsuz güvenlik yoktur. Mahremiyet; iyi matematik, doğru uygulama, güvenli anahtar yönetimi ve değişen tehditlere uyum sağlama sanatıdır.</p>]]></content><author><name>Sonsuz Us</name></author><category term="Bilgi" /><category term="kriptografi" /><category term="siber güvenlik" /><category term="kuantum bilişim" /><summary type="html"><![CDATA[Mahremiyet, akıllı telefonlarla ortaya çıkmış modern bir endişe değil. İnsanlar; savaş planlarını, ticari sırlarını ve kişisel düşüncelerini başkalarının meraklı gözlerinden korumaya binlerce yıldır çalışıyor. Kil tabletten bulut sunucusuna uzanan bu hikâyede araçlar değişse de temel soru aynı kaldı: Bir mesajı yalnızca doğru kişinin anlayabilmesini nasıl sağlarız?]]></summary></entry><entry><title type="html">Yapay Genel Zekânın Tanım Sorunu: AGI Deyince Ne Anlıyoruz?</title><link href="https://sonsuzus.github.io/posts/yapay-genel-zekanin-tanim-sorunu-agi-deyince-ne-anliyoruz/" rel="alternate" type="text/html" title="Yapay Genel Zekânın Tanım Sorunu: AGI Deyince Ne Anlıyoruz?" /><published>2026-08-01T00:00:00+00:00</published><updated>2026-08-01T00:00:00+00:00</updated><id>https://sonsuzus.github.io/posts/yapay-genel-zekanin-tanim-sorunu-agi-deyince-ne-anliyoruz</id><content type="html" xml:base="https://sonsuzus.github.io/posts/yapay-genel-zekanin-tanim-sorunu-agi-deyince-ne-anliyoruz/"><![CDATA[<p>Bir araştırmacı “AGI henüz çok uzakta” derken bir şirket yöneticisi “AGI’ye yaklaştık” diyebilir; ikisi de kendi ölçütlerine göre haklı olabilir. Çünkü Yapay Genel Zekâ, yani AGI, herkesin üzerinde uzlaştığı teknik bir hedef olmaktan çok bilim, felsefe ve pazarlama arasında şekil değiştiren hareketli bir kavramdır.
``</p>

<h2 id="genel-kelimesi-ne-kadar-genel">“Genel” kelimesi ne kadar genel?</h2>

<p>Dar yapay zekâ belirli görevlerde uzmanlaşır: satranç oynar, yüz tanır veya metin üretir. AGI’den ise çoğunlukla farklı alanlarda öğrenmesi, bilgisini yeni durumlara aktarması ve daha önce görmediği problemleri çözmesi beklenir. Fakat bu tanım hemen yeni sorular üretir: Kaç farklı görev yeterlidir? İnsan seviyesindeki performans hangi insanla karşılaştırılacaktır? Bilinç gerekli midir?</p>

<p>Genelliği basitçe görevler üzerindeki ortalama başarı gibi yazabiliriz:</p>

\[G = \sum_{i=1}^{n} w_i P_i\]

<p>Burada $P_i$, sistemin $i$ görevindeki performansını; $w_i$ ise o görevin önemini temsil eder. Sorun şudur: Görevleri ve ağırlıkları seçen kişi, AGI tanımını da büyük ölçüde belirler. Matematik tarafsız görünür ama ölçüm tasarımı değildir.</p>

<h2 id="üç-dünyanın-üç-farklı-agisi">Üç dünyanın üç farklı AGI’si</h2>

<table>
  <thead>
    <tr>
      <th>Alan</th>
      <th>AGI’den beklenen</th>
      <th>Temel soru</th>
      <th>Yaygın risk</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Bilim</td>
      <td>Çok sayıda görevde genelleme ve uyum</td>
      <td>Ölçülebilir performans nedir?</td>
      <td>Testlere aşırı uyum</td>
    </tr>
    <tr>
      <td>Felsefe</td>
      <td>Anlama, niyet, özerklik veya bilinç</td>
      <td>Makine gerçekten anlıyor mu?</td>
      <td>Ölçülemeyen ölçütler</td>
    </tr>
    <tr>
      <td>Pazarlama</td>
      <td>Etkileyici ve ekonomik değeri yüksek ürün</td>
      <td>Kullanıcı bunu devrimsel bulur mu?</td>
      <td>Kavramın abartılması</td>
    </tr>
  </tbody>
</table>

<p>Bilimsel yaklaşım, tekrar üretilebilir deneyler ister. Bir sistem yeni bir dili az örnekle öğrenebiliyor, robot kontrolüne geçebiliyor ve planlarını hatalarına göre düzeltebiliyorsa “genel” davranış sergilediği söylenebilir. Ancak testlerde başarılı olmak, açık dünyada güvenilir olmakla aynı şey değildir.</p>

<p>Felsefi yaklaşım davranışın arkasına bakar. Bir model doğru cevap verdiğinde gerçekten kavram mı oluşturmuştur, yoksa devasa örüntüler arasında güçlü bir tahmin mi yapmıştır? İşlevselcilik için doğru ve esnek davranış yeterli olabilirken bilinç merkezli görüşler öznel deneyim arar. Ne yazık ki bilinci doğrulayacak evrensel bir <code class="language-plaintext highlighter-rouge">unit_test()</code> henüz bulunmuyor.</p>

<p>Pazarlama dili ise kesin eşiklerden hoşlanmaz. “AGI destekli” ifadesi, teknik ayrıntı vermeden yenilik ve gelecek hissi yaratır. Böylece kavram, bilimsel hipotezden marka vaadine dönüşebilir.</p>

<h2 id="tanımları-kodla-görünür-kılmak">Tanımları kodla görünür kılmak</h2>

<p>Aşağıdaki küçük Python örneği, farklı kurumların aynı sisteme neden farklı etiketler verebileceğini gösterir:</p>

<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">criteria</span> <span class="o">=</span> <span class="p">{</span>
    <span class="sh">"</span><span class="s">bilim</span><span class="sh">"</span><span class="p">:</span> <span class="p">{</span><span class="sh">"</span><span class="s">transfer</span><span class="sh">"</span><span class="p">:</span> <span class="mf">0.4</span><span class="p">,</span> <span class="sh">"</span><span class="s">reasoning</span><span class="sh">"</span><span class="p">:</span> <span class="mf">0.4</span><span class="p">,</span> <span class="sh">"</span><span class="s">autonomy</span><span class="sh">"</span><span class="p">:</span> <span class="mf">0.2</span><span class="p">},</span>
    <span class="sh">"</span><span class="s">felsefe</span><span class="sh">"</span><span class="p">:</span> <span class="p">{</span><span class="sh">"</span><span class="s">transfer</span><span class="sh">"</span><span class="p">:</span> <span class="mf">0.2</span><span class="p">,</span> <span class="sh">"</span><span class="s">reasoning</span><span class="sh">"</span><span class="p">:</span> <span class="mf">0.3</span><span class="p">,</span> <span class="sh">"</span><span class="s">autonomy</span><span class="sh">"</span><span class="p">:</span> <span class="mf">0.5</span><span class="p">},</span>
    <span class="sh">"</span><span class="s">pazarlama</span><span class="sh">"</span><span class="p">:</span> <span class="p">{</span><span class="sh">"</span><span class="s">transfer</span><span class="sh">"</span><span class="p">:</span> <span class="mf">0.2</span><span class="p">,</span> <span class="sh">"</span><span class="s">reasoning</span><span class="sh">"</span><span class="p">:</span> <span class="mf">0.2</span><span class="p">,</span> <span class="sh">"</span><span class="s">autonomy</span><span class="sh">"</span><span class="p">:</span> <span class="mf">0.1</span><span class="p">,</span>
                   <span class="sh">"</span><span class="s">etki</span><span class="sh">"</span><span class="p">:</span> <span class="mf">0.5</span><span class="p">}</span>
<span class="p">}</span>

<span class="n">system</span> <span class="o">=</span> <span class="p">{</span>
    <span class="sh">"</span><span class="s">transfer</span><span class="sh">"</span><span class="p">:</span> <span class="mf">0.8</span><span class="p">,</span>
    <span class="sh">"</span><span class="s">reasoning</span><span class="sh">"</span><span class="p">:</span> <span class="mf">0.75</span><span class="p">,</span>
    <span class="sh">"</span><span class="s">autonomy</span><span class="sh">"</span><span class="p">:</span> <span class="mf">0.45</span><span class="p">,</span>
    <span class="sh">"</span><span class="s">etki</span><span class="sh">"</span><span class="p">:</span> <span class="mf">0.95</span>
<span class="p">}</span>

<span class="k">for</span> <span class="n">perspective</span><span class="p">,</span> <span class="n">weights</span> <span class="ow">in</span> <span class="n">criteria</span><span class="p">.</span><span class="nf">items</span><span class="p">():</span>
    <span class="n">score</span> <span class="o">=</span> <span class="nf">sum</span><span class="p">(</span><span class="n">system</span><span class="p">[</span><span class="n">key</span><span class="p">]</span> <span class="o">*</span> <span class="n">weight</span> <span class="k">for</span> <span class="n">key</span><span class="p">,</span> <span class="n">weight</span> <span class="ow">in</span> <span class="n">weights</span><span class="p">.</span><span class="nf">items</span><span class="p">())</span>
    <span class="nf">print</span><span class="p">(</span><span class="n">perspective</span><span class="p">,</span> <span class="nf">round</span><span class="p">(</span><span class="n">score</span><span class="p">,</span> <span class="mi">2</span><span class="p">))</span>
</code></pre></div></div>

<p>Kod, sistem özelliklerini farklı ağırlıklarla puanlar. Pazarlama yaklaşımı kullanıcı etkisine, felsefi yaklaşım ise özerkliğe daha fazla önem verdiği için sonuçlar değişir. Bu bir AGI testi değildir; ölçüt seçiminin sonucu nasıl yönlendirdiğini gösteren düşünce deneyidir.</p>

<h2 id="tek-bir-eşik-yerine-tanım-kartı">Tek bir eşik yerine tanım kartı</h2>

<p>“Bu sistem AGI mi?” sorusundan önce şu sorular sorulmalıdır:</p>

<ul>
  <li>Hangi görev evreninde genellik aranıyor?</li>
  <li>Başarı eşiği ve insan karşılaştırma grubu nedir?</li>
  <li>Öğrenme, aktarım ve özerklik nasıl ölçülüyor?</li>
  <li>Bilinç veya niyet tanımın parçası mı?</li>
  <li>İddia bağımsız deneylerle doğrulandı mı?</li>
</ul>

<p>AGI muhtemelen tek bir anda açılan sihirli başarı rozeti değildir. Daha çok yeteneklerin, toplumsal beklentilerin ve felsefi kabullerin birleştiği çok boyutlu bir spektrumdur. Bu nedenle sağlıklı tartışmanın ilk adımı, AGI’ye ulaşılıp ulaşılmadığını ilan etmek değil, kullanılan AGI tanımını açıkça masaya koymaktır.</p>]]></content><author><name>Sonsuz Us</name></author><category term="Bilgi" /><category term="AGI" /><category term="yapay zeka" /><category term="teknoloji felsefesi" /><summary type="html"><![CDATA[Bir araştırmacı “AGI henüz çok uzakta” derken bir şirket yöneticisi “AGI’ye yaklaştık” diyebilir; ikisi de kendi ölçütlerine göre haklı olabilir. Çünkü Yapay Genel Zekâ, yani AGI, herkesin üzerinde uzlaştığı teknik bir hedef olmaktan çok bilim, felsefe ve pazarlama arasında şekil değiştiren hareketli bir kavramdır.]]></summary></entry><entry><title type="html">Yapay Zekâ Ajanları Gerçekten Karar Veriyor mu?</title><link href="https://sonsuzus.github.io/posts/yapay-zeka-ajanlari-gercekten-karar-veriyor-mu/" rel="alternate" type="text/html" title="Yapay Zekâ Ajanları Gerçekten Karar Veriyor mu?" /><published>2026-08-01T00:00:00+00:00</published><updated>2026-08-01T00:00:00+00:00</updated><id>https://sonsuzus.github.io/posts/yapay-zeka-ajanlari-gercekten-karar-veriyor-mu</id><content type="html" xml:base="https://sonsuzus.github.io/posts/yapay-zeka-ajanlari-gercekten-karar-veriyor-mu/"><![CDATA[<p>Bir yapay zekâ ajanı e-posta gönderdiğinde, hisse senedi aldığında veya bir robotun yönünü değiştirdiğinde genellikle “karar verdi” deriz. Ancak bu ifade, gündelik dilin kullanışlı bir kısaltması mı, yoksa sistemin gerçekten özerk ve niyet sahibi olduğunu mu gösteriyor? Yanıt, karar kavramını hangi teknik ve felsefi ölçütlerle tanımladığımıza bağlı.</p>

<p>``</p>

<h2 id="seçim-yapmak-karar-vermek-midir">Seçim yapmak, karar vermek midir?</h2>

<p>En basit anlamıyla karar, seçenekler arasından birini belirlemektir. Bu tanım kullanılırsa termostat bile karar veriyor sayılabilir: Sıcaklık eşik değerin altındaysa ısıtıcıyı açar. Fakat burada alternatifleri değerlendiren bağımsız bir özne değil, önceden yazılmış bir koşul vardır.</p>

<p>Bir yapay zekâ ajanı ise çoğunlukla gözlem, iç durum, hedef ve eylem bileşenleriyle modellenir. Ajanın politikası şu şekilde gösterilebilir:</p>

\[a_t = \pi(o_t, m_t, g)\]

<p>Burada $o_t$ gözlemi, $m_t$ belleği, $g$ hedefi ve $a_t$ seçilen eylemi temsil eder. Politika $\pi$, bu girdileri bir eyleme dönüştürür. Sistem öğreniyorsa politika sabit kurallardan değil, verilerle optimize edilmiş parametrelerden oluşabilir.</p>

<table>
  <thead>
    <tr>
      <th>Sistem</th>
      <th style="text-align: right">Alternatif seçer mi?</th>
      <th style="text-align: right">Hedefini değiştirir mi?</th>
      <th style="text-align: right">Gerekçe üretebilir mi?</th>
      <th>Özerklik düzeyi</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Termostat</td>
      <td style="text-align: right">Evet</td>
      <td style="text-align: right">Hayır</td>
      <td style="text-align: right">Hayır</td>
      <td>Çok düşük</td>
    </tr>
    <tr>
      <td>Satranç motoru</td>
      <td style="text-align: right">Evet</td>
      <td style="text-align: right">Hayır</td>
      <td style="text-align: right">Sınırlı</td>
      <td>Düşük</td>
    </tr>
    <tr>
      <td>Araç kullanan ajan</td>
      <td style="text-align: right">Evet</td>
      <td style="text-align: right">Sınırlı</td>
      <td style="text-align: right">Kısmen</td>
      <td>Orta</td>
    </tr>
    <tr>
      <td>Kendi hedefini kuran varsayımsal ajan</td>
      <td style="text-align: right">Evet</td>
      <td style="text-align: right">Evet</td>
      <td style="text-align: right">Evet</td>
      <td>Yüksek</td>
    </tr>
  </tbody>
</table>

<p>Tablo önemli bir ayrımı gösteriyor: <strong>Eylem seçimi</strong>, tek başına <strong>amaç seçimi</strong> değildir. Bir satranç motoru hamlesini belirleyebilir ama neden satranç oynadığını sorgulamaz.</p>

<h2 id="özerklik-bir-açma-kapama-düğmesi-değildir">Özerklik bir açma-kapama düğmesi değildir</h2>

<p>Özerkliği ikili bir özellik yerine derece olarak düşünmek daha yararlıdır. Bir ajanın özerklik puanı kabaca şöyle modellenebilir:</p>

\[A = w_1E + w_2L + w_3G + w_4R\]

<p>Burada $E$ çevresel değişikliklere uyumu, $L$ öğrenme kapasitesini, $G$ hedef üretme yeteneğini, $R$ ise insan müdahalesi olmadan çalışma süresini ifade eder. Ağırlıklar kullanım alanına göre değişir. Örneğin bir Mars robotunda müdahalesiz çalışma, öneri algoritmasında ise hedeflerin kim tarafından belirlendiği daha önemli olabilir.</p>

<p>Aşağıdaki basitleştirilmiş ajan, çevresini değerlendirerek eylem seçer:</p>

<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="k">class</span> <span class="nc">Ajan</span><span class="p">:</span>
    <span class="k">def</span> <span class="nf">__init__</span><span class="p">(</span><span class="n">self</span><span class="p">,</span> <span class="n">enerji</span><span class="o">=</span><span class="mi">100</span><span class="p">):</span>
        <span class="n">self</span><span class="p">.</span><span class="n">enerji</span> <span class="o">=</span> <span class="n">enerji</span>
        <span class="n">self</span><span class="p">.</span><span class="n">hedef</span> <span class="o">=</span> <span class="sh">"</span><span class="s">veri_topla</span><span class="sh">"</span>

    <span class="k">def</span> <span class="nf">karar_ver</span><span class="p">(</span><span class="n">self</span><span class="p">,</span> <span class="n">tehlike</span><span class="p">,</span> <span class="n">veri_degeri</span><span class="p">):</span>
        <span class="k">if</span> <span class="n">tehlike</span> <span class="o">&gt;</span> <span class="mf">0.8</span><span class="p">:</span>
            <span class="k">return</span> <span class="sh">"</span><span class="s">geri_cekil</span><span class="sh">"</span>
        <span class="k">if</span> <span class="n">self</span><span class="p">.</span><span class="n">enerji</span> <span class="o">&lt;</span> <span class="mi">20</span><span class="p">:</span>
            <span class="k">return</span> <span class="sh">"</span><span class="s">sarj_ol</span><span class="sh">"</span>
        <span class="k">if</span> <span class="n">veri_degeri</span> <span class="o">&gt;</span> <span class="mf">0.6</span><span class="p">:</span>
            <span class="k">return</span> <span class="sh">"</span><span class="s">veri_topla</span><span class="sh">"</span>
        <span class="k">return</span> <span class="sh">"</span><span class="s">kesfet</span><span class="sh">"</span>
</code></pre></div></div>

<p>Bu kod farklı koşullarda farklı eylemler üretir; fakat hedefleri ve öncelikleri geliştirici tarafından belirlenmiştir. Dolayısıyla davranışsal özerklik vardır, güçlü anlamda amaçsal özerklik yoktur.</p>

<h2 id="peki-niyet-nerede-başlar">Peki niyet nerede başlar?</h2>

<p>İnsan niyeti yalnızca sonuç üretmekten ibaret değildir. İnançlar, arzular, öz farkındalık ve “başka türlü davranabilirdim” düşüncesiyle ilişkilidir. Bugünkü ajanların “Dosyayı silmek istiyorum” demesi, çoğunlukla içsel bir isteğin kanıtı değil, dilsel bir çıktıdır.</p>

<p>Yine de niyet kavramını işlevsel biçimde kullanabiliriz. Bir sistem hedefini zaman boyunca koruyor, plan yapıyor, başarısızlıkta planını yeniliyor ve eylemlerini açıklayabiliyorsa ona <strong>niyet atfetmek</strong> tahmin yapmayı kolaylaştırır. Bu, sistemin bilinçli olduğunu değil, niyet diliyle verimli biçimde modellenebildiğini gösterir.</p>

<p>Sonuç olarak bir sistem, seçenekleri değerlendirip bağlama göre eylem seçtiğinde teknik anlamda karar veriyor sayılabilir. Ancak güçlü özerklik için yalnızca “nasıl” sorusunu değil, hedeflerin kaynağını açıklayan “neden” sorusunu da incelemeliyiz. Ajanlarımız giderek daha bağımsız davranabilir; yine de onların amaçları çoğu zaman insan tasarımının görünmez parmak izlerini taşır.</p>]]></content><author><name>Sonsuz Us</name></author><category term="Bilgi" /><category term="yapay zekâ" /><category term="özerk ajanlar" /><category term="makine etiği" /><summary type="html"><![CDATA[Bir yapay zekâ ajanı e-posta gönderdiğinde, hisse senedi aldığında veya bir robotun yönünü değiştirdiğinde genellikle “karar verdi” deriz. Ancak bu ifade, gündelik dilin kullanışlı bir kısaltması mı, yoksa sistemin gerçekten özerk ve niyet sahibi olduğunu mu gösteriyor? Yanıt, karar kavramını hangi teknik ve felsefi ölçütlerle tanımladığımıza bağlı.]]></summary></entry><entry><title type="html">Yapay Zekâ ve Özgür İrade: Deterministik Makineler İnsan Seçimlerini Nasıl Aydınlatıyor?</title><link href="https://sonsuzus.github.io/posts/yapay-zeka-ve-ozgur-irade-deterministik-makineler-insan-secimlerini-nasil-aydinlatiyor/" rel="alternate" type="text/html" title="Yapay Zekâ ve Özgür İrade: Deterministik Makineler İnsan Seçimlerini Nasıl Aydınlatıyor?" /><published>2026-08-01T00:00:00+00:00</published><updated>2026-08-01T00:00:00+00:00</updated><id>https://sonsuzus.github.io/posts/yapay-zeka-ve-ozgur-irade-deterministik-makineler-insan-secimlerini-nasil-aydinlatiyor</id><content type="html" xml:base="https://sonsuzus.github.io/posts/yapay-zeka-ve-ozgur-irade-deterministik-makineler-insan-secimlerini-nasil-aydinlatiyor/"><![CDATA[<p>Bir dil modeli şiir yazmayı mı “seçer”, yoksa sayılarla döşenmiş görünmez bir ray üzerinde mi ilerler? Yapay zekâ sistemlerinin davranışlarını incelerken karşılaştığımız bu soru, felsefenin en eski tartışmalarından birini yeniden canlandırıyor: Eğer her sonuç önceki nedenler tarafından belirleniyorsa gerçekten özgür olabilir miyiz?</p>

<p>``</p>

<h2 id="bir-model-kararını-nasıl-verir">Bir model kararını nasıl verir?</h2>

<p>Bir dil modeli, verilen metne bakarak sıradaki kelime veya parçacık için olasılık dağılımı üretir. Basitleştirilmiş biçimiyle modelin yaptığı işlem şöyledir:</p>

\[P(x_{t+1} \mid x_1, x_2, \ldots, x_t)\]

<p>Burada model, geçmiş parçacıklara göre sıradaki parçacığın olasılığını hesaplar. En yüksek olasılıklı seçeneği almak deterministik bir stratejidir. Aynı model, aynı girdi ve aynı çalışma koşulları altında genellikle aynı sonucu üretir.</p>

<p>Ancak “temperature” gibi örnekleme ayarları devreye girdiğinde farklı çıktılar görülebilir. Bu çeşitlilik özgür irade anlamına gelmez; yalnızca olasılıksal seçim mekanizmasının sonucudur. Zar atan bir makine şaşırtıcı davranabilir, fakat şaşırmak ile özgür olmak aynı şey değildir.</p>

<table>
  <thead>
    <tr>
      <th>Özellik</th>
      <th>Deterministik üretim</th>
      <th>Olasılıksal üretim</th>
      <th>İnsan kararı</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Aynı koşulda aynı sonuç</td>
      <td>Genellikle evet</td>
      <td>Her zaman değil</td>
      <td>Çoğu zaman hayır</td>
    </tr>
    <tr>
      <td>Geçmişten etkilenme</td>
      <td>Parametreler ve girdi</td>
      <td>Parametreler, girdi ve rastgelelik</td>
      <td>Genetik, çevre ve deneyimler</td>
    </tr>
    <tr>
      <td>Amaç farkındalığı</td>
      <td>Yok</td>
      <td>Yok</td>
      <td>En azından öznel olarak var</td>
    </tr>
    <tr>
      <td>Sorumluluk yüklenmesi</td>
      <td>Geliştirici veya kullanıcıya</td>
      <td>Geliştirici veya kullanıcıya</td>
      <td>Genellikle bireye</td>
    </tr>
  </tbody>
</table>

<h2 id="determinizm-küçük-bir-kodda">Determinizm küçük bir kodda</h2>

<p>Aşağıdaki örnek, durumun belirli bir kurala göre güncellendiği basit bir sistemi gösterir:</p>

<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="k">def</span> <span class="nf">sonraki_durum</span><span class="p">(</span><span class="n">durum</span><span class="p">):</span>
    <span class="c1"># Mevcut değer, gelecekteki değeri tamamen belirler.
</span>    <span class="nf">return </span><span class="p">(</span><span class="n">durum</span> <span class="o">*</span> <span class="mi">3</span> <span class="o">+</span> <span class="mi">1</span><span class="p">)</span> <span class="o">%</span> <span class="mi">10</span>

<span class="n">x</span> <span class="o">=</span> <span class="mi">4</span>
<span class="k">for</span> <span class="n">_</span> <span class="ow">in</span> <span class="nf">range</span><span class="p">(</span><span class="mi">5</span><span class="p">):</span>
    <span class="n">x</span> <span class="o">=</span> <span class="nf">sonraki_durum</span><span class="p">(</span><span class="n">x</span><span class="p">)</span>
    <span class="nf">print</span><span class="p">(</span><span class="n">x</span><span class="p">)</span>
</code></pre></div></div>

<p>Başlangıç değeri <code class="language-plaintext highlighter-rouge">4</code> olduğu sürece çıktı dizisi değişmez. Sistemin geleceği şu bağıntıyla belirlenmiştir:</p>

\[x_{t+1} = (3x_t + 1) \bmod 10\]

<p>Dil modelleri elbette bundan milyarlarca kat daha karmaşıktır. Yine de temel fikir benzerdir: Bir sonraki durum, önceki durumlar ve sistemin kuralları üzerinden oluşur. Gerçek donanımlarda paralel hesaplama, sayısal yuvarlama ve rastgele örnekleme sonuçları değiştirebilir; fakat öngörülemezlik tek başına irade kanıtı değildir.</p>

<h2 id="i̇nsan-beyni-de-bir-model-mi">İnsan beyni de bir model mi?</h2>

<p>Katı determinizme göre insanın her düşüncesi; beynin önceki durumu, biyolojik yapısı ve çevresel etkiler tarafından belirlenir. Bu görüşte seçim hissimiz gerçek bir neden değil, karmaşık hesaplamaların bilinçte görünen yüzüdür. Laplace’ın ünlü varsayımını hatırlarsak, evrendeki tüm parçacıkların konumunu ve hızını bilen kusursuz bir gözlemci geleceği hesaplayabilir:</p>

\[Gelecek = f(Geçmiş, Doğa\ Yasaları)\]

<p>Buna karşılık kuantum belirsizliği veya beyindeki gürültü, geleceğin tam olarak hesaplanmasını engelleyebilir. Fakat rastgele oluşan bir düşünce de bize ait bilinçli bir seçim sayılmaz. Determinizm ile rastlantısallık arasındaki boşluğa doğrudan “özgür irade” yazmak bu nedenle kolay değildir.</p>

<h2 id="uyumculuk-raylar-üzerinde-yön-vermek">Uyumculuk: Raylar üzerinde yön vermek</h2>

<p>Uyumculuk, özgürlüğün nedensiz davranmak olmadığını savunur. Bir insan kendi arzuları, değerleri ve muhakemesi doğrultusunda hareket ediyorsa kararlarının nedenleri bulunsa bile özgür kabul edilebilir. Zorlama altında olmak ile karakterimizin etkisiyle karar vermek aynı değildir.</p>

<p>Yapay zekâ bu ayrımı görünür hâle getirir. Model seçenek üretebilir, gerekçe yazabilir ve davranışını düzeltebilir; ancak kendi amaçlarını deneyimlediğine dair kanıtımız yoktur. İnsan ise yalnızca çıktı üretmez: Acı hisseder, geleceği önemser, kararlarını sahiplenir ve toplumsal sonuçlarla yaşar.</p>

<p>Dolayısıyla deterministik yapay zekâ bize özgür iradenin cevabını vermiyor. Daha değerli bir şey yapıyor: “Tahmin edilemez davranış”, “seçim”, “bilinç” ve “sorumluluk” kavramlarını birbirinden ayırmaya zorluyor. Belki özgürlük, nedenlerden kaçmak değil; nedenlerimizi anlayıp onları dönüştürebilme kapasitesidir.</p>]]></content><author><name>Sonsuz Us</name></author><category term="Bilgi" /><category term="yapay zekâ" /><category term="özgür irade" /><category term="determinizm" /><summary type="html"><![CDATA[Bir dil modeli şiir yazmayı mı “seçer”, yoksa sayılarla döşenmiş görünmez bir ray üzerinde mi ilerler? Yapay zekâ sistemlerinin davranışlarını incelerken karşılaştığımız bu soru, felsefenin en eski tartışmalarından birini yeniden canlandırıyor: Eğer her sonuç önceki nedenler tarafından belirleniyorsa gerçekten özgür olabilir miyiz?]]></summary></entry><entry><title type="html">Yapay Zekâda Ölçek Yasaları: Daha Büyük Model Her Zaman Daha Akıllı mı?</title><link href="https://sonsuzus.github.io/posts/yapay-zekada-olcek-yasalari-daha-buyuk-model-her-zaman-daha-akilli-mi/" rel="alternate" type="text/html" title="Yapay Zekâda Ölçek Yasaları: Daha Büyük Model Her Zaman Daha Akıllı mı?" /><published>2026-08-01T00:00:00+00:00</published><updated>2026-08-01T00:00:00+00:00</updated><id>https://sonsuzus.github.io/posts/yapay-zekada-olcek-yasalari-daha-buyuk-model-her-zaman-daha-akilli-mi</id><content type="html" xml:base="https://sonsuzus.github.io/posts/yapay-zekada-olcek-yasalari-daha-buyuk-model-her-zaman-daha-akilli-mi/"><![CDATA[<p>Bir dil modeline daha fazla parametre eklemek, ona otomatik olarak daha fazla “zekâ” mı kazandırır? Son yıllardaki dev modeller bu fikri destekliyor gibi görünse de gerçek tablo daha renkli: Boyut önemli, fakat veri kalitesi, eğitim bütçesi, mimari ve modelin nasıl kullanıldığı da en az boyut kadar belirleyici.
``</p>

<h2 id="ölçek-yasası-nedir">Ölçek yasası nedir?</h2>

<p>Ölçek yasaları, bir modelin hata oranının model boyutu, veri miktarı ve hesaplama bütçesi arttıkça nasıl değiştiğini açıklayan deneysel ilişkilerdir. Dil modellerinde kayıp değerinin yaklaşık olarak bir kuvvet yasasına uyduğu gözlemlenir:</p>

\[L(N) \approx L_{\infty} + aN^{-\alpha}\]

<p>Burada $L(N)$, $N$ parametreli modelin kaybını; $L_{\infty}$ erişilebilecek teorik alt sınırı; $a$ ve $\alpha$ ise deneylerden öğrenilen sabitleri temsil eder. Denklemdeki kritik ayrıntı, getirinin giderek azalmasıdır. Parametre sayısını iki katına çıkarmak performansı iyileştirebilir, ancak modeli iki kat “akıllı” yapmaz.</p>

<p>Benzer ilişkiler veri miktarı $D$ ve eğitim hesaplaması $C$ için de kurulabilir:</p>

\[L \propto N^{-\alpha}D^{-\beta}C^{-\gamma}\]

<p>Bu formül bir sihirli değnek değil, mühendislik pusulasıdır. Hangi kaynağa yatırım yapılırsa daha fazla kazanç elde edileceğini tahmin etmeye yardımcı olur.</p>

<h2 id="boyut-tek-başına-neden-yetmez">Boyut tek başına neden yetmez?</h2>

<p>Dev bir modeli yetersiz veriyle eğitmek, büyük bir kütüphaneyi aynı kitabın milyonlarca kopyasıyla doldurmaya benzer. Raflar etkileyicidir; bilgi çeşitliliği değildir. Chinchilla yaklaşımı olarak bilinen bulgular, belirli bir hesaplama bütçesinde daha küçük bir modeli daha fazla ve kaliteli veriyle eğitmenin, aşırı büyük fakat eksik eğitilmiş bir modeli geçebileceğini göstermiştir.</p>

<table>
  <thead>
    <tr>
      <th>Etken</th>
      <th>Artırıldığında olası kazanç</th>
      <th>Temel sınır</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Parametre sayısı</td>
      <td>Daha karmaşık örüntüler</td>
      <td>Maliyet ve azalan getiri</td>
    </tr>
    <tr>
      <td>Veri miktarı</td>
      <td>Daha geniş bilgi kapsamı</td>
      <td>Tekrar, telif ve gürültü</td>
    </tr>
    <tr>
      <td>Veri kalitesi</td>
      <td>Daha güvenilir cevaplar</td>
      <td>Seçim ve temizleme zorluğu</td>
    </tr>
    <tr>
      <td>Eğitim hesaplaması</td>
      <td>Daha iyi optimizasyon</td>
      <td>Enerji ve donanım maliyeti</td>
    </tr>
    <tr>
      <td>Çıkarım hesaplaması</td>
      <td>Daha güçlü akıl yürütme</td>
      <td>Gecikme ve kullanım ücreti</td>
    </tr>
  </tbody>
</table>

<h2 id="yetenek-gerçekten-ortaya-mı-çıkıyor">Yetenek gerçekten “ortaya” mı çıkıyor?</h2>

<p>Bazı yeteneklerin belirli bir ölçekte aniden belirdiği söylenir. Buna <em>emergent abilities</em>, yani beliren yetenekler denir. Küçük model bir görevi yapamazken büyük model bir anda başarılı görünür. Ancak bu sıçrama bazen ölçüm yönteminden kaynaklanır. Başarı yalnızca “doğru” veya “yanlış” olarak puanlanırsa kademeli gelişim, keskin bir eşik gibi görünebilir.</p>

<p>Dolayısıyla ölçek, yeni yeteneklerin oluşmasını kolaylaştırabilir; fakat her sıçramayı gizemli bir zekâ patlaması olarak yorumlamak doğru değildir. Kullanılan test, istem biçimi ve puanlama yöntemi sonucu ciddi biçimde etkiler.</p>

<h2 id="basit-bir-ölçek-hesabı">Basit bir ölçek hesabı</h2>

<p>Aşağıdaki Python kodu, kuvvet yasasını kullanarak farklı model boyutları için tahmini kaybı hesaplar:</p>

<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kn">import</span> <span class="n">math</span>

<span class="k">def</span> <span class="nf">tahmini_kayip</span><span class="p">(</span><span class="n">parametre</span><span class="p">,</span> <span class="n">alt_sinir</span><span class="o">=</span><span class="mf">1.2</span><span class="p">,</span> <span class="n">a</span><span class="o">=</span><span class="mf">3.0</span><span class="p">,</span> <span class="n">alfa</span><span class="o">=</span><span class="mf">0.08</span><span class="p">):</span>
    <span class="sh">"""</span><span class="s">Parametre sayısından yaklaşık eğitim kaybı üretir.</span><span class="sh">"""</span>
    <span class="k">return</span> <span class="n">alt_sinir</span> <span class="o">+</span> <span class="n">a</span> <span class="o">*</span> <span class="n">math</span><span class="p">.</span><span class="nf">pow</span><span class="p">(</span><span class="n">parametre</span><span class="p">,</span> <span class="o">-</span><span class="n">alfa</span><span class="p">)</span>

<span class="n">boyutlar</span> <span class="o">=</span> <span class="p">[</span><span class="mf">1e8</span><span class="p">,</span> <span class="mf">1e9</span><span class="p">,</span> <span class="mf">1e10</span><span class="p">,</span> <span class="mf">1e11</span><span class="p">]</span>

<span class="k">for</span> <span class="n">boyut</span> <span class="ow">in</span> <span class="n">boyutlar</span><span class="p">:</span>
    <span class="n">kayip</span> <span class="o">=</span> <span class="nf">tahmini_kayip</span><span class="p">(</span><span class="n">boyut</span><span class="p">)</span>
    <span class="nf">print</span><span class="p">(</span><span class="sa">f</span><span class="sh">"</span><span class="si">{</span><span class="n">boyut</span> <span class="o">/</span> <span class="mf">1e9</span><span class="si">:</span><span class="mf">6.1</span><span class="n">f</span><span class="si">}</span><span class="s"> milyar parametre -&gt; </span><span class="si">{</span><span class="n">kayip</span><span class="si">:</span><span class="p">.</span><span class="mi">3</span><span class="n">f</span><span class="si">}</span><span class="sh">"</span><span class="p">)</span>
</code></pre></div></div>

<p>Kod gerçek bir modelin performansını kesin olarak tahmin etmez; azalan getiriyi görünür kılan basitleştirilmiş bir deneydir. Katsayılar model ailesine ve veri kümesine göre ölçülmelidir.</p>

<h2 id="büyük-olmakla-akıllı-olmak-arasındaki-mesafe">Büyük olmakla akıllı olmak arasındaki mesafe</h2>

<p>Daha büyük modeller genellikle daha iyi dil üretir, daha fazla bilgiyi sıkıştırır ve örneklerden daha esnek biçimde öğrenir. Buna rağmen halüsinasyon, güncellik, nedensel akıl yürütme ve güvenilirlik sorunları yalnızca parametre eklenerek çözülmez. İyi veri, araç kullanımı, bilgi getirme sistemleri, ince ayar ve insan geri bildirimi çoğu zaman daha ekonomik ilerleme sağlar.</p>

<p>Sonuç olarak ölçek güçlü bir kaldıraçtır, zekânın tek ölçüsü değildir. En başarılı sistem, mutlaka en büyük model değil; boyut, veri, hesaplama ve kullanım maliyeti arasındaki dengeyi en iyi kuran modeldir.</p>]]></content><author><name>Sonsuz Us</name></author><category term="Bilgi" /><category term="yapay zekâ" /><category term="ölçek yasaları" /><category term="büyük dil modelleri" /><summary type="html"><![CDATA[Bir dil modeline daha fazla parametre eklemek, ona otomatik olarak daha fazla “zekâ” mı kazandırır? Son yıllardaki dev modeller bu fikri destekliyor gibi görünse de gerçek tablo daha renkli: Boyut önemli, fakat veri kalitesi, eğitim bütçesi, mimari ve modelin nasıl kullanıldığı da en az boyut kadar belirleyici.]]></summary></entry><entry><title type="html">Yazılım Ekiplerinde Sessiz Hiyerarşi: Code Review’da Görünmez Güç</title><link href="https://sonsuzus.github.io/posts/yazilim-ekiplerinde-sessiz-hiyerarsi-code-reviewda-gorunmez-guc/" rel="alternate" type="text/html" title="Yazılım Ekiplerinde Sessiz Hiyerarşi: Code Review’da Görünmez Güç" /><published>2026-08-01T00:00:00+00:00</published><updated>2026-08-01T00:00:00+00:00</updated><id>https://sonsuzus.github.io/posts/yazilim-ekiplerinde-sessiz-hiyerarsi-code-reviewda-gorunmez-guc</id><content type="html" xml:base="https://sonsuzus.github.io/posts/yazilim-ekiplerinde-sessiz-hiyerarsi-code-reviewda-gorunmez-guc/"><![CDATA[<p>Bir pull request açılır, değişiklikler yüzlerce satırdır ve kıdemli geliştiricinin kodu birkaç dakika içinde “LGTM” alır. Aynı ekipte yeni başlayan birinin üç satırlık düzeltmesi ise isimlendirmeden mimariye kadar didiklenir. Bu fark yalnızca teknik deneyimle açıklanabilir mi? Code review, hataları yakalayan bir mühendislik pratiği olduğu kadar statü, güven ve otoritenin yeniden üretildiği küçük bir sosyal sahnedir.</p>

<p>``</p>

<h2 id="code-review-gerçekten-yalnızca-kodu-mu-inceler">Code review gerçekten yalnızca kodu mu inceler?</h2>

<p>İdeal modelde incelemenin nesnesi kişiden bağımsız olarak değişikliktir. Reviewer; doğruluk, güvenlik, okunabilirlik ve bakım maliyetini değerlendirir. Fakat gerçek ekiplerde yorumun ağırlığı, kodun niteliği kadar onu yazanın konumundan da etkilenebilir.</p>

<p>Sosyolojide <strong>statü genellemesi</strong>, bir alandaki itibarın başka alanlardaki kararları da etkilemesini anlatır. Örneğin güçlü mimari bilgisiyle tanınan bir geliştiricinin frontend değişiklikleri de daha az sorgulanabilir. Böylece geçmiş başarı, bugünkü kod için görünmez bir güven kredisine dönüşür.</p>

<p>Bu ilişkiyi basitleştirilmiş biçimde şöyle düşünebiliriz:</p>

\[S = \frac{Q_r}{L_c + 1}\]

<p>Burada $Q_r$, review sırasında sorulan anlamlı soru sayısını; $L_c$ ise kod sahibinin ekip içindeki algılanan otorite seviyesini temsil etsin. $S$ değeri küçüldükçe sorgulama yoğunluğu azalır. Elbette insan ilişkileri tek formülle açıklanamaz; denklem yalnızca otorite yükseldikçe eleştirel incelemenin düşebileceği hipotezini görünür kılar.</p>

<table>
  <thead>
    <tr>
      <th>Görünen davranış</th>
      <th>Olası teknik açıklama</th>
      <th>Olası güç ilişkisi</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Hızlı onay</td>
      <td>Değişiklik küçük ve güvenlidir</td>
      <td>Kıdemliye itiraz etmekten kaçınma</td>
    </tr>
    <tr>
      <td>Çok sayıda yorum</td>
      <td>Kod gerçekten sorunludur</td>
      <td>Junior geliştiriciyi aşırı denetleme</td>
    </tr>
    <tr>
      <td>Yorumsuz onay</td>
      <td>Reviewer konuya hâkim değildir</td>
      <td>Otorite sahibine karşı sessiz kalma</td>
    </tr>
    <tr>
      <td>Uzayan tartışma</td>
      <td>Mimari belirsizlik vardır</td>
      <td>Statü mücadelesi yaşanıyordur</td>
    </tr>
  </tbody>
</table>

<p>Tablo bir suçlama listesi değildir. Aynı davranışın hem teknik hem sosyal nedenleri bulunabilir. Ama yalnızca teknik açıklamayı kabul etmek, ekibin kör noktalarını büyütür.</p>

<h2 id="lgtm-bir-onaydan-fazlası-olabilir">“LGTM” bir onaydan fazlası olabilir</h2>

<p>Review yorumları nötr görünse de kullanılan dil hiyerarşiyi açığa çıkarır. Bir kişiye “Bunu neden böyle yaptın?” denirken diğerine “Burada farklı bir yaklaşım düşünülebilir mi?” denmesi, psikolojik güvenliğin eşit dağılmadığını gösterebilir. Ayrıca yöneticinin veya teknik liderin PR’ına ilk itiraz eden kişi olmak, bazı ekiplerde gereksiz bir kariyer riski gibi algılanır.</p>

<p>Bu örüntüyü görmek için basit metrikler üretilebilir:</p>

<div class="language-python highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="n">reviews</span> <span class="o">=</span> <span class="p">[</span>
    <span class="p">{</span><span class="sh">"</span><span class="s">author</span><span class="sh">"</span><span class="p">:</span> <span class="sh">"</span><span class="s">junior</span><span class="sh">"</span><span class="p">,</span> <span class="sh">"</span><span class="s">comments</span><span class="sh">"</span><span class="p">:</span> <span class="mi">12</span><span class="p">,</span> <span class="sh">"</span><span class="s">changed_lines</span><span class="sh">"</span><span class="p">:</span> <span class="mi">40</span><span class="p">},</span>
    <span class="p">{</span><span class="sh">"</span><span class="s">author</span><span class="sh">"</span><span class="p">:</span> <span class="sh">"</span><span class="s">senior</span><span class="sh">"</span><span class="p">,</span> <span class="sh">"</span><span class="s">comments</span><span class="sh">"</span><span class="p">:</span> <span class="mi">2</span><span class="p">,</span> <span class="sh">"</span><span class="s">changed_lines</span><span class="sh">"</span><span class="p">:</span> <span class="mi">180</span><span class="p">},</span>
<span class="p">]</span>

<span class="k">for</span> <span class="n">review</span> <span class="ow">in</span> <span class="n">reviews</span><span class="p">:</span>
    <span class="n">density</span> <span class="o">=</span> <span class="n">review</span><span class="p">[</span><span class="sh">"</span><span class="s">comments</span><span class="sh">"</span><span class="p">]</span> <span class="o">/</span> <span class="nf">max</span><span class="p">(</span><span class="n">review</span><span class="p">[</span><span class="sh">"</span><span class="s">changed_lines</span><span class="sh">"</span><span class="p">],</span> <span class="mi">1</span><span class="p">)</span>
    <span class="nf">print</span><span class="p">(</span><span class="n">review</span><span class="p">[</span><span class="sh">"</span><span class="s">author</span><span class="sh">"</span><span class="p">],</span> <span class="nf">round</span><span class="p">(</span><span class="n">density</span><span class="p">,</span> <span class="mi">3</span><span class="p">))</span>
</code></pre></div></div>

<p>Kod, değiştirilen satır başına yorum yoğunluğunu hesaplar. Ancak yüksek yoğunluk otomatik olarak ayrımcılık kanıtı değildir. Değişikliğin riski, dosyanın karmaşıklığı ve yorumların niteliği de değerlendirilmelidir. Metrikler hüküm vermek için değil, doğru soruları başlatmak için kullanılmalıdır.</p>

<h2 id="daha-dengeli-bir-review-kültürü">Daha dengeli bir review kültürü</h2>

<p>İlk adım, kod sahibinin kimliğinden önce değişikliğin riskini değerlendiren ortak bir kontrol listesi oluşturmaktır. Güvenlik, test kapsamı, geriye dönük uyumluluk ve gözlemlenebilirlik gibi ölçütler herkes için aynı olmalıdır.</p>

<p>İkinci olarak ekipler, kıdemli geliştiricilerin PR’larında da alan uzmanı onayı aramalıdır. Kıdem, her konuda uzmanlık anlamına gelmez. Teknik liderlerin gelen eleştirilere açıkça teşekkür etmesi de itiraz etmenin güvenli olduğuna dair güçlü bir kültürel sinyal üretir.</p>

<p>Son olarak review başarısı, “kaç hata bulduk?” yerine “hangi bilgiyi paylaştık?” sorusuyla ölçülmelidir. İyi bir code review ne sorgusuz itaattir ne de satır satır üstünlük gösterisi. Amaç, otoritenin kodun önüne geçmediği ve herkesin gerekçesini açıklayabildiği ortak bir düşünme alanı kurmaktır.</p>]]></content><author><name>Sonsuz Us</name></author><category term="Bilgi" /><category term="code-review" /><category term="yazılım-kültürü" /><category term="ekip-dinamikleri" /><summary type="html"><![CDATA[Bir pull request açılır, değişiklikler yüzlerce satırdır ve kıdemli geliştiricinin kodu birkaç dakika içinde “LGTM” alır. Aynı ekipte yeni başlayan birinin üç satırlık düzeltmesi ise isimlendirmeden mimariye kadar didiklenir. Bu fark yalnızca teknik deneyimle açıklanabilir mi? Code review, hataları yakalayan bir mühendislik pratiği olduğu kadar statü, güven ve otoritenin yeniden üretildiği küçük bir sosyal sahnedir.]]></summary></entry></feed>