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 Alpaca Synthetic Instructing TuningをFlan-T5などの既存の命令チューニングモデルに拡張するためのコードが含まれています。 Joao Ganteのおかげで、ライブインタラクティブなデモがあります!また、Declare-Lab/Flan-Evalで多くの命令チューニングモデルをベンチマークしています。私たちの冒険モデルは、Huggingfaceで完全に利用可能ですか? :
| モデル | パラメーター | 命令データ | トレーニングGPU |
|---|---|---|---|
| flan-alpaca-base | 220m | フラン、アルパカ | 1x A6000 |
| flan-alpaca-rarge | 770m | フラン、アルパカ | 1x A6000 |
| flan-alpaca-xl | 3b | フラン、アルパカ | 1x A6000 |
| flan-alpaca-xxl | 11b | フラン、アルパカ | 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 |
*パフォーマンスを向上させるために推奨されます
Alpacaは、ChatGPTのような大規模な言語モデル(LLMS)のパフォーマンスを安く簡単に近似するエキサイティングな新しい方向性を表しています。具体的には、GPT-3などのLLMを活用して、合成トレーニングデータとして命令を生成します。 50kを超えるタスクをカバーする合成データを使用して、小さなモデルを微調整することができます。ただし、基礎となるLlamaモデルのライセンス制約により、元の実装はあまりアクセスできません。さらに、ユーザーは合成データセットの潜在的なノイズに注目しています。したがって、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
依存関係をインストールし、データをダウンロードします。 Alpaca-Loraのクリーンデータをトレーニングに使用しました。
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(1つの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"
declare-lab/flan-alpaca-xl希望のHuggingface 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