Üretken Yapay Zeka Yazılımcılar İçin Bir Tehdit Mi?

Eyüp Özmen
8 min readMar 28, 2024
“Leave The World Behind” filmindeki Tesla sahnesi

Aslında sıradaki blog yazımda tamamen üretken yapay zeka araçları kullanarak sıfırdan bir uygulama geliştirme fikri vardı ancak gündemdeki bazı gelişmeler acaba işsiz mi kalacağım, nasıl yani bütün yaptıklarımız artık boşa bir çaba mı gibi bitmeyen soruları beraberinde getirdi. Öncelikle kafamı belli noktalarda toparlama gereği duydum.

Sonrasında yoğun bir okuma ve algılama sürecine girerek geldiğimiz süreçte atıl kalma ihitmalimiz nedir, yapılabileceğimiz en iyi şeyler neler, hayatta kalmak için neler yapmalıyız gibi sorulara cevaplar aradım.

Yapay zekanın hayatımıza girmesiyle iş yapış biçimlerimiz büyük oranda değişiyor. Bir yandan büyük şirketlerin ve devletlerin bu alanda yaptıkları astronomik yatırımları hayretle izlerken bir yandan sonumuzun ne olacağını sorgulamaktan kendimizi alamıyoruz. Görünen o ki gelişmeler hız kesmeden devam edecek ancak her yenilik komplo teorilerini beraberinde getirmeye devam ediyor. Kimi senaryolar insanların büyük çoğunluğunu işsiz bırakacağını düşünürken kimi senaryolar yeni yaratılan ekonomilerle pastanın büyüyeceğini dile getiriyor.

OpenAI tarafından geliştirilen ChatGPT yalnızca 5 günde 1 milyon kullanıcıya erişti ve popüleritesi hız kesmeden artmaya devam ediyor. Üretken Yapay Zeka(Generative AI) olarak adlandırılan ve büyük dil modelini(Large Language Model) temel alan yapıda, büyük veri kümeleri ile eğitilen model, kullancılara istekleri doğrultusunda anlamlı çıktılar veriyor. Bu modellerin gelişime açık olması ve beraberinde diğer büyük şirketlerin de kendi üretken önceden eğitilmiş dönüştürücülerini (Generative Pre-trained Transformer) çıkarması ivmenin yukarı yönlü gideceğinin göstergesi.

Diğer taraftan, Nvidia CEO’su Jensen Huang’ın “Kodlama öğrenmeyin, bu işi artık yapay zeka yapacak” açıklaması sonrası alevlenen tartışma yazılım işlerinin insanlardan yapay zeka araçlarına mı geçeceğini düşünmemize sebep oldu. Nvidia GPT’lerin donanımsal ihtiyacı olan çip üretiminde çok önemli bir konuma sahip olduğundan, bu modelleri çalıştıran daha güçlü cihazların ortaya çıkacağını ve daha işlevsel araçlara sahip olacağımızı tahmin etmek zor değil kuşkusuz.

Bu tartışmaların gölgesinde bir grup genç tarafından kurulmuş ve hali hazırda Seri A turunda 21 milyon $ yatırım almayı başarmış Congition Lab şirketinin Devin AI adlı ürünü gündemimize hızlı bir giriş yaptı. Sundukları özellikler oldukça dikkat çekici ancak paylaştıkları videolardan ve dökümandan anladığım kadarıyla daha gidecekleri çok yol var. Tabi yapay zeka ile çalışan yazılım mühendisi düşüncesi bile haliyle yazılım sektöründe insan iş yükünün makinelere belli ölçüde kaçınılmaz olarak kayacağının bir göstergesi olarak önümüzde duruyor.

Devin AI SWE-bench skor kıyaslaması*

Devin AI’ın öne çıktığını iddaa ettiği SWE-bench skoru temel olarak; hazırlanmış bir dataset üzerinden GitHub issue’larına otomatik olarak çözüm üretip unit testlerden başarılı olarak geçirebilmesini esas alıyor.

Rasgele %25'lik alt bir veri kümesi üzerinden yapılan teste; diğer modellere önceden hangi veri setleri sunulacağı yardımlı söylenirken Devin AI bunu yardımsız olarak başardığını iddia ediyor.

Bkz. https://www.cognition-labs.com/post/swe-bench-technical-report

Özellikle Front-End geliştircileri ilgilendirecek önemli bir gelişme de; Stanford, Georgia Tech, Microsoft, Google DeepMind’lı akademisyenler tarafından yapılan Design2Code adlı araştırmanın oldukça dikkat çekici sonuçlarıydı. Görsel dizaynı sunulan Web sayfalarının LLM’ler tarafından ne oranda koda dönüştürülebileceğini ölçümlemeye çalışmış.

GPT-4V’nun başarılı sonuçları ile öne çıktığı testlerde metin içeriği ve renklendirmede daha başarılı sonuçlar elde edilebileceği öne sürülerek orijinal web sayfalarının %49 oranında bir gerçekleme sağlayabileceği sonucuna ulaşılmış.

Bkz. https://salt-nlp.github.io/Design2Code/

Otomasyon insan gücünden makine gücüne geçişe ortam sağlamışken, yapay zeka, insan bilişsel işlevlerinin makineye devrini esas alıyor.

Yukarıdaki gelişmeler gösteriyor ki insan verimliliği üretken yapay zeka modelleri sayesinde kesin olarak artacak çünkü bir takım işlerimizi devredebileceğimiz modellerin ortaya çıkması bizlerin daha önemli işlere daha fazla vakit ayırmamızı sağlayacak.

Diğer bir senaryoda da yazılım ürün ekiplerindeki kişi sayısı bu modeller sayesinde düşebileceğinden daha küçük ve daha az maliyetli ürün ekipleri kurabilecek olmamız. OpenAI kurucu ortağı ve CEO’su Sam Altman’ın dediği gibi tek kişi tarafından kurulan unicorn görmemizin yakın gelecekte mümkün olabileceği düşüncesi gerçekleşebilir.

Uçaklardaki oto-pilotların, pilotların verimliğini ve uçuş kalitesini artırdığını ancak insan kontrolü olmadan kullanımının da şu an için uygulanabilir olmadığı bir dünyada yaşıyoruz. Dolayısıyla insan faktörü şu an için devreden kalkacak diyebilmemiz çok gerçekçi değil. Leave The World Behind filmindeki otonom Tesla araçların çarpışma sahnesi oluşabilecek kaosun önemli bir göstergesi olabilir.

Nitekim, yapay zeka halüsinasyonları olarak adlandırılan bir kavram, modellerin zaman zaman ortaya çıkardıkları mantıksızları ve uyumsuzlukları dile getirmesi yönüyle lügatimizde yer ediniyor.

Endüstrileşme ile birlikte fabrikalarda otomasyon sistemleri bir takım işlerin insanlardan makinelere geçmesine sebep oldu. Ancak burada beraberinde gelen üretim hacmindeki ve verimlilikteki artış ekonomileri büyüttü ve farklı iş kollarının ortaya çıkması ile dengelenme sağlandı diyebiliriz. Aynı şekilde de dijital ekonomileri ortaya çıkaran yazılım sektöründeki gelişmeler, tekrarlı işleri otomatize edecek bir takım ilerlemelere gebeydi aslında. GPT’ler hayatımıza girdiğinden beri çok kompleks olmayan hatta tekrarlı diyebileceğimiz bir takım işlerimizi oldukça verimli bir şekilde geliştirmeye başladık bile. Bizlere daha fazla zaman kazandırması sayesinde daha zorlayıcı problemlere ya da iş fikirlerine daha çok odaklanabiliyoruz. AI temelli şirketlerin aldıkları büyük yatırımları göz önünde bulundurursak verilimlilik artışı ve ekonomik büyüme sağlanacağını ön görmek çok zor olmasa gerek. Ancak burada da bir dengeleme sağlanacağını ve bu ekonomik pastadan ne ölçüde pay alacağımızda aşağıda sıralayacağım maddelerin çok etkili olacağını düşünüyorum.

1- Odağımızı korumalıyız.

Trendler, hypelar yazılım sektöründe var olan dalgalanmalar olarak aslında alışkın olduğumuz durumlar. Bunları kovalamak ya da bir şeylerden sürekli eksik kalacağımız düşüncesi(Fear of missing out — FOMO) bizleri paralelize ederek zaman kaybına sebebiyet veren unsurlar.

Sürekli gelişimi temel alan bir zihin yapısıyla bu dalgalar üzerinde keyifle sörf yapmalıyız asla kasamsarlıkla bizleri esir etmesine izin vermemeliyiz.

Kısıtlı zamanımızın bilincinde olarak değer yaratan, hızlı adapte olan ve ne olursa olsun pes etmeyecek bir psikoloji ile bu süreçlere yaklaşmalı, değişimi ve dönüşümü uygulama cesaret ve disiplinine sahip olmalıyız.

2- Okuma ve anlama becerilemiz kadar anlatma becerimiz de önemli bir yetenek haline geliyor.

Üretken yapay zeka araçları kullanıcıların yapmış oldukları girdilere, kavradıkları ölçüde daha anlamlı çıktılar veren araçlar. Dolayısıyla bizim daha anlamlı, anlaşılabilir girdiler sağlayabileceğimiz ölçüde daha işlevsel hale geleceklerdir. Bu nedenle yazılım geliştiricilerin temel işlevi olan problem çözme becerileri öncesinde daha ölçüde problemi kavrama üzerine dayanırken şimdi bu araçları güçlü bir yardımcı olarak kullanmak için hiç olmadığı kadar etkili anlatıcılara dönüşme zorunluluğu ortaya çıkmaktadır.

Metinsel ve görsel işlerde GPT’ler çok önemli bir ivme yakaladı. Edebi metinlerden yaratıcı reklam içeriklerine, sanatsal resimlerden etkileyici sinema kesitlerine kadar insan yaratıcılığına yeni alan ve imkanlar yaratmaya devam ediyor.

Kişisel yaratıcılığımızı bu teknolojilerle buluşturmak ve daha üretken hale gelmek için başarılı hikaye anlatıcılarına dönüşmek ve en önemlisi kompleks fikirleri yazılı olarak anlatabilme yeteneği kazanmaya çalışmalıyız.

Devin AI’in çözdüğü Github issue’una baktığımızda da iyi tanımlanmış ve çerçevelenmiş bir problemi çözdüğünü gözlemliyoruz. Bunun iyi bir örnekleme olduğunu düşünüyorum.

Bkz. https://github.com/sqlfluff/sqlfluff/issues/2822

3- Bizi yapay sistemlerden ayıran problem çözme, yaratıcılık, sezgisellik ve iletişim becerilerinde uzmanlaşmayı hedeflemeliyiz.

Yazılımcılar kod yazmanın ötesinde işlevleri olan kişilerdir. Yapay genel zeka üretilmeden önce bizi yapay bir sistemden ayıran niteliklerimizin farkında olmalı ve gelişim sağlamak için adım atmalıyız.

Eğer kodlama yapmak bir yazılım uygulaması geliştirmek açısından tek önemli unsur olsaydı bu konuda epey yol almış no-code/low-code araçlar şimdiden bizleri çoktan işsiz bırakmış olurlardı. Sonuç olarak bu araçların yazılımcıların istihdam oranında azalmaya sebebiyet verdiğini görmemekteyiz.

Çünkü yazılımcılar kodlamayı bir araç olarak kullanarak kompleks problemleri, özgün ve yaratıcı bir bakış açısıyla irdeleyen muhtemel etkilerini hissedebilen ve en önemlisi farklı uzmanlıklardaki kişilerle etkili bir şekilde bağlantılar kurarak çözüme götürmeye çalışan kişilerdir.

4- Üretken yapay zeka araçlarını iş süreçlerimize entegre etmeliyiz.

Havacılık sektöründe dijital göstergelerin uçak kokpitlerine entegre edilmesi öncesinde analog göstergeler ile pilotlar daha zor sayılabilecek gösterge kontrolleri sağlamak zorundaydılar. Ancak burada bir ikilem ortaya çıkmaya başladı. Dijitalleşme daha kolay gösterge kontrolü sağlarken ve pilotlar üzerindeki iş yükünü azaltırken acil durumlarda analog göstergelerle kontrol sağlama zorunluluğu ortaya çıktığında pilotaj yeteneklerinin bazı alanlarda köreldiğini gözlemlemeye başladılar.

GPT’lerin de yazılım sektöründeki etkisinin benzer olacağını düşünmekteyim. Çünkü otomatik kod tamamlama, yazılan kodun dökümante edilmesi, insan girdilerine göre kod yazması, testlerin oluşturulması, hata ayıklaması, yazılan kodun refaktör edilmesi gibi halihazırda bir çok etkili işlevi süreçlerimize dahil etme fırsatı yakalamış olduk. Beraberinde elde ettiğimiz hızlı ve farklı çözüm geliştirme, kod kalitesinin artması gibi olumlu etkiler bizlere tekrarlı işleri devretme ve daha zorlayıcı problemler üzerinde daha çok zaman ayırma şansı yarattı.

Cephanemizde bu kadar güçlü bir silah taşıdığımız için kendimizi şanslı hissetmeliyiz. Nietzsche’in üstinsan kavramından öykünerek üstün yazılımcılar devrine geçiş fırsatını değerlendirebiliriz.

Ancak diğer taraftan üretilen çözümlerin uygunluğunun değerlendirilmesi,gerekli olduğu durumda uzmanlığımız doğrultusunda yol ve yöntem değiştirme sorumluluğunu da üzerimizde taşımaktayız.

Burada yaratıcılığımızı ve uzmanlığımızı köreltici ölçüde bu teknolojilere bağlanmamak oldukça önemli çünkü yapay zekanın insan girdilerinden beslendiğini dolayısıyla inovasyonun mümkün olması açısından insan çabasının zorunlu olarak sürdürülmesi gerektiği unutulmamalıdır.

!!! Prompt Engineering disiplinini en ileri düzeyde öğrenmeli, bu alandaki gelişmeleri sıkı sıkıya izlemeliyiz.

Aşağıdaki kaynaktaki örnekler başlangıç açısından oldukça faydalı olacaktır.

Bkz. https://github.com/f/awesome-chatgpt-prompts/

5- Alan bazlı uzmanlaşma hedeflenmeli, yaşam boyu öğrenme kabullenilmelidir.

Yazının bir çok yerinde uzlaşmanın önemini vurguladım. Ancak ister yazılım teknolojilerinde olsun ister uygulama geliştirdiğimiz iş fikrinde olsun ister hobi olarak bilgi sahibi olduğumuz bir konu olsun; hiç olmadığı kadar ileri düzeyde derinlikli bilgi sahibi olmaya ihtiyacımız var. Üretken yapay zeka modelleri belirli bir tarih aralığındaki geçmiş verilerle beslenen bir modele dayanıyor, dolayısıyla güncel gelişmelere adapte olması ve bunlara yönelik çözümler ortaya çıkarması şu an için sağladığı bir özellik değil. Farklı, yenilikçi çözümler üretmek ve algoritmaların bizleri hapsettiği fare kapanından çıkış için yeniliklere açık olmalıyız.

Üzerimizde her zaman yeni şeyler öğrenme baskısı hissediyoruz. Ancak artık bir norm olarak hayat boyu öğrenmeyi kabul etmemiz gerekiyor. Yarattığı stres bir yana öğrenme süreçlerinin zorluğunun bilincinde olarak tükenme yaşamadan bu disiplini kendimize kazandırmalıyız.

6- Üretken yazay zeka araçlarının yalnızca kullanıcısı değil, bu araçlarla değer ve ürün ortaya koyan kişiler olmaya çalışmalıyız.

OpenAI’ın yarattığı ivme ile birlikte LLM için API sağlayıcıları da yaygınlaştı. Bu modellin hali hazırda birçok yazılım ürününde kullanıldığı görmekteyiz.

Bu modelleri kullanarak ortaya çıkardığımız Metin,Resim,Video,Ses,Müzik,Konuşma,Kod,Dizayn vd. öne çıkan yararlı içeriklerdir. Bu unsurlar değer üretmek açısından bizlere yeni imkanlar yaratacaktır.

Sektörel olarak olarak incelediğimizde; Pazarlama ve Reklam, Perakende ve E-Ticaret, Eğitim, Sağlık, Finans, Hukuk, Medya, Askeri Teknolojiler, İnsan Kaynakları, Moda vd. bu modeller kullanılarak değer yaratılabilecek alanlar olarak öne çıkmaktadır.

Ünlü şirketlere baktığımızda;

  • Morgan Stanley, JP Morgan veri yönetimi sağlamak,
  • Intel, Salesforce müşterilerine yeni servisler üretmek,
  • Mercedes-Benz, Oracle, Duolingo, TikTok servis ve ürünleri için yeni özellikler geliştirmek,
  • Octopus Energy, pazarlama, müşteri deneyimi(CX) ve müşteri servisleri sunmak,
  • Hitachi,Amazon, düzenleme ve özetleme hizmetleri oluşturmak,
  • Goldman Sachs, yazılım geliştiricilerini desteklemek amacıyla üretken yapay zeka modelleri geliştirmekte ve kullanmaktadır.

Sağlanan içeriklere, kullanım alanı sunacak ve farklılık yaratılabilecek sektörlere ve en önemlisi yukarıdaki sıraladığımız büyük şirketlerin bu modelleri bünyelerine ne amaçla dahil ettiğini gözlemlediğimizde, büyük bir fırsatın elimizde olduğunu kabul etmemiz gerekiyor.

Sonuç Olarak;

Üretken Yapay zeka teknolojilerinin yazılım geliştiriciler için sunduğu hem zorluklar hem de fırsatlar göz önüne alındığında, bu değişime uyum sağlamak ve başarılı olmak için belirli stratejiler benimsenmelidir. İş dünyasının hızla değişen dinamiklerine ayak uydurabilmek için esneklik, yenilikçilik ve sürekli öğrenme önemlidir. Yazılım geliştiriciler, bu teknolojileri doğru şekilde kullanarak, verimliliği artırabilir, yeni iş alanları yaratabilir ve rekabet avantajı elde edebilirler. Ancak, insan-makine işbirliği ve insanın sağladığı değer unutulmamalıdır. Bu, yazılım geliştiricilerin hem teknik hem de insan odaklı becerilerini geliştirmeleri ve yenilikçi çözümler üretmeye devam etmeleri önemlidir. Geleceğin yazılım geliştiricileri, teknolojik değişimlere hızlıca adapte olabilen ve sürekli olarak kendini yenileyen profesyoneller olacaktır.

Beğendiyseniz alkışlamayı, fikirleriniz için yorum yapmayı unutmayınız.

--

--