28 Punkte von GN⁺ 2025-07-28 | 5 Kommentare | Auf WhatsApp teilen
  • JetBrains Full Line Code Completion (FLCC) ist eine AI-basierte Autovervollständigungsfunktion, die in PyCharm und GoLand verfügbar ist und effektives Schreiben von Logs sowie die Entwicklungseffizienz deutlich verbessert
  • Sie reduziert den Aufwand für wiederholtes Schreiben von f-string-Logsyntax oder den Zugriff auf Variablen und DataFrames, und die AI erzeugt automatisch prägnante und klare, zum Kontext passende Logs
  • Das Modell ist ein kleines LLM, das auf dem lokalen PC läuft, mit schneller Inferenz, geringer Speicherauslastung (rund 1 GB) und ohne Bedenken hinsichtlich Datenschutz oder Datenabfluss
  • Laut dem Paper von JetBrains wurde ein Python-spezialisierter kleiner Transformer (100M Parameter) trainiert, der Ein-Zeilen-Autovervollständigung innerhalb eines Code-Kontexts von 384 Zeichen unterstützt; auch bei Datenvorverarbeitung und Tokenisierung wurden die Eigenschaften von Python aktiv berücksichtigt
  • Der Erfolg von FLCC zeigt eindrucksvoll, wie zielgerichtete kleine Modelle statt riesiger LLMs die Produktivität in der realen Entwicklungsarbeit steigern können

Automatisches Schreiben von AI-Logs: die tatsächliche Veränderung der Entwicklerproduktivität

  • JetBrains Full Line Code Completion (FLCC) bietet in PyCharm (seit Ende 2023 standardmäßig enthalten), GoLand und weiteren IDEs die Funktion zur Autovervollständigung kompletter Log-Anweisungen
  • Bei sequenzieller Datenverarbeitung, asynchronen API-Aufrufen oder Vektoroperationen sind print-Debugging und detaillierte Logs unverzichtbar
  • Durch wiederholte Eingaben wie f-strings, Zugriffe auf Variablen/Listen/DataFrames oder die Wahl des Loggers (loguru vs. logging) wurde der Debugging-Flow häufig unterbrochen
  • Zum Beispiel wirkt logger.info(f'Adding a log for {your_variable} and {len(my_list)} and {df.head(0)}') mit loguru einfach, bringt aber kognitiven Aufwand durch Klammern, Variablennamen, DataFrame-Syntax und Logger-Typ mit sich

Wie FLCC den Entwicklungs-Flow und die Gewohnheiten beim Schreiben von Logs verändert hat

  • Full Line Code Completion kombiniert alle Kontextinformationen wie Dateiendung, Pfad und den Code am Cursor zu einem Modell-Prompt und vervollständigt automatisch die natürlichste Log-Anweisung
  • Die vorgeschlagenen Logs sind auf Variablen, DataFrames und Operationen im Kontext optimiert und dadurch oft klarer als von Hand geschriebene Varianten
  • Dank der prägnanten Logs muss man sie nach dem Debugging oft nicht mehr aus dem Code entfernen; ihre Qualität reicht aus, um sie auch in der Produktionsumgebung beizubehalten
  • Beispiele

    • Beim Prüfen einer Redis-URL: redis = aioredis.from_url(settings.redis_url, decode_responses=True) → die AI schlägt automatisch ein Redis-Verbindungslog vor
    • Beim Profiling eines DataFrame: Nach Definition von Daten und Spalten werden automatisch Profiling-Logs etwa für die shape von df vorgeschlagen

Technische Merkmale und Implementierung des JetBrains-FLCC-Modells

  • Vollständig lokale Ausführung

    • Modellinferenz und Code-Vorschläge werden ausschließlich auf dem lokalen PC verarbeitet, wodurch es ohne Sorgen um Datenschutz oder Code-Abfluss sicher ist
    • Auf dem Mac beträgt die Modellgröße etwa 1 GB, wodurch der Speicherbedarf gering und die Geschwindigkeit sehr hoch ist
    • Cloud-basierte Infrastruktur für große LLMs wie vLLM, SGLM, Ray oder PagedAttention ist nicht nötig
  • Python-spezialisierte kleine LLM-Architektur

    • Die erste Implementierung basierte auf einem mit PyTorch entwickelten GPT-2-artigen Decoder-only Transformer (100M Parameter), später wurde die Architektur in Richtung llama2 verbessert
    • Aus einem Subset von The Stack mit 6 TB und 30 Sprachen wurden nur 45 GB verwendet; Code-Kommentare und unnötige import-Anweisungen wurden entfernt, um sich auf echte Codegenerierung zu konzentrieren
    • Entsprechend den Eigenschaften der Sprache Python wandelt ein BPE-basierter Tokenizer Strukturen wie Einrückung und Scope in <SCOPE_IN>/<SCOPE_OUT>-Tokens um, um unnötigen Tokenverbrauch durch Leerraumunterschiede zu vermeiden
    • Die Größe des Tokenizer-Vokabulars wurde auf 16.384 optimiert
    • Da in Python import-Anweisungen häufig am Ende des Codes ergänzt werden, wurde diese Gewohnheit auch im Training berücksichtigt und import aus den Daten vollständig entfernt
  • Training und Optimierung

    • Das Training lief mehrere Tage auf 8 NVIDIA-A100-GPUs, bewertet mit Cross-Entropy-Loss
    • Durch Quantisierung wurde das FP32-Modell in INT8 umgewandelt (400 MB → 100 MB), sodass es ohne Belastung des PC-Speichers genutzt werden kann
    • Für CPU-Inferenz kam ONNX RT zum Einsatz, später wurde der Server auf eine llama.cpp-Struktur umgestellt
    • Mit Beam Search (k=20) werden verschiedene Token-Sequenzen erzeugt; ein Zeilenumbruch dient als Abbruchkriterium für das Ergebnis
    • Von dem Kontextfenster mit 384 Zeichen werden 50 % vorab prefetched und gecacht, sodass beim Zurückspringen des Cursors in vorherigen Code ohne erneute Inferenz sofort geantwortet werden kann
  • Plugin- und Integrationsarchitektur

    • Das PyCharm-Plugin ist in Kotlin geschrieben und liefert Inferenz-Tokens über einen lokalen nativen C++-Server
    • Cleane API, schnelle Antworten und Caching-Strategien sind auf reale Entwickler-Workflows optimiert

Konkrete Produktivitätsgewinne durch FLCC in der Entwicklung

  • Gleichzeitige Verbesserung von Log-Qualität und Effizienz

    • Durch AI-autovervollständigte Logs verbessern sich sowohl die Qualität von print-Debugging/Produktionslogs als auch die Effizienz beim Schreiben
    • Kurze und klare Logs werden automatisch vorgeschlagen, ohne den Debugging-Flow zu unterbrechen
  • Praktischer Wert kleiner spezialisierter LLMs

    • Nicht große LLMs, sondern kleine AI-Modelle, die für einen bestimmten Zweck (Ein-Zeilen-Codevervollständigung) optimiert sind, bringen in realen Entwicklungsumgebungen große Produktivitätsgewinne
    • Das ist ein repräsentatives Beispiel dafür, dass zielgerichtete kleine Modelle auch in anderen Bereichen reale Workflows substanziell verbessern können

5 Kommentare

 
loblue 2025-07-28

So etwas wäre auch für C++ schön!

 
iolothebard 2025-07-28

Dafür monatlich 20 bis 200 US-Dollar auszugeben, ist schon eher …

 
aqqnucs 2025-07-29

Diese Person meint wohl die Kosten für das IDE-Abonnement. FLCC wird in der kostenlosen Version nicht angeboten.
Aber es ist auch nicht so, dass die Leute nur deswegen Geld bezahlen.

 
shoyuvanilla 2025-07-30

Ah, in der kostenlosen Version ist das also nicht nutzbar. Da habe ich das falsch verstanden 😅

 
shoyuvanilla 2025-07-28

Da es lokal ausgeführt wird, scheint keine Gebühr erforderlich zu sein.