Transformers documentation
FLAN-UL2
Bu model, 2023-06-20 tarihinde Hugging Face Transformers'a katkıda bulunulmuştur.
FLAN-UL2
Genel Bakış
Flan-UL2, T5 mimarisine dayalı bir kodlayıcı-çözücü (encoder-decoder) modelidir. Geçen yılın başlarında yayınlanan UL2 modeliyle aynı yapılandırmayı kullanır.
“Flan” istemci (prompt) ayarlaması ve veri seti derlemesi kullanılarak ince ayar (fine-tune) yapılmıştır. Flan-T5 ile benzer şekilde, modelin ince ayarını yapmadan FLAN-UL2 ağırlıklarını doğrudan kullanabilirsiniz:
Orijinal blogda belirtilen önemli iyileştirmeler şunlardır:
- Orijinal UL2 modeli yalnızca 512'lik bir algılama alanıyla eğitildiğinden, N'in büyük olduğu N-shot prompting senaryoları için ideal değildi.
- Flan-UL2 kontrol noktası, az örnekli bağlam içi öğrenme için daha kullanılabilir hale getiren 2048'lik bir algılama alanı kullanır.
- Orijinal UL2 modeli, iyi performans elde etmek için neredeyse zorunlu olan mod değiştirme jetonlarına sahipti. Ancak, bu jetonlar genellikle çıkarım veya ince ayar sırasında bazı değişiklikler gerektirdiğinden biraz zahmetliydi. Bu güncelleme/değişiklikte, Flan talimat ayarlamasını uygulamadan önce “mod jetonlarını” unutmak için UL2 20B modelini küçük bir parti boyutuyla ek 100k adım boyunca eğitmeye devam ettik. Bu Flan-UL2 kontrol noktası artık mod jetonları gerektirmiyor. Google aşağıdaki varyantları yayımladı:
Orijinal denetim noktaları burada bulunabilir.
Düşük kaynaklı cihazlarda çalıştırma
Model oldukça ağırdır (yarı hassasiyette ~40GB) bu yüzden sadece modeli çalıştırmak istiyorsanız, modelinizi 8bit olarak yüklediğinizden ve OOM sorunu yaşamamak için device_map="auto" kullandığınızdan emin olun!
from transformers import AutoModelForSeq2SeqLM, AutoTokenizer, BitsAndBytesConfig
model = AutoModelForSeq2SeqLM.from_pretrained("google/flan-ul2", quantization_config=BitsAndBytesConfig(load_in_8bit=True), device_map="auto")
tokenizer = AutoTokenizer.from_pretrained("google/flan-ul2")
inputs = tokenizer("A step by step recipe to make bolognese pasta:", return_tensors="pt").to(model.device)
outputs = model.generate(**inputs)
print(tokenizer.batch_decode(outputs, skip_special_tokens=True))
['In a large skillet, brown the ground beef and onion over medium heat. Add the garlic']Update on GitHubAPI referansı, ipuçları, kod örnekleri ve defterler için T5'in dokümantasyon sayfasına bakın.