T5 (language model)

T5 (Text-to-Text Transfer Transformer) — серия больших языковых моделей, разработанных Google AI и представленных в 2019 году[1]. Как и оригинальная архитектура Transformer[2], модели T5 реализуют архитектуру кодировщик-декодер, где входной текст обрабатывает энкодер, а декодер генерирует выходной текст.

Обычно модели T5 предварительно обучаются на огромных объёмах текстовых корпусов и кода, что позволяет им решать текстовые задачи, схожие с задачами обучения. Кроме того, возможна донастройка на другие задачи.

Модели T5 применяются в различных областях, включая чат-боты, системы машинного перевода, инструменты для автоматического реферирования, генерацию кода и робототехнику[3].

Общие сведения

Обучение

Оригинальные модели T5 были предварительно обучены на Colossal Clean Crawled Corpus (C4) — корпусе текстов и кода, собранных с интернета с помощью веб-скрейпинга. Такая предобработка позволяет моделям научиться обобщённому пониманию и генерации языка. Затем T5 могут быть дообучены («донастроены») на конкретные специализированные задачи.

Модели T5 обучались на множестве задач, представленных в общем виде: <входной текст><выходной текст>.

undefined

Примеры таких заданий:

  • восстановление повреждённого текста: Thank you <X> me to your party <Y> week.<X> for inviting <Y> last <Z>, где <Z> означает конец вывода, а <X> и <Y> — заполнители («sentinels»), подставляемые моделью;
  • перевод: translate English to German: That is good.Das ist gut.;
  • определение грамматической допустимости предложения (например, CoLA): The course is jumping well.not acceptable.

Архитектура

undefined

Серия T5 включает несколько моделей разного размера и возможностей, все — архитектуры кодировщик-декодер. Модели различаются в основном по количеству параметров.

В оригинальной публикации[1] представлены следующие пять конфигураций:

Параметры моделей T5
Название Общее число параметров ! Параметры энкодера ! Параметры декодера Число слоёв (nlayer) Размерность эмбеддингов (dmodel) Размерность feedforward (dff) Размерность ключей/значений (dkv) Число голов внимания (nhead)
Small 76 956 160 35 330 816 41 625 344 6 512 2048 64 8
Base 247 577 856 109 628 544 137 949 312 12 768 3072 64 12
Large 770 567 168 334 939 648 435 627 520 24 1024 4096 64 16
3B 2 884 497 408 1 240 909 824 1 643 587 584 24 1024 16384 128 32
11B 11 340 220 416 4 864 791 552 6 475 428 864 24 1024 65536 128 128

*У энкодера и декодера одинаковое число слоёв. Например, T5-small имеет 6 слоёв энкодера и 6 слоёв декодера.

Объяснения столбцов:

  • nlayer — число слоёв в энкодере/декодере (всегда совпадает);
  • nhead — число голов внимания внутри одного блока;
  • dmodel — размерность векторного представления токенов;
  • dff — размерность внутреннего feed-forward слоя в каждом слое;
  • dkv — размерность векторов «ключ» и «значение» в механизме внимания.

Отметим, что для моделей 3B и 11B не соблюдается равенство dmodel = dkv × nhead[5].

От стандартного Transformer архитектура T5 отличается рядом мелких изменений: применением layer normalization без аддитивного сдвига; вынесением layer norm за пределы остаточных связей; и использованием относительного позиционного кодирования[6].

Для всех моделей использовался токенизатор WordPiece, размер словаря — 32 000. Используется один и тот же токенизатор для входного и выходного текста. Он обучался на смеси данных на английском, немецком, французском и румынском языках из корпуса C4; соотношение — 10:1:1:1.

Варианты

На архитектуре T5 построены и другие модели, для обозначения которых нередко используются разные непоследовательные соглашения об именах. Основные разновидности приведены ниже (полный список опубликованных Google Brain вариантов см. на GitHub в репозитории T5X[7]):

Некоторые модели обучены «с нуля», другие доучены из ранее обученных моделей. Если не указано иное, модель обучена с нуля.

  • T5 small, base, large, 3B, 11B (2019) — оригинальная серия[1].
  • T5 1.1 small, base, large, XL, XXL — улучшенные версии T5. Число параметров примерно то же, но используется функция активации GEGLU[8] вместо ReLU, 3B и 11B переименованы соответственно в «XL» и «XXL», некоторые архитектурные параметры изменились:[7][9][10]
Параметры моделей T5 v1.1
Название Общее число параметров ! Параметры энкодера ! Параметры декодера Число слоёв Размерность эмбеддингов Размерность feedforward Размерность ключей/значений Число голов внимания
Small 76 961 152 35 332 800 41 628 352 8 512 1024 64 6
Base 247 577 856 109 628 544 137 949 312 12 768 2048 64 12
Large 783 150 080 341 231 104 441 918 976 24 1024 2816 64 16
XL 2 849 757 184 1 223 527 424 1 626 229 760 24 2048 5120 64 32
XXL 11 135 332 352 4 762 310 656 6 373 021 696 24 4096 10240 64 64
  • LM-adapted T5 (2021): серия моделей (от small до XXL), продолживших обучение оригинальной T5 на дополнительных 100 млрд токенов из C4[11].
  • Switch Transformer (2021): вариант T5 с использованием архитектуры mixture-of-experts, где feed-forward слои заменены на ансамбль экспертных слоёв[12].[13]
  • T0 (3B, 11B, 2021): модели, продолжающие LM-adapted T5 и дообученные напрямую на задачах по инструкциям (zero-shot)[14]. Разные версии использовали разный состав данных для финин-тюнинга[15].
  • ByT5 (2021): побайтная версия T5, обученная на mC4 (многоязычный корпус); работает непосредственно с байтами UTF-8, без токенизации[16].
  • Flan-T5-XL (2022): вариант, дообученный на FLAN (инструкционном датасете) из контрольной точки T5 XL[17].[18][19][20]
  • T5X (2022): переписанная на JAX реализация исходного кода, а не отдельная модель[21]. Исходно T5 были реализованы на TensorFlow c использованием MeshTF[22].
  • UL2 20B (2022): архитектурно совместимая модель с T5, масштабированная до 20 млрд параметров, обучалась на «миксе денойзеров» на том же корпусе[23]. Обучение этой модели случайно продолжалось месяц на TPU-кластере из-за забытой остановки обучения[24].
  • Flan-UL2 20B (2022): UL2 20B, дополнительно дообученная на FLAN для задач инструкционного обучения[23].[19]
  • Pile-T5 (2024): архитектурно эквивалентна T5, но использует токенизатор Llama, обучена на датасете The Pile и представлена в размерах base, large, XL, XXL[25].

Применение

Модель T5 строится по архитектуре кодировщик-декодер, поэтому может использоваться для задач, связанных с выполнением инструкций; энкодер воспринимает инструкции, а декодер автогенерирует ответ.

Кодировщик T5 может применяться отдельно (как BERT) для преобразования текстов в векторные представления. Например, модель Imagen от Google использует T5-XXL как текстовый энкодер, а вектора из него используются в качестве условий для диффузионной генерации изображений. Как ещё один пример, модель AuraFlow использует Pile-T5-XL[26].

Примечания

Ссылки