Transformers documentation

FLAN-UL2

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v5.22.1).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Эта модель была добавлена в Hugging Face Transformers 2023-06-20.

FLAN-UL2

Обзор

Flan-UL2 — это модель с архитектурой encoder-decoder, основанная на T5. Она использует ту же конфигурацию, что и модель UL2, выпущенная ранее в прошлом году. Модель была дообучена с использованием промпт-тюнинга «Flan» и набора данных. Аналогично Flan-T5, веса FLAN-UL2 можно использовать напрямую, без дополнительного дообучения модели:

Согласно оригинальному блогу, вот основные улучшения:

  • Исходная модель UL2 обучалась только с полем восприятия 512, что делало её неидеальной для N-shot prompting при большом значении N.
  • Чекпоинт Flan-UL2 использует поле восприятия 2048, что делает его более пригодным для few-shot обучения в контексте.
  • Исходная модель UL2 также содержала токены переключения режима, которые были практически обязательны для достижения хорошей производительности. Однако они были несколько неудобны, поскольку требовали частых изменений при выводе или дообучении. В этом обновлении мы продолжаем обучение UL2 20B в течение дополнительных 100 тыс. шагов (с небольшой партией), чтобы «забыть» токены режима, прежде чем применять инструкционное обучение Flan. Эта контрольная точка Flan-UL2 больше не требует токенов режима. Google выпустила следующие варианты:

Оригинальные контрольные точки можно найти здесь.

Запуск на устройствах с ограниченными ресурсами

Модель довольно тяжёлая (~40 ГБ в половинной точности), поэтому, если вы просто хотите запустить модель, убедитесь, что загружаете её в 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']

См. страницу документации T5 для справки по API, советов, примеров кода и ноутбуков.

Update on GitHub