Серия больших языковых моделей, разработанных Google AI
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>.
Вот несколько примеров:
восстановление поврежденного текста: 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 включает в себя несколько моделей с различными размерами и возможностями, все они представляют собой преобразователи кодера-декодера , где кодер обрабатывает входной текст, а декодер генерирует выходной текст.
Эти модели часто различаются по количеству параметров, что указывает на сложность и потенциальную емкость модели. В оригинальной статье [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 1.1 small, base, large, XL, XXL: Улучшенные версии оригинальной серии T5. Они имеют примерно одинаковые параметры. Функция активации — GEGLU [9] вместо ReLU. 3B и 11B были изменены на «XL» и «XXL», а их формы изменены: [8] [10] [11]
Адаптированная к 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 .
Ссылки
^ abc Раффель, Колин; Шазир, Ноам; Робертс, Адам; Ли, Кэтрин; Наранг, Шаран; Матена, Майкл; Чжоу, Яньци; Ли, Вэй; Лю, Питер Дж. (2020). «Изучение пределов трансферного обучения с помощью унифицированного преобразователя текста в текст». Журнал исследований машинного обучения . 21 (140): 1–67. arXiv : 1910.10683 . ISSN 1533-7928.
^ ab google-research/text-to-text-transfer-transformer, Google Research, 2024-08-21 , получено 2024-08-21
^ Васвани, Ашиш; Шазир, Ноам; Пармар, Ники; Ушкорейт, Якоб; Джонс, Лион; Гомес, Эйдан Н; Кайзер, Лукаш; Полосухин, Илья (2017). «Внимание – это все, что вам нужно». Достижения в области нейронных систем обработки информации . 30 . Карран Ассошиэйтс, Инк.
^ Цзян, Юньфан; Гупта, Агрим; Чжан, Цзычэнь; Ван, Гуаньчжи; Доу, Юнцян; Чен, Яньцзюнь; Фей-Фей, Ли; Анандкумар, Анима; Чжу, Юкэ (06 октября 2022 г.). «VIMA: Общие манипуляции с роботами с помощью мультимодальных подсказок». arXiv : 2210.03094 [cs.RO].
^ ab Zhang, Aston; Lipton, Zachary; Li, Mu; Smola, Alexander J. (2024). "11.9. Крупномасштабное предварительное обучение с помощью трансформаторов". Погружение в глубокое обучение . Кембридж, Нью-Йорк, Порт Мельбурн, Нью-Дели, Сингапур: Cambridge University Press. ISBN978-1-009-38943-3.
^ Лестер, Брайан; Аль-Рфу, Рами; Констант, Ноа (2021-09-02), Сила масштаба для эффективной настройки параметров , arXiv : 2104.08691
^ Федус, Уильям; Зоф, Баррет; Шазир, Ноам (2022-06-16), Трансформаторы коммутаторов: масштабирование до моделей с триллионом параметров с простой и эффективной разреженностью , arXiv : 2101.03961
^ 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 .
^ ab google-research/FLAN, Google Research, 2024-08-03 , получено 2024-08-05
"T5 release - a google collection". huggingface.co . 2024-07-31 . Получено 2024-10-16 .
Примечания
^
импортировать горелку из трансформаторов импортировать 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 } " )дель модель
^
импортировать горелку из трансформаторов импортировать 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 } " )дель модель