1 Punkte von GN⁺ 2023-08-25 | 1 Kommentare | Auf WhatsApp teilen
  • Angesichts der wachsenden Nachfrage nach Coding-Assistenten hat Meta Code Llama vorgestellt und damit die Auswahl an Open-Model-basierten Optionen für Codegenerierung, -vervollständigung und Debugging erweitert
  • Das Modell ist eine durch zusätzliche Schulung von Llama 2 mit Codedaten entstandene Version und verarbeitet Coding-Aufgaben sowohl mit Code- als auch mit natürlichsprachigen Prompts
  • Es wird in den Größen 7B, 13B, 34B und 70B angeboten; das 70B-Modell wurde am 29. Januar 2024 als größtes und leistungsstärkstes Modell der Code-Llama-Familie zusätzlich veröffentlicht
  • Es ist in ein Basismodell, ein auf Python spezialisiertes Modell und eine Instruct-Variante für natürlichsprachige Anweisungen unterteilt; die Wahl sollte nach Latenz, Leistung und Einsatzzweck erfolgen
  • Forschung und kommerzielle Nutzung sind kostenlos, aber Lizenz und Acceptable Use Policy müssen eingehalten und die Sicherheit der Codegenerierung zusätzlich bewertet werden

Welche Coding-Aufgaben Code Llama adressiert

  • Code Llama ist ein Large Language Model fürs Programmieren, das mit Text-Prompts Code erzeugen kann
  • Es zielt auf State-of-the-Art-Leistung bei Coding-Aufgaben unter den veröffentlichten LLMs und hat das Potenzial, Entwickler-Workflows schneller und effizienter zu machen
  • Es kann als Produktivitäts- und Bildungstool genutzt werden, das die Einstiegshürde für Lernende senkt und Programmierern hilft, robustere und besser dokumentierte Software zu schreiben
  • Meta veröffentlicht Code Llama unter derselben Community-Lizenz wie Llama 2

Zusätzliche Schulung von Llama 2 mit Codedaten

  • Code Llama ist eine auf Code spezialisierte Version, die durch weiteres Training von Llama 2 mit einem Code-spezifischen Datensatz entstanden ist
  • Es kann sowohl Code als auch natürlichsprachige Prompts als Eingabe verarbeiten und Code sowie codebezogene natürliche Sprache erzeugen
    • Beispiel-Prompt: „Schreibe eine Funktion, die die Fibonacci-Folge ausgibt“
  • Es kann auch für Codevervollständigung und Debugging verwendet werden
  • Zu den unterstützten Sprachen gehören Python, C++, Java, PHP, Typescript(JavaScript), C#, Bash

Auswahlkriterien nach Größe und Kontext

  • Code Llama ist in den Parametergrößen 7B, 13B, 34B, 70B verfügbar
  • Die Modelle 7B, 13B und 34B wurden mit 500B Tokens aus Code- und codebezogenen Daten trainiert, das 70B-Modell mit 1T Tokens
  • Die Basis- und Instruct-Modelle von 7B und 13B wurden zusätzlich mit fill-in-the-middle(FIM) trainiert und können Code in die Mitte bestehenden Codes einfügen
    • Dadurch werden Aufgaben wie Codevervollständigung direkt unterstützt
  • Welche Modellgröße geeignet ist, hängt von Bereitstellungsform und Latenzanforderungen ab
    • Das 7B-Modell kann auf einer einzelnen GPU bereitgestellt werden
    • Die Modelle 34B und 70B liefern die besten Ergebnisse und bessere Unterstützung beim Programmieren
    • Die Modelle 7B und 13B sind schneller und deshalb besser für Aufgaben mit niedriger Latenz wie Codevervollständigung in Echtzeit geeignet
  • Die Code-Llama-Modelle liefern stabile Generierung mit bis zu 100.000 Tokens Kontext
    • Alle Modelle wurden mit Sequenzen von 16.000 Tokens trainiert
    • Bei Eingaben von bis zu 100.000 Tokens zeigen sie Verbesserungen

Drei Varianten: Basis, Python und Instruct

  • Die Code-Llama-Familie ist in drei Varianten unterteilt
    • Code Llama: Basismodell für Code
    • Code Llama - Python: auf Python spezialisiertes Modell
    • Code Llama - Instruct: auf das Verstehen natürlichsprachiger Anweisungen feinabgestimmtes Modell
  • Code Llama - Python wurde zusätzlich mit 100B Tokens Python-Code feinabgestimmt
    • Python ist die Sprache, die bei Codegenerierung am häufigsten benchmarkt wird
    • Python und PyTorch spielen in der AI-Community eine wichtige Rolle
  • Code Llama - Instruct ist eine Variante, deren Training mit natürlichsprachigen Anweisungen und erwarteten Ausgaben fortgesetzt wurde
    • Sie wurde so entworfen, dass sie besser versteht, was Menschen von Prompts erwarten
    • Sie wurde feinabgestimmt, um nützliche und sichere Antworten in natürlicher Sprache zu erzeugen
  • Für Codegenerierung mit Code Llama wird die Verwendung der Variante Code Llama - Instruct empfohlen
  • Code Llama und Code Llama - Python sind nicht dafür ausgelegt, natürlichsprachigen Anweisungen zu folgen, und werden daher für allgemeine natürlichsprachige Aufgaben nicht empfohlen
  • Code Llama ist für code-spezifische Aufgaben gedacht und eignet sich nicht als Basismodell für andere Aufgaben

Zusätzliche Veröffentlichung von Code Llama 70B

  • Mit dem Update vom 29. Januar 2024 wurde Code Llama 70B veröffentlicht
  • 70B ist das größte und leistungsstärkste Modell der Code-Llama-Familie
  • Es wird in denselben drei Versionen wie das bisherige Code Llama angeboten, alle kostenlos für Forschung und kommerzielle Nutzung
    • CodeLlama - 70B: Basismodell für Code
    • CodeLlama - 70B - Python: auf Python spezialisiertes 70B-Modell
    • Code Llama - 70B - Instruct 70B: auf das Verstehen natürlichsprachiger Anweisungen feinabgestimmtes Modell

Benchmarks und Sicherheitsbewertung

  • Die Leistungsbewertung wurde mit zwei Coding-Benchmarks durchgeführt
    • HumanEval: Bewertung der Fähigkeit zur Codevervollständigung auf Basis von Docstrings
    • MBPP: Bewertung der Fähigkeit, Code anhand von Beschreibungen zu schreiben
  • In den Benchmarks zeigt Code Llama bessere Leistung als Open-Source-LLMs mit Codespezialisierung und Llama 2
  • Code Llama 34B erreicht 53,7 % bei HumanEval und 56,2 % bei MBPP
    • Das war im Vergleich zu veröffentlichten hochmodernen Open-Source-Lösungen das höchste Niveau und lag auf ähnlichem Niveau wie ChatGPT
  • Meta hat vor der Veröffentlichung mehrere Sicherheitsmaßnahmen durchgeführt und im Red-Teaming das Risiko der Erzeugung von Schadcode quantitativ bewertet
    • Dafür wurden Prompts erstellt, die mit klarer Absicht nach Schadcode fragen
    • Die Antworten von Code Llama wurden mit den Antworten von ChatGPTs GPT-3.5 Turbo verglichen und bewertet
    • In den Ergebnissen lieferte Code Llama sicherere Antworten
  • Details zum Red Teaming durch Experten für Responsible AI, Offensive Security Engineering, Malware-Entwicklung und Software Engineering sind im Forschungspapier enthalten

Verfügbare Materialien und verantwortungsvoller Einsatz

  • Das Trainingsrezept für Code Llama ist im GitHub-Repository veröffentlicht
  • Auch die Modellgewichte werden bereitgestellt
  • Das Forschungspapier enthält Informationen zur Entwicklung von Code Llama, zur Benchmark-Testmethodik, zu Einschränkungen, bekannten Herausforderungen, Gegenmaßnahmen und künftigen Untersuchungsthemen
  • Der Responsible Use Guide wurde ebenfalls aktualisiert
    • Definition von Inhaltsrichtlinien und Gegenmaßnahmen
    • Datenaufbereitung
    • Modell-Feinabstimmung
    • Leistungsbewertung und Verbesserung
    • Umgang mit Risiken auf Eingabe- und Ausgabebene
    • Aufbau von Transparenz und Meldemechanismen in der Nutzerinteraktion
  • Entwickler sollten das Modell mit code-spezifischen Evaluations-Benchmarks bewerten
  • Sicherheitsforschung zu code-spezifischen Anwendungsfällen wie Schadsoftware, Computerviren und der Erzeugung bösartigen Codes wird empfohlen
  • Der Einsatz von Sicherheitsdatensätzen für automatische und menschliche Bewertung sowie Red Teaming auf Basis adversarialer Prompts wird ebenfalls empfohlen

Rolle im Ökosystem offener Coding-Modelle

  • Code Llama wurde entwickelt, um Softwareingenieure in Forschung, Industrie, Open-Source-Projekten, NGOs, Unternehmen und weiteren Bereichen zu unterstützen
  • Es gibt noch mehr Anwendungsfälle, als Basis- und Instruct-Modelle derzeit abdecken können
  • Meta hofft, dass Code Llama andere dazu anregt, Llama 2 zu nutzen und neue Tools für Forschung und kommerzielle Produkte zu entwickeln
  • Verwandte Materialien:

1 Kommentare

 
GN⁺ 2023-08-25
Hacker-News-Kommentare