我们在Flan Collection上通过微调Vicuna-13b进行了微调开发了Flacuna。解决问题时,弗拉库纳(Flacuna)比维库纳(Vicuna)好。访问此处的模型https://huggingface.co/declare-lab/flacuna-13b-v1.0。
Flan-T5在文本到审计生成中也很有用。如果您有兴趣,请在https://github.com/declare-lab/tango上找到我们的工作。
该存储库包含用于将Stanford羊驼合成指令调整到现有指令调节模型(例如Flan-T5)的代码。感谢Joao Gante,我们进行了现场互动演示!我们还在根据声明-lab/flan-eval对许多指令调整模型进行基准测试。我们审慎的模型在Huggingface上完全可以使用吗? :
| 模型 | 参数 | 指令数据 | 培训GPU |
|---|---|---|---|
| Flan-Alpaca碱 | 220m | Flan,羊驼 | 1x A6000 |
| Flan-Alpaca-large | 770m | Flan,羊驼 | 1x A6000 |
| Flan-Alpaca-Xl | 3b | Flan,羊驼 | 1x A6000 |
| flan-alpaca-xxl | 11b | Flan,羊驼 | 4x A6000(FSDP) |
| Flan-gpt4All-Xl | 3b | 弗兰,gpt4all | 1x A6000 |
| Flan-Sharegpt-Xl | 3b | 弗兰,股票/维库纳 | 1x A6000 |
| flan-alpaca-gpt4-xl* | 3b | Flan,GPT4-Alpaca | 1x A6000 |
*推荐以提高性能
羊驼代表了一个令人兴奋的新方向,可以轻松轻松地易于近似于大型语言模型(LLM)的性能(LLMS)。具体而言,它们利用LLM(例如GPT-3)作为合成训练数据生成指令。然后可以使用涵盖超过50K任务的合成数据来对较小的型号进行验证。但是,由于基础美洲驼模型的许可限制,原始实现较少访问。此外,用户注意到合成数据集中的潜在噪声。因此,最好探索已经接受过高质量(但不太多样)诸如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
安装依赖项并下载数据。我们使用羊驼毛的清洁数据进行培训。
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
预处理清洁羊驼训练数据集:
python data_loading.py preprocess_alpaca
--path_in data/alpaca_gpt4.json
--path_out data/train.json
如果要使用GPT4All数据,则可以使用此命令:
python data_loading.py preprocess_gpt4all --path_out data/train.json
如果要使用ShareGPT数据,则可以使用此命令:
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
以下命令将对Flan-T5-XL(单个A6000 GPU上的8小时)进行验证。
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
如果该模型不适合内存,并且您有多个GPU,则可以通过替换--use_compile用--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"
用所需的huggingface repo替换declare-lab/flan-alpaca-xl 。
huggingface-cli login
python inference.py export_to_hub
--path "outputs/model/xl/epoch=2-step=2439.ckpt"
--repo declare-lab/flan-alpaca-xl