T5 (language model)
T5 (Text-to-Text Transfer Transformer) — серия больших языковых моделей, разработанных Google AI и представленных в 2019 году[1]. Как и оригинальная архитектура Transformer[2], модели T5 реализуют архитектуру кодировщик-декодер, где входной текст обрабатывает энкодер, а декодер генерирует выходной текст.
Обычно модели T5 предварительно обучаются на огромных объёмах текстовых корпусов и кода, что позволяет им решать текстовые задачи, схожие с задачами обучения. Кроме того, возможна донастройка на другие задачи.
Модели T5 применяются в различных областях, включая чат-боты, системы машинного перевода, инструменты для автоматического реферирования, генерацию кода и робототехнику[3].
Общие сведения
| T5 | |
|---|---|
| Тип | Большая языковая модель, Трансформер (нейросети) |
| Автор | Google AI |
| Первый выпуск | 23 октября 2019 |
| Последняя версия | T5X https://github.com/google-research/t5x |
| Репозиторий | github.com/google-resear… |
| Лицензия | Apache-2.0 |
| Сайт | blog.research.google/202… |
Обучение
Оригинальные модели T5 были предварительно обучены на Colossal Clean Crawled Corpus (C4) — корпусе текстов и кода, собранных с интернета с помощью веб-скрейпинга. Такая предобработка позволяет моделям научиться обобщённому пониманию и генерации языка. Затем T5 могут быть дообучены («донастроены») на конкретные специализированные задачи.
Модели T5 обучались на множестве задач, представленных в общем виде: <входной текст> → <выходной текст>.
Примеры таких заданий:
- восстановление повреждённого текста:
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.
Архитектура
Серия T5 включает несколько моделей разного размера и возможностей, все — архитектуры кодировщик-декодер. Модели различаются в основном по количеству параметров.
В оригинальной публикации[1] представлены следующие пять конфигураций:
| Название | Общее число параметров | ! Параметры энкодера | ! Параметры декодера | Число слоёв (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]
| Название | Общее число параметров | ! Параметры энкодера | ! Параметры декодера | Число слоёв | Размерность эмбеддингов | Размерность 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].
Примечания
Ссылки
- T5 release — коллекция Google. huggingface.co (31 июля 2024). Дата обращения: 16 октября 2024.