Teilen

7. Nov. 2024

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

Beyang Liu

Sourcegraph

Paige Bailey

AI Developer Experience Engineer

Vishal Dharmadhikari

Product Solutions Engineer

Sourcegraph-Showcase-Hero

Eine der spannendsten Herausforderungen bei der Anwendung von Long-Context-Windows ist die Codegenerierung und -auswertung. Große Codebases erfordern ein tiefes Verständnis komplexer Beziehungen und Abhängigkeiten, was traditionellen KI-Modellen schwerfällt. Durch die Erweiterung der Codemenge mit großen Kontextfenstern können wir eine neue Genauigkeit und Nützlichkeit bei der Codegenerierung und -benutzung erreichen.

Wir haben mit Sourcegraph zusammengearbeitet, den Entwicklern des KI-Codierungsassistenten Cody, der LLMs wie Gemini 1.5 Pro und Flash unterstützt. Ziel war es, das Potenzial von langen Kontextfenstern in realen Codierungsszenarien zu untersuchen. Sourcegraph hat sich darauf konzentriert, Codesuche und ‑intelligenz in die KI-Codegenerierung zu integrieren. Außerdem wurde Cody erfolgreich in Unternehmen mit großen, komplexen Codebases wie Palo Alto Networks und Leidos eingesetzt. Das macht Sourcegraph zum idealen Partner für diese Erkundung.

Ansatz und Ergebnisse von Sourcegraph

Sourcegraph hat die Leistung von Cody mit einem Kontextfenster von 1 Million Tokens (mit Gemini 1.5 Flash von Google) mit der Produktionsversion verglichen. Durch diesen direkten Vergleich konnte das Unternehmen 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 verwendeten einen Datensatz mit herausfordernden Fragen, 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“ – konnten mit dem längeren Kontext erhebliche Verbesserungen erzielt werden.



  • Essenzielle Erinnerung: Der Anteil wichtiger Fakten in der Antwort ist deutlich gestiegen.

  • Wesentliche Informationen auf den Punkt gebracht: Der Anteil an wesentlichen Fakten, normalisiert nach Antwortlänge, hat sich ebenfalls verbessert. Das spricht für prägnantere und relevantere Antworten.

  • Nützlichkeit: Der Gesamtwert für die Nützlichkeit, normalisiert nach Antwortlänge, hat sich deutlich erhöht, was auf eine verbesserte Nutzerfreundlichkeit hindeutet.

Alt-Text for this: Balkendiagramm, das die Qualitätsverbesserung zwischen Codebase und Cody mit Gemini 1.5 Flash zeigt

Außerdem konnte durch die Verwendung von Modellen mit langem Kontext die Gesamthallucinationsrate (die Generierung von sachlich falschen Informationen) drastisch gesenkt werden. Die Rate der Halluzinationen sank von 18,97% auf 10,48%, was eine deutliche Verbesserung der Genauigkeit und Zuverlässigkeit bedeutet.

Balkendiagramm mit der Differenz der Halluzinationsrate zwischen Codebasis und Cody mit Gemini 1.5 Flash

Kompromisse und zukünftige Richtung

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

Diese Zusammenarbeit zeigt das transformative Potenzial von Modellen mit langem Kontext bei der Revolutionierung des Codeverständnisses und der Codegenerierung. Wir freuen uns auf die Zusammenarbeit mit Unternehmen wie Sourcegraph, um mit großen Kontextfenstern noch innovativere Anwendungen und Paradigmen zu entwickeln.

Weitere Informationen zu den Bewertungsmethoden, Benchmarks und Analysen von Sourcegraph, einschließlich illustrativer Beispiele, finden Sie in diesem ausführlichen Blogpost.