Röportajlar
Profesör Eran Yahav, Tabnine’in Kurucu Ortağı ve CEO’su – Röportaj Serisi

Profesör Eran Yahav, Tabnine’in (aslen Codota) kurucu ortaklarından ve CEO’sudur. İsrail Teknoloji Enstitüsü’nde bilgisayar bilimi profesörüdür ve araştırması programlama dilleri, makine öğrenimi ve yazılım mühendisliği üzerine odaklanmıştır, özellikle program sentezi ve büyük ölçekli kod analizi. Akademik çalışmalarının yanı sıra, yıllarca süren araştırmaları pratik geliştirici araçlarına uygulamak için Tabnine’i kurdu ve AI destekli kod tamamlama ve otomasyonu alanında öncülük etti. Çalışmaları, akademik ve endüstriyel dünyaları birleştirir ve AI tarafından üretilen kodun gerçek dünya işletme ortamları için daha güvenilir, güvenli ve bağlamsal olarak farkında olmasını sağlar.
Tabnine, tüm yazılım geliştirme yaşam döngüsü boyunca geliştiricilere yardımcı olmak için tasarlanmış bir AI destekli kodlama platformudur. İlk olarak bir kod tamamlama aracı olarak piyasaya sürüldü, ancak daha sonra büyük ölçekli entegrasyonlara ve generatif AI ve ajan tabanlı iş akışlarına sahip bir işletme odaklı platforma dönüştü. Bu, geliştiricilerin karmaşık geliştirme görevlerini otomatikleştirmesine olanak tanır ve aynı zamanda gizlilik, güvenlik ve uyumluluk üzerinde güçlü kontroller sağlar. Çok sayıda programlama dilini ve büyük IDE’ler arasında entegrasyonları destekler, Tabnine geliştirici verimliliğini artırırken AI tarafından üretilen kodun organizasyon standartlarına uyumlu ve güvenilir kalmasını sağlar.
Yıllarca program analizi ve sentezi üzerine Technion’da araştırma yaptınız ve daha önce IBM Research’te çalıştınız. Yazılım geliştirmenin hangi sorunu sizi Tabnine’i kurmaya ikna etti ve akademik araştırmanız şirketin orijinal vizyonunu nasıl şekillendirdi?
Akademik çalışmam program analizi ve sentezi üzerine odaklandı, yani makinelerin kodu anlaması ve üretmesi üzerine. Program Analizi üzerine doktoramı yaptım ve ilk birkaç yıl uygulamalı araştırma çalışması burada geçti. Yazılım kalitesi sorunlarını program analizi ile ele almak, bazı sorunların programa yanlış yazıldıktan sonra çözülmesinin çok zor olduğunu gösterdi. Önlem almak, tedavi etmekten daha iyidir, diyebiliriz. Bu, beni yazılım kalitesini Program Sentezi aracılığıyla ele almaya ikna etti, bu da araştırma zamanımın ve enerjinin çoğunu aldığım alandır.
İlk olarak, paralel programlar için Program Sentezi üzerine çalıştım, sıralı programlardan paralel programlar oluşturmayı otomatikleştirmeye çalıştım. Daha sonra, makine öğrenimi kullanarak daha genel olarak uygulanabilir program sentezine geçtim.
Makine öğrenimi kullanarak program sentezi, Tabnine’i güçlendirerek temel fikir oldu. Şimdi açık görünen fikir, modellerin büyük kod korporaından doğrudan kod kalıplarını öğrenerek geliştiricilere gerçek zamanlı olarak yardım edebileceğiydi. Bu genel fikir, tüm yazılım geliştirme yaşam döngüsüne uygulanabilir – kod oluşturmadan kod gözden geçirmeye, dağıtıma ve ötesine.
Vizyon her zaman geliştiricileri, geliştirme sürecini hızlandıran ve sürtünmeyi ortadan kaldıran araçlar sağlamak olmuştur. Yazılım geliştirme, yaratıcı ve problem çözme disiplinidir ve amacımız AI’nin rutin görevleri ele alarak ve geliştiricilerin akışta kalmasına yardımcı olarak sürtünmeyi ortadan kaldırmaktı. Bu vizyon hala bugün bizi yönlendiriyor,尽管 teknoloji o günlerden bu yana önemli ölçüde evrimleşti.
Tabnine, OpenAI’nin modelleri gibi generatif AI’nin ana akım haline gelmesinden yıllar önce AI kod asistanlarını piyasaya sürdü. O erken günlerden bu yana yazılım geliştirmede AI’nin rolü nasıl değişti ve endüstri ilk AI kod pilotlarından neler öğrendi?
İlk AI kod asistanları ağırlıklı olarak tahmin üzerine odaklandı. Geliştiricilerin kodu daha hızlı yazmasına yardımcı olan, bir sonraki satır veya fonksiyonu öngören gelişmiş otomatik tamamlama sistemleriydi.
Ne değişti, AI’nin artık daha büyük özerklikte görevleri ele alabilmesi, uygun rehberlik ile bağımsız junior geliştiriciler olarak düşünülebilecek ajanlar haline gelmesidir.
Ancak bu, endüstriye önemli bir ders öğretti. Ham model yeteneği, işletme yazılım geliştirmesi için yeterli değildir. Kamu verilerine dayalı olarak eğitilen modeller etkileyici çıktılar üretebilir, ancak genellikle bir organizasyonun mimarisi, bağımlılıkları ve kuralları hakkında farkındalığa sahip değildir.
Bu nedenle, bir sonraki evrim aşaması, daha büyük modeller veya daha büyük bağlam pencereleri hakkında değil, bu modelleri gerçek bağlamla bağlantılı hale getirmektir.
Çok sayıda işletme, AI ajanlarının ölçeğini büyütmenin, daha büyük modellerden daha fazlasını gerektirdiğini keşfediyor – daha derin kurumsal bağlamı gerektiriyor. Neden bağlam, güvenilir AI destekli geliştirmenin gerçek sınırı haline geliyor?
Yazılım sistemleri, ilişkiler karmaşık ağlarıdır. Tek bir değişiklik, birden fazla hizmeti, API’yi veya aşağı akış bileşenlerini etkileyebilir.
AI modelleri bugün, inandırıcı kod üretmede çok iyidir, ancak genellikle bu ilişkilerin yapısal bir anlayışına sahip olmadan çalışırlar. Bu anlayış olmadan, AI, bir değişikliğin sonuçları hakkında güvenilir bir şekilde akıl yürütemez.
İşletmeler, AI sistemlerinin güvenilirliğinin, içinde çalıştıkları bağlamın kalitesine bağlı olduğunu keşfediyor. AI sistemi, sistemin mimarisini, hizmetler arasındaki bağımlılıkları ve organizasyonun kodlama standartlarını anlarsa, organizasyonun nasıl çalıştığına çok daha yakın şekilde kod üretebilir.
Bu anlamda, bağlam, işletme AI geliştirmesinin gerçek sınırı haline geliyor.
Yeni Enterprise Context Engine, AI ajanlarına bir organizasyonun mimarisi, bağımlılıkları ve mühendislik uygulamaları hakkında yapısal bir anlayış kazandırmayı amaçlıyor. Bu yaklaşım, birçok şirketin şu anda güvendiği geri çağırma-artırilmiş üretim gibi ortak yöntemlerden nasıl farklı?
Geri çağırma-artırilmiş üretim faydalı bir tekniktir. Modellerin, üretim sırasında ilgili belgeleri veya kod parçalarını çekmesine olanak tanır.
Ancak geri çağırma, anlamı yaratmaz. Bilgi erişimine izin verir, ancak yapısal bir anlayış sağlamaz.
Enterprise Context Engine, daha ileri gitmek için tasarlanmıştır ve yazılım ortamının yapısal bir temsilini oluşturur. Depositories, hizmetler, bağımlılıklar, API’ler ve mimari ilişkileri analiz eder ve bunları sistemin nasıl çalıştığına dair bir modele organize eder.
Bu, AI sistemlerinin metin parçalarını çekmek yerine bileşenler arasındaki ilişkiler hakkında akıl yürütebilmesini sağlar. Karmaşık işletme ortamları için bu ayrım çok önemlidir.
AI kod araçları, otomatik tamamlama önerilerinden, çok adımlı iş akışlarını gerçekleştirebilen özerk ajanlara doğru evrimleşiyor. Beş yıl içinde insan geliştiriciler ve ajans sistemleri arasındaki denge nasıl değişecek?
AI ajanları, rutin geliştirme görevlerini giderek daha fazla üstlenecek. Zaten bir uçtan uca özellik uygulayabiliyorlar, test ve belgeleme dahil. Her geliştirici, AI geliştiricilerinin takım lideri haline gelecek. Ana zorluk, bu takıma gereksinimleri iletmek ve üretilen artefaktların belirtilen gereksinimlere uyduğunu doğrulamak olacak.
Yazılım geliştirme, temel olarak problem çözme ve tasarım disiplinidir. İnsan geliştiriciler, mimariyi tanımlamaya, ticaretleri yapmaya ve sistemlerin genel yönünü yönlendirmeye devam edecek.
Değişen, geliştiricilerin çalıştığı soyutlama düzeyidir. Artık kod yerine, daha yüksek düzeyli iş akışlarını düzenleyecekler ve AI sistemleriyle işbirliği yapacaklar, bu sistemler de bu iş akışlarının bir kısmını gerçekleştirecek.
Diğer bir deyişle, geliştiricilerin rolü daha stratejik hale geliyor, AI daha fazla mekanik işi ele alıyor.
Tabnine, bazı ortamlarda AI tarafından üretilen kod kabul oranlarının %80’e ulaşabileceğini belirtti. Kuruluşlar, AI kodlama araçlarının gerçekten geliştirici verimliliğini artırıp artırmadığını belirlemek için hangi metriklere dikkat etmelidir?
Ana soru, AI’nin ne kadar kod ürettiği değil, aslında ne kadar faydalı iş ürettiğidir.
Takip edilmesi gereken birkaç metrik vardır. Birincisi, ilk geçiş kabul oranlarıdır, yani AI tarafından üretilen kodun ne sıklıkla değiştirilmeden kullanılabileceğinin ölçümüdür. Bir diğeri, inceleme döngü süresidir, yani bir çekme isteğinin birleştirilmeden önce kaç iteration gerektiği.
Kuruluşlar ayrıca, geliştiricilerin yeniden çalışma için harcadıkları zamanı ve geliştirmeden üretime kadar olan lead süresini de izlemelidir.
Eğer AI araçları gerçekten verimliliği artırıyorsa, bu metriklerde iyileşme görmelisiniz. Geliştiriciler, üretilen kodu düzeltmek için daha az zaman harcar ve daha fazla zaman yüksek değerli görevlere ayırır.
Çok sayıda işletme, AI kodlama araçlarını benimsemeye karşı temkinli davranıyor, çünkü özel kodu dış modellere maruz bırakmaktan endişe ediyorlar. “Güvenilir AI Kodlama” kavramı, işletme AI geliştirme araçlarının benimsenmesini yavaşlatan yönetim, gizlilik ve uyumluluk endişelerini nasıl ele alıyor?
Güven, işletme AI’nin benimsenmesi için en önemli faktörlerden biridir.
Güven, AI mühendisinin gerçekleştirilmesinde temel bir zorluktur. AI mühendisinin, kritik yazılım mühendisliği görevlerini otonom olarak gerçekleştirmesine nasıl güvenebiliriz? Eylemlerinin beklentilerimize, kalite, güvenlik ve politikalarımıza uyumlu olacağını nasıl sağlayabiliriz? AI mühendisi, mühendislik ekiplerimizin kabul görmüş ve uygun şekilde eğitilmiş bir üyesi olacaksa, aynı şekilde güvenilir olmalıdır.
Bu zorluğu ele almak, iki temel sütuna dayanır:
- Kişiselleştirme: AI mühendisine, organizasyonunuzun, kod tabanının ve en iyi uygulamalarının derin bir anlayışını kazandırma.
- Kontrol: Tüm kodun, hem AI tarafından üretilen hem de insan tarafından yazılan, organizasyonunuzun kalite, güvenlik, performans ve güvenilirlik standartlarına uyduğunu garantileyen güçlü sistemleri uygulama.
Ayrıca, Güvenilir AI Kodlama, organizasyonlara AI’nin nasıl dağıtılacağını kontrol etme ve merkezi yönetim ve kontrolü sağlama anlamına gelir.
Organizasyonel bağlam, işletme AI yığınının temel bir katmanı haline gelebilir – önceki hesaplama dönemlerinde veritabanları veya bulut altyapısı gibi. Bu gelecek mimari nasıl görünüyor?
İşletme teknolojisine bakıldığında, genellikle yeni altyapı katmanlarının ortaya çıktığını görüyoruz.
Veritabanları, veri yönetimine temel oldu. Bulut platformları, uygulamaları ölçeklenebilir şekilde çalıştırma temelini oluşturdu.
AI döneminde, organizasyonların AI sistemlerinin, sistemlerin, ilişkilerin ve operasyonel kısıtlamaların iç yapısını anlamalarına olanak sağlayan altyapıya ihtiyacı olacak.
Bu altyapı katmanı, birden fazla AI sistemi tarafından kullanılabilen yapısal bağlamı sağlayacak.
Bu anlamda, bağlam, işletme AI’sinin paylaşılan bir temel haline geliyor.
Çok sayıda şirket, bir temel modelle sıkıca bağlı kod asistanları oluşturuyor. Tabnine ise işletmelere, ihtiyaçlarına göre farklı modelleri bağlama izni veriyor. Model esnekliğinin işletme AI geliştirme araçlarının uzun vadeli evrimi için neden önemli?
AI ekosistemi çok hızlı bir şekilde evrimleşiyor. Yeni modeller sık sık yayınlanıyor ve farklı modeller genellikle farklı alanlarda güçlere sahip.
İşletmelerin, model manzarası her değiştiğinde geliştirme iş akışlarını yeniden tasarlamalarına gerek olmamalıdır. Organizasyonlara, modelleri seçme ve değiştirme izni vererek, AI stratejilerini geleceğe taşımaya yardımcı oluyoruz.
Model esnekliği ayrıca, organizasyonların performansı, maliyeti, gizlilik gereksinimlerini ve dağıtım kısıtlamalarını dengelemelerine olanak tanır.
Uzun vadede, işletmeler muhtemelen çok model ortamında çalışacaklar ve geliştirme platformlarının bu gerçekliği göz önünde bulundurularak tasarlanması gerekiyor.
CTO’lar ve mühendislik liderleri bugün AI geliştirme platformlarını değerlendirirken, işletmeler AI kodlama araçlarını dağıtırken en büyük hatalar nelerdir ve bunları nasıl önleyebilirler?
En yaygın hatalardan biri, yalnızca model yeteneğine odaklanmaktır. Daha büyük modeller kesinlikle kritik bir bileşendir, ancak gerçek dünya ortamlarındaki güvenilirlik, AI’nin içinde çalıştığı sistemin anlaşılmasına bağlıdır.
Diğer bir hata, AI araçlarını, yönetim ve güvenlik gereksinimlerini dikkate almadan dağıtmaktır. İşletmelerin, kod erişimine, model dağıtımına ve çıktı doğrulamasına ilişkin net politikaları olmalıdır.
Son olarak, organizasyonlar bazen AI’den, iş akışlarını adapte etmeden veya yeterli bağlam sağlamadan hemen verimlilik kazancı bekliyorlar. Başarılı dağıtımlar genellikle AI’yi mevcut geliştirme süreçlerine entegre etmeyi ve organizasyonun koduna ve mimarisine bağlamayı içerir.
Bu öğeler bir araya geldiğinde, AI, yazılım geliştirmede güçlü bir hızlandırıcı haline gelebilir, yalnızca başka bir araç değil.
Harika röportaj için teşekkür ederiz, daha fazla bilgi edinmek isteyen okuyucular Tabnine‘i ziyaret edebilir.












