Desarrollamos flacuna al ajustar la vicuna-13b en la colección Flan. Flacuna es mejor que Vicuna en la resolución de problemas. Acceda al modelo aquí https://huggingface.co/declare-lab/flacuna-13b-v1.0.
Flan-T5 también es útil en la generación de texto a audio. Encuentre nuestro trabajo en https://github.com/declare-lab/tango si está interesado.
Este repositorio contiene código para extender el sintonización de instrucciones sintéticas de Stanford Alpaca a los modelos existentes ajustados a las instrucciones como Flan-T5. ¡Tenemos una demostración interactiva en vivo gracias a Joao Gante! También estamos en comparación con muchos modelos ajustados a instrucciones en Declare-Lab/Flan-Eval. ¿Nuestros modelos previos al estado de ejercicio están totalmente disponibles en Huggingface? :
| Modelo | Parámetros | Datos de instrucciones | GPU de entrenamiento |
|---|---|---|---|
| Flan-alpaca-base | 220m | Flan, alpaca | 1x A6000 |
| Flan-alpaca-grande | 770m | Flan, alpaca | 1x A6000 |
| Flan-alpaca-xl | 3B | Flan, alpaca | 1x A6000 |
| Flan-alpaca-xxl | 11b | Flan, alpaca | 4x A6000 (FSDP) |
| Flan-gpt4all-xl | 3B | Flan, gpt4all | 1x A6000 |
| Flan-sharegpt-xl | 3B | Flan, compartir/vicuna | 1x A6000 |
| Flan-alpaca-gpt4-xl* | 3B | Flan, gpt4-alpaca | 1x A6000 |
*Recomendado para un mejor rendimiento
Alpaca representa una nueva dirección emocionante para aproximar el rendimiento de los modelos de idiomas grandes (LLM) como ChatGPT de manera económica y fácil. Concretamente, aprovechan un LLM como GPT-3 para generar instrucciones como datos de entrenamiento sintético. Los datos sintéticos que cubren más de 50k tareas se pueden usar para finentar un modelo más pequeño. Sin embargo, la implementación original es menos accesible debido a las limitaciones de licencia del modelo de LLAMA subyacente. Además, los usuarios han notado ruido potencial en el conjunto de datos sintéticos. Por lo tanto, puede ser mejor explorar un modelo totalmente accesible que ya está entrenado en instrucciones de alta calidad (pero menos diversas) como 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
Instalar dependencias y descargar datos. Utilizamos los datos limpios de Alpaca-Lora para el entrenamiento.
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
Preprocesamiento de datos de entrenamiento de alpaca limpiada:
python data_loading.py preprocess_alpaca
--path_in data/alpaca_gpt4.json
--path_out data/train.json
Si desea usar datos GPT4All, puede usar este comando:
python data_loading.py preprocess_gpt4all --path_out data/train.json
Si desea usar datos ShareGPT, puede usar este comando:
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
El siguiente comando FINETNE FLAN-T5-XL (8 horas en una sola 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 el modelo no encaja en la memoria, y tiene varias GPU, puede probar datos totalmente establecidos en paralelo reemplazando --use_compile con --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"
Reemplace declare-lab/flan-alpaca-xl con el repositorio de Huggingface deseado.
huggingface-cli login
python inference.py export_to_hub
--path "outputs/model/xl/epoch=2-step=2439.ckpt"
--repo declare-lab/flan-alpaca-xl