Meta a lancé un « artefact » d'IA, comment le modèle de code open source et gratuit Code Llama se compare-t-il à ChatGPT ?

Source originale : AGI Innovation Lab

Source de l'image : générée par Unbounded AI‌

Meta a récemment publié Code Llama, un modèle de langage à grande échelle basé sur Llama 2 pour un réglage fin, qui peut générer du code à l'aide d'invites textuelles et est open source pour la recherche et l'utilisation commerciale.

Code Llama est un LLM ouvert de pointe pour les tâches de codage qui a le potentiel de rendre les flux de travail actuels des développeurs plus rapides et plus efficaces et de réduire la barrière à l'entrée pour ceux qui apprennent à coder. Code Llama a le potentiel d'être utilisé comme outil de productivité et éducatif pour aider les programmeurs à écrire des logiciels plus robustes et mieux documentés.

Comment fonctionne Code Llama

En juillet de cette année, Meta (anciennement Facebook) a publié Llama 2, un modèle open source gratuit et disponible dans le commerce. La dernière version, Code Llama, est une version dédiée de Llama2 spécifiquement pour le codage, créée en formant davantage Llama 2 sur son ensemble de données spécifiques au code, en échantillonnant davantage de données du même ensemble de données pendant des périodes plus longues.

Dans l’ensemble, Code Llama possède des fonctionnalités de codage améliorées, construites sur Llama 2. Il peut générer du code et un langage naturel sur le code en fonction d'indices de code et de langage naturel (par exemple, "écrivez-moi une fonction qui génère la séquence de Fibonacci.") Il peut également être utilisé pour la complétion et le débogage du code.

Code Llama prend en charge bon nombre des langages les plus populaires utilisés aujourd'hui, notamment Python, C++, Java, PHP, Typeface (Java), C# et Bash.

Code Llama dispose actuellement de trois versions de paramètres : 7 milliards de paramètres, 13 milliards de paramètres, 34 milliards de paramètres.

Chaque version est formée avec 500 B de jetons de code et de données liées au code. Les 7 milliards et 13 milliards de modèles de base de paramètres et d'instructions sont également formés avec des capacités de remplissage intermédiaire (FIM), leur permettant d'insérer du code dans du code existant, ce qui signifie qu'ils peuvent prendre en charge des tâches telles que la complétion de code hors du champ. boîte.

Ces trois modèles répondent à différentes exigences de service et de latence. Par exemple, 7 milliards de modèles peuvent fonctionner sur un seul GPU. Le modèle 34 milliards renvoie les meilleurs résultats et offre une meilleure assistance au codage, mais les modèles plus petits, 7 milliards et 13 milliards, sont plus rapides et mieux adaptés aux tâches nécessitant une faible latence, telles que la complétion de code en temps réel.

Le modèle Code Llama permet une génération stable avec jusqu'à 100 000 jetons de contexte. Tous les modèles sont formés sur des séquences de 16 000 jetons et montrent une amélioration sur des entrées allant jusqu'à 100 000 jetons.

En plus d'être une condition préalable à la génération de programmes plus longs, disposer de séquences d'entrée plus longues peut débloquer de nouveaux cas d'utilisation passionnants pour Code LLM. Par exemple, les utilisateurs peuvent fournir aux modèles plus de contexte à partir de leur base de code pour rendre les générations plus pertinentes. Cela aide également au débogage de scénarios dans des bases de code plus volumineuses, où il peut être difficile pour les développeurs de comprendre tout le code lié à un problème spécifique. Lorsque les développeurs sont confrontés au débogage de grandes quantités de code, ils peuvent transmettre la totalité du code dans le modèle.

Meta peaufine également deux versions supplémentaires de Code Llama : Code Llama - Python et Code Llama - Instruct.

  • Code Llama - Python est une variante spécifique au langage de Code Llama, affinée sur le jeton 100B du code Python.
  • Code Llama - Instruct est une version affinée et alignée des instructions de Code Llama. Les ajustements pédagogiques poursuivent le processus de formation, mais avec des objectifs différents. Le modèle accepte les « instructions en langage naturel » comme entrée et sortie attendue. Cela lui permet de mieux comprendre ce que les gens attendent de l'invite. Nous vous recommandons d'utiliser la version Code Llama - Instruct lorsque vous utilisez Code Llama pour la génération de code, car Code Llama - Instruct a été affiné pour générer des réponses utiles et sûres en langage naturel.

Mais il n'est pas recommandé d'utiliser Code Llama ou Code Llama - Python pour des tâches générales en langage naturel, car aucun des deux modèles n'est conçu pour suivre des instructions en langage naturel. Code Llama est conçu pour des tâches spécifiques au code et ne convient pas comme modèle de base pour d'autres tâches.

Comment fonctionne Code Llama ?

La programmation Python humaine et principalement basique (MBPP) sont deux références couramment utilisées pour la maîtrise du codage : l'homme teste la capacité d'un modèle à compléter le code à partir d'une docstring et MBPP teste la capacité d'un modèle à écrire du code à partir d'une description. Tester Code Llama par rapport à ces deux références montre que Code Llama surpasse le Llama open source spécifique au code et surpasse Llama 2 lui-même. Par exemple, Code Llama 34B obtient un score de 53,7 % sur l'humain et de 56,2 % sur le MBPP, dépassant ChatGPT mais toujours inférieur au GPT-4 sur l'humain.

Source du graphique : Méta

*Le modèle affiné de CodeLlama-34B a dépassé GPT-4 ? *

Bien que Code Llama n'ait pas remporté le test, ce n'est pas tout Code Llama, un autre point fort est la mise au point à nouveau. Les utilisateurs peuvent à nouveau affiner le code open source Llama pour créer la meilleure version qui répond à leurs besoins.

Phind a récemment affiné CodeLlama-34B et CodeLlama-34B-Python sur la base de son propre ensemble de données, et ses versions affinées ont atteint 67,6 % et 69,5 % sur Human, dépassant le GPT-4 annoncé par OpenAI en mars 67 % de le total.

Liens connexes:

Comparaison d'utilisation réelle ChatGPT vs. Code Llama

Tout d'abord, la version GPT-3.5 de ChatGPT et Code Llama supportée par la plateforme Perplexity ont été utilisées dans cette comparaison. Nous poserons 8 questions pour comparer si les deux génèrent avec succès du code.

Question 1:

"En utilisant Python. Étant donné deux chaînes mot1 et mot2. Fusionnez les chaînes en ajoutant des lettres dans un ordre alterné, en commençant par mot1. Si une chaîne est plus longue que l'autre, ajoutez des lettres supplémentaires aux chaînes fusionnées. fin.

Renvoie la chaîne fusionnée.

Exemple 1: • Entrée : mot1="abc", mot2="pqr" • Sortie : "apbqcr"

🟢 ChatGPT : +1 pour le succès 🔵 Code de flamme : 成功+1

Question 2:

"En utilisant Python. Étant donné une chaîne s, inversez simplement toutes les voyelles de la chaîne et renvoyez-la.

Les voyelles sont « a », « e », « i », « o » et « u », qui peuvent apparaître plusieurs fois en minuscules et en majuscules.

Exemple 1:

Entrée : s="bonjour" Sortie : "Salle"

🟢 ChatGPT : +1 pour le succès 🔵 Code Lama : Échec +0

Question 3:

"En utilisant Python. Étant donné un tableau de nombres entiers, déplacez tous les 0 vers la fin tout en conservant l'ordre relatif des éléments différents de zéro. Notez que vous devez le faire sur place, sans faire de copie du tableau.

Exemple 1:

Entrée : nombres = [0,1,0,3,12] Sortie : [1,3,12,0,0]"

🟢 ChatGPT : +1 pour le succès 🔵 Code Lama : Échec +0

Question 4 :

"En utilisant Python. Vous disposez d'un long parterre de fleurs où certaines parcelles sont plantées et d'autres non. Cependant, les parcelles adjacentes ne peuvent pas être plantées de fleurs. Étant donné un tableau d'entiers de 0 et 1 pour un parterre de fleurs, où 0 signifie vide et 1 signifie non vide, et un entier n, renvoie vrai si n nouvelles fleurs peuvent être plantées dans le parterre de fleurs sans violer la règle de non-fleur adjacente, Sinon, retournez false.

Exemple 1: Entrée : parterre de fleurs = [1,0,0,0,1], n = 1 Résultat : vrai Exemple 2 : Entrée : parterre de fleurs = [1,0,0,0,1], n = 2 sortie : faux

🟢 ChatGPT : +1 pour le succès 🔵 Code de flamme : 成功+1

Question 5 :

"En utilisant Python. Étant donné une chaîne d'entrée s, inversez l'ordre des mots.

Un mot est défini comme une séquence de caractères autres que des espaces. Les mots entre s seront séparés par au moins un espace.

Renvoie une chaîne de mots joints par des espaces simples dans l'ordre inverse.

Notez que les s peuvent contenir des espaces de début ou de fin ou plusieurs espaces entre deux mots. La chaîne renvoyée ne doit comporter qu'un seul espace pour séparer les mots. N’incluez aucun espace supplémentaire.

Exemple 1: Entrée : s = "Le ciel est bleu" Sortie : « Le ciel est bleu » »

🟢 ChatGPT : +1 pour le succès 🔵 Code de flamme : 成功+1

Question 6 :

"En utilisant Python. Étant donné une chaîne s et un entier k, renvoie le nombre maximum de voyelles dans toute sous-chaîne de longueur k dans s. Les voyelles en anglais sont « a », « e », « i », « o » et « u ».

Exemple 1: Entrée : s = "leetcode", k = 3 Sortie : 2 Explication : "lee", "eet" et "ode" contiennent 2 voyelles.

🟢 ChatGPT : +1 pour le succès 🔵 Code de flamme : 成功+1

Question 7 :

"En utilisant Python. Étant donné une chaîne s qui contient des astérisques *.

En une seule opération, vous pouvez :

Choisissez une étoile dans s.

Supprime le caractère autre qu'un astérisque le plus proche à sa gauche et supprime l'astérisque lui-même.

Renvoie la chaîne après avoir supprimé toutes les étoiles.

Exemple 1: Entrée : s="leet**cod*e" Sortie : "lecoe""

🟢 ChatGPT : +1 pour le succès 🔵 Code Lama : Échec +0

Question 8 :

"En utilisant Python. Étant donné un tableau de températures entières représentant les températures quotidiennes, renvoie un tableau de réponses où la réponse [i] c'est le nombre de jours après jour pendant lesquels vous devez attendre des températures plus chaudes. S'il n'y a pas de jour dans le futur pour le faire, gardez la réponse [i] == 0.

Exemple 1: Entrée : Température = [73,74,75,71,69,72,76,73] Sortie : [1,1,4,2,1,1,0,0]"

🟢 Chat GPT : +1 🔵Code Chameau : +1

Résultats finaux:

🟢 ChatGPT : 8/8 🔵CodeLlama : 5/8

En résumé, Code Llama ne montre pas d'avantages évidents par rapport à ChatGPT en termes d'effet d'utilisation réel, mais les tests ci-dessus ne peuvent pas être entièrement utilisés comme base de jugement. De plus, le Code Llama open source est plus facile que ChatGPT pour que les utilisateurs puissent le personnaliser en fonction de leurs besoins, ce qui peut apporter plus de possibilités.

Les références:

Voir l'original
Cette page peut inclure du contenu de tiers fourni à des fins d'information uniquement. Gate ne garantit ni l'exactitude ni la validité de ces contenus, n’endosse pas les opinions exprimées, et ne fournit aucun conseil financier ou professionnel à travers ces informations. Voir la section Avertissement pour plus de détails.
  • Récompense
  • Commentaire
  • Partager
Commentaire
0/400
Aucun commentaire
  • Épingler
Trader les cryptos partout et à tout moment
qrCode
Scan pour télécharger Gate app
Communauté
Français (Afrique)
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)