Thanks to visit codestin.com
Credit goes to docs.github.com

Skip to main content

Anwendungskachel: GitHub Copilot Inline-Vorschläge

Erfahren Sie, wie Sie GitHub Copilot Inlinevorschläge verantwortungsbewusst verwenden, indem Sie ihre Zwecke, Funktionen und Einschränkungen verstehen.

Wer kann dieses Feature verwenden?

Members of an enterprise with a subscription to GitHub Copilot Enterprise

Hinweis

Sie sehen sich gerade die Dokumentation für die Tarife „Free“, „Pro“ und „Team“ an. GitHub Copilot Enterprise ist nur für Kunden im GitHub Enterprise Cloud Plan verfügbar. Die vollständige Dokumentation zu Copilot Enterprise finden Sie unter Was ist GitHub Copilot? in der GitHub Enterprise Cloud-Dokumentation.

Was ist eine Anwendungskarte?

GitHub’s application and platform cards are intended to help you understand how our AI technology works, the choices application owners can make that influence application performance and behavior, and the importance of considering the whole application, including the technology, the people, and the environment. Application cards are created for AI applications and platform cards are created for AI platform services. These resources can support the development or deployment of your own applications and can be shared with users or stakeholders impacted by them.

As part of its commitment to responsible AI, GitHub adheres to Microsoft's six core principles: fairness, reliability and safety, privacy and security, inclusiveness, transparency, and accountability. These principles are embedded in the Responsible AI Standard, which guides teams in designing, building, and testing AI applications. Application and Platform Cards play a key role in operationalizing these principles by offering transparency around capabilities, intended uses, and limitations. For further insight, readers are encouraged to explore Microsoft’s Responsible AI Transparency Report and GitHub-Bedingungen.

1. Übersicht

GitHub Copilot-Inlinevorschläge bieten während Sie arbeiten Vorschläge im Stil der Autovervollständigung. Diese Vorschläge werden inline in Ihrem Editor oder in Textfeldern auf GitHub.com angezeigt, sodass Sie Code schreiben und Beschreibungen von Anforderungen schneller abrufen können.

Copilot-Inlinevorschläge gibt es in zwei Formen:

  • IDE-Inlinevorschläge: Während Sie Code in einen unterstützten Editor eingeben, bietet Copilot automatisch Inlinevorschläge an, um die aktuelle Zeile abzuschließen, neue Codeblöcke zu generieren oder Änderungen an vorhandenem Code vorzuschlagen. Zu diesen Vorschlägen kann es gehören, sowohl den Speicherort der nächsten Bearbeitung vorherzusagen, die Sie vornehmen möchten, als auch das, was diese Bearbeitung sein soll, einschließlich Löschungen, Änderungen oder Einfügungen von Code. Sie können den Gesamten oder Einen Teil eines Vorschlags akzeptieren, ihn schließen oder die Eingabe beibehalten, um ihn zu ignorieren. Inlinevorschläge funktionieren in einer vielzahl von Programmiersprachen und Frameworks.
  • Textvervollständigung für Pull Requests: Wenn Sie beim Verfassen einer Pull Request-Beschreibung auf GitHub.com innehalten, schlägt Copilot Text vor, um Ihren Gedanken fortzuführen. Der Vorschlag basiert auf dem Titel des Pull-Requests, dem vorhandenen Beschreibungstext, den Commit-Titeln, teilweisen Diffs sowie den Titeln kürzlich angezeigter Pull-Requests und Issues. Sie können den Vorschlag annehmen, indem Sie die TAB-TASTE drücken oder ablehnen, indem Sie die Eingabe fortsetzen.

Die hauptsächlich unterstützte Sprache für die Textvervollständigung von Pull-Request-Text ist Englisch. Inlinevorschläge unterstützen viele Programmiersprachen, wobei die Qualität je nach Volumen und Vielfalt der für jede Sprache verfügbaren Schulungsdaten variiert.

2. Schlüsselbegriffe

Die folgende Liste bietet ein Glossar mit Schlüsselbegriffen zu GitHub Copilot Inline-Vorschlägen:

  • Inhaltsfilterung: Ein Sicherheitssystem, das Eingabeaufforderungen und Antworten überprüft, um schädliche, anstößige oder unsichere Inhalte zu erkennen und zu blockieren, bevor sie dem Benutzer angezeigt wird.
  • Halluzination: Ein Phänomen, bei dem ein Sprachmodell eine Ausgabe generiert, die plausibel klingt, aber sachlich falsch, nicht vom bereitgestellten Kontext unterstützt oder vollständig erstellt wird. Halluzinationen sind ein bekanntes Risiko großer Sprachmodelle und sind ein wichtiger Grund, warum die menschliche Überprüfung von KI-generierten Ausgaben wichtig ist.
  • Inline-Vorschlag: Ein KI-generierter Codevorschlag aus Copilot, der während der Eingabe im Editor angezeigt wird. Inlinevorschläge können die aktuelle Zeile abschließen oder Änderungen an vorhandenem Code vorschlagen, indem sie sowohl vorhersagen, wo die nächste Änderung erfolgen soll, als auch was diese Änderung sein soll, einschließlich Einfügen, Ändern oder Löschen von Code. Vorschläge können am Cursor erscheinen oder Nutzer zu anderen relevanten Stellen in der Codebasis führen, wo sie angenommen, verworfen oder durch einfaches Weitertippen ignoriert werden können.
  • Großes Sprachmodell (LLM): Eine Art neurales Netzwerk, das auf einem großen Textteil von Textdaten trainiert wurde, der natürliche Sprache und Code generieren, analysieren und transformieren kann. Copilot Inline-Vorschläge verwenden ein oder mehrere LLMs, um den Kontext zu verarbeiten und Vorschläge zu erstellen.
  • Public code matching: Eine Sicherheitsfunktion, die überprüft, ob Copilots Vorschläge mit öffentlich verfügbarem Code übereinstimmen. Abhängig von Ihren Einstellungen werden übereinstimmende Vorschläge entweder blockiert oder mit einem Verweis auf das Quell-Repository und allen Lizenzinformationen kommentiert.
  • Textvervollständigung für Pull Requests: Ein Vorschlag zur automatischen Vervollständigung von Pull-Request-Beschreibungen auf GitHub.com. Wenn Sie während der Eingabe pausieren, schlägt Copilot auf Grundlage des Pull-Request-Kontexts Textvorschläge vor, um Ihren Gedankengang fortzuführen.
  • Trainingsdaten: Die große Menge öffentlich verfügbarer Texte und Codes, die zum Trainieren der Basismodelle hinter den Copilot-Inlinevorschlägen verwendet wurde. Die Zusammensetzung der Schulungsdaten beeinflusst die Qualität und Abdeckung der Vorschläge des Modells in verschiedenen Programmiersprachen, Frameworks und Themen.

3. Wichtige Merkmale oder Funktionen

Die hier beschriebenen wichtigsten Funktionen und Fähigkeiten erläutern, wofür die Inline-Vorschläge von GitHub Copilot ausgelegt sind und wie sie bei den unterstützten Aufgaben abschneiden.

  • Inlinecodevorschläge: Während Sie Code in einen unterstützten Editor eingeben, bietet Copilot automatisch Inlinevorschläge an, die die aktuelle Zeile abschließen, neue Codeblöcke generieren oder Bearbeitungen an vorhandenen Code vorschlagen können. Diese Vorschläge können das Einfügen, Ändern oder Löschen von Code, Codekommentaren, Tests und vieles mehr umfassen, indem sowohl vorhergesagt wird, welche Änderungen vorgenommen werden sollten als auch wo in der Codebasis sie auftreten sollten. Vorschläge können an der Cursorposition erscheinen oder Nutzer zu anderen relevanten Bearbeitungsstellen führen und vollständig oder teilweise angenommen, verworfen oder durch Weitertippen ignoriert werden.
  • Kommentargesteuerte Codegenerierung: Sie können Inlinevorschläge leiten, indem Sie Codekommentare schreiben, die den erwarteten Code beschreiben. Kommentare wie „Rekursion verwenden“ oder „ein Singletonmuster verwenden“ beeinflussen beispielsweise die Art des Algorithmus, den Copilot vorschlägt.
  • Unterstützung für mehrere Sprachen: Inlinevorschläge funktionieren in einer vielzahl von Programmiersprachen und Frameworks. Die Qualität der Vorschläge hängt vom Umfang und der Vielfalt der für jede Sprache verfügbaren Schulungsdaten ab. Eine Liste der aktiv entwickelten Programmiersprachen, die sich auf GitHub befinden, finden Sie unter Programmierungssprachen.
  • Textvervollständigung für Pull Requests: Wenn Sie beim Verfassen einer Pull-Request-Beschreibung auf GitHub.com innehalten, schlägt Copilot Formulierungen vor, um Ihren Gedanken fortzuführen. Der Vorschlag basiert auf dem Titel des Pull-Requests, dem vorhandenen Beschreibungstext, den Commit-Titeln, teilweisen Diffs sowie den Titeln kürzlich angesehener Pull-Requests und Issues.

4. Beabsichtigte Verwendung

GitHub Copilot Inline-Vorschläge können in verschiedenen Szenarien branchenübergreifend eingesetzt werden. Beispiele für Anwendungsfälle sind:

  • Beschleunigen der Codeerstellung: Entwickler können Inlinevorschläge verwenden, um schneller zu arbeiten, indem sie vorhergesagte Änderungen während der Eingabe akzeptieren, z. B. Code abschließen, neue Blöcke generieren oder vorhandenen Code ändern. Vorschläge können Code über die aktuelle Zeile oder an anderen relevanten Speicherorten in der Datei einfügen, aktualisieren oder löschen, indem sie sowohl vorausschauen, welche Änderungen vorgenommen werden sollten als auch wo sie auftreten sollen. Dies ist besonders nützlich für Codebausteine, sich wiederholende Muster, allgemeine Didiome und die Aufrechterhaltung der Konsistenz, da code sich in allen unterstützten Sprachen und Frameworks weiterentwickelt.
  • Generating unit tests: Copilot kann Testfälle basierend auf dem umgebenden Code vorschlagen, einschließlich möglicher Eingabeparameter, erwarteter Ausgabewerte und Assertionen. Dies hilft Entwicklern, schneller eine Testabdeckung zu erstellen, auch für Randfälle und Grenzbedingungen, die manuell möglicherweise nur schwer zu identifizieren sind. Generierte Tests sollten weiterhin überprüft werden, da sie möglicherweise nicht alle Szenarien abdecken.
  • Kommentargesteuerte Codegenerierung: Entwickler können Kommentare in natürlicher Sprache schreiben, die den benötigten Code beschreiben, und Copilot generiert entsprechende Implementierungen oder Änderungen. Dies kann hilfreich sein, um Algorithmen, Entwurfsmuster oder Methoden und Eigenschaften anzugeben, die einer Klasse hinzugefügt werden sollen.
  • Pull-Request-Beschreibungen verfassen: Wenn Sie auf GitHub.com eine Pull-Request-Beschreibung schreiben, kann Copilot Formulierungen vorschlagen, um Ihren Gedankengang fortzuführen, sodass Sie klare Zusammenfassungen Ihrer Änderungen schneller verfassen können.

5. Modelle und Trainingsdaten

GitHub Copilot Inline-Vorschläge nutzen eine Vielzahl von KI-Modellen, um die Funktionalität bereitzustellen, die Benutzer sehen. Einen Vergleich der für Copilot verfügbaren Modelle finden Sie unter KI-Modellvergleich. Die vollständige Liste der unterstützten Modelle finden Sie unter Unterstützte KI-Modelle in GitHub Copilot. Informationen dazu, wo Modelle gehostet werden, finden Sie unter Hosting von Modellen für GitHub Copilot. Wenn Sie mehr über die Daten erfahren möchten, die zum Trainieren der Basismodelle hinter den Inline-Vorschlägen von GitHub Copilot verwendet werden, lesen Sie den oben verlinkten Vergleich der KI-Modelle sowie What data has GitHub Copilot been trained on? in den GitHub Copilot-FAQ.

Die Textvervollständigung für Pull Requests verwendet einen einfachen Prompt-Ablauf, der die Copilot-API mit dem generischen großen Sprachmodell nutzt. Für dieses Feature werden keine zusätzlichen trainierten Modelle verwendet.

6. Leistung

Copilot Inlinevorschläge funktionieren mithilfe einer Kombination aus natürlicher Sprachverarbeitung und maschinellem Lernen, um Ihren umgebenden Kontext zu verstehen und Vorschläge bereitzustellen. Dieser Prozess folgt einer konsistenten Pipeline:

  1. Eingabeverarbeitung: Der umgebende Code aus der Cursorposition wird vom Inlinevorschlägesystem vorverarbeitet, kombiniert mit Kontextinformationen (z. B. Codeausschnitte aus geöffneten Registerkarten im Editor) und in Form einer Eingabeaufforderung an ein großes Sprachmodell gesendet. Informationen zur Datenaufbewahrung finden Sie im Copilot Trust Center.
  2. Sprachmodellanalyse: Ein großes Sprachmodell verarbeitet die Eingabeaufforderung. Bei Inlinevorschlägen generiert das Modell sowohl Inlinevorschläge als auch vorhergesagte Bearbeitungen basierend auf dem Kontext aus den aktuellen und geöffneten Dateien im Editor, einschließlich Einfügen, Ändern oder Löschen von Code, indem vorausgesagt wird, welche Änderungen vorgenommen werden sollen und wo sie auftreten sollen. Für die Textvervollständigung von Pull Requests verwendet Copilot über die Copilot-API ein Sprachmodell.
  3. Antwortgenerierung: Das Sprachmodell generiert eine Antwort basierend auf der Analyse der Eingabeaufforderung und des bereitgestellten Kontexts. Bei Inlinevorschlägen kann dies die Form des Ausfüllens von Code, das Generieren neuer Blöcke oder das Vorschlagen von Änderungen an vorhandenem Code (einschließlich Löschvorgängen) sein, indem sowohl vorhergesagt wird, welche Änderungen vorgenommen werden sollten als auch wo in der Codebasis sie auftreten sollen. Bei der Textvervollständigung für Pull-Request-Texte ist die Antwort eine Fortsetzung der Beschreibung in Prosaform.
  4. Ausgabeformatierung: Die Antwort wird im Editor inline als vorgeschlagene Änderung dargestellt, die sich visuell vom umgebenden Inhalt unterscheidet. Vorschläge können an oder in der Nähe des Cursors angezeigt werden, sowie andere relevante Positionen in der Codebasis hervorheben, an denen Bearbeitungen vorgeschlagen werden, und werden nur auf die Datei oder das Textfeld angewendet, wenn Sie sie explizit akzeptieren.

Copilot-Inline-Vorschläge sind dazu gedacht, die relevantesten und nützlichsten Vorschläge bereitzustellen, um Ihre bisherige Arbeit zu ergänzen. Sie stellen jedoch möglicherweise nicht immer die Antworten bereit, nach denen Sie suchen. Benutzer sind dafür verantwortlich, Vorschläge zu prüfen und zu validieren, bevor sie diese annehmen, um sicherzustellen, dass sie korrekt und angemessen sind. Im Rahmen des Produktentwicklungsprozesses werden generierte Vorschläge über Inhaltsfilter ausgeführt. Das Inhaltsfiltersystem erkennt und blockiert schädliche oder anstößige Inhalte oder unsicheren Code. Abhängig von Ihren GitHub Einstellungen blockiert oder kommentiert der Filter auch Vorschläge, die Übereinstimmungen mit öffentlichem Code enthalten.

Unterschiede nach Erfahrung

Inlinevorschläge (IDE)

Inlinevorschläge verwenden fein abgestimmte Sprachmodelle, die für die Aufgabe spezialisiert sind. Sie analysieren den Code, der Ihre aktuelle Arbeit umgibt, zusammen mit dem Kontext aus der Codebasis und dem System der Benutzer. Basierend auf dieser Analyse kann das System Code abschließen, neue Blöcke generieren oder Bearbeitungen (einschließlich Löschungen) für vorhandenen Code vorschlagen, indem sowohl vorhergesagt wird, welche Änderungen vorgenommen werden sollten als auch wo in der Codebasis sie auftreten sollten. Das System soll nur bei Codierungsaufgaben helfen.

Textabschluss der Pullanforderung (GitHub.com)

Die Textvervollständigung für Pull Requests verwendet einen einfachen Prompt-Ablauf unter Nutzung der Copilot-API und eines generischen Large Language Models. Wenn Sie beim Eingeben einer Pull-Request-Beschreibung pausieren, kombiniert das System den Titel des Pull Requests, vorhandenen Beschreibungstext, Commit-Titel, teilweise Diffs sowie kürzlich angezeigte Pull-Request- und Issue-Titel, um Text vorzuschlagen, der Ihren Gedankengang fortsetzt. Die primäre unterstützte Sprache ist Englisch.

7. Einschränkungen

Das Verständnis der Einschränkungen der GitHub Copilot Inline-Vorschläge ist entscheidend, um sicherzustellen, dass sie innerhalb sicherer und effektiver Grenzen verwendet werden. Während wir Kunden ermutigen, Copilot Inlinevorschläge in ihren innovativen Lösungen oder Anwendungen zu nutzen, ist es wichtig zu beachten, dass Copilot Inlinevorschläge nicht für jedes mögliche Szenario konzipiert wurden. Wir empfehlen Benutzern, auf GitHub-Bedingungen sowie die folgenden Überlegungen bei der Auswahl eines Anwendungsfalls zu verweisen:

  • Eingeschränkter Umfang: Inlinevorschläge werden auf einem großen Codeteil trainiert, verfügen aber dennoch über einen begrenzten Bereich und können möglicherweise keine komplexeren Codestrukturen oder verdeckte Programmiersprachen verarbeiten. Für jede Sprache hängt die Qualität der Vorschläge von der Menge und Vielfalt der Schulungsdaten für diese Sprache ab. JavaScript ist beispielsweise in öffentlichen Repositorys gut dargestellt und eine der am besten unterstützten Sprachen. Bei Sprachen mit geringerer Darstellung in öffentlichen Repositorys kann es schwieriger sein, Hilfe zu leisten. Darüber hinaus können Inlinevorschläge nur Code basierend auf dem Kontext des geschriebenen Codes vorschlagen, sodass sie möglicherweise keine größeren Entwurfs- oder Architekturprobleme identifizieren können. Inline-Vorschläge sind dafür gedacht, Code und codebezogene Ausgaben zu generieren, nicht natürlichsprachige Ausgaben.
  • Potenzielle Verzerrungen: Die Quellen von Copilots Trainingsdaten können Verzerrungen und Fehler enthalten, die durch das Tool weitergetragen werden können. Darüber hinaus können Inlinevorschläge auf bestimmte Programmiersprachen oder Codierungsstile ausgerichtet sein, was zu suboptimalen oder unvollständigen Codevorschlägen führen kann.
  • Security-Risiken: Copilot generiert Code basierend auf dem Kontext des geschriebenen Codes, wodurch potenziell vertrauliche Informationen oder Sicherheitsrisiken verfügbar gemacht werden können, wenn sie nicht sorgfältig verwendet werden. Achten Sie bei der Verwendung von Copilot darauf, Code für sicherheitsrelevante Anwendungen zu generieren und den generierten Code immer gründlich zu überprüfen und zu testen.
  • Übereinstimmungen mit öffentlich zugänglichem Code: Inline-Vorschläge können neuen Code generieren, und dies geschieht auf probabilistische Weise. Während die Wahrscheinlichkeit niedrig ist, kann Copilot Codevorschläge generieren, die dem Code im Schulungssatz entsprechen.
  • Inaccurate Code: Copilot kann Code generieren, der als gültig erscheint, aber möglicherweise nicht semantisch oder syntaktisch korrekt ist oder nicht genau die Absicht des Entwicklers widerspiegelt. Um das Risiko von ungenauem Code zu minimieren, solltest du den generierten Code sorgfältig überprüfen und testen, insbesondere bei kritischen oder vertraulichen Anwendungen. Darüber hinaus solltest du sicherstellen, dass der generierte Code den bewährten Methoden und Entwurfsmustern entspricht und in die allgemeine Architektur und den Stil der Codebasis passt.
  • Weitere Pullanforderungen können die Qualität der Vorschläge verringern: Bei sehr großen Pullanforderungen passen einige der Pull-Anforderungsinhalte, die Copilot für die Texterledigung benötigt, möglicherweise nicht in den API-Aufruf ein. Daher werden einige Vorschläge, die Sie möglicherweise erwarten, möglicherweise nicht angezeigt oder weniger kontextgenau sein.
  • Halluzinationsrisiko bei der Textvervollständigung für Pull Requests: Da die Textvervollständigung für Pull Requests von einem großen Sprachmodell generiert wird, besteht das Risiko von Halluzinationen, bei denen Copilot Aussagen generiert, die plausibel klingen, aber sachlich falsch sind. Die sorgfältige Überprüfung des generierten Texts vor der Veröffentlichung ist unerlässlich.
  • Übernahme von Pull-Request-Inhalten: Die Textvervollständigung für den Pull Request basiert auf dem Inhalt des Pull Requests selbst. Wenn schädliche oder anstößige Begriffe im Inhalt der Pull-Anforderung (z. B. Commitnachrichten oder Diffs) angezeigt werden, besteht die Möglichkeit, dass der Vorschlag auch diese Begriffe enthalten kann.
  • Sprachunterstützung: Die primäre unterstützte Sprache für den Abschluss von Pull-Anforderungstext ist Englisch. Inlinevorschläge unterstützen viele Programmiersprachen, wobei die Qualität je nach Volumen und Vielfalt der für jede Sprache verfügbaren Schulungsdaten variiert.

8. Bewertungen

Leistungs- und Sicherheitsbewertungen bewerten, ob KI-Anwendungen zuverlässig und sicher funktionieren, indem Faktoren wie Grundhaftigkeit, Relevanz und Kohärenz untersucht und gleichzeitig die Risiken der Generierung schädlicher Inhalte identifiziert werden. Die folgenden Bewertungen wurden durchgeführt, wobei Sicherheitskomponenten bereits vorhanden waren, die auch in 9. Sicherheitskomponenten und Minderungsmaßnahmen beschrieben werden.

Leistungs- und Qualitätsbewertungen

GitHub Copilot Inlinevorschläge werden über ein mehrschichtiges Offline- und Onlinebewertungssystem ausgewertet, das zur Bewertung von Vorschlagsqualität, Relevanz und Entwicklerwert entwickelt wurde. Das System ist außerdem darauf ausgelegt, schnelle Iterationen von Modellen zu ermöglichen und dabei gleichbleibend hohe Qualitätsstandards zu gewährleisten.

Methoden zur Leistungs- und Qualitätsbewertung

Für die Offlineauswertung verwenden wir eine kuratierte Gruppe von Testsuiten, die wichtige Inlinevorschlagsszenarien in mehreren Programmiersprachen abdecken. Modelle werden anhand erwarteter Ausgaben ausgewertet, um Regressionen in Kernverhalten wie Codekorrektur und Kontextrelevanz zu erkennen. Außerdem vergleichen wir Kandidatenmodelle mit Produktions-Baselines, indem wir die Ausgabequalität, Kohärenz und die Übereinstimmung mit der Entwicklerabsicht bewerten.

Zur Onlinebewertung setzen wir Kandidatenmodelle in kontrollierten Nutzersegmenten ein, um Akzeptanzrate, Anzeigerate, Bearbeitungsqualität und Nutzerbindung zu messen.

Unsere Auswertungen verfolgen Latenz, Tokennutzung und Computebedarf zusammen mit Qualitätsmetriken, um sicherzustellen, dass Modelle Werte innerhalb von betrieblichen Einschränkungen liefern.

Darüber hinaus nutzen wir die Erfahrungen der internen Entwickler von Microsoft und GitHub, um Kandidatenmodelle unter realen Entwicklungsbedingungen zu bewerten und vor einem breiteren Rollout qualitatives Feedback sowie frühe Hinweise auf Randfallverhalten zu erhalten.

Risiko- und Sicherheitsbewertungen

Die Bewertung potenzieller Risiken im Zusammenhang mit KI-generierten Inhalten ist für den Schutz vor Inhaltsrisiken mit unterschiedlichem Schweregrad unerlässlich. Dies umfasst die Bewertung der Veranlagung einer KI-Anwendung, schädliche Inhalte zu generieren oder Sicherheitsrisiken für Jailbreak-Angriffe zu testen. Für GitHub führen wir Leistungsbewertungen durch, einschließlich derjenigen, die für Codierungszwecke von Microsoft Foundry angepasst sind:

  • Hass und Unfairness
  • Sexuelle
  • Gewalt
  • Selbstverletzung
  • Geschütztes Material
  • Jailbreak (Entsperrung von Geräten)
  • Sicherheitsanfälligkeit in Code

Risiko- und Sicherheitsbewertungsmethoden

Adversarielle Tests: Wenn das Basismodell aktualisiert wird oder erhebliche Änderungen an den Trainingsdatenquellen vorgenommen werden (z. B. durch die Einbeziehung eines neuen Datensatztyps), durchläuft das Modell Sicherheitstests, bei denen es gezielt mit Eingaben konfrontiert wird, die darauf ausgelegt sind, schädliche, unsichere oder richtlinienwidrige Ausgaben hervorzurufen. Diese Tests umfassen mehrere Risikokategorien, einschließlich schädlicher Inhalte, Risiken für geistiges Eigentum und unsichere Codegenerierung. Die Ergebnisse werden mit Produktionsbasiswerten verglichen, und wenn Regressionen vorliegen, werden sie manuell überprüft, um das tatsächliche Risiko zu bewerten.

Auswertungsdaten für Qualität und Sicherheit

Unsere Auswertungsdaten wurden speziell entwickelt, um die Leistung von KI-Anwendungen in wichtigen Bereichen der Sicherheit und Qualität zu bewerten und reale Szenarien und Risiken zu simulieren. Zunächst identifizieren wir relevante Bewertungsaspekte von Beunruhigungen basierend auf multidisziplinären Forschungs- und Experteneingaben. Diese Bedenken werden in gezielte Bewertungsziele übersetzt und leiten die Formulierung von Bewertungsmetriken. Für Sicherheit erstellen wir adversariale Prompts, um unerwünschte oder Grenzfallantworten hervorzurufen, die anschließend von KI-gestützten Annotatoren bewertet werden, die darauf trainiert sind, die Übereinstimmung mit GitHubs Standards zu beurteilen. Aus Qualitätsgründen erstellen wir rubrikenbasierte Aufforderungen, die für Szenarien relevant sind, einschließlich der Auswertung von Rag-Anwendungen (Retrieval-Augmented Generation) und Agents. Datasets werden aus verschiedenen Quellen zusammengestellt, einschließlich synthetischer und öffentlicher Datasets, um reale Benutzerszenarien zu simulieren. Mit den kuratierten Datasets durchlaufen beide Auswertungen iterative Verfeinerung und menschliche Ausrichtung zur Verbesserung der metrischen Wirksamkeit und Zuverlässigkeit. Diese Methodik bildet die Grundlage für wiederholbare, strenge Bewertungen, die widerspiegeln, wie Kunden Auswertungen verwenden, um eine bessere KI zu schaffen.

Benutzerdefinierte Auswertungen

Copilot Inline-Vorschläge wurden einem RAI-Red-Teaming unterzogen, um potenzielle Sicherheitsrisiken zu identifizieren und zu beheben. Wir überwachen weiterhin die Wirksamkeit und Sicherheit der Funktion im Laufe der Zeit. Weitere Informationen finden Sie unter Microsoft AI Red Team baut die Zukunft einer sichereren KI im Microsoft Security-Blog.

9. Sicherheitskomponenten und Entschärfungen

GitHub Copilot Inline-Vorschläge basieren auf einer Sicherheitsarchitektur mit mehreren Schutzebenen entlang der gesamten Vorschlagspipeline.

  • Eingabe- und Ausgabeverarbeitung: Der Codekontext – einschließlich des Bearbeitungsverlaufs, des umgebenden Codes und der Cursorposition – wird strukturiert und eingegrenzt, bevor er dem Sprachmodell übergeben wird. Das Modell ist auf eine schmale Aufgabe beschränkt (die Vorhersage der nächsten Codebearbeitung innerhalb eines definierten Fensters) und muss einem strengen Ausgabeformat folgen und nur Codebearbeitungen statt Freihandformantworten erzeugen. Die Systemaufforderung erzwingt auch die Einhaltung von Inhaltsrichtlinien mit einer vorgeschriebenen Ablehnungsantwort für Anforderungen, die Richtlinien verletzen können.
  • Inhalts- und Codesicherheitsfilter: GitHub Copilot enthält Sicherheitsfilter, die darauf ausgelegt sind, schädliche oder unangemessene Ausgaben zu reduzieren und Missbrauch zu verhindern. Benutzer sollten weiterhin Vorschläge überprüfen, bevor Sie sie verwenden.
  • Public code matching: GitHub Copilot verwendet ein Duplizierungserkennungssystem, das bestimmt, wann Vorschläge öffentlich verfügbaren Code entsprechen. Organisationen und Einzelpersonen können dies so konfigurieren, dass übereinstimmende Vorschläge blockiert oder Code bereitgestellt wird, der mit Repository- und Lizenzinformationen referenziert wird.
  • Menschliche Kontrolle: Inlinevorschläge folgen den Human-in-the-Loop-Prinzipien – Vorschläge heben sich visuell vom umgebenden Inhalt ab und werden nur angewendet, wenn der Benutzer sie ausdrücklich akzeptiert. Ohne absichtliche Benutzeraktion treten keine Codeänderungen auf. Benutzer werden ermutigt, alle generierten Vorschläge zu überprüfen, zu testen und zu validieren.

10. Bewährte Methoden für die Einführung und Nutzung von GitHub Copilot Inline-Vorschlägen

Verantwortungsvolle KI ist ein gemeinsames Engagement zwischen GitHub und seinen Kunden. Während GitHub KI-Anwendungen mit Sicherheit, Fairness und Transparenz im Kern erstellt, spielen Kunden eine wichtige Rolle bei der Bereitstellung und Verwendung dieser Technologien in ihren eigenen Kontexten. Um diese Partnerschaft zu unterstützen, bieten wir die folgenden bewährten Methoden für Bereitstellungen und Endbenutzer an, um Kunden bei der effektiven Implementierung verantwortungsvoller KI zu unterstützen.

  • Seien Sie vorsichtig und prüfen Sie die Ergebnisse, wenn Sie Copilot-Vorschläge für weitreichende Entscheidungen oder in sensiblen Bereichen verwenden: Folgeentscheidungen sind solche, die einen rechtlichen oder erheblichen Einfluss auf den Zugang einer Person auf Bildung, Beschäftigung, Finanzplattformen, staatliche Leistungen, Gesundheitsversorgung, Wohnung, Versicherung, Rechtliche Plattformen haben oder die zu physischem, psychologischem oder finanziellem Schaden führen könnten. Sensible Domänen wie Finanzplattformen, Gesundheitswesen und Wohnungen erfordern besondere Sorgfalt aufgrund des Potenziellen für unverhältnismäßige Auswirkungen auf verschiedene Personengruppen. Wenn Sie KI für Entscheidungen in diesen Bereichen verwenden, stellen Sie sicher, dass betroffene Beteiligte verstehen, wie Entscheidungen getroffen werden, Beschwerdeentscheidungen treffen und alle relevanten Eingabedaten aktualisieren können.
  • Bewertung rechtlicher und behördlicher Überlegungen: Kunden müssen potenzielle rechtliche und behördliche Verpflichtungen bewerten, wenn Sie KI-Plattformen und -Lösungen verwenden, die möglicherweise nicht für die Verwendung in jeder Branche oder in jedem Szenario geeignet sind. Darüber hinaus sind KI-Plattformen oder -Lösungen nicht für sie ausgelegt und dürfen nicht auf eine Weise verwendet werden, die in anwendbaren Nutzungsbedingungen und relevanten Verhaltensregeln verboten ist.
  • Bleiben Sie beim Thema: Copilot Inline-Vorschläge dienen ausschließlich dazu, Code oder codebezogene Vorschläge zu generieren. Das Einschränken des Inhalts im Editor auf Code- oder Codierungsinformationen kann die Qualität der Vorschläge verbessern.
  • Sorgen Sie für guten Kontext für die Textvervollständigung von Pull Requests: Die Qualität der Vorschläge zur Textvervollständigung für Pull Requests hängt von der Qualität des Pull-Request-Titels, der Commit-Nachrichten sowie des bereits in der Beschreibung vorhandenen Texts ab. Wenn Sie klare, beschreibende Titel und Commit-Nachrichten bereitstellen, wird die Relevanz von Vorschlägen verbessert. Es bleibt Ihre Verantwortung, die Genauigkeit von Informationen in den von Ihnen erstellten Pull Requests zu überprüfen und zu bewerten.
  • Verwenden Sie die Inlinevorschläge von Copilot als Werkzeug, nicht als Ersatz: Copilot kann zwar ein leistungsstarkes Werkzeug zum Generieren von Code sein, es ist jedoch wichtig, es als Werkzeug und nicht als Ersatz für menschliche Programmierung zu verwenden. Sie sollten die Vorschläge Copilot immer überprüfen, bevor Sie sie annehmen, und überprüfen Sie sie weiter, um sicherzustellen, dass sie Ihre Anforderungen erfüllt und frei von Fehlern oder Sicherheitsbedenken ist.
  • Üben Sie bei Bedarf eine menschliche Aufsicht aus: Die menschliche Aufsicht ist ein wichtiger Schutz bei der Interaktion mit KI-Anwendungen. Während wir unsere KI-Anwendungen kontinuierlich verbessern, kann KI immer noch Fehler machen. Die generierten Ausgaben können ungenau, unvollständig, voreingenommen, falsch ausgerichtet oder irrelevant für Ihre beabsichtigten Ziele sein. Dies kann verschiedene Gründe haben, z. B. Mehrdeutigkeit in den Eingaben oder Einschränkungen der zugrunde liegenden Modelle. Daher sollten Benutzer die durch die Inlinevorschläge von Copilot generierten Antworten überprüfen und verifizieren, dass sie ihren Erwartungen und Anforderungen entsprechen.
  • Achten Sie auf das Risiko einer Überlastung: Überlastung bei KI geschieht, wenn Benutzer falsche oder unvollständige KI-Ausgaben akzeptieren, hauptsächlich weil Fehler in KI-Ausgaben möglicherweise schwer zu erkennen sind. Für den Endbenutzer kann eine Überzuverlässigkeit unter anderem zu verminderter Produktivität, Vertrauensverlust, Anwendungsabbruch, finanziellem Verlust, psychischen Schäden, körperlichen Schäden führen. (z. B. ein Arzt akzeptiert eine falsche KI-Ausgabe).
  • Seien Sie vorsichtig beim Entwerfen agentischer KI in sensiblen Domänen: Benutzer sollten beim Entwerfen und/oder Bereitstellen agentischer KI-Anwendungen in sensiblen Domänen Vorsicht walten lassen, bei denen Agentaktionen unumkehrbar oder stark folgefähig sind. Zusätzliche Vorsichtsmaßnahmen sollten auch bei der Erstellung autonomer agentischer KI getroffen werden, wie weiter im GitHub-Bedingungen beschrieben.
  • Verwenden Sie methoden für sicheres Codieren und Codeüberprüfung: Während Inlinevorschläge syntaktisch korrekten Code generieren können, ist es möglicherweise nicht immer sicher. Sie sollten immer bewährte Methoden für die sichere Codierung befolgen, z. B. das Vermeiden hartcodierter Kennwörter oder SQL-Einfügungsrisiken sowie die folgenden bewährten Methoden für die Codeüberprüfung.
  • Bleiben Sie auf dem neuesten Stand: Copilot Inline-Vorschläge sind nach wie vor eine Technologie in der Entwicklung. Sie sollten bei allen Updates oder Änderungen am Tool sowie über neue Sicherheitsrisiken oder bewährte Methoden, die sich möglicherweise ergeben, auf dem neuesten Stand bleiben. Automatische Erweiterungsupdates sind standardmäßig in Visual Studio Code, Visual Studio und der JetBrains-Suite von IDEs aktiviert.

Wichtig

Die Benutzer übernehmen alle Risiken, die mit dem generierten Code verbunden sind, einschließlich Sicherheitslücken, Fehlern und Verletzungen von Rechten des geistigen Eigentums.

11. Erfahren Sie mehr über GitHub Copilot Inline-Vorschläge

Für zusätzliche Hinweise zur verantwortungsvollen Verwendung von Copilot-Inlinevorschlägen empfehlen wir, die folgende Dokumentation zu lesen:

Erfahren Sie mehr über verantwortungsvolle KI