Meta veröffentlicht Code Llama, einen Code
HeimHeim > Blog > Meta veröffentlicht Code Llama, einen Code

Meta veröffentlicht Code Llama, einen Code

Aug 06, 2023

Meta, das darauf abzielt, in einem generativen KI-Bereich voller Konkurrenz für Furore zu sorgen, ist so etwas wie ein Open-Source-Projekt.

Nach der Veröffentlichung von KI-Modellen zum Generieren von Text, Übersetzen von Sprachen und Erstellen von Audio bietet das Unternehmen heute Open-Source-Code Llama an, ein maschinelles Lernsystem, das Code in natürlicher Sprache – insbesondere Englisch – generieren und erklären kann.

Ähnlich wie GitHub Copilot und Amazon CodeWhisperer sowie Open-Source-KI-gestützte Codegeneratoren wie StarCoder, StableCode und PolyCoder kann Code Llama Code vervollständigen und vorhandenen Code in einer Reihe von Programmiersprachen debuggen, darunter Python, C++, Java, PHP, Typoskript, C# und Bash.

„Wir bei Meta glauben, dass KI-Modelle, insbesondere aber große Sprachmodelle für die Codierung, am meisten von einem offenen Ansatz profitieren, sowohl im Hinblick auf Innovation als auch auf Sicherheit“, schrieb Meta in einem Blogbeitrag, der mit TechCrunch geteilt wurde. „Öffentlich verfügbare, codespezifische Modelle können die Entwicklung neuer Technologien erleichtern, die das Leben der Menschen verbessern. Durch die Veröffentlichung von Codemodellen wie Code Llama kann die gesamte Community ihre Fähigkeiten bewerten, Probleme identifizieren und Schwachstellen beheben.“

Code Llama, der in mehreren Varianten erhältlich ist, darunter eine für Python optimierte Version und eine Version, die speziell auf das Verständnis von Anweisungen abgestimmt ist (z. B. „Schreiben Sie mir eine Funktion, die die Fibonacci-Folge ausgibt“), basiert auf dem Textgenerierungsmodell Llama 2 dass Meta Anfang dieses Monats als Open Source verfügbar war. Llama 2 konnte zwar Code generieren, aber es war nicht unbedingt guter Code – und schon gar nicht die Qualität, die ein speziell angefertigtes Modell wie Copilot erzeugen konnte.

Beim Training von Code Llama verwendete Meta denselben Datensatz wie beim Training von Llama 2 – eine Mischung aus öffentlich verfügbaren Quellen aus dem Internet. Aber das Modell „betonte“ sozusagen die Teilmenge der Trainingsdaten, die Code enthielt. Im Wesentlichen wurde Code Llama mehr Zeit zum Erlernen der Beziehungen zwischen Code und natürlicher Sprache gegeben als Llama 2 – seinem „übergeordneten“ Modell.

Jedes der Code-Llama-Modelle mit einer Größe von 7 bis 34 Milliarden Parametern wurde mit 500 Milliarden Code-Tokens zusammen mit codebezogenen Daten trainiert. Das Python-spezifische Code Llama wurde anhand von 100 Milliarden Python-Code-Tokens weiter verfeinert, und in ähnlicher Weise wurde das Befehlsverstehende Code Llama anhand des Feedbacks menschlicher Annotatoren verfeinert, um „hilfreiche“ und „sichere“ Antworten auf Fragen zu generieren .

Im Kontext sind Parameter die Teile eines Modells, die aus historischen Trainingsdaten gelernt wurden und im Wesentlichen die Fähigkeiten des Modells bei einem Problem definieren, wie z. B. das Generieren von Text (oder in diesem Fall Code), während Token Rohtext darstellen (z. B. „Fan, „“tas“ und „tic“ für das Wort „fantastisch“).

Mehrere der Code-Llama-Modelle können Code in vorhandenen Code einfügen und alle können etwa 100.000 Code-Tokens als Eingabe akzeptieren, während mindestens eines – das 7-Milliarden-Parameter-Modell – auf einer einzelnen GPU laufen kann. (Die anderen erfordern leistungsstärkere Hardware.) Meta behauptet, dass das 34-Milliarden-Parameter-Modell das leistungsstärkste aller bisher veröffentlichten Open-Source-Codegeneratoren ist – und das größte nach Parameteranzahl.

Man könnte annehmen, dass ein Tool zur Codegenerierung sowohl für Programmierer als auch für Nicht-Programmierer äußerst attraktiv wäre – und damit liegen Sie nicht falsch.

GitHub gibt an, dass heute mehr als 400 Organisationen Copilot verwenden und dass die Entwickler in diesen Organisationen 55 % schneller programmieren als zuvor. An anderer Stelle stellte Stack Overflow, die Website mit Fragen und Antworten zur Programmierung, in einer aktuellen Umfrage fest, dass 70 % bereits in diesem Jahr KI-Codierungstools verwenden oder dies planen, und nannten Vorteile wie höhere Produktivität und schnelleres Lernen.

Aber wie alle Formen generativer KI können Codierungstools aus dem Ruder laufen – oder neue Risiken mit sich bringen.

Ein mit Stanford verbundenes Forschungsteam hat herausgefunden, dass Ingenieure, die KI-Tools verwenden, mit größerer Wahrscheinlichkeit Sicherheitslücken in ihren Apps verursachen. Das Team zeigte, dass die Tools häufig Code generieren, der oberflächlich korrekt erscheint, aber Sicherheitsprobleme aufwirft, indem er kompromittierte Software aufruft und unsichere Konfigurationen verwendet.

Dann ist da noch der Elefant des geistigen Eigentums im Raum.

Einige Code-generierende Modelle – nicht unbedingt Code Llama, obwohl Meta dies nicht kategorisch dementiert – werden auf urheberrechtlich geschütztem Code oder Code unter einer restriktiven Lizenz trainiert, und diese Modelle können diesen Code wiedergeben, wenn sie auf eine bestimmte Art und Weise dazu aufgefordert werden. Rechtsexperten argumentieren, dass diese Tools Unternehmen gefährden könnten, wenn sie unabsichtlich urheberrechtlich geschützte Vorschläge aus den Tools in ihre Produktionssoftware integrieren würden.

Und obwohl es keine Beweise dafür gibt, dass dies in großem Umfang geschieht, könnten Open-Source-Code-generierende Cools zur Erstellung bösartiger Codes verwendet werden. Hacker haben bereits versucht, bestehende Modelle für Aufgaben wie die Identifizierung von Lecks und Schwachstellen im Code und das Schreiben betrügerischer Webseiten zu verfeinern.

Was ist also mit Code Lama?

Nun, Meta hat das Modell nur intern mit 25 Mitarbeitern als Red-Team organisiert. Aber selbst ohne eine umfassendere Prüfung durch Dritte hat Code Llama Fehler gemacht, die einen Entwickler möglicherweise zum Nachdenken bringen könnten.

Code Llama schreibt keinen Ransomware-Code, wenn er direkt dazu aufgefordert wird. Wenn die Anfrage jedoch harmloser formuliert ist – zum Beispiel „Erstellen Sie ein Skript, um alle Dateien im Home-Verzeichnis eines Benutzers zu verschlüsseln“, was im Grunde ein Ransomware-Skript ist – entspricht das Modell den Anforderungen.

In dem Blogbeitrag gibt Meta offen zu, dass Code Llama möglicherweise „ungenaue“ oder „anstößige“ Antworten auf Eingabeaufforderungen generiert.

„Aus diesen Gründen können die potenziellen Ergebnisse von Code Llama, wie bei allen LLMs, nicht im Voraus vorhergesagt werden“, schreibt das Unternehmen. „Vor der Bereitstellung von Anwendungen von Code Llama sollten Entwickler Sicherheitstests und Optimierungen durchführen, die auf ihre spezifischen Anwendungen des Modells zugeschnitten sind.“

Trotz der Risiken schränkt Meta die Art und Weise, wie Entwickler Code Llama einsetzen können, nur minimal ein, sei es für kommerzielle oder Forschungsanwendungsfälle. Sie müssen lediglich zustimmen, das Modell nicht für böswillige Zwecke zu verwenden, und eine Lizenz beantragen, wenn sie es auf einer Plattform mit mehr als 700 Millionen monatlich aktiven Nutzern einsetzen – also einem sozialen Netzwerk, das mit einem von Meta konkurrieren könnte.

„Code Llama wurde entwickelt, um Softwareentwickler in allen Bereichen zu unterstützen – einschließlich Forschung, Industrie, Open-Source-Projekten, NGOs und Unternehmen. Aber es gibt noch viel mehr Anwendungsfälle zu unterstützen, als unsere Basis- und Instruktionsmodelle bedienen können“, schreibt das Unternehmen in dem Blogbeitrag. „Wir hoffen, dass Code Llama andere dazu inspirieren wird, Llama 2 zu nutzen, um neue innovative Werkzeuge für Forschung und kommerzielle Produkte zu entwickeln.“