Local Code AttentionEine VS-Code-Extension, die echte Attention eines lokalen Code-Sprachmodells direkt im Quellcode zeigt. Benutzung
Die native Minimap übernimmt Attention-Farben über die öffentliche Semantic-Tokens-API. Dadurch werden auch die betroffenen Zeichen im Editor farbig; die Hintergrund-Highlights bleiben bestehen. Vorhandene semantische Sprachfarben werden beim Aktivieren des Overlays übernommen und außerhalb der Attention-Bereiche erhalten. Deaktivieren der Minimap gibt die semantische Färbung wieder an die Sprach-Extension zurück. Explizit deaktiviertes semantisches Highlighting ( Nach Codeänderungen verschwinden alte Markierungen sofort. Nach 1,5 Sekunden Pause wird neu analysiert. Cursorwechsel verwenden bereits berechnete Werte und brauchen keine Modellanfrage. Die drei zuletzt analysierten Inhalte bleiben im Arbeitsspeicher; nach Neustart wird neu gerechnet. Was die Farben bedeutenDas Modell ist Qwen2.5-Coder-0.5B, mit festgelegter Modellrevision. Die Extension liest echte Softmax-Attention aus dem Forward-Pass mit Textmarkierung: Die Attention aller ausgewaehlten Modell-Tokens wird wieder pro Ziel addiert und durch die Tokenzahl geteilt. Auch starke Einzelbezuege duerfen erscheinen; es gibt keine 60-%-Bedingung. Erst danach wird die Darstellung begrenzt: hoechstens zwoelf starke Ziele, mit zusaetzlichem Ausblenden des schwachen Hintergrunds. Bei mindestens vier positiven Zielen dient deren unteres Quartil als Hintergrundniveau. Die Farbe beschreibt den Abstand ueber diesem Niveau; nur Treffer ab 35 % der verbleibenden Spitze werden gezeigt. Ein gleichmaessig flacher Hintergrund ergibt keine Markierungen. Hover-Prozentwerte bleiben die urspruengliche relative Attention-Staerke, vor dieser Farbkorrektur. Ein bis drei isolierte Treffer behalten ihre bisherige Skala. Das gilt für Editor und native Minimap, über mehrere Zeilen und beim Rückwärtsmarkieren. Nach einer sofortigen Vorschau berechnet der Worker nach 50 ms Pause die kombinierten Scores aus der vollständigen RAM-Matrix. Normalerweise ist kein neuer Modelllauf nötig. Wurde die Matrix einer älteren Datei aus dem Cache verdrängt, wird sie für eine genaue Auswahl neu berechnet. Veraltete Ergebnisse nach Auswahlwechseln werden verworfen. Einfache Wortklicks funktionieren unverändert. Standardansicht ist jetzt Positionsbereinigt. Für ein Token an der Dateiposition Über Local Attention: Choose Normalization oder Die Farbstärke fällt standardmäßig quadratisch ab: Local Attention: Adjust Contrast bietet den Standard mit Exponent 2, einen sanften Verlauf mit 0,75 und linearen Original-Kontrast mit 1. Alternativ Nahe Tokens werden immer leicht und fest mit Für kombinierte Auswahl-Scores hält der Worker die vollständigen CPU-Attention-Matrizen im RAM. Der Cache verwendet normalerweise bis zu ein Achtel des Systemspeichers, maximal 4 GiB, behält aber mindestens die aktuelle zulässige Datei vollständig. Eine 16.384-Token-Matrix belegt 1 GiB, eine 32.768-Token-Matrix 4 GiB. Ältere Matrizen können verdrängt und bei Bedarf neu berechnet werden. Standardmäßig werden die ersten vier Modell-Tokens der Datei bei der Auswahl sichtbarer Verbindungen ausgeblendet. Solche frühen Tokens können als „Attention Sinks“ viel Attention sammeln. Die übrigen Verbindungen werden anschließend relativ zu ihrem eigenen Maximum dargestellt; ein ausgeblendeter Anfang kann die Farbintensität deshalb nicht herunterdrücken. Der Filter wird vor der Auswahl der stärksten 48 Verbindungen angewendet. Der Anfangsfilter selbst verändert weder die Modellberechnung einschließlich der frühen Tokens noch die verbleibenden Rohgewichte. Er ist unabhängig von der Positionskorrektur und bleibt auch in der Raw-Ansicht aktiv, solange er nicht auf
Das ist Modell-Attention, kein Nachweis für semantische oder kausale Codeabhängigkeiten. Auch Kommentare, Satzzeichen oder unerwartete Stellen können stark gewichtet sein. Das Modell ist kausal: Ein Token beachtet nur frühere Tokens und sich selbst; Incoming macht auch Beziehungen zu späteren Tokens sichtbar. Große Dateien und HardwareDie gesamte Datei wird in einem gemeinsamen Modellkontext analysiert, bis maximal 32.768 Tokens. Es gibt keine voneinander getrennten Analysefenster. Jedes Token sieht seinen gesamten kausal verfügbaren Dateikontext. Incoming-Attention macht dadurch auch Verbindungen zu weit späteren Stellen sichtbar. RoPE-Positionen und alle 24 Layer gelten durchgehend für die ganze Datei. Intern werden lediglich 256 Query-Zeilen gleichzeitig berechnet, immer gegen sämtliche Datei-Keys; die Softmax und das Modell entsprechen der ursprünglichen vollständigen Attention. Die Statusleiste nennt ausdrücklich
Apple Silicon verwendet automatisch Metal/MPS mit Float16; andere Rechner verwenden die CPU mit Float32. Vollständige Attention braucht quadratisch mehr Rechenarbeit und Matrixspeicher mit wachsender Tokenzahl. Query-Tiles und blockweises Ranking vermeiden das gleichzeitige Vorhalten aller Layer-/Head-Matrizen. Die Statusanzeige meldet den Layer-Fortschritt; Abbrechen beendet den Worker. Nach dem Modelllauf wird ungenutzter Metal-Poolspeicher freigegeben. Cursorwechsel zeigen sofort gespeicherte Treffer; Textauswahlen werden aus der RAM-Matrix kombiniert und auf starke Spitzen begrenzt. Erstmaliger Download und Modellstart kommen zur Laufzeit hinzu. CPU-Analysen können deutlich länger dauern. Gemessen auf dem Entwicklungs-Mac mit Apple Silicon und 48 GB RAM (Modell bereits geladen; Version 0.1.9: echter Modelllauf plus vier Ranglisten; seit 0.2.0 nur noch zwei Ranglisten):
Modellstart zusätzlich etwa 1–2 Sekunden bei vorhandenem Cache. Gemessener Metal-Pool am Layer-Ende bei 16.384 Tokens etwa 4,6 GiB, nach Freigabe etwa 1 GiB; dies ist keine vollständige Prozess-RAM-Messung. Modell, Arbeitsdaten und Ranglisten brauchen zusätzlichen Speicher neben der CPU-Matrix. 32.768 Tokens sind zulässig, aber noch nicht gemessen. Reproduzierbar mit macOS ARM wurde mit dem echten Modell getestet. Windows x64, Intel macOS und Linux (x64/ARM64) sind implementiert, aber noch nicht auf diesen Systemen getestet. Bei Remote SSH läuft die Workspace-Extension einschließlich Modell auf dem Remote-Rechner; dort gelten dessen Hardware und Speichergrenzen. Remote SSH wurde noch nicht praktisch getestet. Windows ARM64 wird derzeit nicht unterstützt. Intel-Macs verwenden wegen fehlender neuerer PyTorch-Wheels PyTorch 2.2.2. Befehle und Einstellungen
Einstellungen unter LokalitätDer Code wird über stdin an einen von der Extension gestarteten Prozess auf demselben Extension-Host übergeben. Es gibt keinen HTTP-Server, keine externe Inference-API und keine Extension-Telemetrie. GitHub, Python-Paketserver und Hugging Face werden nur für Runtime-/Modelldownloads verwendet. Nach vollständiger Einrichtung ist Analyse offline möglich. In untrusted Workspaces bleibt die Analyse aus. Installierte Pakete und Modell liegen im VS-Code-Global-Storage dieser Extension; Quellcode und Attention-Ergebnisse werden dort nicht gespeichert. Die vorhandene Runtime wird nach erfolgreicher Einrichtung ohne erneute Paketinstallation wiederverwendet. Entwicklung
Mit F5 startet ein Extension Development Host. Backend-Tests benötigen die Pakete aus
Der Editor-Integrationstest verwendet einen isolierten VS-Code-Test-Host und lädt dabei die echte Runtime und das echte Modell herunter. Es gibt keinen simulierten Attention-Modus in der Extension. |