Elveda ChatGPT: Bir Geliştiricinin Düşünceleri

Yapay Zeka’nın (YZ) yükselişi, dünyamızı yadsınamaz bir şekilde dönüştürdü ve yazılım geliştirme de dahil olmak üzere çeşitli alanlarda vazgeçilmez bir araç haline geldi. YZ sayısız fayda sunarken ve modern geliştirme uygulamalarının ayrılmaz bir parçası haline gelirken, özellikle geliştiriciler için aşırı kullanımının potansiyel sonuçlarını göz önünde bulundurmak çok önemlidir.

Bu yazı, geliştirme ve YZ üzerine felsefi düşüncelerime derinlemesine inerek, YZ’nin artan varlığının geliştirici ortamı üzerindeki derin etkisini araştırıyor.

YZ’nin Cazibesi

YZ’yi geçim kaynaklarımızı tehdit eden kötü niyetli bir güç olarak mı görmeliyiz? Bence hayır.

ChatGPT 3.0’ın ortaya çıkışından bu yana, üç yılı aşkın süredir YZ ile ilgili makaleleri yakından takip ediyorum. Bu sürekli ilgi, alanın hızlı evriminden kaynaklanıyor ve her gün yeni gelişmeler ve haberler ortaya çıkıyor.

YZ’nin gelecekte Nobel Ödüllerine hakim olabileceği düşünülebilir ve dünya zaten ChatGPT’nin yeteneklerine hayran kalmış durumda.

YZ, görünüşe göre Yapay Genel Zeka’ya (AGI) ulaşmanın eşiğinde, katlanarak ilerliyor. Büyük Dil Modelleri (LLM’ler) şu anda YZ gelişmelerine öncülük ederken, üretken YZ’nin yükselişi, görüntü ve video işlemede muazzam potansiyel gösteren makine öğrenimi (ML) ve derin öğrenme (DL) alanındaki önceki atılımlarda gözlemlenen bir deseni izliyor.

Bundan önce, internetin yaygın olarak benimsenmesi Bilgi Çağı‘nı başlattı.

Ondan önce, makinelerin çoğalması Sanayi Devrimi‘ni ateşledi.

Ve çok daha önce, araçların tanıtımı Tarım Devrimi‘ne yol açtı.

Bu geçişlerin kusursuz ve evrensel olarak faydalı olup olmadığını eleştirel bir şekilde incelemek önemlidir.

(Not: YZ’ye yapılan sonraki referanslar özellikle LLM destekli üretken YZ’yi ifade edecektir.)

Sanayi Devrimi’nin Yankıları

Sanayi Devrimi bize ne miras bıraktı?

Yenilikçi mamul malların hızlandırılmış üretimi, iyileştirilmiş çalışma koşulları ve muazzam servet.

Bunlar, Sanayi Devrimi sayesinde bugün keyfini çıkardığımız birçok fayda arasında yer alıyor. Peki bu dönemde yaşayan insanlar bu faydalardan pay aldılar mı?

İlerlemenin Karanlık Yüzü

Çalışma koşulları makinelerin tanıtımıyla hemen iyileşti mi?

Çoğu durumda, bir zamanlar önemli fiziksel güç gerektiren görevler, temel makine operasyonlarına basitleştirildi ve bu da yetişkin işçilerin çocuklarla değiştirilmesine yol açtı. Fabrikalar, verimliliği en üst düzeye çıkarmak için günün her saati çalışmaya başladı ve ortaya çıkan servet, orantısız bir şekilde fabrika sahiplerinin (burjuvazinin) elinde yoğunlaştı. İşçiler bu durumu pasif bir şekilde kabul ettiler mi? Hayır. Bu, Luddite hareketini doğurdu.

Bu zorluklara rağmen, makinelerin tanıtımının nihayetinde insanların hayatlarını daha iyiye dönüştürdüğüne inanıyor muyuz?

Cevabın “evet” olduğunu savunurdum. Değişiklikler ezici bir çoğunlukla olumlu oldu.

Durun, Sanayi Devrimi’nin olumsuz bir resmini çizdiniz, o zaman neden aniden olumlu olduğunu söylüyorsunuz?

Hayatlarımız yadsınamaz bir şekilde iyileşmiş olsa da, Sanayi Devrimi ile ilgili sorunların çoğu, makinelerin hızlı bir şekilde tanıtılmasının neden olduğu sosyal bozulmaları tahmin etme ve hafifletme başarısızlığından kaynaklanıyordu. Sosyal bir güvenlik ağı olsaydı, daha az insan acı çekerdi ve olumsuz sonuçlar en aza indirgenirdi.

Tamam, ama bunların YZ ile ne ilgisi var?

YZ: İkinci Sanayi Devrimi

Eski ABD Başkanı Donald Trump, SoftBank ve OpenAI gibi YZ şirketlerine 700 trilyon won yatırım yapmayı planladığını açıkladı.

LLM’ler önemli miktarda güç gerektirir. Bu gücü üreten şirketler istikrarlı bir şekilde büyüyor ve hesaplama için YZ çipleri geliştiren Nvidia, dünyadaki en yüksek piyasa değerine ulaştı.

Bu şirketler nereye yatırım yapacak? Doğal olarak, para kazanabilecekleri yere yatırım yapacaklar.

Ve dünya şu anda nereye yatırım yapıyor? YZ’ye.

YZ’nin Karlılığı

Peki YZ’nin karlılığı nereden gelecek?

YZ ürün üretmiyor. YZ fabrika çalıştırmıyor.

Ancak YZ, şu anda insanlar tarafından gerçekleştirilen görevleri otomatikleştirerek şirketler için işgücü maliyetlerini potansiyel olarak azaltabilir.

Ekonomik bir bakış açısıyla, tek bir çalışanın maliyeti nedir? Ortalama 30 yıllık (30 ila 60 yaş arası) bir kariyer süresi ve ortalama 45 milyon won yıllık maaş varsayarsak, bir şirket tek bir çalışana kariyerleri boyunca 1,35 milyar won ödeyecektir.

Başka bir deyişle, bir şirket tek bir çalışanı 1,35 milyar won karşılığında ‘satın alıyor’. 300’den fazla çalışanı olan bir şirket, 30 yıl içinde işgücüne 400 milyar won harcayacaktır.

Hala YZ’nin karlı olmadığına inanıyor musunuz? Hala dünyanın neden YZ’ye yatırım yaptığını göremiyor musunuz?

YZ güdümlü işgücü azaltımları şirketler için önemli karlar yaratacaktır. Bu, YZ yatırımının alfa ve omegasıdır.

YZ’nin Sınırlamaları

YZ %100 başarı veya %100 başarısızlık garanti etmez.

Bir zamanlar uykulu araç kullanmayı tespit etmek için bir derin öğrenme modeli gösterdim. Model nihayetinde belirli durumları ‘uykulu araç kullanma’ olarak sınıflandırsa da, biz geliştiriciler bunu ‘uykulu araç kullanma olasılığı yüksek’ olarak tanımladık.

Tekrar edeyim: YZ mutlak başarı veya başarısızlık garantisi sunmaz.

Halüsinasyonlar da benzer bir kavramdır. Modeller çıkarımlar yaptığı için yanlış cevaplar üretebilirler. Bu hem YZ gelişimi için potansiyel bir yol hem de bir dezavantajdır.

Model yanlışlıkla uykulu olmadığım halde beni uykulu olarak tanımlarsa, kim sorumlu?

Sorumluluk, modelin kriterlerini tanımlayan bizim, ekibin üzerindedir.

YZ sorumluluk almaz. YZ tarafından sağlanan cevaplara göre karar verenler biziz.

Peki ne olmuş? Şimdi ne yapmamız gerekiyor? Bu, YZ’nin işlerimizi elimizden alacağı anlamına mı geliyor?

YZ’ye Yaklaşım

Evet, doğru. YZ işlerimizi elimizden alacak.

Dünya, YZ’yi işlerimizi elimizden almak için kullanmak için kıyasıya rekabet ediyor.

Bunun kaçınılmaz olduğuna ve ‘İkinci Sanayi Devrimi’nin ufukta olduğuna inanıyorum.

Sorunsuz bir geçiş sağlamak için ne yapmalıyız?

YZ ile ilgilenmeli, kullanmalı ve hem olumlu hem de eleştirel bir bakış açısı sürdürmeliyiz.

Bu bilgileri ciddiye aldıktan sonra birçok kişi hayata karşı hayal kırıklığına uğrayabilir. Biliyorum ki ben uğradım.

YZ tarafından değiştirileceksem neden kendimi geliştirmek ve geliştirme okumakla uğraşayım ki?

YZ benim için kod geliştirebilir, o zaman neden ben yapayım ki?

Bu noktada hümanizmi dikkate almamız gerekiyor.

Hümanizmi Aşmak

Din’in ulusu yönettiği teokratik bir toplumdan, ‘kralların’ dini istismar edebileceği bir çağa geçiş yapmak için, bir şeyin ‘tanrıyı’ aşması gerekiyordu. Krallar dini kullandı, ancak üretim araçlarına sahip olan burjuvazide karşılaştırılabilir bir araç yoktu. İnsanlığın kendisinin önemli olduğu fikrini teşvik etmeye başladılar ve bu, ‘hümanizmi’ doğurdu. Hümanizm, sırayla kapitalizm, komünizm, faşizm ve diğer ideolojilerin ortaya çıkmasına yol açtı.

Başka bir deyişle, hümanizm, teokratik bir toplumun tanrısından kurtulma çabasıdır.

Bu dini toplumdan kaçmaya çalışan bazıları sapkın ve cadı olarak damgalandı ve korkunç suçlular olarak kabul edildi. Onları mevcut bakış açımızdan nasıl görüyoruz? Haklı olduklarını görmüyor muyuz?

‘YZ insanlardan (veya daha dar bir şekilde) benden daha iyi’ fikri, hümanizmi aşma eylemidir.

Belki bu doğal bir düşünme yoludur. Şu anda YZ gelişiminin bizleri yavaş yavaş hümanizmden kurtulmaya yönelttiği bir geçiş döneminde olduğumuza inanıyorum. Bu doğal, ancak umarım ortaya çıkan paniği en aza indirebiliriz.

Ne Yapmalıyız?

Yukarıda belirtildiği gibi, YZ’yi doğal olarak kullanmalı, keyfini çıkarmalı, eleştirel bir bakış açısı sürdürmeli ve her şeyden önce ne yapmak istiyorsak onu yapmalıyız.

Bu süreçte olumsuz yönler olabilir. Aşağıdaki bölümler nihayet ‘geliştirmede YZ’yi kullanmayı neden bırakmak istediğimi’ açıklayacaktır.

Geliştirmede YZ

YZ yadsınamaz bir şekilde verimliliği artırır.

Kullandığımız diller programlama dilleridir. Bu blogu yazmak için Koreceyi kullandığımız gibi, programları geliştirmek için programlama dillerini kullanıyoruz.

LLM tabanlı üretken YZ yazma konusunda uzmanlaşmıştır. Bu nedenle, programlama dillerini yazmada doğal olarak etkili olacaktır. Peki programlamada YZ kullanmalı mıyız? Kesinlikle!

Ancak, ‘çalışan’ bir geliştiriciyseniz, nasıl kullanacağınızı düşünmelisiniz.

Aşağıdaki nedenlerden dolayı, en azından öğrenme sürecinde YZ’yi kullanmamaya karar verdim.

YZ Hata Notlarımı Çalıyor

Genellikle YZ’yi ne zaman kullanırız? Hata ayıklama yaparken sık sık kullandım.

Neden çalışmıyor? → Hata kodu, kodu kopyala → ChatGPT’ye yapıştır

Sorun ne? Hatalardan ve hata ayıklamadan yorulan geliştiriciler, ChatGPT tarafından sağlanan kodu her zaman dikkatlice inceleyecek, anlayacak ve kullanacak mı? Çoğu durumda, sadece düşünmeden kodu kopyalayıp yapıştıracaklar ve çalışmazsa, tekrar YZ kullanacaklar.

Kullanıcı İstemi: Bu çalışmıyor, bu hatayı alıyorum.

ChatGPT: Üzgünüm, benim hatam, kodu düzelteyim.

Bu hatayı bir daha asla yapmayacak mıyım? Aynı hatayı tekrar yapmam ve tekrar YZ’den yardım istemem çok muhtemel. Bilgiyi içselleştirme ve hatadan öğrenme olasılığı büyük ölçüde azalır.

Hesaplama sürecinin %99’unu biliyorsam ancak son %1’e ulaşamıyorsam, iyi kod yazdım mı? Sadece yorulduğum için beynimi YZ’ye devrediyorum. En kritik kısmı, bilmediğim ve yapamadığım kısmı YZ’ye emanet ediyorum.

Koda Dostu, Bilinçsiz Ortamı Soymak

Dünyada birçok geliştirici var. Dünyanın öbür ucundaki bir geliştiricinin benimle aynı hatayı yaşamış olması çok muhtemel. Ancak bu geliştirici hatayı tam olarak aynı durumda mı yaşadı? Yazdıkları kod benim yazdığım kodla aynı mı? Farklı olacak. Aynı hata tamamen farklı durumlarda ortaya çıkabilir.

YZ, çevreleyen bağlam hakkındaki bilgilere erişimi engeller. Sadece gönderdiğim kodda hata ayıklar ve o kodla ilgili bilgi sağlar, ancak kodu yazmak için gereken süreci göstermez.

‘Elbette, ayrıntılı bir açıklama istemek için istem mühendisliğini kullanabilirsiniz, değil mi?’

Elinizi kalbinize koyun ve ne kadar sık yorulduğunuzu ve sadece kodu kopyalayıp yapıştırdığınızı düşünün.

Bir hatayı aramak ve araştırmak için ön bilgiye ihtiyacınız var. Bu ön bilgi hakkında her şeyi açıkça biliyor muyum? Bu blog farklı durumları açıklıyor ve o blog farklı durumları açıklıyor. Bu durumların hepsini anlıyor muyum? Google’da arama yaparken, diğer bilgileri bulmak için ‘Ah~ benim durumumdan farklı’ okuyup anlamanız gerekiyor.

Arama yapma gibi bu basit eylem bile geliştiricileri daha koda dostu yapabilir.

ChatGPT aynı değil mi? Kod yazarken kullanmaya devam ederseniz, aynı şey değil mi?

Bilinçsiz Ortamın Önemi

Bilinçsiz bir ortamın en iyi örneği ev ortamıdır.

İşte iki çocuk. Farklı ailelerde büyüyorlar. Çocuk uçan bir kuş görüyor ve ebeveynlerine soruyor:

‘Anne (Baba), o kuş ne?’

Ebeveynlerin cevapları farklı:

  1. Saksağan.
  2. Ne tür bir kuş olduğunu merak ettim, bu yüzden baktım. Saksağan veya karga olabilir, ancak saksağana benziyor.

İlk aile doğrudan bir cevap verir ve pratik bir çözüm sunar.

İkinci aile dolaylı bir cevap verir ve cevabı keşfetmek için yaratıcı bir yaklaşım önerir.

Bu çocuklar farklı ortamlarda büyütülürlerse nasıl büyüyecekler?

İlk aileden olan çocuk doğru cevabı bulmada verimli olacak, ancak cevabın kolayca bulunamadığı sorunlarla başa çıkmada verimli olmayabilir. → ChatGPT

İkinci aileden olan çocuk basit bir cevabı bulmak için daha uzun sürebilir, ancak cevabın kolayca bulunamadığı sorunlar hakkında düşünmekte daha rahat olacaktır. → Arama ve Öğrenme (Googling)

Bilinçsiz ortam bu şekilde oluşur ve günlük yaşamın tüm yönlerinde kullanılır.

Sizce geliştirme nedir? Bence ikincisi, ancak seçimi her bireye bırakacağım.

Yukarıdaki resim Freud’un buzdağı modelidir. Çevremizdeki insanlardan ve temas ettiğimiz her şeyden bilinçsizce etkileniyoruz. Birinin gelip geçerken, ‘A yemeği bugünlerde lezzetli’ demesine dikkat etmesek bile, ‘A yemeği lezzetli’ olduğu konusunda sığ bir farkındalık yaratır. Daha sonra A yemeğini gördüğümüzde, aslında olduğundan daha lezzetli yiyebiliriz veya beklentilerimizi karşılamazsa daha hayal kırıklığına uğrayabiliriz. Bu, gelip geçenin sözlerini duymamaya kıyasla önemli bir fark yaratır.

Geliştirme hakkında bilgi ararken gayretle karşılaştığım - bilinçli olarak görmediğim - küçük bilgi parçası bile sonunda bir varlık haline gelecektir. Bilinçsizliğin düşündüğümüzden çok daha büyük bir etkisi vardır.

Sonuç Olarak: Geliştirme Felsefem

Sonucum, ‘LLM’lerden eğitim alırken mümkün olduğunca kaçınılmalı, ancak üretken faaliyetler için kullanılabilir’ şeklindedir.

YZ sonrası çağa uyum sağlamalı, YZ’yi nasıl kullanacağımızı öğrenmeli, etkisini ilk elden deneyimlemeli ve YZ hakkında olumlu ancak eleştirel bir bakış açısı sürdürmeliyiz. YZ’nin sonunda işlerimizi elimizden alacağını ve işlerimizi elimizden almanın yanı sıra başka ne gibi etkileri olabileceğini her zaman dikkate almalıyız. YZ’yi kullanma şeklimizin hayatımıza ve düşüncemize yardımcı olup olmadığını düşünelim ve beynimizi YZ’ye devretmekten kaçınalım.

Uzun süren bir karışıklıktan sonra, sonunda geliştirme felsefemi kurdum:

Her bir kod satırına düşüncelerimi aşılayın. Sadece basit harfler veya cümleler yaratmayalım, bunun yerine onlara felsefemi ve düşüncemi katalım.

YZ ile benim aramdaki fark budur.

Herkese bol şans!

Ekstra: Zayıf İrade Gücünü Tedavi Etmek, LLM Sitelerini Engellemek

Zayıf irade gücü bir hastalıktır. Zayıf irade gücünü tedavi etmek için irade gücünü kullanmak mantıksızdır; bu zayıf irade gücünden kaynaklanır. Sigarayı, içkiyi veya benzeri alışkanlıkları bırakmak için başka eylemler tanıtmak doğrudur.

Benzer şekilde, LLM sitelerini engellemenin ruh sağlığım için iyi olacağını düşündüm. Aşağıdaki, Mac’te engelleme yöntemimdir:

  1. Terminalde aşağıdaki kodu girin:

  2. Ekleme moduna geçmek için i tuşuna basın. Aşağıdaki resimde olduğu gibi, 127.0.0.1 ana bilgisayarına aşağıdakileri ekleyin. Adresi girdikten sonra Sekme tuşuna basın.

  3. Ekleme modundan çıkmak için ESC tuşuna basın ve kaydetmek için :wq yazın. Bu, DNS (Alan Adı Sistemi) kullanır ve ‘127.0.0.1 chatGPT.com’, adres çubuğuna chatGPT.com yazmanın 127.0.0.1’e (bilgisayarımın sunucu ana bilgisayarına) erişeceği anlamına gelir.

Zayıf irade gücümüzü birlikte tedavi edelim!