Introduction
L’IA générative est sur le point d’automatiser entièrement la génération de code, bien qu’elle n’ait pas encore atteint ce jalon. Cependant, le meilleur outil suivant est Code Llama ! Publié en 2023, le dernier générateur de code de Meta, Code Llama, est conçu pour aider les codeurs dans diverses tâches de programmation. Code Llama se concentre sur l’amélioration des flux de travail des développeurs, la génération et la complétion de code, ainsi que l’assistance aux tests. Explorons Code Llama en tant qu’outil autonome, puis comparons-le à d’autres outils d’IA générative spécialisés dans le codage.
Comment fonctionne Code Llama
Code Llama est une variante spécialisée dans le code de Llama 2, développée en entraînant davantage Llama 2 sur des ensembles de données spécifiques au code et en échantillonnant davantage de données de ces ensembles pendant des périodes prolongées. Ce processus a doté Code Llama de capacités de codage améliorées, en s’appuyant sur la base de Llama 2. Il peut générer du code et des descriptions en langage naturel du code à partir de prompts de code et de langage naturel (par exemple, « Écris-moi une fonction qui affiche la séquence de Fibonacci »). De plus, il peut être utilisé pour la complétion et le débogage de code. Code Llama prend en charge de nombreux langages de programmation populaires, notamment Python, C++, Java, PHP, TypeScript (JavaScript), C# et Bash.
Source : Meta AI
Meta publie quatre tailles de Code Llama, avec des modèles de 7B, 13B, 34B et 70B paramètres respectivement. Chacun de ces modèles, à l’exception de la version 70B, est entraîné sur 500B tokens de code et de données liées au code, tandis que le modèle 70B est entraîné sur 1T tokens. Les modèles de base et instruct 7B et 13B incluent également la fonctionnalité fill-in-the-middle (FIM), leur permettant d’insérer du code dans du code existant et de prendre en charge des tâches telles que la complétion de code dès le départ.
Ces modèles répondent à différents besoins de service et de latence. Le modèle 7B, par exemple, peut être servi sur un seul GPU. Alors que les modèles 34B et 70B offrent les meilleurs résultats et fournissent une assistance de codage supérieure, les modèles plus petits 7B et 13B sont plus rapides et mieux adaptés aux tâches nécessitant une faible latence, comme la complétion de code en temps réel.
Capacités de Code Llama
Les modèles Code Llama fournissent des générations stables avec jusqu’à 100 000 tokens de contexte. Tous les modèles sont entraînés sur des séquences de 16 000 tokens et montrent des améliorations avec des entrées allant jusqu’à 100 000 tokens.
Cette capacité à gérer des séquences d’entrée plus longues facilite non seulement la génération de programmes plus longs, mais débloque également de nouveaux cas d’utilisation pour un modèle de langage de code (LLM). Par exemple, les utilisateurs peuvent fournir au modèle plus de contexte de leur base de code, rendant le code généré plus pertinent. De plus, cela est bénéfique dans les scénarios de débogage dans des bases de code plus grandes, où il peut être difficile pour les développeurs de suivre tout le code lié à un problème spécifique. En permettant aux développeurs de saisir une longueur entière de code, le modèle peut aider à déboguer de grandes sections de code.
De plus, Meta a affiné deux variantes supplémentaires de Code Llama : Code Llama — Python et Code Llama — Instruct.
Code Llama — Python est une version spécialisée dans un langage, affinée sur 100B tokens de code Python. Étant donné que Python est le langage le plus utilisé pour les benchmarks de génération de code et qu’il joue un rôle important dans la communauté IA aux côtés de PyTorch, ce modèle spécialisé offre une utilité supplémentaire.
Code Llama — Instruct est une variante affinée par instruction et alignée. L’affinage par instruction poursuit le processus d’entraînement avec un objectif différent, où le modèle reçoit une entrée « instruction en langage naturel » et la sortie attendue. Cela améliore sa capacité à comprendre les attentes humaines à partir des prompts. Il est recommandé d’utiliser les variantes Code Llama — Instruct pour la génération de code, car elles sont affinées pour produire des réponses utiles et sûres en langage naturel.
Il n’est pas recommandé d’utiliser Code Llama ou Code Llama — Python pour des tâches générales en langage naturel, car ces modèles ne sont pas conçus pour suivre des instructions en langage naturel. Si vous souhaitez réaliser des tâches de NLP, vous pouvez choisir les modèles Llama2 ou Llama3, auxquels vous pouvez accéder en vous intégrant à l’API LLM de novita.ai :

Avec des prix compétitifs et des modèles évolutifs, l’API d’inférence LLM de Novita AI offre à votre LLM une stabilité incroyable et une latence plutôt faible en moins de 2 secondes. Les performances du LLM peuvent être grandement améliorées avec l’API d’inférence LLM de Novita AI.
Code Llama est spécialisé pour les tâches spécifiques au code et ne convient pas comme modèle de base pour d’autres applications.
Les utilisateurs des modèles Code Llama doivent respecter la licence et la politique d’utilisation acceptable de Meta.
Évaluation des performances de Code Llama
Pour évaluer les performances de Code Llama par rapport aux solutions existantes, Meta a utilisé deux benchmarks de codage populaires : HumanEval et Mostly Basic Python Programming (MBPP). HumanEval évalue la capacité du modèle à compléter du code en se basant sur des docstrings, tandis que MBPP teste la capacité du modèle à écrire du code à partir d’une description.
Les tests de benchmark ont démontré que Code Llama surpassait les autres modèles de langage spécialisés dans le code open source et dépassait les performances de Llama 2. Par exemple, Code Llama 34B a obtenu un score de 53,7 % sur HumanEval et de 56,2 % sur MBPP, le plus élevé parmi les solutions ouvertes de pointe et comparable à ChatGPT.
Comme toute technologie de pointe, Code Llama comporte certains risques. Construire des modèles d’IA de manière responsable est crucial, c’est pourquoi de nombreuses mesures de sécurité ont été mises en œuvre avant la publication de Code Llama. Dans le cadre des efforts de red teaming, une évaluation quantitative a été menée pour évaluer le risque que Code Llama génère du code malveillant. Des prompts conçus pour solliciter du code malveillant avec une intention claire ont été utilisés, et les réponses de Code Llama ont été comparées à celles de ChatGPT (GPT-3.5 Turbo). Les résultats ont indiqué que Code Llama fournissait des réponses plus sûres.
Comment utiliser Code Llama
Code Llama n’est pas directement accessible via un site Web ou une plateforme. Il est plutôt disponible sur GitHub et peut être téléchargé pour une utilisation locale. Voici quelques façons d’accéder à Code Llama :
1. Intégration de chatbot : Perplexity-AI, une IA textuelle similaire à ChatGPT, a intégré la version à 34B paramètres de Code Llama. Cela permet aux utilisateurs de générer du code via des prompts textuels. Perplexity-AI propose plusieurs variantes axées sur des langages de programmation spécifiques tels que Python, Java, C++ et JavaScript.
2. Intégration de modèle : Hugging Face, une plateforme open source, fournit des modèles par défaut qui peuvent être utilisés pour générer facilement du code.
3. Environnement de développement intégré (IDE) : Ollama est une bibliothèque de Code Llama qui peut être téléchargée et intégrée directement dans les IDE. Cela permet aux utilisateurs d’utiliser des modèles de langage volumineux localement.
Dans ce tutoriel, nous allons montrer les capacités de Code Llama en utilisant Perplexity AI. Nous commencerons par définir et créer des fonctions de tri. D’abord, nous créerons une fonction de tri binaire, qui est similaire au tri par insertion mais utilise la recherche binaire pour déterminer la position de l’élément. Ensuite, nous demanderons à Perplexity s’il existe d’autres algorithmes comparables au tri binaire. Enfin, nous demanderons à Perplexity de générer une classe de tri contenant certaines de ces fonctions.
Prompt :
J’ai une classe Python qui bénéficierait d’un algorithme de tri binaire. Pourriez-vous créer une classe Python qui prend une liste de valeurs, les trie à l’aide du tri binaire et retourne la liste triée ?
Réponse :

Prompt :
Existe-t-il un autre algorithme comparable ou meilleur que le tri binaire ?
Réponse :

Prompt :
J’aimerais en fait avoir des options de tri pour mes besoins. Pouvez-vous créer une classe de tri avec les fonctionnalités de tri binaire, tri rapide et tri par fusion ?
Réponse :



Qui bénéficie de Code Llama
Les programmeurs utilisent déjà des modèles de langage volumineux (LLM) pour les assister dans diverses tâches, de l’écriture de nouveaux logiciels au débogage de code existant. L’objectif est d’améliorer les flux de travail des développeurs, leur permettant de se concentrer sur les aspects plus humains de leur travail plutôt que sur des tâches répétitives.
Chez Meta, on pense que les modèles d’IA, en particulier les LLM pour le codage, bénéficient considérablement d’une approche ouverte, favorisant à la fois l’innovation et la sécurité. Des modèles spécifiques au code et accessibles au public peuvent stimuler le développement de nouvelles technologies qui améliorent la vie des gens. En publiant des modèles comme Code Llama, l’ensemble de la communauté peut évaluer leurs capacités, identifier les problèmes et remédier aux vulnérabilités.
Utilisation responsable de Code Llama
L’article de recherche de Meta fournit des informations détaillées sur le développement de Code Llama, les tests de benchmark effectués, les limites du modèle et les défis rencontrés, ainsi que les mesures d’atténuation prises et les défis futurs à relever.
De plus, le guide d’utilisation responsable a été mis à jour pour inclure des conseils sur le développement responsable de modèles en aval, couvrant des aspects tels que :
- Définir des politiques de contenu et des mesures d’atténuation
- Préparer les données
- Affiner le modèle
- Évaluer et améliorer les performances
- Traiter les risques au niveau de l’entrée et de la sortie
- Mettre en place des mécanismes de transparence et de rapport dans les interactions utilisateur
Les développeurs sont invités à évaluer leurs modèles à l’aide de benchmarks d’évaluation spécifiques au code et à effectuer des études de sécurité sur des cas d’utilisation spécifiques au code, tels que la génération de logiciels malveillants, de virus informatiques ou de code malveillant. Il est également recommandé d’utiliser des ensembles de données de sécurité pour les évaluations automatiques et humaines, et de procéder à du red teaming avec des prompts adverses.
L’avenir de l’IA générative pour le codage
Code Llama est conçu pour soutenir les ingénieurs logiciels dans tous les secteurs, y compris la recherche, l’industrie, les projets open source, les ONG et les entreprises. Cependant, il existe encore de nombreux cas d’utilisation au-delà de ce que nos modèles de base et instruct peuvent actuellement prendre en charge.
Nous espérons que Code Llama incitera d’autres personnes à utiliser Llama 2 pour créer de nouveaux outils innovants pour la recherche et les produits commerciaux.
Conclusion
Code Llama est un outil unique conçu pour aider dans les projets de programmation, permettant aux développeurs de passer de la génération de code aux objectifs du projet. Il prend en charge la complétion de code, écrit des commentaires lisibles par l’homme et génère du code.
En tant qu’outil de programmation IA, Code Llama se distingue par sa capacité hors ligne. Il peut être importé dans un IDE, éliminant ainsi le besoin d’une connexion Internet. Entraîné sur 100 Go de données, il excelle dans la complétion et la génération de code. Il existe plusieurs versions de Code Llama, notamment les versions à 7B, 13B et 34B paramètres, ainsi que des versions spécialisées comme -Python et -Instruct. Choisissez celle qui correspond le mieux à vos besoins et bonne chance dans vos projets de programmation !
novita.ai, la plateforme unique pour une créativité illimitée qui vous donne accès à plus de 100 API. De la génération d’images au traitement du langage, en passant par l’amélioration audio et la manipulation vidéo, avec un paiement à l’utilisation économique, elle vous libère des tracas de la maintenance des GPU tout en construisant vos propres produits. Essayez-la gratuitement.
Lectures recommandées
Moteur d’inférence LLM Novita AI : le plus grand débit et l’inférence la moins chère disponibles
