Transformers 文档
FLAN-UL2
加入 Hugging Face 社区
并获得增强的文档体验
开始使用
该模型于 2023-03-03 发布,并于 2023-06-20 添加到 Hugging Face Transformers。
FLAN-UL2
概述
Flan-UL2 是一个基于 T5 架构的编码器-解码器模型。它使用与去年早些时候发布的 UL2 模型相同的配置。它使用“Flan”提示调优和数据集收集进行了微调。与 Flan-T5 类似,可以直接使用 FLAN-UL2 权重而无需对模型进行微调。
根据原始博客,以下是值得注意的改进:
- 原始 UL2 模型仅以 512 的接收场进行训练,这使得它不适合 N 值较大的 N-shot 提示。
- Flan-UL2 检查点使用 2048 的接收场,这使得它更适用于少样本的上下文学习。
- 原始 UL2 模型还需要模式切换标记才能获得良好性能。然而,它们有点麻烦,因为这通常需要在推理或微调期间进行一些更改。在此更新/更改中,我们继续对 UL2 20B 进行额外的 100k 步训练(使用小批量),以便在应用 Flan 指令调优之前“忘记”“模式标记”。此 Flan-UL2 检查点不再需要模式标记。Google 已发布以下变体:
原始检查点可以在 此处找到。
在低资源设备上运行
模型非常庞大(半精度约 40GB),因此如果您只是想运行模型,请确保以 8 位加载模型,并使用 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")
>>> 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']在 GitHub 上更新有关 API 参考、提示、代码示例和笔记本,请参阅 T5 的文档页面。