6 Punkte von GN⁺ 2024-09-06 | 2 Kommentare | Auf WhatsApp teilen
  • Yi-Coder ist ein Open-Source-Code-LLM, das mit weniger als 10 Milliarden Parametern eine Coding-Performance auf dem neuesten Stand der Technik bietet
  • Es ist in zwei Größen mit 1.5B und 9B Parametern verfügbar; sowohl Base- als auch Chat-Versionen wurden für effiziente Inferenz und flexibles Training entwickelt
  • Yi-Coder-9B basiert auf Yi-9B und wurde mit zusätzlich 2.4T hochwertigen Tokens aus GitHubs Repository-Level-Codekorpus und aus CommonCrawl gefilterten codebezogenen Daten aufgebaut

Hauptmerkmale von Yi-Coder

  • Vortrainiert auf 2,4 Billionen (Trillion) hochwertigen Tokens über 52 wichtige Programmiersprachen hinweg
  • Long-Context-Modellierung: Mit einem Kontextfenster von bis zu 128K Tokens ist ein Verständnis und eine Generierung von Code auf Projektebene möglich
  • Klein, aber leistungsstark: Yi-Coder-9B übertrifft andere Modelle mit weniger als 10 Milliarden Parametern wie CodeQwen1.5 7B und CodeGeex4 9B und erreicht sogar eine Leistung auf dem Niveau von DeepSeek-Coder 33B

Yi-Coder liefert beeindruckende Coding-Performance

LiveCodeBench

  • LiveCodeBench ist eine öffentlich zugängliche Plattform, die entwickelt wurde, um eine umfassende und faire Bewertung von Competitive Programming für LLMs bereitzustellen
  • Yi-Coder-9B-Chat erreichte eine beeindruckende Passrate von 23.4% und ist unter den Modellen mit weniger als 10B Parametern das einzige, das die 20%-Marke überschreitet
  • Diese Leistung übertrifft DeepSeek-Coder-33B-Instruct (22.3%), CodeGeex4-All-9B (17.8%), CodeLlama-34B-Instruct (13.3%) und CodeQwen1.5-7B-Chat (12%)

HumanEval, MBPP und CRUXEval-O

  • Yi-Coder-9B-Chat erreichte Passraten von 85.4% bei HumanEval und 73.8% bei MBPP und übertrifft damit andere Code-LLMs
  • Außerdem ist Yi-Coder 9B das erste Open-Source-Code-LLM, das bei CRUXEval-O eine Genauigkeit von über 50% erreicht

Yi-Coder überzeugt bei Code-Editing und Vervollständigung

CodeEditorBench

  • Yi-Coder-9B erzielt unter Open-Source-Code-LLMs eine beeindruckende durchschnittliche Gewinnrate und übertrifft sowohl im Primary- als auch im Plus-Subset durchgehend DeepSeek-Coder-33B-Instruct und CodeQwen1.5-7B-Chat

CrossCodeEval

  • Yi-Coder übertrifft andere Modelle ähnlicher Größe sowohl in Retrieval- als auch in Non-Retrieval-Szenarien für Python- und Java-Datensätze
  • Das bestätigt, dass das Training mit längeren Kontextlängen auf Repository-Level-Codekorpora Yi-Coder ermöglicht, langfristige Abhängigkeiten effektiv zu erfassen, was zu seiner starken Leistung beiträgt

Yi-Coder kann 128K Long Context modellieren

Nadel im Code

  • Um die Long-Context-Modellierungsfähigkeit von Yi-Coder zu testen, wurde eine synthetische Aufgabe namens „Nadel im Code“ mit Sequenzen der Länge 128K erstellt
  • Bei dieser Aufgabe wird eine einfache benutzerdefinierte Funktion zufällig in eine lange Codebasis eingefügt, und das Modell wird darauf getestet, ob es die Funktion am Ende der Codebasis reproduzieren kann
  • Damit wird bewertet, ob ein LLM in der Lage ist, Schlüsselinformationen aus langem Kontext zu extrahieren, was die grundlegende Fähigkeit zum Verständnis langer Sequenzen widerspiegelt
  • Yi-Coder-9B absolvierte diese Aufgabe im gesamten Längenbereich bis 128K fehlerfrei

Yi-Coder glänzt bei mathematischem Schlussfolgern

Programmunterstütztes mathematisches Schlussfolgern

  • Yi-Coder wurde im Setting des programmunterstützten Schlussfolgerns (PAL: Program-aided Language Models) auf 7 Benchmarks für mathematisches Schlussfolgern evaluiert
  • Yi-Coder-9B erreichte eine bemerkenswerte Genauigkeit von 70.3% und übertrifft damit die 65.8% von DeepSeek-Coder-33B

Fazit

  • Wir stellen Yi-Coder 1.5B/9B der Community sowohl in Base- als auch in Chat-Versionen als Open Source zur Verfügung
  • Yi-Coder zeigt bemerkenswerte Leistung bei einer Vielzahl von Aufgaben, darunter grundlegendes und wettbewerbsorientiertes Programmieren, Code-Editing und Repository-Level-Vervollständigung, Long-Context-Verständnis und mathematisches Schlussfolgern
  • Wir glauben, dass Yi-Coder die Grenzen kleiner Code-LLMs erweitern und Anwendungsfälle eröffnen kann, die die Softwareentwicklung beschleunigen und verändern

Zusammenfassung von GN⁺

  • Die Stärke von Yi-Coder liegt darin, dass es auch mit einer geringen Zahl an Parametern modernste Coding-Performance bietet. Dadurch könnte es hervorragende Unterstützung beim Programmieren ermöglichen, ohne die enormen Rechenressourcen zu benötigen, die große LLMs wie ChatGPT verlangen
  • Die Long-Context-Modellierungsfähigkeit von Yi-Coder ermöglicht das Verständnis von Code über große Projekte hinweg, was besonders bei komplexen Coding-Aufgaben nützlich sein dürfte
  • Es zeigt starke Leistung in Competitive Programming, Code-Editing, Repository-Level-Vervollständigung, Long-Context-Verständnis und mathematischem Schlussfolgern
  • Zu den führenden LLM-basierten Coding-Assistenten zählen GitHub Copilot und Amazon CodeWhisperer. Im Vergleich dazu hat Yi-Coder den Vorteil eines leichtergewichtigen Modells, bietet aber bei Zusatzfunktionen wie Plug-ins noch weniger
  • Andere Projekte mit ähnlichen Funktionen sind DeepSeek-Coder, CodeGeex4 und CodeLlama
  • Die mathematische Schlussfolgerungsfähigkeit von Yi-Coder ist besonders interessant. Der problemlösende Ansatz über Programmierung unterscheidet sich von reinen Sprachmodellen und zeigt das Einsatzpotenzial von LLMs nicht nur in der Mathematik, sondern auch in vielen anderen Bereichen

2 Kommentare

 
GN⁺ 2024-09-06
Hacker-News-Kommentare
  • Claude 3.5 Sonnet zeigt bei codebezogenen LLMs weiterhin die beste Leistung

    • DeepSeek Coder V2 236B ist jedoch günstiger und effizienter
    • DeepSeek Coder V2 wird in Aider und im Claude-Dev-Plugin verwendet
  • Yi-Coder erzielt im Code-Editing-Benchmark von Aider eine niedrigere Punktzahl als GPT-3.5

    • Sonnet: 77%
    • GPT-3.5: 58%
    • Yi-Coder-9b-Chat: 54%
    • Yi-Coder-9b-Chat-q4_0: 45%
  • Beim Testen von LLMs für SRE-/DevOps-/C#-/Golang-/C++-Aufgaben wurden unlogische Antworten erhalten

    • Auf die Bitte, ein einfaches Python-Skript zu schreiben, kam eine völlig unpassende Antwort
    • Es wurden irrelevante Antworten in mehreren Programmiersprachen geliefert
  • Der Unterschied darin, wie Softwareingenieure und Künstler auf AI-Modelle reagieren, ist interessant

  • Es wird auf Modelle gewartet, die auf bestimmte Sprachen spezialisiert sind

    • Aktuelle Modelle können viele Sprachen verarbeiten, aber es werden Modelle benötigt, die eine bestimmte Sprache sehr gut beherrschen
  • Es besteht Neugier, wie sich kleine LLMs lokal einrichten lassen

    • Es wird gefragt, ob Tab-Completion in VSCode funktioniert
    • Es werden Tipps gesucht, wie sich Cloud-Modelle abseits von GitHub Copilot einrichten lassen
  • Es wird nach empfohlener Hardware gefragt, um Modelle auf einem lokalen Desktop-PC auszuführen

  • Man möchte die Leistung von SWE-agent und Yi-Coder-9B-Chat sehen

  • Es wird um eine Erklärung des Aider-Benchmarks gebeten

    • Es besteht Neugier, warum jedes Mal dieselben 113 Tests durchlaufen werden
    • Es wird hinterfragt, ob sich damit die allgemeine Fähigkeit eines Modells zur Code-Erstellung und -Bearbeitung bewerten lässt
  • Es wird gefragt, warum die Modellgröße als Anzahl der Gewichte angegeben wird

    • Man möchte den benötigten GPU-RAM kennen
    • Es wird hinterfragt, wie wichtig die Anzahl der Gewichte für tatsächliche Nutzer wirklich ist