Wir haben Flacuna entwickelt, indem wir Vicuna-13b in der Flan Collection fein. Flacuna ist besser als Vicuna bei der Problemlösung. Greifen Sie hier auf das Modell zu https://huggingface.co/declare-lab/flacuna-13b-v1.0.
FLAN-T5 ist auch in der Generierung von Text-zu-Audio-Generation nützlich. Finden Sie unsere Arbeiten unter https://github.com/declare-lab/tango, wenn Sie interessiert sind.
Dieses Repository enthält Code für die Erweiterung der Stanford Alpaca Synthetic Anleitungsstimmung auf vorhandene Modelle mit Anweisungen wie FLAN-T5. Dank Joao Gante haben wir eine interaktive Live -Demo! Wir bezeichnen auch viele modellierte Modelle mit Declare-Lab/Flan-Eval. Unsere vorbereiteten Modelle sind auf dem Umarmungsface vollständig erhältlich? :
| Modell | Parameter | Anweisungsdaten | Training GPUs |
|---|---|---|---|
| Flan-Alpaca-Base | 220 m | Flan, Alpaka | 1x A6000 |
| Flan-Alpaca-Large | 770 m | Flan, Alpaka | 1x A6000 |
| Flan-Alpaca-XL | 3b | Flan, Alpaka | 1x A6000 |
| Flan-Alpaca-XXL | 11b | Flan, Alpaka | 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-Alpaka | 1x A6000 |
*Für eine bessere Leistung empfohlen
Alpaka ist eine aufregende neue Richtung, um die Leistung von großer Sprachmodellen (LLMs) wie Chatgpt billig und einfach zu approximieren. Konkret nutzen sie ein LLM wie GPT-3, um Anweisungen als synthetische Trainingsdaten zu generieren. Die synthetischen Daten, die mehr als 50.000 Aufgaben abdecken, können dann verwendet werden, um ein kleineres Modell zu finanzieren. Die ursprüngliche Implementierung ist jedoch aufgrund der Lizenzbeschränkungen des zugrunde liegenden Lama -Modells weniger zugänglich. Darüber hinaus haben Benutzer potenzielle Rauschen im synthetischen Datensatz festgestellt. Daher ist es möglicherweise besser, ein vollständig zugängliches Modell zu untersuchen, das bereits auf hochwertigen (aber weniger vielfältigen) Anweisungen wie FLAN-T5 geschult ist.
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
Installieren Sie Abhängigkeiten und laden Sie Daten herunter. Wir haben die gereinigten Daten von Alpaca-Lora zum Training verwendet.
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
Precess gereinigtes Alpaka -Trainingsdatensatz:
python data_loading.py preprocess_alpaca
--path_in data/alpaca_gpt4.json
--path_out data/train.json
Wenn Sie GPT4all -Daten verwenden möchten, können Sie diesen Befehl verwenden:
python data_loading.py preprocess_gpt4all --path_out data/train.json
Wenn Sie Sharegpt -Daten verwenden möchten, können Sie diesen Befehl verwenden:
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
Der folgende Befehl finetune den Flan-T5-XL (8 Stunden auf einer einzigen A6000-GPU).
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
Wenn das Modell nicht in den Speicher passt und mehrere GPUs haben, können Sie voll geschützte Daten parallel versuchen, indem Sie --use_compile durch --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"
Ersetzen Sie declare-lab/flan-alpaca-xl durch Ihr gewünschtes Umarmungsface-Repo.
huggingface-cli login
python inference.py export_to_hub
--path "outputs/model/xl/epoch=2-step=2439.ckpt"
--repo declare-lab/flan-alpaca-xl