Teilen

7. November 2024

KI-Codierungsassistenten mit dem langen Kontext von Gemini-Modellen optimieren

Beyang Liu

Sourcegraph

Paige Bailey

AI Developer Experience Engineer

Vishal Dharmadhikari

Product Solutions Engineer

Hero-Image für Sourcegraph-Showcase

Einer der spannendsten Anwendungsbereiche für lange Kontextfenster ist die Codegenerierung und das Codeverständnis. Große Codebases erfordern ein tiefes Verständnis komplexer Beziehungen und Abhängigkeiten, was für herkömmliche KI-Modelle schwierig ist. Durch die Erweiterung der Menge an Code mit großen Kontextfenstern können wir ein neues Maß an Genauigkeit und Nützlichkeit bei der Codegenerierung und beim Codeverständnis erreichen.

Wir haben uns mit Sourcegraph, den Entwicklern des KI-basierten Programmierassistenten Cody, der LLMs wie Gemini 1.5 Pro und Flash unterstützt, zusammengetan, um das Potenzial von langen Kontextfenstern in realen Programmierszenarien zu untersuchen. Sourcegraph konzentriert sich auf die Integration von Codesuche und ‑intelligenz in die KI-Codegenerierung und hat Cody erfolgreich bei Unternehmen mit großen, komplexen Codebasen wie Palo Alto Networks und Leidos eingesetzt. Das Unternehmen ist daher der ideale Partner für dieses Projekt.

Ansatz und Ergebnisse von Sourcegraph

Sourcegraph hat die Leistung von Cody mit einem Kontextfenster von 1 Million Tokens (mit Google Gemini 1.5 Flash) mit der Produktionsversion verglichen. Durch diesen direkten Vergleich konnten sie die Vorteile des erweiterten Kontexts isolieren. Sie konzentrierten sich auf die Beantwortung technischer Fragen, eine wichtige Aufgabe für Entwickler, die mit großen Codebases arbeiten. Sie haben einen Datensatz mit anspruchsvollen Fragen verwendet, die ein tiefes Verständnis von Code erforderten.

Die Ergebnisse waren beeindruckend. Bei drei der wichtigsten Benchmarks von Sourcegraph – „Essential Recall“, „Essential Concision“ und „Helpfulness“ – wurden mit dem längeren Kontext deutliche Verbesserungen erzielt.



  • Wichtige Fakten abrufen: Der Anteil wichtiger Fakten in der Antwort ist deutlich gestiegen.

  • Wichtige Fakten: Der Anteil wichtiger Fakten, normalisiert nach Antwortlänge, hat sich ebenfalls verbessert. Das deutet auf präzisere und relevantere Antworten hin.

  • Nützlichkeit: Die Gesamtnützlichkeitsbewertung, normalisiert nach Antwortlänge, ist deutlich gestiegen, was auf eine nutzerfreundlichere Erfahrung hindeutet.

Alternativtext für dieses Bild: Balkendiagramm mit der Qualitätsverbesserung zwischen Codebase und Cody mit Gemini 1.5 Flash

Außerdem wurde durch die Verwendung von Modellen mit langem Kontext die allgemeine Halluzinationsrate (die Generierung von sachlich falschen Informationen) drastisch reduziert. Die Halluzinationsrate sank von 18,97% auf 10,48 %. Das ist eine deutliche Verbesserung der Genauigkeit und Zuverlässigkeit.

Balkendiagramm mit dem Unterschied bei der Halluzinationsrate zwischen Code base und Cody mit Gemini 1.5 Flash

Kompromisse und zukünftige Ausrichtung

Die Vorteile eines langen Kontexts sind zwar erheblich, es gibt aber auch Nachteile. Die Zeit bis zum ersten Token steigt linear mit der Länge des Kontexts. Um dieses Problem zu beheben, hat Sourcegraph einen Prefetching-Mechanismus und eine mehrschichtige Kontextmodellarchitektur für das Caching des Ausführungsstatus von Modellen implementiert. Mit den Long-Context-Modellen Gemini 1.5 Flash und Pro wurde die Zeit bis zum ersten Token für 1-MB-Kontexte von 30–40 Sekunden auf etwa 5 Sekunden optimiert. Das ist eine erhebliche Verbesserung für die Echtzeit-Codegenerierung und den technischen Support.

Diese Zusammenarbeit zeigt das transformative Potenzial von Modellen mit langem Kontext bei der Revolutionierung des Verständnisses und der Generierung von Code. Wir freuen uns auf die Zusammenarbeit mit Unternehmen wie Sourcegraph, um mit großen Kontextfenstern noch mehr innovative Anwendungen und Paradigmen zu ermöglichen.

Wenn Sie sich genauer mit den detaillierten Bewertungsmethoden, Benchmarks und Analysen von Sourcegraph befassen möchten, einschließlich anschaulicher Beispiele, sollten Sie sich den ausführlichen Blogpost ansehen.