GitHub Copilot AI Kodlamada Maliyeti Nasıl Düşürüyor
Yapay zekâ destekli kodlama araçlarında verimlilik, tek tek araç çağrılarında kullanılan token sayısını azaltmakla ölçülmüyor. GitHub Copilot ekibi, görev için gereken bağlamı korurken gereksiz çıktıları, model dönüşlerini ve tekrarları azaltmaya odaklanan dört değişikliği açıkladı. GitHub Copilot CLI üzerinden örneklenen bu iyileştirmeler, aynı temel altyapıyı kullanan diğer Copilot deneyimlerine de uygulanıyor.
Verimlilikte ölçü tamamlanan görev
Kısa bir araç yanıtı ilk bakışta daha verimli görünebilir. Yanıt modelin ihtiyaç duyduğu bilgiyi içermiyorsa eksik çıktıyı yeniden okuyabilir, komutu tekrar çalıştırabilir veya ek keşif adımlarına başvurabilir. Böylece tek çağrıda daha az token kullanılır, görevin tamamında ise daha fazla token harcanır.
GitHub bu nedenle optimizasyonları araç çağrısı başına değil, kullanıcının isteğinden nihai sonuca kadar geçen tüm görev üzerinden değerlendiriyor. Değişiklikler önce agentic coding benchmark’lerinde çevrim dışı inceleniyor, en umut verici sonuçlar da kontrollü çevrim içi deneylerle doğrulanıyor. Kaynakta aktarılan dört yaklaşım şöyle:
- Yararlı bağlamı koruyup tekrarlanan çıktıyı azaltmak.
- Göreve katkısı olmayan biçimlendirmeyi kaldırmak.
- Yararlı davranışı değiştirmeden talimatları kısaltmak.
- Arka planda tamamlanan işleri ek bir sonuç alma adımı olmadan iletmek.
RTK değerlendirmesi: Kısa çıktı her zaman daha ucuz değil
GitHub, araç çıktısını model okumadan önce kısaltan Rust Token Killer (RTK) adlı yardımcı programın Copilot üzerindeki etkisini kendi agentic coding benchmark’leri ve test yapılandırmasıyla değerlendirdi. RTK bazı yanıtları kısalttı, ancak çıkarılan metin önemli olduğunda model kimi zaman özgün çıktıyı yeniden açtı veya komutu tekrar çalıştırdı.
Bu kurtarma adımları ek model dönüşleri oluşturdu, daha fazla bağlamın sonraki adımlara taşınmasına yol açtı. Sonuçta tekil araç yanıtı kısalırken görev ortalamada daha fazla token kullandı ve daha uzun sürdü. GitHub, bu sonucun her RTK yapılandırması veya genel olarak tüm çıktı sıkıştırma yöntemleri için geçerli olmadığını özellikle belirtiyor. Bulgular incelenen entegrasyon ve iş yükleriyle sınırlı.
Bu değerlendirme, token/araç çağrısı ölçümünün tek başına yanlış hedef olabileceğini gösterdi. Daha anlamlı yaklaşım, modelin yeniden çalışmasına yol açmadan hangi bilgilerin kaldırılabileceğini incelemekti.
Tekrarlanan gürültü azaltılırken yararlı bağlam korunuyor
Benchmark sonuçları kurulum, derleme, test ve lint çıktılarında tekrarlanan gürültünün sık görüldüğünü, kaynak koduna benzeyen çıktılarla rastgele komut sonuçlarının ise model için daha önemli bilgiler taşıyabildiğini gösterdi. Bu analiz, RTK ve benzer yaklaşımlardan kısmen yararlanan seçici bir çıktı sıkıştırıcısının geliştirilmesine yol açtı.
İlk prototipler fazla agresifti. Örneğin git diff çıktısı başlangıçta sıkıştırıldı, ancak benchmark görevlerinde modellerin eksik bilgiyi almak için özgün çıktıyı yeniden açtığı görüldü. Bu filtre kaldırıldı.
Yayınlanan yaklaşım üç temel kurala dayanıyor:
- Kaynak benzeri ve rastgele çıktılar korunuyor:
cat,git diff,git showve rastgele betikler gibi komutların çıktısı değiştirilmeden döndürülüyor. - Arama sonuçları içerik kaybı olmadan yeniden düzenleniyor:
grepgibi araçların eşleşmeleri ve dosya listeleri daha verimli gruplandırılabiliyor, ancak sonuçlar çıkarılmıyor. - Tekrarlanan gürültü seçici biçimde sıkıştırılıyor: Kurulum, derleme, test ve ilerleme çıktısı yalnızca tasarruf anlamlı olduğunda kısaltılıyor.
Sıkıştırma uygulandığında model, doğrudan kurtarma yoluyla özgün çıktının tamamına ulaşabiliyor. GitHub bu yolu bir güvenlik mekanizması ve değerlendirme sinyali olarak izliyor. Modelin kaydedilen özgün çıktıyı açması, komutları yeniden çalıştırması, keşfi tekrarlaması veya ek dönüşler gerçekleştirmesi sıklaşırsa sıkıştırmanın değerli bilgileri çıkardığı anlaşılıyor.
Çıktı sıkıştırmasının tetiklendiği çevrim dışı görevlerde görev başarısında istatistiksel olarak anlamlı bir gerileme tespit edilmedi. Modellerin kaydedilen özgün çıktıları açması da son derece nadir görüldü. Çevrim içi deneyde ortalama maliyet bir miktar azaldı, izlenen kalite metriklerinde de önemli bir gerileme belirlenmedi.
Gereksiz biçimlendirme kaldırılarak yaklaşık yüzde 5 tasarruf
GitHub’ın incelediği en temiz optimizasyonlardan biri, dosya içeriklerini bağlama alan view aracındaki satır numarası öneklerini kaldırmaktı. Önceki dosya düzenleme araçları bu numaraları değişiklik hedeflemek için kullanıyordu. Güncel araçlar ise çevredeki kodu eşleştirerek çalıştığı için satır numarası önekleri olağan iş akışında kullanılmıyordu.
Her önek küçük olsa da her dosya okumasında ve her satırda tekrarlandığından oturum boyunca birikiyordu. Satır numaraları diff’lerde ve kısa kod parçalarında yararlı olmaya devam ediyor, ancak her dosya okumasına eklenmeleri mevcut düzenleme akışına katkı sağlamıyordu.
Öneklerin kaldırılması, çevrim dışı agentic coding benchmark’lerinde model çıkarımı maliyetini yaklaşık yüzde 5 düşürdü. Başarı oranları beklenen çalışmadan çalışmaya değişim aralığında kaldı, düzenleme hatalarında da artış görülmedi. GitHub Copilot CLI kullanıcılarıyla yapılan çevrim içi deneyde kullanıcı başına günlük ortalama model çıkarımı maliyeti yaklaşık yüzde 3 azaldı; izlenen kalite ve memnuniyet metriklerinde önemli bir gerileme tespit edilmedi.
Talimatlar kısaltılırken model davranışı test ediliyor
Prompt’lar her model dönüşünde gönderildiği için kısaltılmaları verimlilik sağlayabilir. Bunun güvenli olması için geliştiricilerin beklediği davranışların korunması gerekiyor. Copilot’ta paralel işler için uzmanlaşmış agent’lar başlatan task aracının talimatları, araç açıklamaları, şemalar, agent tanımları, sistem talimatları ve yardımcı araçlar arasında zamanla büyümüştü.
Copilot’un kendi prompt’unu yinelemeli biçimde yazıp geliştirdiği bir meta-prompting döngüsü bu talimatı yaklaşık yarı yarıya kısalttı. Ancak ilk çevrim içi deneyde çevrim dışı değerlendirmelerin yakalayamadığı bir gerileme ortaya çıktı: Temkinli paralellik yönlendirmesi katı bir zamanlama politikasına dönüşmüş, bağımsız özel agent’ların sıralı çalışmasına neden olmuştu. Deney durduruldu.
GitHub bu davranış için bir gerileme testi yazdı. Sonraki düzeltmede açık izin ve yasak listeleri yerine şu tek cümle kullanıldı: “Bağımsız agent’lar paralel çalışabilir; yan etkileri göz önünde bulundurun.” Karar böylece modele bırakıldı; yeni davranış testi geçerken mevcut davranış testlerinde de sorun oluşmadı.
Yayınlanan prompt, her dönüşte task aracı talimatlarından yaklaşık 1.300 token kaldırıyor. Bu, oturum başına toplam prompt token’larında yaklaşık yüzde 1,8, etkin saat başına normalize maliyette ise yüzde 2,9 düşüş anlamına geliyor. Ölçülen değerlendirmelerde kalite gerilemesi tespit edilmedi. GitHub’ın vurgusu net: Prompt kısaltmaları, korunması gereken davranışlar test edilmeden güvenli kabul edilmemeli.
Arka plan işleri sonuçlarıyla birlikte iletiliyor
Agent’lar uzun süren bir kabuk komutunu veya alt agent incelemesini arka planda çalıştırabiliyor. Önceki yapıda iş tamamlandığında gönderilen bildirimde tamamlanan sonuç yer almıyordu. Model, Copilot’un zaten aldığı çıktıyı almak için ek bir dönüşte sonucu istemek zorunda kalıyordu. Birden fazla iş kısa aralıklarla tamamlandığında bu gereksiz adım tekrarlanabiliyordu.
Yeni yaklaşımda uygun tamamlanma bildirimleri gruplanıyor, sonuçlar mevcut araç sonucu biçiminde doğrudan iletiliyor. Çalışması süren işler için açık okuma talepleri ise eskisi gibi işliyor.
Önceki akışta her tamamlanan işin sonucunu istemek, ardından işleyip devam etmek için model çağrıları gerekiyordu. Örneklenen kabuk komutu ve alt agent için bu, çalışmanın devam edebilmesinden önce dört model çağrısı demekti. Yeni yapıda iki tamamlanma tek bildirime alınıyor, sonuçlar da tek model çağrısında işlenebiliyor. Sonuçlar sıkıştırılmadan, özetlenmeden veya saklanmadan iletildiği için AI Credits ile ölçülen ortalama token ilişkili kullanım yaklaşık yüzde 2,3 azaldı.
Ölçüm, kullanılan Copilot iş akışına göre yapılmalı
Bir Copilot iş akışında maliyeti düşüren değişiklik, başka bir iş akışında maliyeti artırabilir. GitHub, Copilot code review’da olumlu sonuç veren daha sıkı dosya aracı talimatlarını Copilot CLI çevrim içi deneyinde de denedi, ancak CLI tarafında maliyet arttığı için değişikliği yayınlamadı.
Buna karşılık satır numarası öneklerinin kaldırılması ve seçici çıktı sıkıştırması, üretim modeliyle geniş bir Copilot code review görevi kümesi üzerindeki bağımsız değerlendirmelerde inceleme başına ortalama prompt token’larını ayrı ayrı yaklaşık yüzde 5 azalttı. İzlenen inceleme kalitesi metriklerinde önemli bir değişiklik görülmedi. Bu sonuçlar, Copilot code review’un paylaşılan dosya araçlarına geçirilmesi ve inceleme talimatlarının ayarlanmasıyla elde edilen yaklaşık yüzde 20’lik maliyet azalmasından ayrı değerlendiriliyor.
GitHub’ın çıkardığı ana sonuçlar şunlar: Araç çağrısı yerine tamamlanan görevi optimize etmek, model çıktısının yanında orkestrasyonu da iyileştirmek, çıktının taşıdığı bilgi türüne göre kayıpsız dönüşümleri tercih etmek, prompt değişikliklerinde davranış testleri kullanmak ve her değişikliği çalıştığı ürün ile iş yükünde yeniden ölçmek.
Bu iyileştirmeler modeli daha yetenekli hale getirmedi. Hedef, modelin yapmak zorunda olmadığı işleri kaldırıp Copilot’un görevi daha az gereksiz adımla tamamlamasını sağlamaktı. Değişiklikler, aynı temel altyapıyı kullanan GitHub Copilot deneyimleri genelinde kullanıma sunuluyor.
Kaynaklar ve İleri Okuma
- GitHub’ın AI kodlama maliyet verimliliği açıklaması
- GitHub Copilot CLI
- GitHub Copilot ile Pull Request İnceleme ve Code Review







0 comments