stringtranslate.com

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

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]

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

Архитектура

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

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

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

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

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

Обратите внимание, что в отличие от типичных Трансформеров, модели 3B и 11B не удовлетворяют . [6]

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

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

Варианты

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

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

Приложения

Модель 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 .

Внешние ссылки

Примечания

  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 } " ) дель  модель