ChatGPT, Bard ve diğer önde gelen Büyük Dil Modelleri (LLM’ler) geçtiğimiz yıl boyunca haber akışlarımıza hakim oldu. Ve haklı olarak. Bu heyecan verici teknolojiler bize yapay zekanın geleceğine, gücüne ve olanaklarına bir bakış sunuyor.
Kamuoyundaki heyecanın büyük bir kısmı metin, resim ve video oluşturmaya odaklanmış olsa da, bu araçlar yazılım otomasyonu gibi pek çok başka disiplin için de kullanılabilir.
Bu makale, hızlı mühendisliğin yazılım otomasyonunda bize nasıl yardımcı olabileceği konusunda derinlemesine bir inceleme görevi görecektir. Bununla birlikte, ilk başvuracağımız liman, hızlı mühendisliğin kendisinin incelenmesi olmalıdır.
Hızlı mühendislik nedir?
ChatGPT gibi büyük dil modelleri, onlara sağladığımız istemlere veya cümlelere dayalı çıktılar üretir. Ancak sonuçlar, kullandığımız kelimelere veya talimatlara bağlı olarak büyük ölçüde değişmektedir. Belirsiz ve kesin olmayan talimatlar girdiğimizde, çıktı hedefe ulaşmayabilir.
Hızlı mühendislik, bu heyecan verici yapay zeka sistemlerinden daha kesin, doğru ve nihayetinde kullanılabilir içerik elde edilmesine yardımcı olan girdilerin dikkate alınarak tasarlanması anlamına gelir.
Büyük Dil Modeli (LLM) sistemleri, kendilerine verdiğimiz ifadeleri yorumlamak için doğal dil işleme (NLP) kullanır. Makineler bu soruları veya talimatları (yani istemleri) koda dönüştürür ve belirlediğimiz formatta (yani metin, resim, kod) içerik üretmek için bunları geniş veri havuzlarında çalıştırır.
ChatGPT üzerinde eğitildi
570 GB veri
. Eğitim materyali kitaplar, makaleler, web metinleri ve benzerlerinden oluşmaktadır. Başka bir deyişle, bu veri setleri hayal bile edilemeyecek miktarda bilgi içeriyor.
Süreci anlayabilsek de, bu sistemlerin kaputunun altında olup bitenlerin çoğu bizim görüş alanımızın dışında gerçekleşir. Elbette, girdileri ve çıktıları kontrol ediyoruz ve sistemi eğitiyoruz, ancak bu algoritmaların tam olarak nasıl çalıştığı ve kararları nasıl verdiği hala bir gizem. New York Üniversitesi’nde yapay zeka profesörü olan Sam Bowman’ın sözleriyle, “Onu biz inşa ettik, biz eğittik ama ne yaptığını bilmiyoruz.”
Hızlı mühendislik, öngörülebilir ve kullanılabilir sonuçlar üreten çıktılar kullanarak bu kaosu yönetmemize yardımcı olur. Bu uygulamaların içindeki muazzam miktardaki bilginin kilidini açmak için bize bir yol sunuyorlar.
Bu disiplin yeni bir kariyer olarak ortaya çıkıyor
İşletmeler bu güçlü teknolojiden nasıl yararlanabileceklerini düşündükçe her yerde kurslar açılıyor.
Hızlı mühendislik nasıl yardımcı olabilir?
yazılım otomasyonu ile?
Yazılım otomasyonu ve LLM’lerin pek çok ortak noktası vardır. Her ikisi de makinelerin insan yaratıcılığını artırarak daha hızlı ve daha üretken iş yerleri yaratacağı bir geleceğe ışık tutuyor.
Bu iki teknolojinin bir araya gelebileceği birçok heyecan verici alan var. İşte yazılım otomasyonunda hızlı mühendisliği kullanabileceğimiz üç yol.
#1. Kod oluşturma
Kod yazmak, Büyük Dil Modellerinin en umut verici uygulamalarından biridir. Yapay zeka yüksek lisans programları henüz emekleme aşamasında. Önümüzdeki birkaç yıl içinde hem bilgi işlem hem de eğitime daha fazla kaynak eklendikçe bu teknolojinin geliştiğini göreceğiz.
Uzun vadede bu ilerlemeler, yapay zekanın insan müdahalesi olmadan ya da çok az müdahale ile tüm programları yazmasını sağlayabilir. Ancak şimdilik, LLM’lerin bazı sınırlamaları var. LLM kodlamasının çıktısının kalitesi esas olarak girdinin kalitesine bağlıdır. Dedikleri gibi çöp girer, çöp çıkar.
Elbette, engel teşkil eden sadece etkili hızlı mühendislik değildir. ‘da önerildiği gibi Akademide ChatGPT ve Büyük Dil Modelleri: Fırsatlar ve Zorluklar (Meyer, 2023), “Şu anda, ChatGPT’nin daha küçük kod bloklarını doğru bir şekilde yazmada başarılı olma olasılığı daha yüksekken, daha büyük / daha karmaşık programlar (örneğin, bir yazılım paketi) yazmadaki güvenilirliği sorgulanabilir.”
Dahası, Nature dergisinde yakın zamanda yayınlanan bir makalede, bazı bilgisayar bilimcileri LLM’lerle kod üretimine biraz dikkatli yaklaşmamız gerektiği konusunda uyarıda bulundu. Bir başka çağdaş makale,
Büyük Dil Modelleri ve Basit, Aptal Hatalar
(Jesse, 2023), Copilot satıcısı tarafından kullanılan popüler bir LLM olan Codex’in “bilinen, kelimesi kelimesine doğru koddan 2 kat daha fazla bilinen, kelimesi kelimesine SStuB’ler” ürettiğini göstermiştir.
Bu sorunlar göz ardı edilemez olsa da, bu programların hem teknik hem de teknik olmayan ekipleri destekleyerek yazılım geliştirmeyi demokratikleştirmeye nasıl yardımcı olabileceği konusunda hala çok fazla haklı heyecan var.
Belki de dikkate alınması gereken en etkileyici şey, ChatGPT gibi araçların çok hızlı bir şekilde işlevsel kod üretebilmesidir. Doğru komut istemi ile mühendisler belirli kod türlerini programlamak için gereken süreyi azaltarak daha hızlı bir yazılım geliştirme yaşam döngüsü sağlayabilir.
2022 yılının sonunda, popüler programlama merkezi
Stack Overflow yapay zeka tarafından oluşturulan
forumunda cevaplar. Uygulama ile ilgili yüksek hata oranı ve yanlışlıklardan bahsettiler. Bununla birlikte, teknoloji henüz başlangıç aşamasındadır; dahası, yapay zeka tarafından üretilen çıktılardan duyulan memnuniyetsizlik, teknolojinin kendisinden olduğu kadar kötü hızlı mühendislikten de kaynaklanmaktadır.
Teknoloji konusundaki kuşkulara rağmen, bir
McKinsey’in son makalesi
hızlı mühendisliğin programlama dünyasında halihazırda sahip olduğu etkiyi vurguluyor. Danışmanlık firmasının 2023’te yapay zekanın durumu: Üretken YZ’nin çıkış yılı iki ilginç eğilimi paylaştı. İlk olarak, yapay zekaya yatırım yapan kuruluşların %7’si hızlı mühendisleri işe alıyor. İkinci olarak, yapay zeka kullanan şirketler, yapay zeka ile ilgili yazılım mühendisliği rollerini %38’den %28’e düşürmüştür.
Bu eğilimleri yorumlamanın bir yolu, işletmelerin bu kurulum konusunda rahat oldukları ve yazılım otomasyonunu makinelerine devretmeye hazır olduklarıdır. Bu rakamlar mevcut mühendisleri ürkütse de McKinsey anketine göre “sadece yüzde 8’i iş gücünün beşte birden fazla azalacağını söylüyor.” Genel olarak, mühendislerin yapay zeka tarafından üretilen yazılım otomasyonuna yönelik eğilimden yararlanmak için muhtemelen yeniden beceri kazanmaları gerekecektir.
Yapay zeka tarafından üretilen yazılım otomasyonu için bariz bir uygulama, otomasyon botları oluşturmayı içerir. Bununla birlikte, hızlı mühendislik, konuşmaya odaklanması sayesinde görünüşte kullanıcı dostu bir arayüz olsa da, mevcut çözümlerin yerini alıp alamayacağı henüz belli değil.
ZAPTEST gibi yazılımlar birçok yönden yazılım otomasyonu pazarını demokratikleştirdi bile. Teknik olmayan ekiplerin yüksek kaliteli RPA botları oluşturmasına olanak tanıyan kodsuz araçlar artık burada. ChatGPT gibi yazılımlar botlar oluşturabilse de, uygulama ve bakım yazılım mühendisi olmayanlar ve hatta olanlar için bile zor olabilir.
GUI’nizden insan-bilgisayar etkileşimlerini kaydetmek ve bu hareketleri koda dönüştürmek, komut istemleri kullanmaktan çok daha kullanıcı dostudur. LLM’nin kararsız ve hatalarla dolu kod üretme potansiyeli ile birleştiğinde, RPA yazılımının öngörülebilir gelecekte hiçbir yere gitmeyeceğini söylemek doğru olur.
#2. Yapılandırılmamış verileri dönüştürme
Yapılandırılmamış veriler Robotik Süreç Otomasyonu’nun güçlü yanı değildir. Teknoloji, e-postalar, resimler, ses ve daha fazlası gibi şeyleri işlemek için tasarlanmamıştır. RPA araçları, organize yapılara sahip önceden tanımlanmış veri modellerine ihtiyaç duyar.
Yapılandırılmamış verilerin büyük bir kısmı doğal dil metinlerinden oluşmaktadır. Bu bilgileri “anlamak” ve onlardan anlam çıkarmak için büyük dil modelleri oluşturulur. Dolayısıyla bu durum, bu metinleri yorumlamak ve RPA araçları için kabul edilebilir bir formata dönüştürmek isteyen ekipler için önemli bir fırsat yaratmaktadır.
Birçok ekip, duyarlılık analizinde kendilerine yardımcı olması için yıllardır doğal dil işleme (NLP) kullanıyor. Fikir madenciliği olarak da bilinen bu süreç, kuruluşların tüketicilerin markalara yönelik duygu ve tutumlarını takip etmesine yardımcı olur. Çoğu durumda, bu araçlar metin içindeki olumlu, olumsuz ve nötr duyguları tespit etmek için kullanılır. Bununla birlikte, teknoloji çok daha ayrıntılı duygusal algılama yeteneğine de sahiptir.
Piyasada bu işlevi sunan çeşitli araçlar olsa da LLM, insanların bir ürün veya hizmet hakkında ne hissettiğini anlamanın ötesinde daha çok yönlü kullanıma giden bir yol sağlar. Örneğin, veri analitiği son yıllarda popülerlik kazanmıştır. Büyük Veri, veriye dayalı karar verme sürecine yardımcı olan içgörüler ve anlayışlar elde etmelerini sağlayarak şirketlere avantaj sağlar.
Robotik Süreç Otomasyonu araçları veri toplama konusunda yardımcı olabilir. Ancak, yukarıda da belirttiğimiz gibi, belirli bilgi türleriyle mücadele etmektedirler. Bununla birlikte, Büyük Dil Modelleri kullanan yapay zeka araçlarıyla eşleştirildiğinde, RPA büyük miktarda veri toplayabilir ve bunları İş Zekası (BI) araçları için gerekli olan bilgileri üretmek için kullanabilir.
Üretken Yapay Zekanın en heyecan verici yönlerinden biri, veri girdilerini anlamlandırma yeteneğidir. Doğru bilgi istemi mühendisliği ile ekipler bu verileri RPA araçları için uygun bir formata dönüştürebilir.
RPA, Büyük Veri iş akışlarını daha verimli hale getirmeye yardımcı olabilir. Yeni başlayanlar için, hem veri girişi hem de veri çıkarma konusunda yardımcı olması için kullanabilirsiniz. Bununla birlikte, belki de en değerli ve ilgi çekici kullanım durumları, verileri dönüştürmek, temizlemek ve yüklemek için RPA araçlarının kullanılmasını veya veri geçişinin hızlı, verimli ve doğru bir şekilde çalışmasını sağlamayı içerir.
Dikkat edilmesi gereken bir diğer önemli nokta da veri yönetişimidir. Veri taleplerinin otomatikleştirilmesi, kuruluşların uyumluluğu sürdürmesine yardımcı olur ve verileri manuel çalışanların gözünden uzak tutar.
#3. Test Otomasyonu
Test Otomasyonu, yazılımı doğrulamak için daha hızlı bir yol sağladığı için yazılım geliştirme çevrelerinde ilgi görmeye başlamıştır. Test ve kalite güvencesi geleneksel olarak pahalı ve zaman alan süreçlerdir; test otomasyonu bu zorlukların her ikisine de bir çözüm sunar.
Hızlı mühendisliğin yapabileceği ilk şeylerden biri test senaryolarının kalitesini artırmaktır. Doğru komutlarla bu makineler test senaryolarını analiz edebilir ve sorunları ve çözümleri belirleyebilir. Bu süreç, test senaryolarının kapsamını geliştirebilir ve daha kapsamlı testler yapılmasını sağlayabilir.
Örneğin, büyük bir dil modeli kodunu tıpkı bir insan gözden geçiriciye yaptığınız gibi besleyebilirsiniz. Bu makineler kod üzerinde hızlı bir şekilde çalışarak hataları, bugları ve hatta performans sorunlarını tespit edebilir. Belki de daha ilgi çekici olanı, LLM’lerin test senaryosu kodunu sadece parçacıklardan tamamlama imkanı sunarak test senaryolarının oluşturulmasını hızlandırmasıdır.
Hızlı mühendislik, yazılım geliştirmede Çevik/DevOps yaklaşımının ortaya çıkmasına neden olan birçok sorunun üstesinden gelmeyi amaçlamaktadır. Mühendisler, uygulamalar dağıtılmadan önce sorunları tespit edebilecek verimli, kolayca tekrarlanabilir testler istiyor. Buradaki fikir, yazılım geliştiricilerin zaman kazanarak daha yaratıcı ve değer odaklı görevlere konsantre olabilmeleridir.
Klasik bir makalede özetlendiği gibi,
Test Otomasyonunda Teknik Borç
(K. Wiklund, 2012), yazılım geliştirme ekipleri, yazılımlarını manuel olarak test etmek ve doğrulamak için çok fazla zaman harcarlarsa sorunlarla karşılaşabilirler. Test otomasyon çözümlerinin ilk maliyetleri, otomasyon deneyimi eksikliği ve hatta eski yöntemlerin tercih edilmesi bu yavaşlamalara katkıda bulunabilir.
Çevik yazılım geliştirmenin en ilginç yönlerinden biri
Davranış Odaklı Geliştirme (BDD).
Bu kavram, beklenen kullanıcı davranışları ile yazılım geliştirmeyi ifade eder. Bu yaklaşımı uygulamak açıkça zaman kazandırabilirken, birçok ekip bu otomasyonu hayata geçirmekte zorlanıyor. Ancak, LLM’ler bir çözüm sağlayabilir.
Teknik borcun en yaygın belirtilerinden bazıları zayıf dokümantasyon ve sağlam testlerin eksikliğidir. Bunlar, günümüz LLM’lerinin çözülmesine yardımcı olabileceği sorunlardır. Bununla birlikte, yeniden düzenleme gibi diğer önemli belirtiler, mevcut Jeneratif Yapay Zeka için çok karmaşıktır ve zaman tasarrufu sağlamayabilir.
Son düşünceler
Üretken yapay zeka uygulamaları muazzam bir potansiyele sahiptir. Bununla birlikte, kullanıcı dostu, konuşmaya dayalı arayüz yanıltıcı olabilir. Birçok kişi bu makinelerden kaliteli çıktılar elde etmenin kolay olduğuna inanıyor. Ancak, mükemmel hızlı mühendislik beklediğinizden daha karmaşıktır.
Etkili hızlı mühendislik, çok fazla deneme yanılma gerektirir. Ayrıca, cevapların faydalı olmasını sağlamak için mühendis adına çok fazla öngörü gerektirir. Son olarak, iyi duyurulmuş hata potansiyeli nedeniyle çalışmanın kontrol edilmesi ve tekrar kontrol edilmesi önemlidir.
Hızlı mühendislik işleri artıyor olsa da, herkes buna ikna olmuş değil. Harvard Business Review’da yazan Oğuz A. Acar, şu ilginç iddiada bulunuyor “gelecek nesil yapay zeka sistemleri doğal dili anlama konusunda daha sezgisel ve becerikli hale gelecek ve titizlikle tasarlanmış yönlendirmelere olan ihtiyacı azaltacaktır.”
Gelecekte ne olursa olsun, Üretken Yapay Zeka da bu karışımın içinde olacak. Hızlı mühendislik çok şey vaat etse de, tam olarak nasıl bir rol oynayacağını kesin olarak söylemek zor.
İlginç bir şekilde, yazılım test otomasyon yazılımı, uygulamaların doğruluğundan veya kapsamlı doğrulamasından ödün vermeden yazılım geliştirmeyi hızlandırmaya uygunluğunu gösteren kullanım örnekleri ve başarı öyküleriyle doludur.
ZAPTEST gibi araçlar, geliştiricilerin yetersiz zaman ve kaynak, teknik borç, dokümantasyon ve kapsamlı test ve RPA gibi sorunları ele almasına zaten izin veriyor. Dahası, bu araçlar hızlı mühendislikten daha kullanıcı dostudur, bu da onları teknik olmayan ekipler için çok daha uygun seçenekler haline getirir. Her zaman olduğu gibi, gerçek potansiyel bu heyecan verici otomasyon teknolojilerinin kesiştiği noktada yatıyor.