- 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
- 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
Hacker-News-Kommentare