28 puan yazan GN⁺ 2025-07-28 | 5 yorum | WhatsApp'ta paylaş
  • JetBrains Full Line Code Completion (FLCC), PyCharm ve GoLand'de kullanılabilen yapay zeka tabanlı bir otomatik tamamlama özelliği olarak etkili log yazımını ve geliştirme verimliliğini büyük ölçüde artırıyor
  • Tekrarlayan f-string log ifadeleri yazma ya da değişken/veri çerçevesi erişimindeki zahmeti azaltıyor ve yapay zeka, bağlama uygun kısa ve net logları otomatik olarak üretiyor
  • Söz konusu model, yerel PC'de çalışan küçük bir LLM; hızlı çıkarım hızı, düşük bellek kullanımı (yaklaşık 1GB) sağlıyor ve kişisel veri sızıntısı endişesi de yaratmıyor
  • JetBrains'in makalesine göre, Python'a özel küçük bir Transformer (100M parametre) eğitilerek 384 karakterlik kod bağlamı içinde tek satırlık otomatik tamamlama destekleniyor; veri önişleme ve tokenization sürecinde de Python kodunun özellikleri aktif biçimde yansıtılıyor
  • FLCC'nin başarı örneği, devasa LLM'ler yerine amaç odaklı küçük modellerin gerçek geliştirme ortamında üretkenliği ne kadar artırabildiğini iyi gösteriyor

Yapay zekayla otomatik log yazımı: geliştirme üretkenliğinde gerçek değişim

  • JetBrains Full Line Code Completion (FLCC), PyCharm'da (2023 sonundan beri varsayılan olarak geliyor), GoLand ve benzeri ortamlarda tam log ifadesi otomatik tamamlama sunuyor
  • Sıralı veri işleme, asenkron API çağrıları, vektör işlemleri gibi durumlarda print debugging ve ayrıntılı loglar vazgeçilmezdir
  • f-string, değişken/liste/veri çerçevesi erişimi, logger seçimi (loguru vs logging) gibi tekrarlayan girdiler yüzünden debugging akışının sık sık kesilmesi sorunu vardı
  • Örneğin loguru için logger.info(f'Adding a log for {your_variable} and {len(my_list)} and {df.head(0)}') gibi bir ifade, basit görünse de parantezler, değişken adları, veri çerçevesi söz dizimi, logger türü gibi birçok aşamada bilişsel yük oluşturur

FLCC'nin geliştirme akışını ve log yazma alışkanlığını nasıl değiştirdiği

  • Full Line Code Completion; dosya uzantısı, yol, imlecin üzerindeki kod gibi tüm bağlam bilgisini modelin giriş istemine birleştirerek en doğal log ifadesini otomatik tamamlıyor
  • Önerilen loglar değişken, veri çerçevesi ve işlem bağlamına göre optimize edildiği için, çoğu zaman insanın yazacağından daha nettir
  • Kısa ve öz loglar sayesinde debugging bittikten sonra bile bu logları koddan özellikle silmeye gerek kalmıyor; üretim ortamında bırakıldığında da kalite yeterli oluyor
  • Örnekler

    • Redis URL kontrolünde: redis = aioredis.from_url(settings.redis_url, decode_responses=True) → yapay zeka otomatik olarak Redis bağlantı logu öneriyor
    • DataFrame profillemede: veri/sütun tanımlarından sonra df için shape gibi profil amaçlı log ifadelerini otomatik öneriyor

JetBrains FLCC modelinin teknik özellikleri ve uygulaması

  • Tamamen yerel ortamda çalışıyor

    • Model çıkarımı ve kod önerileri yalnızca yerel PC'de işleniyor, bu da kişisel veri/kod sızıntısı endişesi olmadan güvenli kullanım sağlıyor
    • Mac'te model boyutu yaklaşık 1GB; bellek yükü düşük ve hızı oldukça yüksek
    • vLLM, SGLM, Ray, PagedAttention gibi bulut tabanlı büyük LLM altyapılarına ihtiyaç duymuyor
  • Python'a özel küçük LLM mimarisi

    • İlk uygulama PyTorch tabanlı GPT-2 tarzı Decoder-only Transformer (100M parametre) olarak geliştirildi, daha sonra llama2 mimarisiyle iyileştirildi
    • 30 dili kapsayan 6TB ölçekli The Stack alt kümesinden yalnızca 45GB kullanıldı; kod yorumları ve gereksiz import'lar kaldırılarak gerçek kod üretimine odaklanıldı
    • Python dilinin özelliklerine uygun olarak, BPE tabanlı tokenizer ile girintiler ve scope yapıları <SCOPE_IN>/<SCOPE_OUT> token'larına dönüştürüldü; böylece boşluk farklarından kaynaklanan gereksiz token israfı önlendi
    • Tokenizer vocab boyutu 16,384 olarak optimize edildi
    • Python'da import'ları çoğunlukla kodun sonuna ekleme alışkanlığı model eğitimine de yansıtıldı; import'lar veriden tamamen çıkarıldı
  • Eğitim ve optimizasyon

    • 8 adet NVIDIA A100 GPU ile birkaç gün boyunca eğitildi, cross-entropy loss ile değerlendirildi
    • Quantization ile FP32 model INT8'e dönüştürülerek (400MB→100MB) PC belleğine yük bindirmeden kullanılabilir hale getirildi
    • CPU çıkarımı için ONNX RT kullanıldı, daha sonra sunucu llama.cpp tabanlı yapıya geçirildi
    • Beam Search (k=20) ile çeşitli token dizileri üretildi; satır sonu karakteri sonuçlandırma ölçütü olarak kullanıldı
    • 384 karakterlik bağlam penceresinin %50'si önceden prefetch edilip cache'leniyor; imleç önceki koda taşındığında yeniden çıkarım yapmadan anında yanıt veriliyor
  • Eklenti ve entegrasyon yapısı

    • PyCharm eklentisi Kotlin ile yazıldı ve yerel native C++ sunucu üzerinden çıkarım token'ları sağlandı
    • Temiz API, yüksek hızlı yanıt ve cache stratejileriyle gerçek iş geliştirme akışına optimize edildi

FLCC'nin getirdiği somut geliştirme üretkenliği değişimi

  • Log kalitesi ve verim aynı anda artıyor

    • Yapay zeka otomatik tamamlama logları sayesinde print debugging/üretim loglarının kalitesi ve yazım verimi aynı anda yükseliyor
    • Kısa ve net loglar otomatik önerildiği için debugging akışı kesilmiyor
  • Küçük, uzmanlaşmış LLM'lerin pratik değeri

    • Büyük LLM'ler yerine belirli bir amaca (tek satırlık kod tamamlama) optimize edilmiş küçük yapay zeka modelleri, gerçek geliştirme ortamında ciddi bir üretkenlik yeniliği sunuyor
    • Bu, başka alanlarda da amaç odaklı küçük modellerin gerçek iş akışlarını somut biçimde iyileştirebileceğini gösteren temsilî bir örnek

5 yorum

 
loblue 2025-07-28

Keşke C++ için de böyle bir şey olsa!

 
iolothebard 2025-07-28

Bunu yapmak için ayda $20 ~ $200 harcamak biraz...

 
aqqnucs 2025-07-29

Sanırım bu kişi IDE abonelik ücretinden bahsediyor. FLCC ücretsiz sürümde sunulmuyor.
Ama insanlar yalnızca bunu bekleyerek para ödemiyor zaten.

 
shoyuvanilla 2025-07-30

Ah, ücretsiz sürümde kullanılamıyormuş. Ben yanlış anlamışım 😅

 
shoyuvanilla 2025-07-28

Yerelde çalıştığı için ücret gerekmeyecek gibi görünüyor