Description
Code Llama est une famille de grands modèles linguistiques développés par Meta, basés sur Llama 2 et spécialisés dans les tâches liées au code. Ce dépôt fournit le code d'inférence nécessaire pour exécuter ces modèles puissants. Les modèles Code Llama offrent des performances de pointe parmi les modèles ouverts, avec des capacités telles que le remplissage de code, la prise en charge de contextes d'entrée étendus jusqu'à 100 000 tokens, et le suivi d'instructions zero-shot pour la programmation.
La famille comprend des modèles de base (Code Llama), des versions spécifiques à Python (Code Llama - Python) et des modèles de suivi d'instructions (Code Llama - Instruct). Ils sont disponibles en différentes tailles de paramètres : 7B, 13B, 34B et 70B. Tous les modèles sont entraînés sur des séquences de 16k tokens et démontrent des performances améliorées avec des entrées allant jusqu'à 100k tokens. Les variantes 7B et 13B de Code Llama et Code Llama - Instruct sont capables de remplir du code en fonction du contenu environnant.
Développé en affinant Llama 2 avec un échantillonnage de code plus élevé, Code Llama intègre des mesures de sécurité considérables. Le dépôt fournit les poids des modèles et le code de démarrage pour ces modèles pré-entraînés et affinés. Il sert d'exemple minimal pour charger les modèles Code Llama et exécuter l'inférence. Les utilisateurs peuvent télécharger les poids des modèles et les tokenizers depuis le site web de Meta après avoir accepté la licence, puis utiliser le script `download.sh` fourni.
La configuration implique de cloner le dépôt et d'installer les dépendances dans un environnement conda avec PyTorch/CUDA. L'inférence nécessite de spécifier les valeurs de parallélisme de modèle (MP), qui varient selon la taille du modèle (par exemple, 1 pour 7B, 8 pour 70B). Le dépôt comprend des scripts d'exemple pour la complétion de code (`example_completion.py`), le remplissage de code (`example_infilling.py`) et le suivi d'instructions (`example_instructions.py`), démontrant comment interroger et exécuter efficacement les différents types de modèles.
Les modèles Code Llama - Instruct sont spécifiquement affinés pour suivre les instructions, nécessitant un formatage particulier pour des résultats optimaux. Le dépôt souligne également les risques potentiels associés aux technologies d'IA et dirige les utilisateurs vers un Guide d'utilisation responsable et des articles de recherche pour plus d'informations. Les problèmes liés aux bugs logiciels ou au comportement des modèles peuvent être signalés via les liens GitHub fournis.
Fonctionnalités principales de Code Llama
Code d'inférence pour les modèles Code Llama
Prend en charge les modèles de base, spécialisés Python et de suivi d'instructions
Disponible en tailles de paramètres 7B, 13B, 34B et 70B
Performances de pointe parmi les modèles de code ouverts
Capacités de remplissage de code pour les modèles 7B et 13B
Prend en charge les contextes d'entrée importants jusqu'à 100 000 tokens
Suivi d'instructions zero-shot pour les tâches de programmation
Entraîné sur des séquences de 16k tokens
Inclut les poids des modèles et le code de démarrage
Fournit des scripts d'exemple pour la complétion, le remplissage et le suivi d'instructions
Intègre des mesures de sécurité
Sous licence pour les chercheurs et les entités commerciales
Premiers pas avec Code Llama
Cloner : Clonez le dépôt depuis GitHub.
Installer : Configurez un environnement conda avec PyTorch/CUDA et installez les dépendances en utilisant `pip install -e .`.
Télécharger : Obtenez les poids des modèles et les tokenizers depuis le site web de Meta, puis utilisez `download.sh`.
Configurer : Déterminez la valeur appropriée de parallélisme de modèle (MP) en fonction de la taille du modèle.
Exécuter : Lancez l'inférence en utilisant les scripts d'exemple fournis (par exemple, `example_completion.py`, `example_infilling.py`, `example_instructions.py`).
Optimiser : Ajustez `max_seq_len` et `max_batch_size` en fonction du matériel et du cas d'utilisation.
Cas d'utilisation de Code Llama
- Génération de code
- Complétion de code
- Remplissage de code
- Suivi d'instructions
- Développement Python
- Recherche
- Tâches à contexte large








