01 Qu'est-ce que Genie ? Que peut-il faire ?
Similaire à Devin, Genie peut également accomplir de manière autonome diverses tâches de codage sous la direction d'ingénieurs humains, y compris la correction de bugs, la construction de fonctionnalités, la refactorisation de code, ainsi que la validation du code par des tests complets.
En plus de fonctionner de manière autonome, Genie peut également collaborer avec les utilisateurs.
Actuellement, Genie est encore en phase de test bêta fermé, et vous pouvez demander à l'essayer après vous être inscrit sur le site officiel.
Cosine affirme que Genie peut simuler le processus cognitif des ingénieurs humains.
Pullen explique dans un billet de blog : "Mon idée était simple : le faire observer comment les ingénieurs humains accomplissent leur travail et imiter ce processus."
Le code généré par Genie est stocké dans le repo GitHub de l'utilisateur, ce qui signifie que Cosine n'en conserve pas de copie et qu'il n'y a aucun risque de sécurité associé.
De plus, la plateforme logicielle de Cosine est intégrée à Slack et aux notifications système, ce qui lui permet d'utiliser les notifications système pour alerter les utilisateurs, poser des questions ou signaler des problèmes, comme le ferait un collègue humain.
"Genie peut également poser des questions de clarification aux utilisateurs et répondre aux commentaires/avis sur les Pull Requests qu'il génère".
Pullen déclare : "Nous essayons de faire en sorte que Genie se comporte comme un collègue, il est donc logique que le modèle utilise les mêmes canaux qu'un collègue."
Collaboration avec OpenAI, utilisation du dernier GPT-4o
Contrairement à de nombreux modèles qui s'appuient sur des modèles de base avec quelques outils supplémentaires, Genie a été développé grâce à un processus propriétaire qui comprend l'entraînement et l'ajustement fin de modèles d'OpenAI.
Lorsque Genie a commencé à être développé, il ne pouvait être affiné que sur des modèles avec des fenêtres de contexte relativement petites, allant de 16 à 32k tokens.
Au début de leurs explorations, l'équipe a découvert que même avec des ensembles de données massifs de plus de 100 millions de tokens, ainsi que les avantages de la conception de l'architecture et diverses méthodes de compression/chunking, ils étaient toujours limités par la quantité d'informations que le modèle pouvait exprimer à un moment donné. La seule solution était d'utiliser des modèles avec des fenêtres de contexte plus grandes.
Heureusement, peu après, ils ont obtenu l'accès aux modèles à long contexte d'OpenAI, ce qui a constitué une percée pour les capacités de Genie.
Pullen a révélé à VentureBeat : "Genie (actuellement) est une variante non générale de GPT-4o, qu'OpenAI nous a permis d'accéder et d'utiliser pour l'entraînement dans le cadre d'un programme expérimental."
"Le modèle a bien performé, et nous avons donc partagé nos réflexions avec l'équipe de fine-tuning d'OpenAI et leurs dirigeants en ingénierie. Cela a été un véritable tournant pour nous, car cela les a convaincus d'investir des ressources et de l'attention dans notre nouvelle technologie."
Bien que Cosine n'ait pas précisé le modèle exact, OpenAI vient d'annoncer la disponibilité limitée du modèle à long contexte GPT-4o, avec une longueur de sortie pouvant atteindre 64k tokens, soit 16 fois plus que les 4k initiaux.
Les données d'entraînement sont la clé
Pullen écrit dans le rapport technique que lors des récents entraînements, Genie a été entraîné sur des milliards de tokens de données, dont la combinaison a été choisie pour rendre le modèle aussi compétent que possible dans les langages qui intéressent le plus les utilisateurs actuels.
Le rapport technique de Genie énumère 15 langages inclus dans les données d'entraînement, couvrant les langages populaires tels que Java, JS, C, C++, C#, Rust, Python, ainsi que les langages couramment utilisés comme Scala, Kotlin, Swift, PHP, etc.
Parmi eux, JavaScript, Python, TypeScript et TSX sont les langages les plus représentés dans l'ensemble de données, les autres représentant chacun 3%.
Le blog de Cosine indique que l'équipe a passé près d'un an à compiler l'ensemble de données, qui comprend un grand nombre d'activités de développement logiciel provenant de véritables ingénieurs.
Obtenir et utiliser efficacement ces données était extrêmement difficile, car fondamentalement, ces données n'existaient pas.
Leur pipeline de données commence par suivre les trajectoires de développement des ingénieurs logiciels, en collectant des données telles que les pull requests, les commits, les issues des dépôts OSS (sous licence MIT), etc.
Ensuite, ces données sont exécutées dans le pipeline pour exporter de manière médico-légale le processus de raisonnement, reconstruisant ainsi comment les humains sont arrivés à leurs conclusions finales.
Cet ensemble de données propriétaire a servi de base à l'entraînement de la première version du modèle, le reste étant réalisé par auto-jeu et auto-amélioration.
Le cycle d'autonomie de Genie se compose de quatre processus principaux : planification, récupération, écriture de code et exécution de code. Ces éléments ne sont pas nouveaux en soi, mais comme Genie a été entraîné à exécuter des tâches comme un humain, il y a eu un plus grand degré d'amélioration.
"L'impact de l'annotation des données ne peut être sous-estimé. Il est très difficile d'obtenir des données de haute qualité de la part d'ingénieurs logiciels compétents, mais le résultat en vaut la peine car il nous donne un aperçu de la façon dont les développeurs résolvent les problèmes d'une manière qui n'est pas facilement observable."
Cet ensemble de données ne reflète pas seulement une progression parfaite de l'information et une découverte progressive des connaissances, mais capture également le processus de prise de décision progressive des ingénieurs humains.
Pullen affirme : "En utilisant cet ensemble de données pour entraîner réellement nos modèles, plutôt que de simplement donner des instructions aux modèles de base (ce que font les autres), nous avons constaté que nous ne générions plus simplement du code au hasard, mais que nous abordions les problèmes comme des humains."
Résultats de l'évaluation comparative
Au cours du processus de développement du modèle, l'équipe a principalement utilisé deux benchmarks pour l'évaluation - SWE-Bench et HumanEval.
Le premier couvre des problèmes plus complets, y compris la décomposition des problèmes, la recherche de code pertinent, la classification du code et la mise en œuvre de solutions viables ; le second se concentre davantage sur l'écriture de code, sans contenu de récupération, et met moins l'accent sur la compréhension des problèmes.
Cependant, le blog officiel n'a divulgué que les scores SWE-Bench, où Genie a obtenu un score de 30,08%, et 50,67% dans SWE-Lite.
Parmi eux, la performance de Genie sur SWE-Bench est particulièrement remarquable : c'est le score le plus élevé à ce jour, avec une augmentation de plus de 10% par rapport au deuxième score de 19,27%.
De plus, l'équipe a testé séparément la capacité de récupération d'informations du modèle, en particulier sa capacité à récupérer la bonne partie des fichiers de code nécessaires.
C'est l'un des composants essentiels d'un ingénieur IA - si le modèle ne peut pas trouver de manière fiable et compétente le bon code à éditer, alors la capacité à éditer le code ne peut pas être pleinement exploitée.
En supposant que le modèle trouve toujours le bon code, on peut simplement mesurer la capacité de récupération en examinant combien de lignes de code le modèle a recherchées pour accomplir la tâche et combien de lignes de code il a effectivement trouvées.
Dans le test, Genie a réussi à récupérer 91 475 lignes de code nécessaires sur 142 338, obtenant un score de 64,27%. Il y a évidemment encore beaucoup de place pour l'amélioration ici, et la capacité de récupération est un aspect moins étudié par rapport à la capacité de décomposition des problèmes.
02 Soutenu par YC, dirigé par un diplômé chinois d'Oxford
Cosine a été fondée à travers le célèbre accélérateur de startups Y Combinator de la Silicon Valley.
L'entreprise est un laboratoire de raisonnement humain qui se concentre sur l'étude et la documentation de la façon dont les humains exécutent des tâches, dans le but d'enseigner aux modèles d'IA à imiter, exceller et étendre ces tâches.
En 2022, Alistair Pullen, Sam Stenner et Yang Li ont co-fondé Cosine, la positionnant comme un laboratoire de raisonnement humain.
Ils espèrent commencer par le domaine de l'ingénierie logicielle, étudier et documenter la façon dont les humains exécutent des tâches, afin d'enseigner à l'IA à imiter, exceller et étendre ces tâches, faisant ainsi progresser l'intelligence.
Cosine a