Yapay zeka gün geçtikçe hayatımızın daha derinlerine işlemeye başladı. Veri bilimciler, makine öğrenmesi mühendisleri gibi bir çok geliştirici farklı amaçlar için yapay zeka modelleri geliştirmekte ve onları hayatımıza katmaktadır. Bu alana ilgi duyan en önemli kişiler ise teknoloji sektörünün önde gelen firmalarıdır. Amazon, Google, Facebook ve Microsoft gibi dev firmalar bu teknolojiye ayak uydurmak adına sürekli çalışmalar yapmakta ve yeni ürünler geliştirip halka sunmaktadır. Son zamanlarda sektöre yön veren firmaların başında ise OpenAI gelmektedir. Geliştirdikleri GPT-2 ve GPT-3 dil modelleri ile yeni bir çağ açan OpenAI’ın GitHub ile partnerliği sonucunda ise GitHub Copilot ortaya çıktı. GitHub’ın son ürünü ile yeni tanışan yazılımcıların akıllarına ilk takılan sorular ise Copilot nedir ve yazılımcıların yerini alacak mı?
İçindekiler
GitHub Copilot Nedir?
GitHub Copilot, Github ve OpenAI ortaklığında geliştirilen bir Visual Studio Code aracıdır. Kod yazarken yazılımcılara kolaylık ve hız sağlayan oto tamamlayıcılar günümüzde yaygın olarak kullanılmaktadır. Oto tamamlayıcılar, yazacağımız variable (değişken) ve fonksiyon isimlerini bizlere yazım aşamasını bitirmeden önermektedir. Rule-based (kural bazlı) olan bu öneri sistemleri son zamanlarda yapay zeka desteği ile geliştirilmeye başlandı. Github Copilot’u bunlardan ayıran nokta ise hem sadece değişken ve fonksiyon isimlerini tamamlamak yerine, direkt kodu tamamlaması hem de bu tamamlama işini yüksek doğruluk oranı ile gerçekleştirmesidir.
GitHub Copilot Nasıl Çalışır?
Copilot, Visual Studio Code ile kullanılabilir olan bir araçtır. Copilot, OpenAI tarafından geliştirilmiş yeni bir yapay zeka sistemi olan OpenAI Codex ile güçlendirildi. Copilot’u eğitmek, ona doğru ve yanlış kodları göstermek için ise GitHub’da herkese açık olarak paylaşılmış kod repolarından veriler toplandı ve Copilot’u eğitmek için kullanıldı. Modelin GitHub’daki herkese açık repolarla eğitilmesi ile geliştiriciler Copilot’un kodlarının bu kodlarla aynı olup olmayacağı hakkında sorular sordular. GitHub ise bu olayı “Copilot bir arama motoru değil aksine bir kod sentezleyicidir. Yapılan çalışmada modelin tahminleri incelendiğinde çok düşük bir benzerlik oranı ortaya çıktı. Amacımız özgün kod ortaya çıkartabilmektir” şeklinde açıkladı.
Aşağıdaki görselde görüldüğü üzere verilen fonksiyon ismi ve yorum satırlarını inceleyen Copilot ortaya bir kod çıkarmaktadır. Latinze (“Latince’ye çevir”) fonksiyonunda belirtilen yorum satırında yunan harflerinin, latin harflerine çevirilmesi gerektiği söylenmiştir. Bunun üzerine Copilot bu problemi çözmek adına yunan harflerinden ve denk geldiği latin harflerinden oluşan bir dictionary (sözlük) oluşturup bunları bir for döngüsünün içinde değiştirmektedir. Bu gibi örnekleri GitHub Copilot sayfasından bulabilirsiniz.
Copilot Hangi Dillerle ve IDE’lerle Uyumludur
Copilot, ilk olarak sadece Visual Studio Code ile uyumlu olarak çıktı. GitHub, ilerleyen süreçlerde daha fazla IDE ile birlikte kullanılabileceğini açıkladı. Bunun üzerine yapılan çalışmalar devam etmektedir. Programlama dilleri konusunda ise tam olarak kaç programlama dilinde kod yazabildiği açıklanmasa da; verilen bilgiye göre Copilot düzinelerce dili anlayıp tamamlamayabiliyor. Birçok dil ve framework konusunda eğitilmiş olan Copilot, Python, JavaScript, TypeScript, Ruby ve Go gibi popüler dillerde çok iyi performanslar ortaya koymaktadır.
Çoğu geliştiricinin aklında yer alan GitHub Copilot nedir sorusunu temel olarak açıklamaya çalıştık. Geliştiricilerin aklında takılan bir diğer önemli sorun ise Copilot programcıların yerine geçecek mi? GitHub bu soruyu şöyle cevaplandırdı “GitHub Copilot ile kontrol hep sizde olacak. GitHub Copilot sadece önerilerde bulunan bir araç. Siz bu önerileri reddedebilirsiniz ya da onaylayabilirsiniz. Sizin bu tercihlerinize göre; Copilot zamanla tercihlerini de öğrenip buna göre önerilerde bulunmaya başlayacaktır. Copilot sadece bir araç.”
Peki siz bu konu hakkında ne düşünüyorsunuz? GitHub Copilot yazılımcılar için bir tehdit midir?
Copilot ile otomatik kod oluşturma örneklerini inceledim. Şimdilik yazılımcılar için bir tehdit olarak görmüyorum. Bir bakıma stacoverflow’dan benim yerime kod örneğini alıyor gibi, internetteki kodların her zaman düzgün çalışacağının da bir garantisi yok. Bence yine GPT-3’ü kullanan conversion ai gibi uygulamalar içerik oluşturanların önünde asıl tehdit gibi duruyor.
Aynen haklısınız. Zaten Copilot’u Github repolarının yanı sıra, bazı StackOverFlow query’leri ile de beslemişler. Tek düzelteceğim nokta, kodu internetten almaktan ziyade kendisi üretmekte. Normal bir insan gibi internetten görüyor, öğreniyor fakat bize sunduğu kod Copilot tarafından sentezlenmiş bir çıktı oluyor. Tehdit konusunda da hafife almamak gerekir. Ben açıkçası sonumuzun Matrix gibi olacağını düşünenlerdenim 😀