Modelleri Roblox Mühendisleri Gibi Düşünmeye Öğreterek AI Kod Kabul Oranını Nasıl İkiye Katladık
Etki Alanına Duyarlı Kod Zekası

Herkes bir sonraki çığır açan AI modelini heyecanla bekliyor, ancak Roblox'ta şirket içi AI araçlarının etkinliğini ikiye katlamanın sırrı yeni bir model değildi. Bu sır, kod tabanımızın geçmişinde yatıyordu. Yıllara dayanan kodlarımızdan ve alan uzmanlarımızın incelemelerinden yararlanarak, 10.000 pull request (PR) setinde AI tarafından üretilen pull request önerilerinin kabul oranını yaklaşık %30'dan %60'ın üzerine çıkardık ve aynı dönemde, kod temizleme projesinin değerlendirme doğruluğunu %90'ın üzerine çıkardık.
AI Kalite Açığını Kapatmak
Sektör genelinde, kodlama süresinin %50 ila %60'ı yazılım bakımına harcanmaktadır.1 Roblox da bu durumdan farklı değildir.
Kağıt üzerinde, iyi tanımlanmış gereksinimleri ve sınırlı bir sorun alanı olan tekrarlayan bakım görevleri, AI otomasyonu için mükemmel adaylardır. Uygulamada ise, AI asistanlarımız değerlendirme doğruluğu ve mühendislik kabulü konusunda zorluklar yaşadı.
Roblox'ta sorun yetenek değil, bağlamdır. Genel bir model, Roblox mühendisliğinin yirmi yıllık geçmişini yaşamamıştır. Son üç yılda birleştirdiğimiz 700.000 çekme isteğini görmemiş veya en deneyimli mühendislerimizin kodlama standartlarımızı tanımladığı ve savunduğu 1,7 milyon kod inceleme yorumundan ders almamıştır.
Bu geçmişi göz ardı eden AI asistanları, dünya çapındaki mühendislerin güvenini kazanamıyor. Roblox mühendislerinin yarısı AI destekli asistanları benimsemiş olsa da, AI tarafından üretilen önerilerin yalnızca yaklaşık %20'si insan incelemesinden sonra kabul ediliyor. Üç aylık mühendislik verimlilik anketimiz bu gerçeği yansıtıyor. Mühendisler, AI'nın üretkenlik üzerindeki etkisini 5 üzerinden 4,02 olarak değerlendirirken, AI kod kalitesine olan güvenlerini 5 üzerinden sadece 3,09 olarak değerlendiriyor. Kısacası, AI yardımcı oluyor, ancak özellikle eski C++ ve daha karmaşık kod alanlarında güven sınırlı kalıyor.
Bu bağlamdaki boşluğu kapatmak için, Roblox'un kendi mühendislik geçmişiyle oluşturulmuş, uzman örnekleriyle uyumlu ve titiz bir değerlendirmeyle doğrulanmış bir ajan kod zekası platformuna yatırım yaptık. Bu kod zekası platformu, yalnızca kod önerileri üretmek için değil, bir Roblox mühendisinin kurumsal derinliğiyle birlikte yinelenmek üzere tasarlanmıştır.
Roblox Mühendislik Deneyiminin En İyilerinden Öğrenmek
Roblox'un mühendislik külliyatı, sistemlerimizin nasıl geliştiğini ve mühendislerimizin zor sorunları nasıl çözdüğünü gösteren, benzersiz derecede zengin bir veri kümesi olan yaklaşık 20 yıllık commit'ler, tasarım belgeleri ve üretim telemetrisini kapsamaktadır.
Kod zeka platformu, bu verileri yapılandırılmış bir bilgi grafiğine dönüştürmeyi amaçlamaktadır; bu, önemli bir mühendislik zorluğudur. Devasa bir çok dilli ortamda kod, sadece metin dosyaları değildir. Bu, derleme hedefleri, C++ şablon örneklemeleri ve dinamik Lua bağımlılıklarından oluşan karmaşık bir ağdır. Metni basitçe ayrıştırmak yetersizdir; sistem, kod tabanının içinde gizli olan ve benzersiz mimarimize özgü derin anlamsal ilişkileri anlamalıdır.
Diğer bir zorluk ise izleme ve zamansal hizalamadır. Birbirine bağlı sistemler arasında mantık yürütmek için, bir ajan sistemi, statik kod depolarını gürültülü çalışma zamanı telemetrisiyle ilişkilendirmeli ve kod tabanı gelişmeye devam ederken bile milyonlarca üretim sinyalini bunları üreten kodun tam sürümüne eşleştirmelidir.

Bunu çözmek için stratejimiz, sürüm kontrolünü, yapı grafiklerini ve çalışma zamanı telemetrisini, sözdizimini, anlambilimi ve ilişkileri koruyarak hibrit bir sembolik-vektör temsilinde birleştirmektir. Bu, kod zeka platformunun kodu kıdemli mühendislerin yaptığı gibi anlamasını sağlar: izole metin dosyaları olarak değil, tasarım mantığı, ödünleşimler ve performans verileriyle şekillendirilmiş birbirine bağlı sistemler olarak.
Örnek Hizalama Yoluyla Uzman Sinyallerini Çıkarma
Gerçek uzmanlık, kalıplarda, inceleme yorumlarında, taahhüt geçmişlerinde ve ince kod deyimlerinde gizlidir. Kod zekası, mühendislerin ideal uygulamaların "altın" örneklerini derlemelerine veya mantığı incelemelerine olanak tanıyan bir örnek hizalama motoru aracılığıyla bu örtük bilgeliği ortaya çıkarır.
Daha önce, deneyimli bir mühendis her hafta saatlerini PR'leri inceleyerek geçirebilir ve yüksek frekanslı döngüler içinde engelleyici FetchData çağrısının kullanımını tekrar tekrar işaretleyebilirdi; bu, anlamsal olarak doğru görünen ancak Roblox ölçeğinde ciddi gecikmelere neden olan bir kalıptır. Uzman şehir dışındaysa veya bir hatayı gözden kaçırırsa, bilgisi uygulanmayabilir ve bir anti-kalıp üretime sızarak topluluğumuzda kesintiye neden olabilir.
Hizalama motorunu kullanarak, o mühendis yargısını doğal dilde bir örneğe kodlayabilir. Bu, kod desenini (“ne”) gerekçeyle (“neden”) birleştiren yapılandırılmış bir tanımdır. Artık sistem, engelleyici çağrıyı otomatik olarak algılar, işaretler, gecikme riskini açıklar ve asenkron en iyi uygulamalarla ilgili iç belgelere doğrudan bağlantı sağlar:
Yüksek frekanslı bir döngü içinde engelleme, gecikmenin artmasına ve iş parçacığının tükenmesine yol açar. Asenkron bir görevde `FetchData` çağrısı yapıldığında, yazara gecikme ve iş parçacığının tükenmesi konusunda uyarı verin. Görev zaten beklenmişse `FetchData` sorun oluşturmaz. Asenkron en iyi uygulamalara şu adresten doğrudan bağlantı sağlayın: internal_guidance/async. |
Bu, bir mühendisin yıllar süren deneyimiyle zorlu bir şekilde edindiği bilgileri etkili bir şekilde kodlar. Sistem, tek seferlik bir inceleme yorumunu kalıcı, otomatik bir koruma mekanizmasına dönüştürür.
“Hizalama motorunu güçlü kılan şey, sadece kod kalitesini yükseltmesi değil, aynı zamanda mentorluğu da ölçeklendirmesidir. En deneyimli uzmanlarımızın uzmanlığını ve sezgilerini platformun içine kodluyoruz. Bu, her gün, tüm gün boyunca kıdemli bir Roblox alan uzmanı ile birlikte programlama yapıyormuşsunuz gibi bir şey.” —Tom Knych, Kıdemli Teknik Direktör
Ancak uzmanlarımızın da yapacak çok işi var ve onlardan tüm önemli içgörülerini hatırlayıp yazmalarını istemek, en iyi ihtimalle zaman alıcı ve kayıplı bir süreçtir. Peki, Roblox'ta çalıştıkları süre boyunca en iyi tavsiyelerini kaydetmelerine nasıl yardımcı olabiliriz?
Bu tavsiyeler zaten orada, titiz kod inceleme yorumlarında yazılı ve üretime geçen her bir PR'da kayıtlı:

Geçmiş PR yorumlarını, Roblox deneyiminden en değerli temaları temizleyen ve çıkaran bir boru hattından geçiriyoruz. Başlangıçta, gürültülü veriler övgü veya yazım hatası düzeltmeleri gibi eyleme geçirilebilir olmayan yorumlarla doludur, oysa değerli geri bildirimler genellikle bağlama büyük ölçüde bağlı olan kısaltmalarla yazılır. Örneğin, "burada yeni deseni kullan" gibi bir not, belirli dosya ve farkları anlamadan anlamsızdır. Sistem, bu belirli etkileşimleri yeniden kullanılabilir, genelleştirilebilir kurallara çevirmelidir.
Bunu çözmek için, insan müdahalesi olmadan binlerce PR'de tekrarlanan temaları tespit eden çok aşamalı bir algoritma kullanıyoruz. Sistem, geçmiş yorumları vektör uzayına yerleştirir, açgözlü kümelemeyi kullanarak ilgili geri bildirimlerin komşuluklarını bulur ve LLM kılavuzlu iyileştirme uygulayarak bunları yüksek değerli kalıplar halinde birleştirir.
Sonuç, ortaya çıkma sıklığına ve farklı gözden geçirenler tarafından ne kadar yaygın olarak alıntılanıldığına göre önceliklendirilmiş, orijinal yorumlara atıflar içeren, aday örneklerin (veya öğrenimlerin) sıralı bir listesidir. Ardından, alan uzmanlarımız adayları inceler, gerekirse düzenlemeler yapar ve hangilerinin bilgi tabanına temel en iyi uygulamalar olarak ekleneceğine karar verir. Bu iş akışının ilk önizlemelerinden sonra, depo liderleri en sevdikleri konuların temel kılavuzlar olarak öne çıkmasını heyecanla karşıladılar ve depolarını hemen analize kaydetmek istediler.

Son adım, örnek bilgi tabanına göre tüm değişiklikleri kontrol ederek hem insan mühendislere hem de AI kodlama ajanlarına yardımcı olan hizalama ajanıdır. Bu esnek değerlendirme, yazılım geliştirme yaşam döngüsünün tamamında uygulanabilir: kodlama sırasında, birleştirme sırasında ve hatta bilgi tabanı büyüdükçe Roblox kod tabanını özerk bir şekilde düzenleyen sürekli iyileştirme ajanı ile.
Bu bağlam içi öğrenmeyi kullanarak AI davranışını Roblox standartlarına bağladığımızda, bir AI kodlama ajanın altın değerlendirme veri setindeki başarı oranının %84'ten %100'e çıktığını gördük. Roblox AI'ya sadece kodlamayı öğretmiyoruz; AI'mıza Roblox mühendislerinin nasıl düşündüğünü de öğretiyoruz.
Olumsuz Sinyallerden Öğrenme
Örnek hizalama, kod tabanı kalitesi için temel seviyemizi önemli ölçüde yükseltmiş olsa da, nihai hedefimiz, AI tarafından önerilen kodun ilk geçişinin en deneyimli mühendislerimizin çalışmaları kadar güvenilir olduğu noktaya ulaşmaktır. Bu nedenle, reddedilen her AI önerisini, başarısız refaktörlemeyi veya regresyona neden olan birleştirmeyi, sisteme geri besleyebileceğimiz yüksek değerli bir sinyal olarak kullanıyoruz. Bu, ajanların sürekli olarak gelişmesi ve hatalarından öğrenmesi için bir süreç oluşturur.
Olumsuz sonuçlar, alan uzmanları tarafından ayrıntılı gerekçeler, bir düşünce zinciri ve başarısızlıkla ilgili ek bağlam bilgileriyle filtrelenebilir ve etiketlenebilir. Bu veriler daha sonra anlamsal olarak gömülür ve geri çağrılmak üzere indekslenir. Kod zeka platformumuz yeni bir çıktı önerdiğinde, bu veriler üzerinde anlamsal bir arama gerçekleştirir ve hataların tekrarlanmasını önlemek için geçmiş hataları ve gözden geçirenlerin geri bildirimlerini hatırlar.
Bu kapalı geri bildirim döngüsü, her kod incelemesini yapılandırılmış öğrenme verisine dönüştürür ve karşıtlık ve eleştiriye dayalı eğitim yoluyla gelecekteki ajan davranışını sürekli olarak iyileştirir.
Sağlam Bir Değerlendirme Çerçevesi Oluşturma
Güven, ölçümle başlayan güvenilir ve öngörülebilir davranışlarla inşa edilir. Ajanlarımızın performansını zaman içinde takip etmek için özel bir değerlendirme sistemi tasarladık.

Çerçeve şunları içerir:
- Görev düzeyinde karşılaştırma ölçütleri: Yeniden yapılandırma, test etme ve hata düzeltme görevleri gibi binlerce Roblox mühendislik faaliyetinde hassasiyet ve geri çağırma.
- Simülasyon araçları: Tekrarlanabilir puanlama için deterministik sonuçlara sahip sentetik PR'ler.
- İnsan katılımlı paneller: AI çıktıları ile altın standart uygulamaların uzmanlar tarafından karşılaştırılması.
- Yürütme çerçevesi: Ajan iyileştirmeleri birleştirilirken, ilgili değerlendirmeler paralel hale getirilir ve birleştirme öncesi sürekli entegrasyon (CI) paketi kapsamında çalıştırılır, böylece mühendisler yaptıkları değişikliklere yüksek güven duyarlar.
- Boylamsal metrikler: Birleştirme sonrası regresyonlar, geri alma sıklığı ve gecikme değişiklikleri sürümler boyunca izlenir.
- Yaygın gözlemlenebilirlik: Ajanları Roblox'un geri kalanıyla ilişkilendirmek ve çevrimiçi ve çevrimdışı değerlendirmeye sorunsuz bir şekilde aktarmak için ajan faaliyetlerinin otomatik izlenmesi ve görselleştirilmesi.
Bu sistem, zaman içindeki performans değişikliklerini doğru bir şekilde izleyen bir ajan kalite puanı üretir ve ajan revizyonları ile model sürümleri arasında standartlaştırılmış karşılaştırmalar yapılmasını sağlar. Örnek hizalama ve tam bir değerlendirme paketi uyguladığımızdan beri, bir Roblox kod zekası ajanının 10.000 PR setindeki PR önerisi kabul oranı yaklaşık %30'dan %60'ın üzerine çıktı; bu, güvenilir ve alanla uyumlu performansın erken bir göstergesidir. Aynı süreç sayesinde, özellik bayrağı temizleme ajansımızın genel doğruluğu %46'dan %90'ın üzerine çıktı.
Önümüzdeki Yol: Her Araca Uzman Görüşünü Dahil Etmek
MCP ve araç sarmalayıcılarından oluşan bir katman oluşturarak ve kod zekası platformunu hedefli görevlerden Roblox kod tabanını sağlıklı tutan bir sisteme dönüştürerek, yerleşik iç sistemlerimizin kullanışlılığını artırıyoruz.
Çalışma zamanı bağlamı ve uzman yargısı gibi tarihsel olarak ölçeklendirilmesi zor olan bilgilerin her araca ve iş akışına entegre edildiği bir mühendislik geleceği hayal ediyoruz. Kod zekası, örnek uyum ve gözlemlenebilirlik bir araya geldiğinde, daha iyi kalite, daha hızlı teslimat ve daha sağlıklı, gelişen bir kod tabanı gibi kalıcı avantajlar elde ediyoruz. Uzun vadeli hedefimiz, her mühendise kurumsal hafızanın gücünü, her ekibe hızlı teslimat yapma güvenini ve her mühendise bakım değil inovasyona odaklanma özgürlüğünü vermektir.


