6 points par GN⁺ 2024-09-06 | 2 commentaires | Partager sur WhatsApp
  • Yi-Coder est un grand modèle de langage (LLM) open source pour le code, offrant des performances de pointe en programmation avec moins de 10 milliards de paramètres
  • Il est proposé en deux tailles, 1.5B et 9B de paramètres, avec des versions de base et de chat conçues pour une inférence efficace et un entraînement flexible
  • Yi-Coder-9B est construit sur Yi-9B, avec l’ajout de 2.4T de tokens de haute qualité issus d’un corpus de code au niveau dépôt provenant de GitHub et de données liées au code filtrées depuis CommonCrawl

Principales caractéristiques de Yi-Coder

  • Préentraîné sur 2,4 trillions de tokens de haute qualité couvrant 52 langages de programmation majeurs
  • Modélisation de contexte long : une fenêtre de contexte allant jusqu’à 128K tokens permet la compréhension et la génération de code à l’échelle d’un projet
  • Petit mais puissant : Yi-Coder-9B surpasse d’autres modèles de moins de 10 milliards de paramètres comme CodeQwen1.5 7B et CodeGeex4 9B, et atteint même des performances comparables à DeepSeek-Coder 33B

Yi-Coder offre des performances de codage impressionnantes

LiveCodeBench

  • LiveCodeBench est une plateforme publiquement accessible conçue pour fournir une évaluation complète et équitable de programmation compétitive pour les LLM
  • Yi-Coder-9B-Chat a atteint un taux de réussite impressionnant de 23,4 %, et c’est le seul modèle de moins de 10B paramètres à dépasser les 20 %
  • Cette performance surpasse DeepSeek-Coder-33B-Instruct (22,3 %), CodeGeex4-All-9B (17,8 %), CodeLlama-34B-Instruct (13,3 %) et CodeQwen1.5-7B-Chat (12 %)

HumanEval, MBPP et CRUXEval-O

  • Yi-Coder-9B-Chat a atteint un taux de réussite de 85,4 % sur HumanEval et de 73,8 % sur MBPP, surpassant les autres code LLM
  • Yi-Coder 9B devient aussi le premier code LLM open source à dépasser 50 % de précision sur CRUXEval-O

Yi-Coder excelle dans l’édition et l’autocomplétion de code

CodeEditorBench

  • Yi-Coder-9B obtient un taux de victoire moyen impressionnant parmi les code LLM open source, dépassant régulièrement DeepSeek-Coder-33B-Instruct et CodeQwen1.5-7B-Chat dans les sous-ensembles Primary et Plus

CrossCodeEval

  • Yi-Coder surpasse d’autres modèles de taille comparable sur les jeux de données Python et Java, à la fois dans les scénarios avec récupération et sans récupération
  • Cela confirme qu’un entraînement avec un contexte plus long sur un corpus de code à l’échelle du dépôt logiciel permet à Yi-Coder de capturer efficacement les dépendances de long terme, contribuant ainsi à ses excellentes performances

Yi-Coder peut modéliser un contexte long de 128K

Une aiguille dans le code

  • Pour tester les capacités de modélisation de long contexte de Yi-Coder, une tâche synthétique appelée "une aiguille dans le code" a été créée en utilisant des séquences de longueur 128K
  • Dans cette tâche, une simple fonction personnalisée est insérée aléatoirement dans une longue base de code, puis le modèle est testé sur sa capacité à reproduire cette fonction à la fin de la base de code
  • Cela évalue la capacité du LLM à extraire des informations clés dans un long contexte et reflète son aptitude fondamentale à comprendre de longues séquences
  • Yi-Coder-9B accomplit parfaitement cette tâche dans la plage de longueur 128K

Yi-Coder brille aussi en raisonnement mathématique

Raisonnement mathématique assisté par programme

  • Yi-Coder a été évalué dans une configuration PAL (Program-aided Language Models) sur 7 benchmarks de raisonnement mathématique
  • Yi-Coder-9B a atteint une précision remarquable de 70,3 %, dépassant les 65,8 % de DeepSeek-Coder-33B

Conclusion

  • Nous mettons Yi-Coder 1.5B/9B à disposition de la communauté en open source, à la fois en version de base et en version chat
  • Yi-Coder montre des performances remarquables sur une grande variété de tâches, notamment la programmation générale et compétitive, l’édition de code et la complétion au niveau dépôt, la compréhension de longs contextes et le raisonnement mathématique
  • Nous pensons que Yi-Coder peut repousser les limites des petits code LLM et ouvrir des cas d’usage capables d’accélérer et de transformer le développement logiciel

Synthèse de GN⁺

  • Le principal atout de Yi-Coder est d’offrir des performances de codage de pointe avec un nombre réduit de paramètres. Cela pourrait permettre une excellente assistance au code sans nécessiter les ressources de calcul massives exigées par de grands LLM comme ChatGPT
  • Sa capacité de modélisation de long contexte permet de comprendre le code à l’échelle d’un grand projet, ce qui semble particulièrement utile pour les tâches de programmation complexes
  • Il affiche d’excellentes performances en programmation compétitive, en édition de code, en complétion au niveau dépôt, en compréhension de longs contextes et en raisonnement mathématique
  • Parmi les principaux outils d’assistance au code basés sur les LLM figurent GitHub Copilot et Amazon CodeWhisperer. Par rapport à eux, Yi-Coder a l’avantage d’être un modèle plus léger, mais reste encore en retrait sur les fonctions additionnelles comme les plugins
  • Parmi les autres projets aux fonctionnalités similaires figurent DeepSeek-Coder, CodeGeex4 et CodeLlama
  • Les capacités de raisonnement mathématique de Yi-Coder sont particulièrement intéressantes. Cette approche de résolution de problèmes par la programmation se distingue des modèles purement linguistiques et montre le potentiel d’usage des LLM dans les mathématiques comme dans de nombreux autres domaines

2 commentaires

 
GN⁺ 2024-09-06
Avis Hacker News
  • Claude 3.5 Sonnet reste le plus performant parmi les LLM orientés code

    • Mais DeepSeek Coder V2 236B est moins cher et plus efficace
    • DeepSeek Coder V2 est utilisé avec Aider et le plugin Claude Dev
  • Yi-Coder obtient un score inférieur à GPT-3.5 dans le benchmark d’édition de code d’Aider

    • Sonnet : 77 %
    • GPT-3.5 : 58 %
    • Yi-Coder-9b-Chat : 54 %
    • Yi-Coder-9b-Chat-q4_0 : 45 %
  • Après avoir testé des LLM sur des tâches SRE/DevOps/C#/Golang/C++, certains ont reçu des réponses illogiques

    • À une demande simple d’écriture d’un script Python, le modèle a répondu à côté du sujet
    • Il a fourni des réponses sans rapport dans plusieurs langages de programmation
  • La différence entre la façon dont les ingénieurs logiciel et les artistes réagissent aux modèles d’IA est jugée intéressante

  • Certains attendent des modèles spécialisés pour des langages précis

    • Les modèles actuels gèrent plusieurs langages, mais il faut des modèles vraiment très compétents sur un langage donné
  • Certains se demandent comment configurer de petits LLM en local

    • Question sur le fonctionnement de l’autocomplétion par tabulation dans VSCode
    • Demande de conseils pour configurer des modèles cloud autres que GitHub Copilot
  • Question sur le matériel recommandé pour exécuter ces modèles sur un PC de bureau local

  • Certains aimeraient voir les performances de SWE-agent et de Yi-Coder-9B-Chat

  • Demande d’explication sur le benchmark Aider

    • Question sur la raison pour laquelle les 113 mêmes tests sont relancés à chaque fois
    • Doute sur la façon dont cela évalue les capacités générales de génération et d’édition de code d’un modèle
  • Question sur la raison pour laquelle la taille d’un modèle est exprimée en nombre de poids

    • Volonté de connaître les besoins en RAM GPU
    • Doute sur l’importance réelle du nombre de poids pour les utilisateurs