Nous avons développé Flacuna en affinant vicuna-13b sur la collection Flan. Flacuna est meilleur que Vicuna lors de la résolution de problèmes. Accédez au modèle ici https://huggingface.co/declare-lab/flacuna-13b-v1.0.
Flan-T5 est également utile dans la génération de texte à audio. Trouvez notre travail sur https://github.com/declare-nab/tango si vous êtes intéressé.
Ce référentiel contient du code pour étendre le réglage de l'instruction synthétique de Stanford Alpaca sur des modèles d'instructions existants tels que Flan-T5. Nous avons une démo interactive en direct grâce à Joao Gante! Nous sommes également en comparaison de nombreux modèles réglés par l'instruction à Declare-Lab / Flan-Eval. Nos modèles pré-entraînés sont entièrement disponibles sur HuggingFace? :
| Modèle | Paramètres | Données d'instructions | GPU de formation |
|---|---|---|---|
| Flan-alpaca-base | 220m | Flan, alpaga | 1x A6000 |
| Flan-alpaca-grand | 770m | Flan, alpaga | 1x A6000 |
| Flan-alpaca-xl | 3B | Flan, alpaga | 1x A6000 |
| Flan-alpaca-xxl | 11b | Flan, alpaga | 4x A6000 (FSDP) |
| Flan-gpt4all-xl | 3B | Flan, gpt4all | 1x A6000 |
| Flan-sharegpt-xl | 3B | Flan, Sharegpt / vicuna | 1x A6000 |
| Flan-alpaca-gpt4-xl * | 3B | Flan, gpt4-alpaca | 1x A6000 |
* Recommandé pour de meilleures performances
Alpaga représente une nouvelle direction passionnante pour approximer les performances des modèles de grande langue (LLMS) comme Chatgpt à moindre coût et facilement. Concrètement, ils exploitent un LLM tel que GPT-3 pour générer des instructions sous forme de données de formation synthétique. Les données synthétiques qui couvrent plus de 50 000 tâches peuvent ensuite être utilisées pour Finetune un modèle plus petit. Cependant, la mise en œuvre d'origine est moins accessible en raison des contraintes de licence du modèle LLAMA sous-jacent. De plus, les utilisateurs ont noté un bruit potentiel dans l'ensemble de données synthétique. Par conséquent, il peut être préférable d'explorer un modèle entièrement accessible qui est déjà formé sur des instructions de haute qualité (mais moins diverses) telles que Flan-T5.
from transformers import pipeline
prompt = "Write an email about an alpaca that likes flan"
model = pipeline(model="declare-lab/flan-alpaca-gpt4-xl")
model(prompt, max_length=128, do_sample=True)
# Dear AlpacaFriend,
# My name is Alpaca and I'm 10 years old.
# I'm excited to announce that I'm a big fan of flan!
# We like to eat it as a snack and I believe that it can help with our overall growth.
# I'd love to hear your feedback on this idea.
# Have a great day!
# Best, AL Paca
Installez les dépendances et téléchargez des données. Nous avons utilisé les données nettoyées d'Alpaca-Lora pour la formation.
conda create -n paca python=3.8 -y
conda activate paca
pip install -r requirements.txt
mkdir -p data
wget https://github.com/declare-lab/flan-alpaca/releases/download/v0.1.0/alpaca_data.json -O data/alpaca.json
wget https://github.com/declare-lab/flan-alpaca/releases/download/v0.1.0/alpaca_data_cleaned.json -O data/alpaca_clean.json
wget https://github.com/declare-lab/flan-alpaca/releases/download/v0.1.0/alpaca_gpt4_data.json -O data/alpaca_gpt4.json
Ensemble de données de formation ALPACA nettoyés en prétraitement:
python data_loading.py preprocess_alpaca
--path_in data/alpaca_gpt4.json
--path_out data/train.json
Si vous souhaitez utiliser les données GPT4Al, vous pouvez utiliser cette commande:
python data_loading.py preprocess_gpt4all --path_out data/train.json
Si vous souhaitez utiliser les données ShareGPT, vous pouvez utiliser cette commande:
wget https://github.com/declare-lab/flan-alpaca/releases/download/v0.1.0/ShareGPT_unfiltered_cleaned_split.json -O data/sharegpt.json
python data_loading.py preprocess_sharegpt --path_out data/train.json
La commande suivante finetnera le Flan-T5-XL (8 heures sur un seul GPU A6000).
python training.py --output_dir outputs/model/xl
--use_compile
--train_epochs 3
--max_source_length 64
--max_target_length 512
--data_path data/train.json
--model_name_or_path "google/flan-t5-xl"
--train_batch_size 1
--gradient_accumulation_steps 64
Si le modèle ne rentre pas dans la mémoire et que vous avez plusieurs GPU, vous pouvez essayer des données entièrement parallèles en remplaçant --use_compile par --use_fsdp .
python inference.py test_model
--path "outputs/model/xl/epoch=2-step=2439.ckpt"
--prompt "Write an email about an alpaca that likes flan"
Remplacez declare-lab/flan-alpaca-xl par votre réprimande HuggingFace souhaitée.
huggingface-cli login
python inference.py export_to_hub
--path "outputs/model/xl/epoch=2-step=2439.ckpt"
--repo declare-lab/flan-alpaca-xl