Yazılım biter mi?

GitHub CoPilot açık iken herhangi bildiğiniz dili açın ve basit çaplı bir ne bileyim webse routing frameworku yazın değilse başka bir framework yazın sonra kod yazmaya devam edin sonra görün CoPilotu
Ben yaptım öyle bir şey. Yıllar önce yazılmış bir Open Source Game Engine'e contrubtion yapıyordum. Berbat ötesi çalışıyor. Yarardan çok zarara sebep oluyor. En kötüsü de yavaşlatıyor benim düşünce hızımı. Bir noktadan sonra, yazmadan önce ne önerecek diye beklemeye başlıyorsun. Genelde önerileri de işe yaramıyor, en azından benim çalıştığım projede yaramıyordu. Template meta programlama kullanarak C++'ta dosyadan verilen "herhangi" bir sınıfı elle bind ihtiyacı olmadan doldurmaya yarayan bir sistem yazmaya çalışıyordum. Copilot gram yardımcı olmadı.
 
GitHub CoPilot açık iken herhangi bildiğiniz dili açın ve basit çaplı bir ne bileyim webse routing frameworku yazın değilse başka bir framework yazın sonra kod yazmaya devam edin sonra görün CoPilotu
Diger bahsettigim seyleri okumadiniz herhalde, birincisi deterministik degil, ikincisi bir alet, yazilimi bitiremez. Sonucta komutlari, promptlari veren bir yazilimci.

Ve denemistim zaten dediginizi, kendi kendine API'lar, metodlar, fonksyionlar uydurunca ve varmis gibi davraninca hicbir ise yaramiyor
 
Mevcut durumda bile oldukça iyi kod yazabilen ve var olan kodları analiz ederek yeni özellikler ekleyebilen, hata giderebilen sayısız yüksek performanslı model var.

Burada 2 tane gozden kacabilen onemli mesele var:

- O kodlari insan yazmali. AI kendi kendine feedback loop olusturur ya da sentetik datadan beslenirse sacmaliyor. ( Hem de agir sacmaliyor ) -> Model collapse - Wikipedia

- Bahsi gecen kod bloklarinin, piyasadaki problemlere cozum uretebilecek minvalde olmasi gerekiyor. Esi benzeri olmayan, kritik ve open-source olmayan bir projeyi AI'a gunumuz bilgisayar mimarisi degismedigi muddetce kimse teslim etmez cunku train datasinda yok.
 
İnsan gibi düşünebilen, bir bilince sahip makineler yapılamadığı sürece böyle bir şeyden söz edilemez. AI dediğimiz şey temelde önceden verilen bir datanın belirli koşullar çerçevesinde değerlendirilip belirli sonuçlar döndüren klasik kısır bir otomasyondan ibaret.

Bir insan herhangi bir iş yaparken salt mantık ile durumu değerlendirmez, işin içinde birçok parametre vardır, bu nedenle insanın yapabildiği şeyleri özellikle yaratıcılığın, hayal gücünün ve mantığın bir arada kullanıldığı alanlarda AI den de çok bir şey beklemeyin, genellikle saçmalayacaktır.
 

Yaklaşık 4 yıldır yazılım ile ilgileniyorum. Şu an bir yazılım ofisinde çalışıyorum. Bilişim meslek lisesi okudum. Şöyle söyleyim. Yapay zeka yazılımı bitirecek cümlesi yazılımla yakından uzaktan alakası olmayan kişiler tarafından söylenmiş bir saçmalıktır. Yazılımı sadece uygulama yapmak, web sitesi tasarlamak olarak görenler zaten bu mantıkla birçok mesleğin biteceğini düşünemiyorlar. Yazılım çok dallı bir meslek siber güvenlik, yapay zeka uzmanlığı, ağ mühendisliği, web, mobil, masaüstü, veri tabanı gibi birçok alan. Chat cpt ile merak ettiğim için birkaç kez kod yazdırmaya çalıştım. Çok başarılı değil şu şekilde değil. Bir yazılımcının kodu yazması atıyorum 10 saat alıyor, kodu düzenlemesi 30dk alıyor. Chatcpt ile yazdırdığın kodu 30 dk da yazdırıp kopyalıyorsun. Kodun uzunluğuna göre yaklaşık yine yazdığın kadar düzenliyor, çalışır hale getiriyorsun. Ayrıca arayüz tasarımından bahsetmiyorum bile. Şu an işi bilen her yazılımcı iskelet, aset mantığı ile çalışır. Anlatayım nasıl olduğunu. Kodun ana bileşenleri sınıflar halinde durur veya kodların büyük kısmı zaten sürekli aynı iş yapıldığından dolayı durur. Üzerini konfügre edip sunulması gerekene sunarlar. Yani chatcpt bize bir kolaylık sağlamadı. Ki diyelim sağladı. Yazılımı neden sadece oturup kod yazanlar ile kısıtlıyoruz. Yapay zekanın gelişmesi demek, yapay zeka mühendisliğinin gelişmesi demek, ağ uzmanlığının gelişmesi demek, siber güvenliğin gelişmesi demek, veri tabanı uzmanlığının gelişmesi demek.Yani anlayacağın Yazılım ne 10 yıla ne 20 yıla biter.Teknoloji olduğu sürece yazılımcılar hep var.Kararını bu etkilemesin.
 
- O kodlari insan yazmali. AI kendi kendine feedback loop olusturur ya da sentetik datadan beslenirse sacmaliyor. ( Hem de agir sacmaliyor ) -> Model collapse - Wikipedia
Model collapse, generatif modellerde karşılaşılabilen bir problemdir ve önlemenin de birçok yolu vardır. Train dataset'ini genişletmek (çeşitlendirmek), loss fonksiyonu optimizasyonu, tonla regularizasyon tekniği ve temiz bir troubleshooting sonrası nokta atışı model iyileştirmeleri gibi. Bu eylemler şu anda yoğun olarak insan eliyle gerçekleştirilse de çok yakın bir gelecekte AI'ın kendisi tarafından yerine getirilmeye adaydırlar. AGI muhabbetlerinin döndüğü bir dönemde yukarıda saydığım optimizasyonlar çocuk oyuncağı.
Proprietary/closed-source yazılımları aktif olarak geliştiren birçok şirket mevcut open-source modelleri fine-tuning sonrası hem geliştirmede hem de prodüksiyonda aktif olarak kullanıyor zaten. Eşi benzeri olmayan kısmını ise detaylandırmak gerekli. Minimum miktarda data'nın bulunduğu bir durumdan bahsettiğinizi varsayıyorum. Proje eğer NLP, görsel veya ses işleme alanlarındaysa data augmentation işine girilebilir ve AI bunun âlâsını yapar. Sınıflandırma üzerine ise Naive Bayes veya Decision Trees algoritmaları kullanılabilir, ikisi de düşük veri miktarıyla hiç de fena olmayan sonuçlar verir. Kod yazan bir AI modelinden bahsediyorsak; Ridge, Lasso, ElasticNet, Bayesian gibi overfitting engelleme amaçlı sıkça kullanılan regresyon modelleri iyi çalışacaktır. Amaca uygun olarak hangi algoritma ile devam edilmesi gerektiği AI kararına bırakılabilecek bir konudur.

Öte yandan, elbette mevcut durumdakinden daha büyük sıçrayışlar ve AGI gibi terimlerden bahsedebilmemiz için bilgisayar mimarisinde değişikliklere de ihtiyaç var. Donanım gitgide daha büyük bir problem haline geliyor fakat çok geçmeden bir çözüm bulunacağını düşünüyorum. Kuantum teknolojisi şu anda var olan en iyi seçenek gibi görünüyor.

Şunu da tekrardan belirteyim, sektörde insana ihtiyaç kalmayacağından bahsetmiyorum. Aksine, yazılım sektöründe insan rolünün kod yazmaktan çok daha fazlası olduğunu ve bu nedenle de halen zamanının olduğunu iddia ediyorum. Karşı çıktığım fikir, yazılım=syntax anlayışıyla işleri fazla basite indirgeyerek kod yazabilen modellerin yazılım sektörünü bitireceğini düşünmek.
 
Son düzenleme:
Train dataset'ini genişletmek (çeşitlendirmek), loss fonksiyonu optimizasyonu, tonla regularizasyon tekniği ve temiz bir troubleshooting sonrası nokta atışı model iyileştirmeleri gibi.

Konu disina cikmak istemeden bahsedeyim, train datasini yine sentetik olarak cesitlendirerek bu problem cozulebilir durmuyor. [2307.01850] Self-Consuming Generative Models Go MAD

Organik veri gerekiyor. Varmak istedigim nokta, piyasadaki kodlarin cogunu AI yazarsa sacmalamasi durumu. Yani yazilim gelistirmenin sadece kodlama bolumu icin bile teorik olarak yetersiz, sadece bu problemden oturu.

Eşi benzeri olmayan kısmını ise detaylandırmak gerekli. Minimum miktarda data'nın bulunduğu bir durumdan bahsettiğinizi varsayıyorum.

Hayir, train edilirken RAG yapisindan gecmeyen contextten bahsediyorum. Benim kullandigim proprietary toollari gormedi. Google'da gormedi. Malesef bazi problemlerin cozumu icin sirket ici "StackOverflow" kullanmak gerekiyor, dunyanin geri kalaninin haberi yok proje ve toolset yeteneginden.

Karşı çıktığım fikir, yazılım=syntax anlayışıyla işleri fazla basite indirgeyerek kod yazabilen modellerin yazılım sektörünü bitireceğini düşünmek.

Bu kisma %110 katiliyorum. Eger yazilim gelistirmek yalnizca kod yazmaktan ibaret olsaydi da gunumuz deterministik mimarisiyle bitiremezdi. Projelendirmek bir yana, anlamadigin seyin kodunu da yazamazsin. Requirement Engineering yapmak gerekecek. Herhangi bir dogal dil, %100 basariyla ambiguity olmaksizin makine diline cevrilemez. O sebeple "Ingilizce gelecegin programlama dili" muhabbeti marketing sadece.

Kuantumda da Heisenberg bilinmezligi meselesi var. Silver bullet degil.
 
Yorumları görünce sizin adınıza üzüldüm kendi adıma sevindim açıkçası iyi ki fakülteden sizler gibi bir crud mühendisi olarak çıkmamışım. 3 yıl içerisinde komilik veya garsonluk iş ilanlarına bakmaya başlarsınız
 
Konu disina cikmak istemeden bahsedeyim, train datasini yine sentetik olarak cesitlendirerek bu problem cozulebilir durmuyor. [2307.01850] Self-Consuming Generative Models Go MAD
MAD konusu gerçekten de problem. Tam olarak overfitting sınıfına da girmiyor. Bu noktada çözüm yolları doğal veri miktarını artırmak veya model kompleksitesini düşürmek. Belirli bir çaptaki modellerde bu problemi aşmak için şimdilik doğal veri artırımı gerekli görünüyor.

Kuantumda da Heisenberg bilinmezligi meselesi var. Silver bullet degil.
Gelecek bir AI atılımında yüksek potansiyel vadediyor. Elbette ki quantum noice noktası mevcut durumda bir problem ([2303.09491] Challenges and Opportunities in Quantum Machine Learning) ama QML alanında sürekli geliştirilmekte olan çözüm yollarıyla performans istenen düzeye getirilebilir ([2312.03057] Advantage of Quantum Machine Learning from General Computational Advantages). Burada günümüze kadar geliştirilen ML algoritmalarında önceki makalede örneklendirildiği gibi bazı gerekli değişiklikler ve yenilikler mühim. Aslına bakarsanız son AI atılımında yeterince gündeme getirilmese de QML algoritmaları üzerine uzun yıllardır çalışılıyor ve elimizde bir geleceğe sahip olan birçok farklı algoritma var. Bunlardan bazıları quantum noice tehdidini azaltmaya yönelik işlevler taşırken bazıları da Heisenberg çerçevesini QML alanında değerlendiriyor ([2111.14879] Quantum Regression theorem for multi-time correlators : A detailed analysis in the Heisenberg Picture). Bu sayede ortaya yüksek doğruluk oranına sahip farklı QML modelleri çıkabiliyor ([2009.01235] Quantum Discriminator for Binary Classification).
 
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için çerezleri kabul etmelisiniz. Daha Fazlasını Öğren.…