T5 (языковая модель)

Серия больших языковых моделей, разработанных Google AI
Преобразователь текста в текст (T5)
Оригинальный автор(ы)Google ИИ
Первоначальный выпуск23 октября 2019 г. ; 5 лет назад ( 23 октября 2019 )
Стабильный релиз
T5X github.com/google-research/t5x
Репозиторийhttps://github.com/google-research/text-to-text-transfer-transformer
Тип
ЛицензияАпач-2.0
Веб-сайтblog.research.google/2020/02/exploring-transfer-learning-with-t5.html

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

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

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

Обучение

Оригинальные модели T5 предварительно обучены на Colossal Clean Crawled Corpus (C4), содержащем текст и код, извлеченные из интернета . Этот процесс предварительной подготовки позволяет моделям изучать общее понимание языка и способности к генерации. Затем модели T5 можно тонко настраивать на конкретные последующие задачи, адаптируя их знания для эффективной работы в различных приложениях.

Модели T5 были предварительно обучены на множестве задач, все в формате <input text>-> <output text>.

Как можно настроить T5 для задачи реферирования. [5]

Вот несколько примеров:

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

Архитектура

Структура кодировщика-декодировщика T5, показывающая структуру внимания. В самовнимании кодировщика (нижний квадрат) все входные токены обращаются друг на друга; В перекрестном внимании кодировщика-декодировщика (верхний прямоугольник) каждый целевой токен обращается на все входные токены; В самовнимании декодировщика (верхний треугольник) каждый целевой токен обращается только на настоящие и прошлые целевые токены (каузально). [5]

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

Эти модели часто различаются по количеству параметров, что указывает на сложность и потенциальную емкость модели. В оригинальной статье [1] сообщалось о следующих 5 моделях:

Свойства T5 [примечание 1]
ИмяОбщие параметрыПараметры кодировщикаПараметры декодера н слой {\displaystyle n_{\text{слой}}} г модель {\displaystyle d_{\text{модель}}} г фф {\displaystyle d_{\text{ff}}} г кв {\displaystyle d_{\text{кв}}} н голова {\displaystyle n_{\text{голова}}}
Маленький76,956,16035,330,81641,625,34465122048648
База247,577,856109,628,544137,949,3121276830726412
Большой770,567,168334,939,648435,627,52024102440966416
2,884,497,4081,240,909,8241,643,587,5842410241638412832
11Б11,340,220,4164,864,791,5526,475,428,86424102465536128128

*Кодер и декодер имеют одинаковую форму. Так, например, T5-small имеет 6 слоев в кодере и 6 слоев в декодере.

В приведенной выше таблице

  • н слой {\displaystyle n_{\text{слой}}} : Количество слоев в кодере; также количество слоев в декодере. Они всегда имеют одинаковое количество слоев.
  • н голова {\displaystyle n_{\text{голова}}} : Количество головок внимания в каждом блоке внимания.
  • г модель {\displaystyle d_{\text{модель}}} : Размерность векторов внедрения.
  • г фф {\displaystyle d_{\text{ff}}} : Размерность сети прямой связи в каждом слое кодера и декодера.
  • г кв {\displaystyle d_{\text{кв}}} : Размерность векторов ключа и значения, используемых в механизме внутреннего внимания.

Обратите внимание, что в отличие от типичных Трансформеров, модели 3B и 11B не удовлетворяют . [6] г модель = г кв н голова {\displaystyle d_{\text{модель}}=d_{\text{кв}}n_{\text{головка}}}

По сравнению с оригинальным Transformer, он использует несколько незначительных модификаций: нормализация слоя без аддитивного смещения; размещение нормализации слоя за пределами остаточного пути; относительное позиционное встраивание. [7]

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

Варианты

Несколько последующих моделей использовали архитектуру T5, с нестандартизированными соглашениями об именах, используемыми для их различения. В этом разделе делается попытка собрать основные из них. Исчерпывающий список вариантов, выпущенных Google Brain, находится в репозитории GitHub для T5X. [8]

Некоторые модели обучаются с нуля, а другие обучаются, начиная с предыдущей обученной модели. По умолчанию каждая модель обучается с нуля, если не указано иное.

  • T5 small, base, large, 3B, 11B (2019): Оригинальные модели. [1]
  • T5 1.1 small, base, large, XL, XXL: Улучшенные версии оригинальной серии T5. Они имеют примерно одинаковые параметры. Функция активации — GEGLU [9] вместо ReLU. 3B и 11B были изменены на «XL» и «XXL», а их формы изменены: [8] [10] [11]
Свойства T5 v1.1 [примечание 2]
ИмяОбщие параметрыПараметры кодировщикаПараметры декодера н слой {\displaystyle n_{\text{слой}}} г модель {\displaystyle d_{\text{модель}}} г фф {\displaystyle d_{\text{ff}}} г кв {\displaystyle d_{\text{кв}}} н голова {\displaystyle n_{\text{голова}}}
Маленький76,961,15235,332,80041,628,35285121024646
База247,577,856109,628,544137,949,3121276820486412
Большой783,150,080341,231,104441,918,97624102428166416
XL2,849,757,1841,223,527,4241,626,229,76024204851206432
XXL11,135,332,3524,762,310,6566,373,021,696244096102406464
  • Адаптированная к LM модель T5 (2021): серия моделей (от маленькой до XXL), которая начиналась с контрольных точек серии T5 , но обучалась далее на 100 млрд дополнительных токенов из C4. [12]
  • Switch Transformer (2021): смешанный вариант T5, в котором слои прямой связи в блоках кодера и декодера заменяются смесью экспертных слоев прямой связи. [13] [14]
  • T0 3B, 11B (2021): серия моделей, которые начинались с контрольных точек адаптированного к LM T5 и дополнительно обучались выполнять задачи только на основе инструкций по задаче ( нулевой выстрел ). [15] Различные записи в серии используют разные данные тонкой настройки. [16]
  • ByT5 (2021): версия T5 на уровне байтов, обученная на наборе данных mC4 (многоязычный C4). [17] Работает с текстом, закодированным как байты UTF-8 , без токенизаторов.
  • Flan-T5-XL (2022): модель, которая началась с контрольной точки T5 XL , а затем была настроена на основе набора данных FLAN. [18] [19] [20] [21]
  • T5X (2022): переопределение исходной кодовой базы T5 на основе JAX . Это не модель. [22] Исходная кодовая база T5 была реализована в TensorFlow с MeshTF. [2]
  • UL2 20B (2022): модель с той же архитектурой, что и серия T5 , но масштабированная до 20B и обученная с целью «смесь шумоподавителей» на C4. [23] Она была обучена на кластере TPU случайно, когда учебный прогон был случайно оставлен запущенным на месяц. [24]
  • Flan-UL2 20B (2022): инструкции UL2 20B , настроенные на наборе данных FLAN. [23] [20]
  • Pile-T5 (2024): имеет ту же архитектуру, что и T5 , за исключением того, что использует токенизатор Llama . Он был обучен на The Pile . Он был доступен в размерах base, large, XL, XXL. [25]

Приложения

Модель T5 сама по себе является моделью кодера-декодера, что позволяет использовать ее для следования инструкциям. Кодер кодирует инструкцию, а декодер авторегрессивно генерирует ответ.

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

Ссылки

  1. ^ abc Раффель, Колин; Шазир, Ноам; Робертс, Адам; Ли, Кэтрин; Наранг, Шаран; Матена, Майкл; Чжоу, Яньци; Ли, Вэй; Лю, Питер Дж. (2020). «Изучение пределов трансферного обучения с помощью унифицированного преобразователя текста в текст». Журнал исследований машинного обучения . 21 (140): 1–67. arXiv : 1910.10683 . ISSN  1533-7928.
  2. ^ ab google-research/text-to-text-transfer-transformer, Google Research, 2024-08-21 , получено 2024-08-21
  3. ^ Васвани, Ашиш; Шазир, Ноам; Пармар, Ники; Ушкорейт, Якоб; Джонс, Лион; Гомес, Эйдан Н; Кайзер, Лукаш; Полосухин, Илья (2017). «Внимание – это все, что вам нужно». Достижения в области нейронных систем обработки информации . 30 . Карран Ассошиэйтс, Инк.
  4. ^ Цзян, Юньфан; Гупта, Агрим; Чжан, Цзычэнь; Ван, Гуаньчжи; Доу, Юнцян; Чен, Яньцзюнь; Фей-Фей, Ли; Анандкумар, Анима; Чжу, Юкэ (06 октября 2022 г.). «VIMA: Общие манипуляции с роботами с помощью мультимодальных подсказок». arXiv : 2210.03094 [cs.RO].
  5. ^ ab Zhang, Aston; Lipton, Zachary; Li, Mu; Smola, Alexander J. (2024). "11.9. Крупномасштабное предварительное обучение с помощью трансформаторов". Погружение в глубокое обучение . Кембридж, Нью-Йорк, Порт Мельбурн, Нью-Дели, Сингапур: Cambridge University Press. ISBN 978-1-009-38943-3.
  6. ^ "config.json · google-t5/t5-11b at main". huggingface.co . 2020-04-24 . Получено 2024-09-17 .
  7. ^ Шоу, Питер; Ушкорейт, Якоб; Васвани, Ашиш (2018-04-12), Самовосприятие с представлениями относительного положения , arXiv : 1803.02155
  8. ^ ab "t5x/docs/models.md на главной · google-research/t5x". GitHub . Получено 2024-08-05 .
  9. ^ Шазир, Ноам (2020-02-12), Варианты GLU улучшают Transformer, arXiv : 2002.05202 , получено 2024-10-16
  10. ^ "config.json · google/t5-v1_1-xl at main". huggingface.co . 2020-11-19 . Получено 2024-09-17 .
  11. ^ "config.json · google/t5-v1_1-xxl at main". huggingface.co . 2020-11-19 . Получено 2024-09-17 .
  12. ^ Лестер, Брайан; Аль-Рфу, Рами; Констант, Ноа (2021-09-02), Сила масштаба для эффективной настройки параметров , arXiv : 2104.08691
  13. ^ Федус, Уильям; Зоф, Баррет; Шазир, Ноам (2022-06-16), Трансформаторы коммутаторов: масштабирование до моделей с триллионом параметров с простой и эффективной разреженностью , arXiv : 2101.03961
  14. ^ "SwitchTransformers". huggingface.co . Получено 2024-08-05 .
  15. ^ Sanh, Victor; Webson, Albert; Raffel, Colin; Bach, Stephen H.; Sutawika, Lintang; Alyafeai, Zaid; Chaffin, Antoine; Stiegler, Arnaud; Scao, Teven Le (2022-03-17), Многозадачное обучение с подсказками позволяет обобщить задачу с нулевым результатом , arXiv : 2110.08207
  16. ^ "bigscience/T0 · Обнимающее лицо". huggingface.co . 2024-03-04 . Получено 2024-08-21 .
  17. ^ Сюэ, Линтинг; Баруа, Адитья; Констант, Ноа; Аль-Рфу, Рами; Наранг, Шаран; Кейл, Михир; Робертс, Адам; Раффель, Колин (2022-03-25). «ByT5: На пути к будущему без токенов с предварительно обученными моделями Byte-to-Byte». Труды Ассоциации компьютерной лингвистики . 10 : 291–306. arXiv : 2105.13626 . doi :10.1162/tacl_a_00461. ISSN  2307-387X.
  18. ^ Чунг, Хён Вон; Хоу, Ле; Лонгпре, Шейн; Зоф, Баррет; Тай, Йи; Федус, Уильям; Ли, Юньсюань; Ван, Сюэчжи; Дегани, Мостафа; Брахма, Сиддхартха; Вебсон, Альберт; Гу, Шисян Шейн; Дай, Чжуюн; Сузгун, Мирак; Чен, Синьюнь (2024). «Масштабирование языковых моделей с точной настройкой инструкций». Журнал исследований машинного обучения . 25 (70): 1–53. arXiv : 2210.11416 . ISSN  1533-7928.
  19. ^ Longpre, Shayne; Hou, Le; Vu, Tu; Webson, Albert; Chung, Hyung Won; Tay, Yi; Zhou, Denny; Le, Quoc V.; Zoph, Barret; Wei, Jason; Roberts, Adam (2023-07-03). «Коллекция Flan: проектирование данных и методов эффективной настройки инструкций». Труды 40-й Международной конференции по машинному обучению . PMLR: 22631–22648. arXiv : 2301.13688 .
  20. ^ ab google-research/FLAN, Google Research, 2024-08-03 , получено 2024-08-05
  21. ^ "google/flan-t5-xl · Обнимающее лицо". huggingface.co . 2024-01-04 . Получено 2024-08-05 .
  22. ^ Робертс, Адам; Чунг, Хён Вон; Мишра, Гаурав; Левская, Ансельм; Брэдбери, Джеймс; Андор, Дэниел; Наранг, Шаран; Лестер, Брайан; Гаффни, Колин; Мохиуддин, Афроз; Хоуторн, Кертис; Левковиц, Айтор; Салциану, Алекс; Зи, Марк ван; Остин, Джейкоб (2023). «Масштабирование моделей и данных с помощью t5x и seqio». Журнал исследований машинного обучения . 24 (377): 1–8. ISSN  1533-7928.
  23. ^ ab Tay, Yi; Dehghani, Mostafa; Tran, Vinh Q.; Garcia, Xavier; Wei, Jason; Wang, Xuezhi; Chung, Hyung Won; Shakeri, Siamak; Bahri, Dara (2023-02-28), UL2: Объединение парадигм изучения языка , arXiv : 2205.05131
  24. ^ «Подготовка великих LLM с нуля в условиях стартапа». Yi Tay . Получено 18 октября 2024 г.
  25. ^ Сутавика, Линтанг; Комацузаки, Аран; Раффель, Колин (15 апреля 2024 г.). «Свая-Т5». Блог EleutherAI . Проверено 5 мая 2024 г.
  26. ^ "Imagen: Модели диффузии текста в изображение". imagen.research.google . Получено 2024-08-23 .
  27. ^ "AuraFlow". huggingface.co . Получено 2024-08-23 .
  • "T5 release - a google collection". huggingface.co . 2024-07-31 . Получено 2024-10-16 .

Примечания

  1. ^
    импортировать  горелку из  трансформаторов  импортировать  AutoConfig ,  AutoModelForSeq2SeqLMdef  count_parameters ( model ) :  enc  =  sum ( p.numel ( ) для p в model.encoder.parameters ( ) ) dec = sum ( p.numel ( ) для p в model.decoder.parameters ( ) ) total = enc + dec return total , enc , dec                    для  имени  в  [ "t5-small" ,  "t5-base" ,  "t5-large" ,  "t5-3b" ,  "t5-11b" ]:  print ( f "Model: { name } " )  config  =  AutoConfig . from_pretrained ( f "google-t5/ { name } " )  torch_dtype  =  torch . float16 модель  =  AutoModelForSeq2SeqLM.from_config ( config , torch_dtype = torch_dtype )  всего ,  enc ,  dec  =  количество_параметров ( модель ) print ( f "Общее количество параметров в { name } : { total } " )  print ( f "Общее количество параметров в кодере: { enc } " )  print ( f "Общее количество параметров в декодере: { dec } " ) дель  модель
  2. ^
    импортировать  горелку из  трансформаторов  импортировать  AutoConfig ,  AutoModelForSeq2SeqLMdef  count_parameters ( model ) :  enc  =  sum ( p.numel ( ) для p в model.encoder.parameters ( ) ) dec = sum ( p.numel ( ) для p в model.decoder.parameters ( ) ) total = enc + dec return total , enc , dec                    для  имени  в  [ "small" ,  "base" ,  "large" ,  "xl" ,  "xxl" ]:  print ( f "Model: { name } " )  config  =  AutoConfig . from_pretrained ( f "google/t5-v1_1- { name } " )  torch_dtype  =  torch . float16 модель  =  AutoModelForSeq2SeqLM.from_config ( config , torch_dtype = torch_dtype )  всего ,  enc ,  dec  =  количество_параметров ( модель ) print ( f "Общее количество параметров в { name } : { total } " )  print ( f "Общее количество параметров в кодере: { enc } " )  print ( f "Общее количество параметров в декодере: { dec } " ) дель  модель
Взято с "https://en.wikipedia.org/w/index.php?title=T5_(языковая_модель)&oldid=1251812159"