Transformers documentation
FLAN-UL2
はじめに
ベースクラス
モデル
プリプロセッサ
推論
Pipeline API
Generate API
最適化
モデルとチャットする
サービング
トレーニング
ハードウェア
量子化
エコシステム統合
リソース
API
主要クラス
モデル
テキストモデル
A.X-K1A.X-K2AFMoEALBERTApertusArceeBambaBARTBARThezBARTphoビームBERTBertGenerationBertJapaneseBERTweetBigBirdBigBirdPegasusBioGptBitNetBlenderbotBlenderbot SmallBLOOMBLTByT5CamemBERTCANINECodeGenCodeLlamaCohereCohere2Cohere2MoeConvBERTCPMCPMANTCTRLDBRXDeBERTaDeBERTa-v2DeepSeek-OCR-2DeepSeek-V2DeepSeek-V3DeepSeek-V3.2DeepSeek-V4DiffLlamaDistilBERTDogedots1DPRELECTRAエンコーダーデコーダーモデルERNIEErnie4_5Ernie4_5_MoEESMESMCESMFold2EuroBERTEXAONE-4.0EXAONE-4.5EXAONE-MoEFalconFalcon3FalconH1FalconMambaFLAN-T5FLAN-UL2FlauBERTFlexOlmoFlintFNetFSMTFun-ASR-NanoFunnel TransformerFuyuGemmaGemma2GLM-4GLM-4-0414GLM-4.5、GLM-4.6、GLM-4.7GLM-4.7-FlashGLM-5、GLM-5.1、GLM-5.2、GLM-5.3GLM-ImageGPTGPT NeoGPT NeoXGPT NeoX JapaneseGPT-JGPT2GPTBigCodeGptOssGPTSw3GraniteGraniteMoeGraniteMoeHybridGraniteMoeSharedGraniteMoeSWAGraniteSWAGTEヘリウムHerBERTHRM-TextHunYuanDenseV1HunYuanMoEV1HunYuanVLHyperCLOVAXHYV3HYV4I-BERTInternLM3IQuestCoderJais2JambaJetMoeJEVjina_embeddings_v3KimiLinearKolibri1LagunaLEDLFM2LFM2MoeLFM3Ling 3.0LLaMALlama2Llama3LongCatFlashLongformerLongT5LUKEM2M100MADLAD-400MambaMamba2MarianMTMarkupLMMBart と MBart-50MegatronBERTMellumMiMo-V2-FlashMiniCPM3MiniMaxMiniMax-M2MiniMax-M3-VLMinistralMinistral3MistralMixtralmLUKEMobileBERTModernBertModernBERTDecoderModernVBertMPNetMPTMRAMT5Muse Spark OpenMuseGlimmerMuseGlimmerAssistantMVPmyt5NanoChatNemotronNemotronHNemotronH OmniNLLBNLLB-MoENomicBERTNyströmformerOLMoOLMo2Olmo3OLMoEOlmoHybridOpenAI プライバシーフィルターOPTPegasusPEGASUS-XPersimmonPhiPhi-3PhiMoEPhoBERTPLBartProphetNetQwen2Qwen2MoEQwen3Qwen3.5Qwen3.5 MoeQwen3MoEQwen3NextQwen4-ExpRAGRecurrentGemmaReformerRemBERTRoBERTaRoBERTa-PreLayerNormRoCBertRoFormerRWKVSeed-OssSmolLM3SolarOpenSplinterSqueezeBERTStableLmStarcoder2Step3p7SwitchTransformersT5T5GemmaT5Gemma2T5v1.1UL2UltraBERTUltraVBertUMT5VaultGemmaX-MODXGLMXLMXLM-RoBERTaXLM-RoBERTa-XLXLM-VXLNetxLSTMYOSOYoutu-LLMZambaZamba2ZAYA
ビジョンモデル
音声モデル
動画モデル
マルチモーダルモデル
強化学習モデル
時系列モデル
内部ヘルパー
リファレンス
このモデルは2023年6月20日にHugging Face Transformersに貢献されました。
FLAN-UL2
概要
Flan-UL2 は、T5 アーキテクチャをベースにしたエンコーダーデコーダーモデルです。昨年リリースされた UL2 モデルと同じ設定を使用しています。
「Flan」プロンプトチューニングとデータセットコレクションを用いてファインチューニングされています。Flan-T5 と同様に、モデルのファインチューニングを行わずに FLAN-UL2 の重みを直接使用できます。
元のブログによると、主な改善点は以下の通りです。
- 元のUL2モデルは、受容野が512に制限されていたため、Nが大きいNショットプロンプティングには最適ではありませんでした。
- Flan-UL2 チェックポイントは、受容野が 2048 であるため、フェューショットのインコンテキスト学習により利用しやすくなっています。
- 元のUL2モデルには、良好なパフォーマンスを得るためにほぼ必須であったモード切り替えトークンがありました。ただし、推論やファインチューニング時にしばしば変更が必要になるため、やや煩雑でした。今回の更新/変更では、Flanの指示チューニングを適用する前に「モードトークン」を忘れるように、UL2 20Bを小規模なバッチサイズでさらに10万ステップ訓練を継続しました。このFlan-UL2チェックポイントは、もはやモードトークンを必要としません。 Googleは以下のバリアントをリリースしました:
元のチェックポイントはこちらで確認できます。
リソースが限られたデバイスでの実行
モデルは非常に重く(半精度で約40GB)なります。そのため、モデルを実行するだけの場合は、8bitでモデルを読み込み、device_map="auto" を使用して、OOM(メモリ不足)の問題が発生しないようにしてください。
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 リファレンス、ヒント、コード例、ノートブックについては、T5 のドキュメントページを参照してください。