Dieses Repo trainiert Google/FLAN-T5 auf dem Alpaca-Datensatz mit einer Anpassungsmethode mit niedriger Anpassung. Es reduziert den benötigten GPU -Speicher und beschleunigt das Training.
17. Juni 2023: Fügen Sie ein Notizbuch hinzu. Sie können Flan-Alpaca-Lora jetzt versuchen.
3. Mai 2023: Zugflan-T5-XL mit Alpaca-GPT4-Datensatz.
13. April 2023: Zugflan-T5-XL mit dem GPTEacher-Datensatz (Anweisungen und Rollenspiel), was gut zu funktionieren scheint.
5. April 2023: Zugflan-T5-XXL mit 8-Bit-Quantisierung. Das Modell kann in eine einzelne 3090 GPU eingebaut werden. Alle Modelle finden Sie im Umarmungsfeld.
| Modell | adapter_params | Daten | GPU | Zeit |
|---|---|---|---|---|
| Flan-Alpaca-Lora-Base | 0,9 m | Alpaka gereinigt | 3090 | 20 Minuten |
| Flan-Alpaca-Lora-Large | 2,4 m | Alpaka gereinigt | 3090 | 50 Minuten |
| Flan-Alpaca-Lora-xl | 4,7 m | Alpaka gereinigt | 3090 | 2,5 Stunden |
| Flan-Alpaca-Lora-xxl | 9,4 m | Alpaka gereinigt | 3090 | 10 Stunden |
| Flan-Gptacher-Lora-XL | 4,7 m | Gpteigner | 3090 | 80 Minuten |
| Flan-Alpaca-GPT4-LORA-XL | 4,7 m | Alpaka-GPT4 | 3090 | 3,25 Stunden |
torch == 1.13.1
transformers == 4.29.1
peft == 0.3.0
bitsandbytes==0.38.1
accelerate==0.19.0
Die neueste Version dieser Pakete sollte gut funktionieren.
Die folgenden Befehlsfonetune Flan-T5-Base mit nur 20 Minuten auf einer einzelnen 3090 GPU
python train.py
--model_name_or_path google/flan-t5-base
--data_path ./alpaca_data_cleaned.json
--bf16 True
--output_dir ./ckpts/
--num_train_epochs 3
--per_device_train_batch_size 8
--gradient_accumulation_steps 8
--evaluation_strategy " no "
--save_strategy " no "
--learning_rate 5e-4
--weight_decay 0.
--warmup_ratio 0.03
--lr_scheduler_type " cosine "
--logging_steps 50
--tf32 TrueBeispiel Verwendung:
import transformers
from peft import PeftModel
# Where peft_model_id should be the saving directory or huggingface model id
model_name = "google/flan-t5-large" ; peft_model_id = "reasonwang/flan-alpaca-lora-large"
tokenizer = transformers . AutoTokenizer . from_pretrained ( model_name )
base_model = transformers . AutoModelForSeq2SeqLM . from_pretrained ( model_name )
peft_model = PeftModel . from_pretrained ( base_model , peft_model_id )
# Input an instruction or any other questions.
inputs = tokenizer ( "List a few tips to get good scores in math." , return_tensors = "pt" )
outputs = peft_model . generate ( ** inputs , max_length = 128 , do_sample = True )
print ( tokenizer . batch_decode ( outputs , skip_special_tokens = True ))