GitHub Copilot Große Sprachmodelle (Large Language Models, LLMs)

Abgeschlossen

GitHub Copilot wird von Large Language Models (LLMs) unterstützt, um Sie beim nahtlosen Schreiben von Code zu unterstützen. In dieser Lerneinheit konzentrieren wir uns auf die Integration und Auswirkungen von LLMs in GitHub Copilot. Sehen Sie sich die folgenden Themen an:

  • Was sind LLMs?
  • Die Rolle von LLMs in GitHub Copilot und Eingabeaufforderungen
  • Optimierung von LLMs
  • LoRA-Optimierung

Was sind LLMs?

Große Sprachmodelle (Large Language Models, LLMs) sind KI-Modelle, die entwickelt und trainiert wurden, um die menschliche Sprache zu verstehen sowie Sprache zu generieren und zu manipulieren. Diese Modelle sind dank der umfangreichen Menge an Textdaten, mit denen sie trainiert werden, in der Lage, ein breites Spektrum an Aufgaben zu bewältigen, die mit Text zu tun haben. Folgendes sollten Sie über LLMs wissen:

Umfang der Trainingsdaten

LLMs sind großen Textmengen aus verschiedensten Quellen ausgesetzt. Dadurch erhalten sie ein umfassendes Verständnis von Sprache, Kontext und der Schwierigkeiten, die mit den verschiedenen Formen der Kommunikation verbunden sind.

Kontextbezogenes Verständnis

Sie zeichnen sich durch die Generierung kontextbezogener und kohärenter Texte aus. Ihre Fähigkeit, den Kontext zu verstehen, ermöglicht es ihnen, aussagekräftige Beiträge zu liefern, sei es das Vervollständigen von Sätzen, Absätzen oder sogar das Generieren von ganzen Dokumenten, die kontextuell passend sind.

Maschinelles Lernen und KI-Integration

LLMs basieren auf maschinellem Lernen und KI-Prinzipien. Sie sind neuronale Netzwerke mit Millionen oder sogar Milliarden von Parametern, die während des Trainings optimiert wurden, um Text effektiv zu verstehen und vorherzusagen.

Vielseitigkeit

Diese Modelle sind nicht auf einen bestimmten Text- oder Sprachtyp beschränkt. Sie können maßgeschneidert und optimiert werden, um spezielle Aufgaben auszuführen, wodurch sie sehr vielseitig und für verschiedene Domänen und Sprachen anwendbar sind.

Die Rolle von LLMs in GitHub Copilot und Eingabeaufforderungen

GitHub Copilot verwendet LLMs, um kontextbezogene Codevorschläge bereitzustellen. Das LLM berücksichtigt nicht nur die aktuelle Datei, sondern auch andere geöffnete Dateien und Registerkarten in der IDE, um genaue und relevante Codevervollständigungen zu generieren. Durch diesen dynamische Ansatz erhalten Sie maßgeschneiderte Vorschläge, die Ihre Produktivität verbessern.

Optimierung von LLMs

Die Optimierung ist ein wichtiger Prozess, mit dem wir vortrainierte LLMs für bestimmte Aufgaben oder Domänen anpassen können. Dabei wird das Modell auf einem kleineren, aufgabenspezifischen Dataset, dem so genannten Zieldatensatz, trainiert, während das Wissen und die Parameter aus einem großen, vorab trainierten Dataset, dem so genannten Quellmodell, verwendet werden.

Diagramm: Feinabstimmung in großen Sprachmodellen (Large Language Models)

Optimierung ist unerlässlich, um LLMs für bestimmte Aufgaben anzupassen und ihre Leistung zu verbessern. GitHub ist jedoch noch einen Schritt weiter gegangen, indem wir die LoRA-Optimierungsmethode verwenden, die wir als Nächstes besprechen werden.

LoRA-Optimierung

Bei der herkömmlichen vollständigen Optimierung müssen alle Teile eines neuronalen Netzes trainiert werden. Das kann langsam und sehr ressourcenintensiv sein. Aber LoRA-Feinabstimmung (Low-Rank Adaptation) ist eine clevere Alternative. LoRA wird verwendet, um vortrainierte LLMs für bestimmte Aufgaben zu verbessern, ohne das ganze Training zu wiederholen.

So funktioniert LoRA:

  • Statt alles zu ändern, fügt LoRA kleinere trainierbare Teile zu jeder Schicht des vortrainierten Modells hinzu.
  • Das ursprüngliche Modell bleibt gleich. Dadurch werden Zeit und Ressourcen gespart.

Darum ist LoRA so toll:

  • Es ist anderen Anpassungsmethoden wie Adapter und Präfixoptimierung überlegen.
  • Dadurch erzielt es großartige Ergebnisse mit weniger Aufwand.

Einfach gesagt, geht es bei der LoRA-Optimierung darum, intelligenter und nicht mehr zu arbeiten, um LLMs besser an Ihre spezifischen Codierungsanforderungen in Copilot anzupassen.