ChatGPT, 2022’nin sonlarında özellikle yazılım dünyasında ve sosyal medyada dikkatleri üzerine çekti. Öyle ki OpenAI kurucularından Greg Brockman‘a göre, 5 günde 1 milyondan fazla kişi ChatGPT’yi deneyimlemek için platforma kaydoldu. Gerek mantıksal sorulara gerekse latife amacıyla sorulan sorulara verdiği yanıtlar sosyal medyada çokça paylaşıldı. Öncelikle nedir bu ChatGPT kendinden öğrenelim:
-Bize kendinden biraz bahseder misin? Nedir ChatGPT?
-Merhaba. Ben bir dil modeli olarak eğitilmiş bir asistanım. Dil modeli, bir yazılımın yazılı dilin anlamını öğrenmesine yardımcı olan bir yazılımdır. Bu modellere verilen dil verilerini inceleyerek, dilin nasıl kullanılacağını öğrenirler ve insanların yazılı dilini anlamaya ve yanıt vermeye yardımcı olurlar.
Kendi ifadelerini biraz daha detaylandıracak olursak ChatGPT; OpenAI tarafından GPT-3.5’e ince ayarlar yapılarak geliştirilmiş bir dil modeli diyebiliriz. Sistem, “İnsan Geri Bildirimleriyle Pekiştirmeli Öğrenme (Reinforcement Learning with Human Feedback (RLHF))” kullanılarak diyaloglar için optimize edilmiş. İlk eğitimleri ise internette insanlarca yazılmış olan metinlerle gerçekleştirilmiş. ChatGPT ile gerçekleştirilen diyaloglar da yapay zeka eğitmenleri tarafından incelenerek eğitim için kullanılabilecek.
ChatGPT Yazılım Geliştirebilir Mi?
ChatGPT’nin kod yazıp yazamayacağına ilişkin kendi cevabı:
-Kod yazabilir ya da yazılım geliştirebilir misin?
-Ben bir dil modeli olarak eğitilmiş bir asistanım, bu yüzden dil hakkında bilgi vermeye odaklıyım. Yazılım geliştirme ve kod yazma gibi teknik konular hakkında bilgi vermem gerekmiyor. Eğer bu konularda yardıma ihtiyacınız varsa, lütfen başka bir kaynaktan yardım alın.
ChatGPT kendi odak noktasının dil ve metin yazma olduğunu belirtiyor. Bununla birlikte yine de bir kod parçası talep ettiğinizde, size saniyeler içinde örnekler sunabiliyor. Aslında ChatGPT odak noktasına vurgu yaparak biraz kaçamak cevap vermiş. 🙂
Örnek Kod Parçaları
ChatGPT’den 100’e kadar olan sayıların faktöriyelini hesaplayan bir C# kodu istediğimde ürettiği kod:
// Bu kod bloğu, 1’den 100’e kadar olan sayıların faktöriyellerini hesaplar
using System;
namespace FaktoriyelHesaplama
{
class Program
{
static void Main(string[] args)
{
// Değişkenleri tanımla
long faktoriyel = 1;
int sayi;
// 1’den 100’e kadar döngü
for (sayi = 1; sayi <= 100; sayi++)
{
// Faktöriyel hesapla
faktoriyel = faktoriyel * sayi;
// Faktöriyeli ekrana yazdır
Console.WriteLine(“{0}! = {1}”, sayi, faktoriyel);
}
// Döngü bittikten sonra programı beklet
Console.ReadKey();
}
}
}
Soruyu biraz daha farklılaştırdım ve kullanıcı etkileşimini de dahil ettim. Sonuç:
// Bu kod bloğu, kullanıcının girdiği bir sayıya kadar olan sayıların faktöriyellerini hesaplar
using System;
namespace FaktoriyelHesaplama
{
class Program
{
static void Main(string[] args)
{
// Değişkenleri tanımla
long faktoriyel = 1;
int sayi;
// Kullanıcıdan bir sayı iste
Console.Write(“Lütfen bir sayı girin: “);
sayi = int.Parse(Console.ReadLine());
// 1’den girilen sayıya kadar döngü
for (int i = 1; i <= sayi; i++)
{
// Faktöriyel hesapla
faktoriyel = faktoriyel * i;
// Faktöriyeli ekrana yazdır
Console.WriteLine(“{0}! = {1}”, i, faktoriyel);
}
// Döngü bittikten sonra programı beklet
Console.ReadKey();
}
}
}
ChatGPT’den C# ile bir XML verisini JSON’a nasıl çevirebileceğimi sordum, saniyeler içinde verdiği örnek:
// Bu kod bloğu, bir XML verisini JSON formata çevirir
using System;
using System.Xml.Linq;
using Newtonsoft.Json;
namespace XMLToJSON
{
class Program
{
static void Main(string[] args)
{
// XML verisini yükle
XDocument xmlDoc = XDocument.Load(“veri.xml”);
// XML verisini JSON’a çevir
string json = JsonConvert.SerializeXNode(xmlDoc);
// JSON verisini ekrana yazdır
Console.WriteLine(json);
// Programı beklet
Console.ReadKey();
}
}
}
Kod örneğini yazması dışında hemen her işlemi açıklama satırlarıyla desteklemesi de gerçekten harika.
Yazılım geliştiriciler için Regex kullanmak pek çok yerde deyim yerindeyse hayat kurtarıyor. Bununla birlikte Regex desenlerinin karmaşık olması nedeniyle “Ezbere Regex yazan cin’dir” diyenler de oluyor. ChatGPT bu noktada adeta nasıl bir “cin” olduğunu saniyeler içinde yazdığı kod ile gösteriyor:
-Pyhton’da Regex ile e-posta kontrolünü nasıl yapabilirim?
-Python dilinde, Regex kullanarak bir e-posta adresinin geçerliliğini kontrol etmek için aşağıdaki kodu kullanabilirsiniz:
import re
email = “your@email.com”
pattern = r”^[a-zA-Z0-9.!#$%&’*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$”
is_valid = re.match(pattern, email)
if is_valid:
print(“Email is valid.”)
else:
print(“Email is invalid.”)
İnsansı Arama Motoru
Aslında ChatGPT’nin şu anki yetenekleri sadece kod parçaları üretmesiyle sınırlı değil, zaten kendisinin de ifade ettiği gibi odak noktası kod yazmak değil daha çok diyalog kurma ve dil becerileriyle bilgi vermek üzerine. ChatGPT için yeni nesil insansı arama motoru da diyebiliriz. Örneğin; teknoloji alanıyla ilgili bir bilgi yarışması için 5 soruya ihtiyacımız var, geleneksel arama motorlarında site site gezmek yerine ChatGPT’ye sorup saniyeler içinde cevap alabiliriz.
-Teknolojiyle alakalı 5 adet genel kültür sorusu hazırlayabilir misin?
-Tamam, size teknolojiyle alakalı genel kültür tarzında 5 soru hazırlayabilirim:
1-Hangi ülkede bulunan bir şirket dünyanın ilk kişisel bilgisayarını üretti?
2-Hangisi dünyadaki en büyük arama motorudur: Google, Bing veya Yahoo?
3-Hangisi dünyadaki en büyük sosyal ağdır: Facebook, Twitter veya LinkedIn?
4-Hangisi dünyadaki en büyük e-ticaret şirketidir: Amazon, Alibaba veya eBay?
5-Hangisi dünyadaki en büyük bulut depolama şirketidir: Dropbox, Google Drive veya iCloud?
-Bu soruların doğru yanıtları nedir?
1-Apple Inc.
2-Google
3-Facebook
4-Amazon
5-Dropbox
Not: Bu soruların doğru yanıtları geçerli olduğu tarih itibariyle doğrudur, ancak zaman içinde bu durum değişebilir. Ayrıca, bu soruların doğru yanıtlarını belirlerken kesin bir doğruluk payı garanti etmiyorum ve sadece elimden geldiğince yardımcı olmaya çalıştım. Eğer bu konudaki bir sorunuz varsa, lütfen daha fazla araştırma yaparak kendiniz konuyu araştırın.
ChatGPT’ye fintech ve konvansiyonel bankaları sordum:
-Fintech’ler uzun vadede konvansiyonel bankaları ortadan kaldırabilir mi?
-Bu sorunun yanıtı kesin olmamakla birlikte, fintech şirketlerinin konvansiyonel bankaları ortadan kaldırması olası değildir. Fintech şirketleri, konvansiyonel bankaların bazı işlemlerini daha hızlı ve verimli bir şekilde gerçekleştirebilirler ve bu da müşterileri için daha iyi bir deneyim sunabilirler. Ancak, konvansiyonel bankaların yıllardır sahip olduğu kurumsal yapı ve müşteri tabanı, fintech şirketlerinin onları ortadan kaldıramayacak kadar büyüktür. Fintech şirketleri, konvansiyonel bankalarla iş birliği yaparak ve onların hizmetlerini geliştirerek daha fazla müşteriye ulaşabilirler.
Sonuç
ChatGPT’nin örnek kod parçaları sunabilmesi yazılım dünyasında oldukça dikkat çekti ve akıllara “ChatGPT yazılım geliştiricileri işinden edebilir mi?” sorusunu tekrar getirdi. Şu an ChatGPT’nin emekleme evresinde olduğunu düşünürsek tatmin edici ve dört dörtlük kodlar yazmasını bekleyemeyiz, ancak gelecekte yazılım geliştiricilerin işlerini kolaylaştıracak çok iyi bir asistan olabileceğini ya da bu tip asistanların geliştirilmesi için iyi bir zemin oluşturabileceğini düşünüyorum. Yazılım geliştirme sofistike ve pek çok ayağı olan oldukça kapsamlı bir süreç. Dolayısıyla Github’ın CoPilot’u olsun, OpenAI’ın ChatGPT’si olsun, bu tip yapay zeka robotlarının yazılım geliştiricileri işinden etmekten çok, işlerini kolaylaştıran ve hızlandıran araçlar olacağı kesin gibi duruyor. Zira yazılım geliştirme araçları geçmişe göre daha gelişmiş ve bilgiye erişim son derece kolaylaşmış olsa da yazılımların çok sayıda teknolojinin karmaşık ilişkiler yumağı içinde çalışmaya doğru evrilmesi, ChatGPT gibi yardımcıları bir süre sonra zaten zorunlu kılacak gibi görünüyor.
Son olarak ChatGPT’ye bu konuyu da soralım:
-ChatGPT yazılım geliştiricilerin sonunu getirecek, işlerini elinden alacak diyorlar.
-Bu bir spekülasyon ve doğruluğu konusunda bir bilgim yok. Ancak, teknolojinin ilerlemesiyle birlikte bazı işlerin otomatikleşebileceği ve bu işlerin yapılması için insanların ihtiyacının azalabileceği gerçeği kabul edilebilir. Bununla birlikte, teknolojinin ilerlemesi insanlar için de yeni iş olanakları yaratabilir ve onların daha fazla zamanını daha yaratıcı ve daha yüksek değerli işlerle geçirebilmelerine yardımcı olabilir. Bu nedenle, teknolojinin insanların işlerini elinden alacağı anlamına gelmediğini düşünüyorum.