01 Was ist Genie? Was kann es tun?
Ähnlich wie Devin kann Genie unter Anleitung menschlicher Ingenieure verschiedene Codierungsaufgaben selbstständig ausführen, einschließlich Fehlerbehebung, Funktionsaufbau, Code-Refactoring und Code-Validierung durch umfassende Tests.
Neben dem autonomen Betrieb kann Genie auch mit Benutzern zusammenarbeiten.
Derzeit befindet sich Genie noch in der internen Testphase und kann nach Registrierung auf der offiziellen Website zur Erprobung beantragt werden.
Cosine behauptet, dass Genie den kognitiven Prozess menschlicher Ingenieure simulieren kann.
Pullen erklärt in einem Blogbeitrag: "Meine Idee war einfach: Es beobachtet, wie menschliche Ingenieure ihre Arbeit erledigen, und ahmt diesen Prozess nach."
Der von Genie generierte Code wird im GitHub-Repository des Benutzers gespeichert, was bedeutet, dass Cosine keine Kopien behält und es keine damit verbundenen Sicherheitsrisiken gibt.
Darüber hinaus ist die Softwareplattform von Cosine in Slack und Systembenachrichtigungen integriert. Sie kann wie ein menschlicher Kollege Systembenachrichtigungen nutzen, um Benutzer zu erinnern, Fragen zu stellen oder Probleme zu markieren.
"Genie kann auch Klarstellungsfragen an Benutzer stellen und auf Kommentare/Meinungen zu seinen generierten Pull Requests reagieren."
Pullen sagt: "Wir versuchen, Genie wie einen Kollegen agieren zu lassen, daher ist es am sinnvollsten, das Modell die Kanäle eines Kollegen nutzen zu lassen."
Zusammenarbeit mit OpenAI, Nutzung des neuesten GPT-4o
Im Gegensatz zu vielen Modellen, die sich auf Basismodelle mit wenigen zusätzlichen Tools stützen, wurde Genie durch einen proprietären Prozess entwickelt, der das Training und Feintuning von Modellen von OpenAI umfasst.
Als Genie mit der Entwicklung begann, konnte es nur auf Modellen mit relativ kleinen Kontextfenstern von 16-32k Token basieren.
Das Team stellte in frühen Untersuchungen fest, dass selbst mit großen Datensätzen von über 100 Millionen Token, den Vorteilen der Architekturgestaltung und verschiedenen Komprimierungs-/Chunking-Methoden immer noch Einschränkungen bezüglich der Informationskapazität bestanden, die das Modell zu einem bestimmten Zeitpunkt ausdrücken konnte. Die einzige Lösung war die Verwendung von Modellen mit größeren Kontextfenstern.
Glücklicherweise erhielten sie kurz darauf Zugang zu OpenAIs Modellen mit langem Kontext, was den Durchbruch für Genies Fähigkeiten darstellte.
Pullen verriet gegenüber VentureBeat: "Genie ist (derzeit) eine nicht-generische GPT-4o-Variante. OpenAI erlaubt uns den Zugriff und die Nutzung ihrer Modelle für das Training als Teil eines Versuchsprogramms."
"Das Modell funktionierte gut, und wir teilten unsere Erkenntnisse mit dem Feintuning-Team und der technischen Leitung von OpenAI. Das war für uns ein echter Wendepunkt, da es sie davon überzeugte, Ressourcen und Aufmerksamkeit für unsere neue Technologie bereitzustellen."
Obwohl Cosine das genaue Modell nicht spezifiziert hat, hat OpenAI kürzlich die begrenzte Verfügbarkeit des GPT-4o-Modells mit langem Ausgabekontext angekündigt, das eine Ausgabelänge von bis zu 64k Token ermöglicht - eine 16-fache Steigerung gegenüber den ursprünglichen 4k.
Trainingsdaten sind der Schlüssel
Pullen schreibt in seinem technischen Bericht, dass Genie in den jüngsten Trainingsläufen mit Milliarden von Token-Daten trainiert wurde. Die Kombination dieser Daten wurde so gewählt, dass das Modell so kompetent wie möglich in den Sprachen ist, die für die aktuellen Benutzer am wichtigsten sind.
Der technische Bericht von Genie listet 15 Sprachen auf, die in den Trainingsdaten enthalten sind, darunter beliebte Sprachen wie Java, JS, C, C++, C#, Rust, Python sowie häufig verwendete Sprachen wie Scala, Kotlin, Swift und PHP.
JavaScript, Python, TypeScript und TSX machen den größten Anteil des Datensatzes aus, während die übrigen Sprachen jeweils 3% ausmachen.
Laut Cosines Blogbeitrag verbrachte das Team fast ein Jahr damit, den Datensatz zusammenzustellen, der eine große Menge an Softwareentwicklungsaktivitäten von echten Ingenieuren umfasst.
Diese Daten zu beschaffen und effektiv zu nutzen, war äußerst schwierig, da sie im Wesentlichen nicht existierten.
Ihre Datenpipeline begann mit der Verfolgung der Entwicklungspfade von Softwareingenieuren und sammelte Daten wie Pull Requests, Commits und Issues aus OSS-Repositories (MIT-Lizenz).
Anschließend wurden diese Daten durch die Pipeline geleitet, um den Denkprozess forensisch zu extrahieren und nachzubilden, wie Menschen zu ihren endgültigen Schlussfolgerungen gelangten.
Dieser proprietäre Datensatz bildete die Grundlage für das Training der ersten Version des Modells, wobei der Rest durch Selbstspiel und Selbstverbesserung erreicht wurde.
Genies Autonomieschleife besteht aus vier Hauptprozessen: Planung, Abruf, Codierung und Codeausführung. Diese sind an sich nicht neu, wurden aber aufgrund der Tatsache, dass Genie darauf trainiert wurde, Aufgaben wie ein Mensch auszuführen, in größerem Umfang verbessert.
"Die Auswirkungen der Datenannotation können nicht unterschätzt werden. Es ist sehr schwierig, hochwertige Daten von kompetenten Softwareingenieuren zu erhalten, aber das Ergebnis ist es wert, da es uns einen Einblick in die oft verborgene Denkweise von Entwicklern bei der Problemlösung gibt."
Der Datensatz erfasst nicht nur perfekte Informationspfade und progressive Wissensentdeckung, sondern auch den schrittweisen Entscheidungsprozess menschlicher Ingenieure.
Pullen behauptet: "Indem wir diesen Datensatz tatsächlich zum Training unseres Modells verwenden, anstatt einfach ein Basismodell zu promten (was andere tun), haben wir festgestellt, dass wir nicht mehr nur zufällig Code generieren, sondern Probleme wie ein Mensch angehen."
Ergebnisse der Benchmark-Bewertung
Während des Modellentwicklungsprozesses verwendete das Team hauptsächlich zwei Benchmarks zur Bewertung - SWE-Bench und HumanEval.
Ersterer deckt ein breiteres Spektrum an Problemen ab, einschließlich Problemzerlegung, Auffinden relevanten Codes, Codeklassifizierung und Implementierung praktischer Lösungen; letzterer konzentriert sich mehr auf das Codeschreiben, ohne Abrufaspekte und mit weniger Betonung auf Problemverständnis.
Im offiziellen Blog wurden jedoch nur die SWE-Bench-Scores veröffentlicht, wobei Genie 30,08% erreichte und in SWE-Lite 50,67%.
Genies Leistung in SWE-Bench ist besonders beeindruckend: Es ist die bisher höchste Punktzahl und übertrifft den zweiten Platz mit 19,27% um mehr als 10%.
Darüber hinaus testete das Team separat die Informationsabruffähigkeiten des Modells, insbesondere die Fähigkeit, den richtigen Teil der benötigten Codedateien abzurufen.
Dies ist eine der Kernkomponenten eines KI-Ingenieurs - wenn das Modell nicht zuverlässig und kompetent den richtigen Code zum Bearbeiten finden kann, kann die Fähigkeit zur Codebearbeitung nicht voll ausgeschöpft werden.
Unter der Annahme, dass das Modell jedes Mal den richtigen Code findet, kann man die Abruffähigkeit einfach messen, indem man betrachtet, wie viele Codezeilen das Modell zur Erfüllung der Aufgabe durchsucht hat und wie viele Zeilen tatsächlich gefunden wurden.
In den Tests konnte Genie erfolgreich 91.475 der benötigten 142.338 Codezeilen abrufen, was einer Punktzahl von 64,27% entspricht. Hier gibt es offensichtlich noch viel Raum für Verbesserungen, und die Abruffähigkeit ist ein Aspekt, der im Vergleich zur Problemzerlegungsfähigkeit weniger Aufmerksamkeit erhalten hat.
02 Mit Unterstützung von YC, geleitet von einem chinesischen Oxford-Absolventen
Cosine wurde durch den berühmten Y Combinator Startup-Accelerator im Silicon Valley gegründet.
Das Unternehmen ist ein Labor für menschliches Denken, das sich darauf konzentriert, die Art und Weise zu erforschen und zu katalogisieren, wie Menschen Aufgaben ausführen, mit dem Ziel, KI-Modellen beizubringen, diese Aufgaben nachzuahmen, zu meistern und zu erweitern.
2022 gründeten Alistair Pullen, Sam Stenner und Yang Li gemeinsam Cosine und positionierten es als Labor für menschliches Denken.
Ausgehend vom Bereich der Softwareentwicklung wollen sie erforschen und katalogisieren, wie Menschen Aufgaben ausführen, um KI beizubringen, diese Aufgaben nachzuahmen, zu meistern und zu erweitern und so die Entwicklung der Intelligenz voranzutreiben.
Cosine hat bereits