Yapay Zekâ ile Kod Üretme Programlama Dünyasının Geleceği mi?
Yapay zekâ, kod yazma alanında büyük adımlar atarken, insanın yerini tamamen alıp alamayacağı ve bu alandaki sınırlamalar hâlâ tartışma konusu. Bu yazıda, konuya dair tüm detayları ve en yeni gelişmeleri birlikte inceliyoruz.
Son zamanlarda, büyük dil modelleri (LLM'ler) ve üretken yapay zekâ modellerindeki ilerlemeler, birçok uygulamada devrim niteliğinde gelişmelere yardımcı olmuştur. Bu ilerlemeler, serbest metin oluşturma ve düzenleme, soruları yanıtlama ve belge özetleme gibi görevler üzerinde belirgin etkiler yaratmıştır. Bunun sonucunda yapay zekâ destekli avukatlar ve yapay zekâ ile üretilmiş müzikler gibi uçsuz bucaksız bir çeşitlilikte hizmetler ortaya çıkmıştır.
Kodlama alanı, özellikle belirli programlama dillerinde görev oluşturmayı içerir ve bu alanda üretken LLM'lerin hızlı ilerleyişi önemli avantajlar sunar. Ancak, geleneksel yazma görevlerinden farklı olarak, programlama titizlikle söz dizimi ve mantık kurallarına uymayı gerektirir. Bu durum, üretken modellerin yüksek kalitede kod üretme sürecini daha zorlu hale getirir.
OpenAI codex
OpenAI kâr amacı gütmeyen bir "yapay zekâ araştırma ve dağıtım şirketi"dir. 2015 yılında çeşitli teknoloji liderleri ve yatırımcıların 1 milyar dolarlık taahhüdüyle kurulmuştur. OpenAI 2021'de Codex adlı bu yapay zekâ modelini duyurdu. Codex, GPT-3 ve GPT-4 (Generative Pre-trained Transformer'ın üçüncü ve dördüncü nesilleri) gibi günümüzün en gelişmiş doğal dil modellerinin soyundan gelmiştir. Bu model, basit İngilizce komutlarla kaynak kodu üretebilme yeteneğine sahiptir ve GitHub Copilot'u destekler.
Codex, kullanıcıların etkileşimde bulunmasını ve farklı programlama dillerinde kod oluşturmasını sağlayan bir dizi özellik sunar. Basit İngilizce komutları girdi olarak alarak Python, C, JavaScript, Go, Perl, PHP, Ruby, Swift ve TypeScript gibi birçok programlama dilinde kod üretebilir. Ayrıca, kodları bir programlama dilinden diğerine çevirebilir ve verilen kodun işlevselliğini, hesaplama karmaşıklığını içeren İngilizce açıklamalar sunabilir. Aynı zamanda, halka açık veri setlerinden bilgiye erişen API'ları çağıran kodlar da oluşturabilir. Örneğin, ZIP kodlarıyla şehirlerin hava kalite endeksini alma gibi bir işlemi gerçekleştirebilir. Codex, OpenAI API5 ve GitHub Copilot6 üzerinden erişilebilir durumdadır.
Hava kalitesi değerlendirmeleri ilginizi mi çekti? Daha fazla okumak için tıklayın: AI ve Geleceğin Yeşil Dünyası: Sürdürülebilirlik Arayışında Yapay Zekâ
DeepMind AlphaCode
DeepMind AlphaCode Şubat 2022'de duyuruldu. Codex gibi, AlphaCode da "rekabetçi seviyede bilgisayar programları yazabilen" bir transformer tabanlı model kullanıyor. Model, C++, C#, Go, Java, JavaScript, Lua, PHP, Python, Ruby, Rust, Scala ve TypeScript dahil olmak üzere 715 GB'dan fazla GitHub kodunda eğitilmiş durumda. AlphaCode, Codeforces platformundaki 5.000'den fazla programlama yarışması katılımcısı arasında ilk %54'e girerek eleştirel düşünme, mantık, algoritmalar, kodlama ve doğal dil anlayışının bir kombinasyonunu gerektiren yeni problemleri çözmüştür.
Amazon CodeWhisperer
Amazon CodeWhisperer Haziran 2022'de duyuruldu. CodeWhisperer, "ML Gücüyle Kod Yazma Yardımcısı" olarak tanımlanıyor ve "geliştiricilerin doğal yorumları ve önceki kodlarına dayanarak kod önerileri sunup geliştirici üretkenliğini artırmaya yardımcı oluyor." Diğer yandan, CodeWhisperer'ın geliştiricilere kod önerileri sunarak üretkenliği artırma hedefi, geliştirme süreçlerinde verimlilik sağlamak adına oldukça umut vaat edici görünüyor. Ancak, bu tür yapay zekâ destekli araçların gerçekten geliştirme süreçlerine ne kadar entegre edilebileceği ve bu entegrasyonun geliştiricilerin iş akışlarını nasıl etkileyeceği henüz netlik kazanmamış bir konu.
Diğer yapay zekâ kod oluşturma araçları
Codex, AlphaCode ve CodeWhisperer gibi en bilinen yapay zekâ destekli kod üretme platformları dışında, Tabnine, Code4Me ve SalesForce CodeGen'e dayalı FauxPilot gibi birkaç farklı platform mevcut. Bu platformlar da benzer şekilde, geliştiricilere kod yazımı sırasında destek sunmayı hedefliyor. Yine de bu araçların gerçek kullanımı ve etkisinin uzun vadede nasıl bir değişime yol açacağı konusunda daha fazla çalışmaya ihtiyaç duyuluyor.
Yapay zekânın kodlama kalitesi
Güncel yayınlar, AI kodlama yardımcılarının geliştiriciler için yüksek kaliteli kod önerileri üretebilecek kadar güçlü olduğunu belirtiyor. Ancak, bazı son çalışmalar ise görev tamamlama ve kod kalitesi açısından AI kodlama yardımcılarının kullanımında anlamlı bir gelişme gözlemleyememiştir. Diğer yandan, başka çalışmalar bu araçların programcıların üretkenliğine pozitif etkide bulunduklarını ifade ediyor.
Programcıların AI kodlama araçlarının önerilerini yüksek bir sıklıkla kabul etmedikleri de görülmüştür. Ziegler ve arkadaşları (2022), GitHub Copilot ve TypeScript, JavaScript ve Python için sırasıyla %23,3, %27,9 ve %28,8 oranında öneri kabul ettiklerini belirtmişlerdir. AI kodlama yardımcılarının önerilerinin benimsenmemesinin birçok potansiyel nedeni bulunmaktadır. Bir çalışma, geliştiricilerin üretilen kodun kusurlar içerebileceği, projenin kodlama tarzına uymayabileceği veya anlaşılması zor olabileceği konusunda endişe duyduklarını gösteriyor. Diğer çalışmalar, yazılım geliştiricilerinin üretilen kodları kendi kullanım durumlarına uygun hale getirmek için anlayıp hata ayıklama konusunda zorluklar yaşadıklarını, çünkü bunun için altta yatan programlama prensiplerini, çerçeveleri veya API'ları önceden bilmeleri gerektiğini belirtiyor.
Yapay zekâ insan işlerinin yerini alacak mı?
Yapay zekânın programcıların yerini tamamen alması pek olası değil. Yine de kod oluşturma, hata ayıklama ve dokümantasyon gibi programlamanın belirli alanlarını otomatikleştirme konusunda umut vaat ediyor. Örneğin, kapsamlı veri kümelerinden yararlanan ChatGPT, halihazırda var olan kodları taklit edebilir ve benzer kodlar üretebilir. Belirli programlama görevlerini otomatikleştirme yeteneklerine rağmen, karmaşık yazılım uygulamaları oluşturmak için gerekli olan insan yaratıcılığı ve eleştirel düşüncenin vazgeçilmez unsurları ChatGPT tarafından ikame edilemez. Peki yapay zekânın bu konudaki kısıtlamaları neler? Beraber inceleyelim.
Yapay zekânın kodlama serüvenindeki sınırları
Büyük ölçekli üretken modeller, günümüzde çeşitli araç uygulamalarında büyük bir rol oynamaktadır. Örneğin, Copilot, CodeWhisperer ve AlphaCode gibi kod üretme modelleri, yazılımcılara bir IDE içinde kod tamamlama önerileri sunarak destek olmaktadır. Ancak, bu modellerin kusurları dikkate alındığında, eğer insan kullanıcılar tarafından gözden geçirilmez ve düzeltilmezse, kod tabanlarında hatalara veya güvenlik açıklarına neden olabilirler.
Otomatik Bug Fixing
Yakın zamanda yapılan bir araştırma ChatGPT'nin hata düzeltme verimliliğini Codex gibi yerleşik araçlara kıyasla ölçmeye çalışmıştır. QuixBugs'tan alınan ve her biri hatalı kod içeren yaklaşık 40 sorunlu senaryo, çözüm için ChatGPT'ye sunulmuştur. Deneyin sonuçları ChatGPT'nin Codex gibi diğer Otomatik Program Onarım (APR) araçlarıyla karşılaştırılabilir bir performans sergilediğini ortaya koymuştur. Bununla birlikte, bir diyalog kutusu aracılığıyla ek bağlamsal bilgiler sağlandığında performansı önemli ölçüde artmış ve %77,5'lik bir başarı oranına ulaşmıştır.
Tüm bu gelişmelere rağmen, bir web tarayıcısının geliştirilmesi, insan gereksinimlerinin derinlemesine anlaşılmasını gerektirir. Gelişmiş otomatik kod üretim araçları basit kod yapılarında yeterlilik gösterirken, karmaşık yazılım mühendisliği projelerine uygulandıklarında engellerle karşılaşılmaktadır.
Sonuç olarak, yapay zekânın kod üretme yeteneği programlama dünyasında çığır açan bir potansiyele işaret ediyor. Ancak, insanın yaratıcılığı ve eleştirel düşünme gibi özellikleri, karmaşık yazılım uygulamalarının geliştirilmesinde hâlâ vazgeçilmez bir rol oynamaya devam ediyor.