Le référentiel «Llama-Repes» est un compagnon des modèles Meta Llama. Nous prenons en charge la dernière version, LLAMA 3.2 Vision et Llama 3.2 Text, dans ce référentiel. Ce référentiel contient des exemples de scripts et ordinateurs portables pour démarrer avec les modèles dans une variété de cas d'utilisation, y compris le réglage fin pour l'adaptation du domaine et la construction d'applications basées sur LLM avec LLAMA et d'autres outils de l'écosystème LLM. Les exemples ici utilisent LLAMA localement, dans le cloud et sur site.
Conseil
Commencez avec Llama 3.2 avec ces nouvelles recettes:
Note
LLAMA 3.2 suit le même modèle invite que Llama 3.1, avec un nouveau jeton spécial <|image|> représentant l'image d'entrée pour les modèles multimodaux.
Plus de détails sur les modèles d'invite pour le raisonnement d'image, l'appel à outils et l'interprète de code peuvent être trouvés sur le site Web de la documentation.
recipes/src/Ces instructions vous procureront une copie du projet opérationnel sur votre machine locale à des fins de développement et de test. Voir le déploiement pour des notes sur la façon de déployer le projet sur un système en direct.
Si vous souhaitez utiliser des nocreurs Pytorch au lieu de la version stable, accédez à ce guide pour récupérer le paramètre --extra-index-url URL pour les commandes pip install sur votre plate-forme.
Llama-Repices fournit une distribution PIP pour une installation et une utilisation faciles dans d'autres projets. Alternativement, il peut être installé à partir de la source.
Note
Assurez-vous d'utiliser la bonne version CUDA (à partir de nvidia-smi ) lors de l'installation des roues pytorch. Ici, nous utilisons 11,8 comme cu118 . Les GPU H100 fonctionnent mieux avec CUDA> 12.0
pip install llama-recipes
Llama-Repices propose l'installation de packages en option. Il existe trois groupes de dépendances facultatifs. Pour exécuter les tests unitaires, nous pouvons installer les dépendances requises avec:
pip install llama-recipes[tests]
Pour l'exemple VLLM, nous avons besoin d'exigences supplémentaires qui peuvent être installées avec:
pip install llama-recipes[vllm]
Pour utiliser les sujets sensibles Sécurité Contrôle avec:
pip install llama-recipes[auditnlg]
Certaines recettes nécessitent la présence de Langchain. Pour installer les packages, suivez la description de la recette ou installez avec:
pip install llama-recipes[langchain]
Les dépendances facultatives peuvent également être combinées avec [Option1, Option2].
Pour installer à partir de Source EG pour le développement, utilisez ces commandes. Nous utilisons un nouveau-né comme backend de construction qui nécessite un package PIP à jour ainsi que SEtuptools.
git clone [email protected]:meta-llama/llama-recipes.git
cd llama-recipes
pip install -U pip setuptools
pip install -e .
Pour le développement et la contribution à Llama-Repices, veuillez installer toutes les dépendances facultatives:
git clone [email protected]:meta-llama/llama-recipes.git
cd llama-recipes
pip install -U pip setuptools
pip install -e .[tests,auditnlg,vllm]
Vous pouvez trouver des modèles LLAMA sur Hugging Face Hub ici, où les modèles avec hf dans le nom sont déjà convertis en points de contrôle de visage étreignant, donc aucune autre conversion n'est nécessaire . L'étape de conversion ci-dessous est uniquement pour les poids des modèles originaux de Meta qui sont également hébergés sur le Hub Model Hub.
Si vous avez les points de contrôle du modèle téléchargés sur le site Web Meta, vous pouvez le convertir au format de face étreint avec:
# # Install Hugging Face Transformers from source
pip freeze | grep transformers # # verify it is version 4.45.0 or higher
git clone [email protected]:huggingface/transformers.git
cd transformers
pip install protobuf
python src/transformers/models/llama/convert_llama_weights_to_hf.py
--input_dir /path/to/downloaded/llama/weights --model_size 3B --output_dir /output/path La majeure partie du code traitant de l'utilisation des lama est organisée sur 2 dossiers principaux: recipes/ et src/ .
recipes/Contient des exemples organisés dans des dossiers par sujet:
| Sous-dossier | Description |
|---|---|
| start | Le "Hello World" de l'utilisation de Llama, commencez ici si vous êtes nouveau dans l'utilisation de Llama. |
| use_cases | Scripts montrant des applications communes de Meta Llama3 |
| 3P_INTÉGRATIONS | Dossier appartenant à des partenaires montrant des applications communes de Meta Llama3 |
| responsable_ai | Scripts à utiliser Purlellama pour la sauvegarde des sorties du modèle |
| expérimental | Meta Llama Implémentations de techniques LLM expérimentales |
src/Contient des modules qui prennent en charge l'exemple de recettes:
| Sous-dossier | Description |
|---|---|
| configuration | Contient les fichiers de configuration pour les méthodes PEFT, FSDP, ensembles de données, poids et biais d'expérience de suivi des expériences. |
| ensembles de données | Contient des scripts individuels pour chaque ensemble de données à télécharger et à traiter. Note |
| inférence | Comprend des modules pour l'inférence pour les modèles affinés. |
| Model_checkpointing | Contient les gestionnaires de points de contrôle FSDP. |
| politiques | Contient des scripts FSDP pour fournir différentes politiques, telles que la précision mixte, la politique d'emballage du transformateur et le point de contrôle d'activation ainsi que n'importe quel optimiseur de précision (utilisé pour l'exécution du FSDP avec le mode BF16 pur). |
| utils | Fichiers utilitaires pour: - train_utils.py fournit une boucle de formation / évaluation et plus d'utilisations de train.- dataset_utils.py pour obtenir des ensembles de données prétraités.- config_utils.py pour remplacer les configurations reçues de CLI.- fsdp_utils.py fournit une politique d'emballage FSDP pour les méthodes PEFT.- memory_utils.py Manager de contexte pour suivre différentes statistiques de mémoire dans la boucle de train. |
Les recettes et les modules de ce référentiel prennent en charge les fonctionnalités suivantes:
| Fonctionnalité | |
|---|---|
| Prise en charge HF pour l'inférence | ✅ |
| Prise en charge HF pour les finetuning | ✅ |
| Pivot | ✅ |
| Initialisation différée (Meta Init) | ✅ |
| Mode CPU faible pour plusieurs GPU | ✅ |
| Précision mixte | ✅ |
| Quantification de nœud unique | ✅ |
| Attention flash | ✅ |
| FSDP de contrôle d'activation FSDP | ✅ |
| Données hybrides parallèles (HSDP) | ✅ |
| Emballage et rembourrage de l'ensemble de données | ✅ |
| BF16 Optimizer (pur BF16) | ✅ |
| Profilage et suivi du MFU | ✅ |
| Accumulation de gradient | ✅ |
| Déchargement du processeur | ✅ |
| Conversion du point de contrôle FSDP en HF pour l'inférence | ✅ |
| W&B Experiment Tracker | ✅ |
Veuillez lire contribution.md pour plus de détails sur notre code de conduite et le processus de soumission des demandes de traction à nous.
Voir le fichier de licence pour Meta Llama 3.2 ici et une politique d'utilisation acceptable ici
Voir le fichier de licence pour Meta Llama 3.1 ici et une politique d'utilisation acceptable ici
Voir le fichier de licence pour Meta Llama 3 ici et la politique d'utilisation acceptable ici
Voir le fichier de licence pour Meta Llama 2 ici et une politique d'utilisation acceptable ici