OctoPack: Anweisungstuning von Code für große Sprachmodelle

Das Feinjustieren großer Sprachmodelle (LLMs) anhand von Anweisungen führt zu erheblichen Leistungsverbesserungen bei natürlichsprachlichen Aufgaben. Wir wenden das Anweisungstuning unter Verwendung von Code an und nutzen dabei die natürliche Struktur von Git-Commits, die Codeänderungen mit menschlichen Anweisungen verbinden. Wir erstellen CommitPack: 4 Terabyte Git-Commits über 350 Programmiersprachen. Wir vergleichen CommitPack mit anderen natürlichen und synthetischen Codeanweisungen (xP3x, Self-Instruct, OASST) am 16-Milliarden-Parameter-Modell StarCoder und erreichen den Stand der Technik unter Modellen, die nicht auf OpenAI-Ausgaben trainiert wurden, im HumanEval-Python-Benchmark (46,2% pass@1). Weiterhin stellen wir HumanEvalPack vor, das den HumanEval-Benchmark auf insgesamt 3 Codierungsaufgaben (Code-Reparatur, Code-Erklärung, Code-Synthese) in 6 Sprachen (Python, JavaScript, Java, Go, C++, Rust) erweitert. Unsere Modelle OctoCoder und OctoGeeX erzielen die besten Ergebnisse im HumanEvalPack unter allen lizenzfreien Modellen und zeigen so die Vorteile von CommitPack bei der Generalisierung auf eine breitere Menge von Sprachen und natürliche Codierungsaufgaben. Der Quellcode, die Modelle und die Daten sind frei verfügbar unter https://github.com/bigcode-project/octopack.