Birim IBM Yapay Zeka (AI) araştırması, programlama görevlerine yardımcı olabilecek makine öğrenimi modelleri geliştirmek için 14 milyon örnekten oluşan bir veri kümesi sundu. adlı bir veri kümesi Proje KoduNet, adını bilgisayarla görme ve derin öğrenmede devrim yaratan ünlü görüntü deposu ImageNet'ten alır.
Programcılar, bilinçli ve bilinçaltı düşünmenin birçok mekanizmasını kullanarak yeni sorunlar keşfeder ve farklı çözümler keşfederler. Çoğu makine öğrenimi algoritması, aynı sorunları çözebilecek modeller geliştirmek için iyi tanımlanmış görevler ve büyük miktarda açıklamalı veri gerektirir.
Uzman topluluk tarafından kod için yapay zeka sistemlerinin geliştirilmesi ve değerlendirilmesi için veri kümeleri ve kıyaslamalar oluşturmak için çok çaba harcandı. Ancak, yazılım geliştirmenin yaratıcı ve açık uçlu doğası göz önüne alındığında, programlama için mükemmel veri setini oluşturmak çok zordur. IBM araştırmacıları, Project CodeNet ile çeşitli görevlerde makine öğrenimi modellerini eğitmek için kullanılabilecek çok amaçlı bir veri kümesi oluşturmaya çalıştı. CodeNet'in yaratıcıları bunu "kod için yapay zekadaki algoritmik ilerlemeleri hızlandırmak için çok büyük ölçekli, çeşitli ve yüksek kaliteli bir veri kümesi" olarak tanımlıyor.
Veri seti, 14 farklı programlama dilinde yazılmış 500 milyon satır koddan 55 milyon örnek içermektedir. AIZU ve AtCoder çevrimiçi kodlama platformlarında yayınlanan yaklaşık 4000 görevden kod örnekleri alındı. Kod örnekleri, verilen görevlere verilen hem doğru hem de yanlış yanıtları içerir.
Ayrıca ilginç:
- Hubble, yerleşik bilgisayardaki bir yazılım hatası nedeniyle güvenli moda girdi
- CD Projekt için bir başka sorun: Bilgisayar korsanları oyunların kaynak kodlarını ağa sızdırmakla tehdit ediyor
CodeNet'in temel özelliklerinden biri, örneklere eklenen ek açıklamaların miktarıdır. Veri kümesinde yer alan kodlama görevlerinin her birinin metinsel bir açıklamasının yanı sıra CPU süresi ve bellek sınırları vardır. Her kod gönderimi, dil, gönderim tarihi, boyut, yürütme süresi, kabul ve hata türleri dahil olmak üzere bir düzine bilgi içerir. IBM araştırmacıları ayrıca, veri kümesinin programlama dili, kabul edilebilirlik ve hata türleri de dahil olmak üzere çeşitli parametreler arasında dengelendiğinden emin olmak için büyük çaba sarf etti.
CodeNet, programlama görevlerinde makine öğrenimi modellerini eğitmek için tek veri kümesi değildir. Ama onu farklı kılan birkaç özelliği var. Birincisi, örnek sayısı ve dillerin çeşitliliği de dahil olmak üzere veri setinin büyüklüğüdür. Ancak belki daha da önemlisi, kod örnekleriyle birlikte gelen meta verilerdir. CodeNet'e eklenen zengin ek açıklamalar, onu belirli programlama görevlerinde uzmanlaşmış diğer kodlama veri kümelerinin aksine, çeşitli görevler için uygun hale getirir.
Bu akıllara durgunluk veriyor.
GPT-3 ile, istediğiniz herhangi bir düzeni tanımladığınız bir düzen oluşturucu oluşturdum ve sizin için JSX kodunu oluşturuyor.
- Şerif Utanç (@sharifshameem) Temmuz 13, 2020
CodeNet'i kullanmanın birkaç yolu vardır. Bunlardan biri dil çevirisidir. Veri kümesindeki her kodlama görevi, farklı programlama dillerinin temsillerini içerdiğinden, veri bilimcileri bunu, kodu bir dilden diğerine çeviren makine öğrenimi modelleri oluşturmak için kullanabilir. Bu, eski kodu yeni dillere taşımak ve bunları yeni nesil programcılar için erişilebilir kılmak isteyen kuruluşlar için uygun olabilir.
Ayrıca okuyun:
- IBM, dünyanın ilk 2nm çip üretim teknolojisini tanıttı
- IBM, yeni antibiyotikler icat etmek için yapay zeka geliştiriyor
Gelenekler ve kalıtım, farklı düşüncelerle, en genç nesil nöral algoritmalarla ve problem oluşturmanın makine öğrenimi yöntemleriyle birlikte oynamalı ve karşılıklı olarak birbirini geliştirmelidir.
Zamanla, programcıların seviyesi daha da düşecektir (şimdiye kıyasla). Yani "bok dilinde" eğik, çarpık kod yazmak mümkün olacak. Ve sonra makine optimize edecek ve sonunda profesyonel bir montajcı programcının (hatta daha iyisinin) optimize edilmiş kodunu elde edebileceksiniz.