Son yıllarda yapay zeka konusu gündemimizden düşmüyor. Sürekli hangi işlerimizi kolaylaştırdığını, hayatımızın hangi noktalarına dahil olduğunu tartışıyoruz. Bu tartışmalar içinde iki soru öne çıkıyor: Yapay zeka dünyayı ele geçirecek mi, bizi kölesi yapacak mı? Ve hangi meslekleri devralacak, kimler işsiz kalacak?
Aslında tarih boyunca mesleklerle ilgili sürekli bir devir daim yaşandı. Teknoloji geliştikçe bazı meslekler öldü, yerlerine yenileri doğdu. Benim alanım olan bilişim sektöründe bile bunu gözlemleyebiliyoruz. Çok da uzak olmayan bir geçmişte, tüm web işleriyle uğraşanlar “webmaster” olarak anılırdı. Web sitesi kurulumundan FTP ayarlarına, site oluşturmadan yönetmeye ve içerik hazırlamaya kadar her şey bu kişilerin sorumluluğundaydı.
Ama artık öyle değil. Bir yazılım geliştirme sürecinin çok fazla bileşeni var ve ancak bunlar bir araya geldiğinde ortaya bir ürün çıkarabiliyor. Bu durum aslında çoğu meslek dalı için geçerli. Zaman içinde bazı meslekler ölüyor gibi görünse de, aslında yerini daha fazla uzmanlık alanına bırakıyor.
Yapay zeka ile ilgili en büyük korku, sürekli tekrar eden işlerin kayboluyor olması. Örneğin sürücülük… Tesla bunun en önde gelen örneklerini üretiyor, diğer markalar da çeşitli çözümler sunuyor veya sunacak. Nihayetinde bir noktadan sonra araç kullanmamaya başlayacağız. Peki meslek olarak sürücülük yapanlar ne olacak? Muhtemelen aynı alanda farklı görevlere yönelecekler. Belki bir kontrol merkezi olacak, belki sürücüsüz araçları denetleyecek başka görevler ortaya çıkacak.
Teknoloji geliştikçe biz de sürekli farklı işlerle meşgul olacağız gibi görünüyor. Peki ya programcılık gibi yaratıcılık gerektiren işler? Yakın zamanda bunun da örneklerini görmeye başladık. ChatGPT gibi sistemler çıktı karşımıza. İstediğimiz koşulları ve özellikleri belirtip kod yazmasını isteyebiliyoruz. Örneğin, bir veritabanı tasarımı istediğimde bana örnek yazabiliyor ya da karmaşık bir SQL kodu oluşturabiliyor.
Dolayısıyla kod yazma konusunda da yapay zeka yavaş yavaş bize fayda sağlamaya, görev almaya başladı. Artık sadece şoförlük gibi tekrar eden görevlerde değil, programcılık gibi yaratıcılık isteyen işlerde de yapay zekanın tehdit edici olup olmadığı tartışılabilir hale geldi.
Bu noktada size ilginç bir çalışmadan bahsetmek istiyorum. Bu çalışma, veritabanı tasarımıyla ilgili. Bildiğiniz gibi, veritabanı tasarımı yapmak, elimizdeki bir örnek için en uygun veritabanını tasarlamak demek. Bu süreç genelde kitaplarda “normal form” veya “normalizasyon” adı verilen bir yöntemle anlatılır. Ama gerçekte, bu iş biraz daha deneyime dayanıyor. Çünkü normal formlar size ne yapmamanız gerektiğini söylüyor ama ne yapmanız gerektiğiyle ilgili kesin kurallar sunmuyor.
Dolayısıyla iyi bir veritabanı tasarımı yapabilmek için deneyim sahibi olmanız, çalışmalar yapmış olmanız ve yaptığınız çalışmaların gerçek hayatta nasıl karşılık gördüğünü öğrenip buna göre kendinizi geliştirmeniz gerekiyor. Veritabanı tasarımı, bilgisayar programlamadan da veritabanı yönetiminden de ayrı bir uzmanlık alanı. Yönetim tarafı daha çok tekrar eden işler içerirken, tasarım kısmı daha çok yaratıcılık gerektiriyor.
Peki, bilgisayar bu konuda işimizi elimizden alabilir mi? Bazı konularda öne çıkabilir mi? Evet, çıkabilir. Bir süre önce patent başvurusunu yaptığımız ve tescili gelen bir fikrimiz vardı. Aynı zamanda bu bir doktora tez çalışmasının sonucuydu. Bu çalışmayla birlikte, veritabanı tasarımının tamamıyla %100 bilgisayar tarafından gerçekleştirilebileceğini gösteriyoruz.
Çalışmamızın temelindeki motivasyon, veritabanı tasarımının aslında subjektif değil, objektif olduğu varsayımıyla başlıyor. Çünkü veritabanı tasarımı yaparken, elimizde sistem analizinden gelen bazı veriler var, ama en nihayetinde kişisel tecrübelerimizi de aktardığımız için aynı sistem için farklı programcılar farklı veritabanı tasarımları ortaya çıkarabiliyorlar. Bu da işin formülize edilmesini zorlaştırıyor.
Biz bu probleme farklı bir açıdan yaklaştık. Veritabanı tasarımını bir optimizasyon problemi olarak ele aldık. Çünkü en nihayetinde amacımız, veriyi en etkin, en minimal, en uygun şekilde saklanmış yapısına dönüştürmek. Dolayısıyla temelde bir optimizasyon problemi içeriyor diyebiliriz.
Literatüre baktığımızda, veritabanı tasarımını otomatikleştirmeye çalışan çalışmalar gördük. Ancak bu çalışmalar genellikle bilgisayara bazı girdiler vermeyi gerektiriyordu. Örneğin hangi tabloların olacağını, hangi sütunların birbiriyle ilişkili olduğunu belirtmek gerekiyordu. Ama bu şekilde tasarım sürecine müdahale etmiş oluyorsunuz ve tam anlamıyla otomatik bir süreç elde edemiyorsunuz.
Biz ise herhangi bir girdiye ihtiyaç duymayan, tamamen otomatik, veritabanı tasarımının en başından sonuna kadar bilgisayar tarafından gerçekleştirileceği bir algoritma ortaya çıkarmaya çalıştık. Bu amaçla genetik algoritmalar yöntemini kullandık.
Genetik algoritmalar, iterasyonel bir yöntemdir ve özellikle sürekli olmayan fonksiyonların ya da gerçek dünya örneklerinin optimize edilmesi için kullanılan oldukça yüksek performanslı bir optimizasyon veya arama yöntemidir.
Önerdiğimiz algoritmada yapmak istediğimiz şey şu: Öncelikle elimizde bir veri seti olmalı. Yani veritabanına dönüştüreceğimiz verinin ham hali. Bu bir Excel dosyası olabilir, bir CSV dosyası olabilir. Algoritmanın tek ihtiyacı olan girdi bu ham veri.
Algoritma şöyle çalışıyor: Ham veri setini alıyor ve buna karşılık belirlediğimiz sayıda rastgele veritabanı tasarımları yapıyor. Sonra bu veritabanı tasarımlarının başarısını ölçüyor. Bunu yaparken 4 kriter kullanıyoruz:
- Toplam hücre sayısı: İyi bir veritabanı tasarımında hücre sayısının en az olması gerektiğini biliyoruz. Bu yüzden toplam hücre sayısını minimize etmeye çalışıyoruz.
- Tekrarlanan kayıtlar: Veritabanı içerisinde tekrarlanan kayıtlar olmamalı. Örneğin, bir kullanıcının adı soyadı yalnızca bir kez geçmeli. Tekrarlı kayıtların sayısını minimize etmeye çalışıyoruz.
- Toplam tablo sayısı: Her bir sütunu ayrı bir tablo yapmak yerine, nitelikleri gruplamak ve uygun şekilde tablolara dönüştürmek gerekiyor. Bu yüzden tablo sayısını da minimize etmeye çalışıyoruz.
- Sayısal verileri içeren tablolar: Tamamen sayısal içerikte olan tablolar genellikle kullanışsızdır. Bu tür tabloların sayısını da minimize etmeye çalışıyoruz.
Bu 4 kriteri kullanarak her bir aday veritabanı tasarımı için bir skor hesaplıyoruz. Sonra genetik algoritmanın operatörlerini uygulayarak yeni veritabanı tasarımları üretiyoruz. Bu süreç yüzlerce, binlerce kez tekrarlanıyor ve en sonunda en yüksek skora sahip veritabanı tasarımını elde ediyoruz.
Peki, bu yöntemin başarısını nasıl ölçtük? Bunun için açık kaynak olarak topluluk tarafından geliştirilen bazı yazılımların veritabanlarını kullandık. Bu sistemlerin veritabanlarının en iyi durumda olduğunu varsaydık. Bu veritabanlarını küçük parçalara böldük, içlerine veri ekledik, sonra bu verileri kullanarak kendi algoritmamızla veritabanı tasarımı oluşturduk. Sonra bu iki tasarımı karşılaştırdık.
Çalışmanın sonucunda, toplam 50 veritabanı için otomatik olarak veritabanı tasarımı üretmeye çalıştık. Bu 50 veritabanının 35 tanesini birebir aynı olarak üretebildik. Geri kalan 15 tanesi de çok uzak değildi ama tam olarak aynı değildi. Skor hesaplaması yaptığımızda %72’lik bir başarı oranı elde ettik.
Bu sonuçlar, bilgisayarın veritabanı tasarımcılığı konusunda da bir süre sonra söz sahibi olabileceğini, birçok süreci kendi kendine halledebileceğini gösteriyor. Veritabanı tasarımcılığı gibi, belki başka tasarımcılık ve yaratıcılık gerektiren ya da deneyim gerektiren konularda da bilgisayarın daha aktif rol aldığını görebiliriz.
Ancak bu, bu alanlarda çalışan insanların mesleklerini kaybedeceği anlamına gelmiyor. Bunun yerine, çok daha gelişmiş, çok daha insani özelliklere ihtiyaç duyan çeşitli mesleklerin ön plana çıkacağını düşünüyorum. Teknoloji geliştikçe, bizim de kendimizi geliştirmemiz, yeni beceriler edinmemiz ve değişen iş dünyasına adapte olmamız gerekecek.
Sonuç olarak, yapay zeka ve otomatikleşme, birçok mesleği dönüştürecek gibi görünüyor. Ancak bu dönüşüm, korkutucu bir “iş kaybı” senaryosundan ziyade, yeni fırsatların ve mesleklerin doğuşu olarak görülmeli. Önemli olan, bu değişime hazır olmak ve sürekli öğrenmeye açık olmak. Çünkü geleceğin meslekleri, bugün belki de hayal bile edemediğimiz beceriler gerektirecek.
Leave a comment