Adrenaline ist ein Entwicklerwerkzeug, das künstliche Intelligenz einsetzt, um den Debugging-Prozess zu automatisieren. Es integriert sich in Code-Editoren und Befehlszeilenschnittstellen, um Laufzeitfehler, Stack-Traces und Code-Ausschnitte zu analysieren und anschließend verständliche Erklärungen sowie vorgeschlagene Patches zu generieren. Das Werkzeug basiert auf Large-Language-Model-Technologie, speziell auf feinabgestimmten Versionen der GPT-4-Architektur von OpenAI, und wurde erstmals im März 2023 als öffentliche Beta von dem Startup Adrenaline AI veröffentlicht, das von ehemaligen Google- und Meta-Ingenieuren gegründet wurde.
Im Gegensatz zu herkömmlichen Debuggern, die manuelle Haltepunkte und Variablenprüfungen erfordern, analysiert Adrenaline Fehlermeldungen und setzt sie mit dem umgebenden Quellcode in Beziehung. Es verwendet ein auf Transformer basierendes Modell, das mit Millionen öffentlicher GitHub-Repositories und Stack-Overflow-Diskussionen trainiert wurde. Das System gibt eine Diagnose in natürlicher Sprache aus, hebt die wahrscheinlich fehlerhaften Zeilen hervor und schlägt einen korrigierten Code-Block vor. In Benchmark-Tests, die das Unternehmen im Juni 2023 veröffentlichte, löste Adrenaline 78 % von 1.200 realen Python-Ausnahmen aus Open-Source-Projekten ohne menschliches Eingreifen, verglichen mit einer Erfolgsquote von 34 % für das Basis-GPT-4-Modell ohne Feinabstimmung.
Architektur und Modelltraining
Die Kern-Engine von Adrenaline ist eine feinabgestimmte Encoder-Decoder-Architektur, die von GPT-4 abgeleitet ist und zusätzliche Schichten für codespezifische Tokenisierung enthält. Der Trainingsdatensatz umfasste 2,3 Millionen Paare aus fehlerhaftem und korrigiertem Code, die aus GitHub-Pull-Requests zwischen 2019 und 2023 extrahiert wurden. Das Modell verwendet Multi-Head-Attention, um sich auf Variablenabhängigkeiten und Kontrollfluss zu konzentrieren, und nutzt Gradient-Clipping und Layer-Normalisierung, um das Training auf langen Code-Sequenzen zu stabilisieren. Das Unternehmen berichtete, dass das endgültige Modell 175 Milliarden Parameter hat, obwohl diese Zahl nicht unabhängig verifiziert ist.
Die Inferenz-Pipeline des Werkzeugs wendet Beam-Search mit einer Beam-Breite von 5 an, um Kandidaten-Fixes zu generieren, und ordnet sie dann mithilfe einer benutzerdefinierten Verlustfunktion, die syntaktisch ungültige Ausgaben bestraft. Temperature-Scaling ist in der Produktion auf 0,2 für deterministische Patches eingestellt, während eine höhere Temperatur von 0,8 im interaktiven „Explore“-Modus verwendet wird. Adrenaline integriert auch Modell-Pruning, um die Latenz zu reduzieren; die bereitgestellte Version läuft mit 12 Token pro Sekunde auf einer einzelnen Nvidia-A100-GPU, gegenüber 45 Token pro Sekunde für das unbeschnittene Modell.
Integration und Produktversionen
Adrenaline veröffentlichte Version 1.0 im September 2023 und fügte Unterstützung für visual-studio-code- und jetbrains-IDEs über offizielle Plugins hinzu. Version 1.2, die im Januar 2024 startete, führte eine Befehlszeilenschnittstelle ein, die mit github-actions für CI/CD-Pipelines kompatibel ist. Das Werkzeug unterstützt Python, JavaScript, TypeScript und Go, mit experimenteller Unterstützung für Rust, die in Version 1.3 (April 2024) hinzugefügt wurde.
Ein bemerkenswertes Merkmal ist der „Traceback-Visualizer“, der den Aufrufstapel als interaktiven Graphen darstellt und Entwicklern ermöglicht, durch Frames zu klicken. Diese Funktion wurde in Zusammenarbeit mit Forschern von MIT CSAIL entwickelt und auf der International Conference on Software Engineering 2024 präsentiert. Adrenaline bietet auch einen webbasierten Playground unter adrenaline.dev, auf dem Benutzer Fehlerprotokolle einfügen und ohne Installation von Software Fixes erhalten können.
Leistung und Annahme
In einer externen Bewertung durch das Software Engineering Institute der Carnegie Mellon University im Februar 2024 korrigierte Adrenaline korrekt 61 % von 500 Fehlern aus dem Defects4J-Benchmark und übertraf damit das bisherige State-of-the-Art-Werkzeug RepairLLM, das 47 % erreichte. Die durchschnittliche Zeit zur Erstellung eines Fixes betrug 4,2 Sekunden, verglichen mit 11,8 Sekunden bei RepairLLM. Das Werkzeug hatte jedoch Schwierigkeiten mit Multi-Datei-Fehlern, die kontextübergreifende Modulkenntnisse erfordern, und schaffte in solchen Fällen nur 23 % Erfolgsquote.
Stand Mai 2024 meldete Adrenaline über 40.000 aktive Entwickler und 1,2 Millionen kumulativ angewandte Fixes. Das Unternehmen sammelte im Oktober 2023 eine Series-A-Finanzierungsrunde von 12 Millionen US-Dollar ein, angeführt von a16z mit Beteiligung von Y Combinator. Der kostenlose Tarif erlaubt 50 Debugging-Sitzungen pro Monat, während der Pro-Tarif für 20 US-Dollar pro Benutzer und Monat unbegrenzte Sitzungen und Team-Analysen bietet.
Einschränkungen und zukünftige Richtungen
Die Genauigkeit von Adrenaline nimmt bei Legacy-Codebasen ab, die veraltete Sprachversionen verwenden; für Python-2.7-Code fällt die Fix-Erfolgsquote auf 41 %. Das Werkzeug kann auch keine hardware-spezifischen Fehler oder Parallelitätsprobleme behandeln, die eine Laufzeit-Zustandsprüfung erfordern. Das Entwicklungsteam hat Pläne für Version 2.0 angekündigt, die für Ende 2024 vorgesehen ist und Reinforcement-Learning-from-Human-Feedback (RLHF) integrieren wird, um Fixes besser an Projekt-Codierungskonventionen anzupassen.
Forscher haben festgestellt, dass Adrenaline-Ansatz ähnlich der früheren Arbeit an Sequenz-zu-Sequenz-Modellen für Programmreparatur ist, aber seine Größe und Feinabstimmungsstrategie sind neuartig. Das Unternehmen untersucht auch die Integration mit Amazon Web Services CodeGuru und Azure DevOps, um automatisch Pull-Requests für erkannte Fehler zu erstellen.
Wettbewerbslandschaft
Adrenaline konkurriert mit Werkzeugen wie der Code-Review-Funktion von GitHub Copilot und OpenAIs Codex, unterscheidet sich jedoch durch den ausschließlichen Fokus auf Fehlerdiagnose statt Codegenerierung. In einem direkten Vergleichstest, der im März 2024 von Stanford AI Lab durchgeführt wurde, produzierte Adrenaline für 72 % von 300 Laufzeitfehlern genauere Erklärungen als Copilot mit 58 %. Das Unternehmen hat auch seine Bewertungs-Umgebung unter der MIT-Lizenz als Open Source veröffentlicht, sodass Forscher seine Benchmarks reproduzieren können.
Stand Mitte 2024 bleibt das breitere Feld der KI-gestützten Fehlerbehebung neuartig, wobei Adrenaline eines der wenigen dedizierten Produkte ist. Die Gründer haben erklärt, dass zukünftige Versionen auf mobile Entwicklung und eingebettete Systeme abzielen werden, obwohl keine Veröffentlichungstermine angekündigt wurden.