Desenvolvemos o Flacuna Vicuna-13b na coleção Flan. Flacuna é melhor que Vicuna na solução de problemas. Acesse o modelo aqui https://huggingface.co/declare-lab/flacuna-13b-v1.0.
O FLAN-T5 também é útil na geração de texto para áudio. Encontre nosso trabalho em https://github.com/declare-lab/tango se estiver interessado.
Este repositório contém código para estender o ajuste de instrução sintética de Stanford Alpaca aos modelos ajustados por instruções existentes, como o FLAN-T5. Temos uma demonstração interativa ao vivo, graças a João Gante! Também estamos comparando muitos modelos ajustados por instrução no Declare-Lab/Flan-EVAL. Nossos modelos pré -treinados estão totalmente disponíveis no Huggingface? :
| Modelo | Parâmetros | Dados de instruções | GPUs de treinamento |
|---|---|---|---|
| Flan-Alpaca-Base | 220m | Flan, Alpaca | 1x A6000 |
| Flan-Alpaca-Large | 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, ShareGpt/Vicuna | 1x A6000 |
| Flan-alpaca-gpt4-xl* | 3b | Flan, Gpt4-Alpaca | 1x A6000 |
*Recomendado para melhor desempenho
A ALPACA representa uma nova e emocionante direção para aproximar o desempenho de grandes modelos de idiomas (LLMS), como o Chatgpt de forma barata e facilmente. Concretamente, eles aproveitam um LLM como o GPT-3 para gerar instruções como dados de treinamento sintético. Os dados sintéticos que abrangem mais de 50 mil tarefas podem ser usados para definir um modelo menor. No entanto, a implementação original é menos acessível devido a restrições de licenciamento do modelo de lhama subjacente. Além disso, os usuários observaram ruído potencial no conjunto de dados sintéticos. Portanto, pode ser melhor explorar um modelo totalmente acessível que já é treinado em instruções de alta qualidade (mas menos diversas), como o 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
Instale dependências e baixe dados. Utilizamos os dados limpos da Alpaca-Lora para treinamento.
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
Pré -processamento Limpeio do conjunto de dados de treinamento de alpaca:
python data_loading.py preprocess_alpaca
--path_in data/alpaca_gpt4.json
--path_out data/train.json
Se você deseja usar dados GPT4all, pode usar este comando:
python data_loading.py preprocess_gpt4all --path_out data/train.json
Se você deseja usar os dados do ShareGPT, pode 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
O comando a seguir fino o Flan-T5-XL (8 horas em uma única 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
Se o modelo não se encaixar na memória e você tiver várias GPUs, poderá tentar dados totalmente nominados paralelos, substituindo --use_compile por --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"
Substitua declare-lab/flan-alpaca-xl com o repo Huggingface desejado.
huggingface-cli login
python inference.py export_to_hub
--path "outputs/model/xl/epoch=2-step=2439.ckpt"
--repo declare-lab/flan-alpaca-xl