Шрифт Transformers Movie , Машинные — Научно-фантастические шрифты
Вы находитесь на странице шрифта Transformers Movie. Он был создан дизайнером . Это бесплатный шрифт. Он может быть использован без каких-либо ограничений. Публикация шрифта на Fontzzz.com состоялась 24.09.2012 в 01:25. Он был помещен в категорию «Машинные — Научно-фантастические«. Версия шрифта Transformers Movie — «Version 1.000 2009 initial release». Вы можете скачать шрифт Transformers Movie совершенно бесплатно и без регистрации, кликнув по ссылке «Скачать шрифт». Данный шрифт был сжат в ZIP-архив для вашего удобства. Архив содержит 1 файлов шрифтов.
От автора
Copyright (c) 2009 by P. A. Vannucci. All rights reserved.
Лицензия: FreeСкачать шрифт Transformers Movie
Еще шрифты:
Шрифт Cyrivendell Автор: Добавлен:Трансформатор источника ➡️ Преобразователь трансформатора источника
Источники трансформатора. к генерировать оригинальные шрифты для Instagram откройте платформу, напишите или вставьте фразу, просмотрите его в разных макетах, скопируйте отрывок с нужным шрифтом и вставьте текст в
Поскольку Instagram Stories предлагает определенные возможности, когда мы пишем описания, комментарии или сообщения, нет возможности, кроме шрифта по умолчанию.
Несмотря на это, есть сторонние инструменты которые предлагают пользователям возможность публиковать сообщения из других источников. Продолжайте с нами, чтобы узнать больше об этой альтернативе и узнать, как используйте шрифты, которые делают ваши публикации более привлекательными, в данном случае шрифты Transformer.
У Followers Online очень простая страница, вам просто нужно введите свой текст чтобы узнать, как обстоят дела с пользовательскими шрифтами. Позже, просто скопируйте и вставьте в его Instagram.
Источники трансформатора. Если вам нужны дополнительные параметры для оформленного текста, просто нажмите «загрузить больше шрифтов». Альтернативы, которые появляются здесь, более случайны, немного отходят от стандартных и смешивают ресурсы, у которых мало общего, смайлики и символы.
Отличие сайта в том, что у него есть функция для создания самого шрифта. Щелкнув «Создай свой собственный шрифт», вы можете выбрать символы, которые будут соответствовать каждой букве алфавита.
[Fonts Transformer] ➡️ Как использовать собственные шрифты?
Instagram и другие социальные сети устанавливают шрифт, который лучше всего соответствует общему стилю системы. Это часть единообразия, необходимого для визуального комфорта пользователей, просматривающих эти платформы.
— Трансформаторные источники. Оказывается, есть способ добавить стилизованные буквы, которые на самом деле являются специальными символами, а также смайлики и другие символы. На практике они выглядят как пользовательские шрифты, но технически называются
Поскольку этот совет для многих еще недавний, он отличная возможность быть замеченным в социальной сети и кто знает, получить последователей В Instagram. Не говоря уже о том, что люди будут чувствовать Любопытно посмотреть, как вам удалось таким образом изменить шрифт.
Поэтому некоторые классные инструменты для этих шрифтов в Instagram можно настроить биографию профиля или выделите части подписей к фотографиям и видео, которые вы публикуете. Это творческие способы улучшить вашу стратегию цифрового маркетинга.
Помня, что эти источники следует использовать экономно, в основном для выделить важные части например, название вашей компании, специальные предложения по публикациям для получения выгоды от продаж, заголовок текста или раздела и т. д.
Источники трансформатора. Какими бы забавными они ни были, чрезмерное их использование может создать впечатление, что ваша учетная запись слишком случайна.
Но используйте шрифты индивидуально сбалансированный стандартный шрифт — это нормально, если они разборчивы и эстетически соответствуют вашему бренду Однако это очень важно для тех, кто использует Instagram в компаниях или влиятельных лицах.
Как изменить шрифт в соцсетях?
Источники трансформатора. Мы научим вас шаг за шагом, все места этой темы проходят аналогичную операцию. Поэтому можно выбрать любой из них, и различия по этапам будут минимальными.
1. Откройте инструмент
Чтобы упростить процесс, мы рекомендуем использовать шрифты на том же устройстве, на котором вы получаете доступ к Instagram.
2. Напишите или вставьте свой текст
Второй шаг — написать или вставить в поле текст, в котором вы хотите применить настраиваемый шрифт.
Когда вы вводите или вставляете слова, появится список с вашим стилизованным фрагментом в разных шрифтах.
3. Скопируйте текст желаемым шрифтом.
Помните, что в Instagram нет возможности редактировать источник. Что мы сделаем, так это сохраним последовательность символов, а затем перенесем их в нужное поле.
Поэтому выберите отрывок с тем источником, который вы хотите использовать, и используйте команду копирования на вашем устройстве.
4. Instagram, Facebook, Twitter, Youtube, WhatsApp, Twitch, TikTok или любая социальная сеть.
Теперь, когда ваш текст сохранен в буфере обмена вашего ПК или телефона, используйте команду вставьте биографию, описание, комментарий или сообщение.
Источники трансформатора. Помните, что может произойти некоторая несовместимость символов Unicode. Таким образом, убедитесь, что фрагмент отображается так, как нужно И если да, отрегулируйте его, чтобы не удивлять своих подписчиков.
Наконец, мы рекомендуем вам выбрать один или два из этих шрифтов для частого использования, чтобы они Отличительная черта ваших постов.
Поэтому попробуйте использовать шрифты, чтобы улучшить внешний вид субтитров, которые вы пишете для изображений. Помните, что визуальная привлекательность в Интернете очень велика, и использование его в дословной части содержания привлечет больше внимания к вашему сообщению.
И не забывай используйте стилизованные буквы в биографии профиля, если вы сочтете это актуальным. Используйте эту функцию, чтобы привлечь не подписчиков, а также побудить тех, кто уже подписан на вас, совершить определенное действие.
Вам понравились наши советы по шрифтам для социальных сетей?
Легкие шрифты для ваших сообщений
После быстрой обработки без труда публикуйте оригинальные шрифты, которые становятся
Однако, если вы не являетесь опытным художником-графиком и специальное программное обеспечение не является вашей сильной стороной, попробуйте наше приложение. Это современный конструктор, с помощью которого вы увеличите охват в социальных сетях.
Будьте лаконичны и говорите, что хотите
Совершенству нет предела! Даже самые удачные моменты остановки можно бесконечно трансформировать, достигая новых форматов. для Instagram.
Собираетесь опубликовать объявление или приглашение? Важное сообщение, красивое заявление, броский слоган или призыв к действию? Может быть, есть
Вопросы и ответы
Сколько стоит творчество для создания шрифтов?
Совершенно бесплатно!
Надо что-то устанавливать?
Существует мобильный инструмент для любого телефона и планшета на Android или iOS. В нем можно не только нанести текст на фото, но и реализовать все, что есть в версии для ПК.
❤️ Трансформаторные шрифты
Источники трансформатора. Вы когда-нибудь задумывались, как пользователи добавляют Избранные источники в их социальных сетях? Если вы исследовали Instagram, Twitter, Fb, WhatsApp или Tik Tok среди других, вы знаете, что у него не так много альтернатив, когда дело доходит до настройки писем, поскольку биография, комментарии, подписи и т. д. иметь шрифт по умолчанию.
Нет возможности настроить и изменить их, чтобы сделать их более эстетически интересными, в соответствии с вашими интересами, просто расслабься! Вы все еще можете использовать шрифты Transformer приятным и привлекательным способом генератор.
🚀 Шрифты-трансформеры, шрифты и шрифты
Используйте шрифты Transformer . Ты можешь сделать шрифты, гарнитуры, буквы, символы и символы оригиналы заголовков в социальных сетях.
Теперь пришло время уточнить кое-что другое, вам не кажется? Настройте биографию профиля или выделите части подписей к изображениям и видео, которыми вы делитесь.
В разных социальных сетях используется шрифт, который лучше всего соответствует общему дизайну системы. Это часть необходимого единообразия для визуального благополучия пользователей, просматривающих эти инструменты.
Оказывается, есть способ включить текст адаптирован для копирования и вставки которые на самом деле являются отдельными персонажами, а также смайликами и другими символами. Технически они обозначаются как Символы Юникода.
🎯 Шрифты-трансформеры для копирования и вставки
Шрифты-трансформеры для копирования и вставки. Подводя итог, можно сказать, что с конвертером букв вы на самом деле не получаете самих шрифтов, если они являются символами Unicode.
𝔖𝔢𝔤𝔲𝔦𝔡𝔬𝔯𝔢𝔰 𝔒𝔫𝔩𝔦𝔫𝔢
𝓢𝓮𝓰𝓾𝓲𝓭𝓸𝓻𝓮𝓼 𝓞𝓷𝓵𝓲𝓷𝓮
𝕊𝕖𝕘𝕦𝕚𝕕𝕠𝕣𝕖𝕤 𝕆𝕟𝕝𝕚𝕟𝕖
🅂🄴🄶🅄🄸🄳🄾🅁🄴🅂 🄾🄽🄻🄸🄽🄴
🆂🅴🅶🆄🅸🅳🅾🆁🅴🆂 🅾🅽🅻🅸🅽🅴
Ⓢⓔⓖⓤⓘⓓⓞⓡⓔⓢ Ⓞⓝⓛⓘⓝⓔ
🍦 ⋆ 🍌 🎀 𝒮𝑒𝑔𝓊𝒾𝒹💍𝓇𝑒𝓈 🌞𝓃𝓁𝒾𝓃𝑒 🎀 🍌 ⋆ 🍦
🐧 ♩ ѕ𝓔𝔤uί𝔡𝓸г𝓔𝓼 𝓞 ภ ˡ𝐢ℕє 😈♚
(-_-) ᔕ 乇 ᵍ𝓊 เ 𝓓Ⓞг𝓔𝐬 𝐎𝓷ℓⒾŇ𝐞 (-_-)
. • ♫ • ♬ • S𝔼G𝓾𝓲ᵈ𝓸𝐫Ⓔs 𝕠𝓝𝔩ι ภ € • ♬ • ♫ •.
✍ Преобразователь Трансформаторные источники
→ Код Unicode: что это такое?
Что такое Юникод? Это Международный стандарт который позволяет компьютерам (и другим устройствам) представлять и использовать текстовые символы из любой системы письма.
Unicode был разработан для устранение неудобств, вызванных огромным количеством кодовых наборов. С самого начала программирования разработчики использовали свои языки, поэтому перенос текста с одного компьютера на другой часто приводил к потере информации.
Unicode приложил огромные усилия в XNUMX-х годах, чтобы создать единичный набор символов это охватывает всю систему письма. Укажите уникальный номер для каждого символа, независимо от платформы, программы и языка.
El Стандарт Unicode может представлять шрифты и символы используется на любом языке.
Таким образом, с этим конвертером шрифтов Transformer не создавайте шрифты, используйте Символы Unicode что вы можете использовать в Instagram, Twitter, Pinterest, Fb, Tumblr, WhatsApp, TikTok…
Генератор 🔥 Источники трансформатора
Наш инструмент работает в любой социальной сети. Это очень просто, и вы можете использовать его сколько угодно раз.
Напишите любой текст в поле, и генератор изменит шрифты скопировать и вставить в вашей биографии, подписи, рассказах и т. д. И сделайте свой профиль оригинальным и неповторимым.
Шрифт Русский Алфавит
Это готический шрифт, переложение латинской азбуки на кириллицу. Он подходит для надписей, стилизованных под средневековье. (Кстати, я несколько раз видела у мужчин татуировки, сделанные похожим шрифтом.) Готический шрифт идеально сочетается со. В композиции хорошо было бы использовать устремленность готического искусства вверх. Можно написать этим декоративным шрифтом не весь текст, а только 1-ю заглавную букву укрупненного размера, которая называется буквица. Русский алфавит, написанный готическим шрифтом Источник: книга «Декоративные шрифты: Для художественно-оформительских работ», составитель Г.Ф.
Красивый Шрифт Русский Алфавит Для Ников
Русский шрифт VivaldiD. Прописной шрифт для фотошопа, Word, других текстовых и графических. Шрифт Брайля. Онлайн-конвертер текста со шрифта Брайля в кириллицу (русский алфавит) en.
Посмотрите, как. 3 вида средневекового готического письма Любителям готики будет интересно увидеть примеры трех видов готического письма XII-XV веков: а) круглоготическое письмо ротунда, использовавшееся в Италии б) фрактура (использовалась во Франции) в) текстура (буквально — тканье) — готическое письмо Германии.
Каллиграфический Шрифт Русский Алфавит
Как найти изображения готических шрифтов в англоязычном Интернете? Другие готические, и не только готические, шрифты можно найти, набрав в gothic font, «готический шрифт» в переводе с английского. Чтобы найти цифры, написанные готическим шрифтом, наберите там же gothic font numbers, что переводится с английского как «готический шрифт цифры». Интересная статья? Расскажите друзьям. Перепечатывать статьи, в том числе копировать их в личныe днeвники ли.py, запрещено. При использовании материалов cайта в Интернете прямая индексируемая гиперссылка на papercreative.ru обязательна.
Материал, представленный на сайте, используется в некоммерческих целях. Все права на публикуемые аудио, видео, графические и текстовые материалы принадлежат их уважаемым владельцам. Если Вы являетесь автором материала или обладателем авторских прав на него и против его использования на этом сайте, пожалуйста, свяжитесь со мной по адресу ‘aniva7@yandexdotru’. Проект кабинета охраны труда. You can write in English and Français. Мета.
УГОЛОВНЫЙ КОДЕКС РСФСР (в ред. Закона РСФСР от 25.07.62, Указов Президиума ВС РСФСР от 03.07.65, 04.08. С изменениями и дополнениями от: 25 июля 1962 г., 6 мая, 14 октября 1963 г., 16 января, 3 июля 1965 г., 18. Уголовный кодекс рсфср. Уголовный кодекс Российской Социалистической Федеративной Советской Республики 1922 года.
Powel M., Martinez R., Jillett R. — New Business Matters / Новые Деловые вопросы [2004, DOC, ENG] » Английский язык (для. Аннотация: Each unit is based on a specially written article, rich in the language of company life, followed by language activities which ensure that learners. New business matters coursebook скачать. Скачать бесплатно учебный курс бизнес — английского New Business Matters — учебник, аудио, рабочая.
Comments are closed.
Font Transformers Solid Normal скачать бесплатно (2021) • FontsIsland.com
- Дом
- Трансформаторы твердые нормальные
На этой странице Вы можете скачать шрифт Transformers Solid Normal, который принадлежит к семейству Transformers Solid (Подсемейство Normal). Изготовителем шрифта является Transformers-Solid — Normal. Загрузите Transformers Solid Normal бесплатно на FontsIsland.com. Данный шрифт принадлежит к следующим категориям: кириллические шрифты, римские шрифты, русские шрифты. Вам нужно будет купить шрифт, если лицензия на него не бесплатна.
Авторские права:
(c) 1998 Нил Дэвидсон
Семья:
Трансформаторы твердые
Идентификатор:
FontMonger: Трансформеры Solid Normal
Полное название шрифта:
Трансформаторы твердые нормальные
Название PostScript:
Трансформаторы SolidNormal
Производитель:
Твердотельные трансформаторы — нормальные
BERT | | 12-слойный, 768-скрытый, 12-головный, параметры 110M. Обучение работе с английским шрифтом в нижнем регистре. |
| 24 слоя, 1024 скрытых, 16 голов, 336M параметров. Обучение работе с английским шрифтом в нижнем регистре. | |
| 12 слоев, 768 скрытых, 12 головок, параметры 109M. Обучается по регистровому английскому тексту. | |
| 24 слоя, 1024 скрытых, 16 голов, 335M параметров. Обучается по регистровому английскому тексту. | |
| (Оригинал, не рекомендуется) 12 слоев, 768 скрытых, 12 головок, 168M параметров. Обучение работе с текстом в нижнем регистре на 102 ведущих языках с крупнейшими Википедиями (см. Подробности). | |
| (Новый, рекомендуется ) 12-слойный, 768-скрытый, 12-головный, 179M параметров. Обучаются по регистровому тексту на 104 лучших языках с крупнейшими Википедиями (см. Подробности). | |
| 12 слоев, 768 скрытых, 12 головок, 103M параметров. Обучается по китайскому упрощенному и традиционному тексту с регистром. | |
| 12-слойный, 768-скрытый, 12-головный, параметры 110M. Обучено на немецком тексте через регистр Deepset.ai (подробности см. На сайте deepset.ai). | |
| 24 слоя, 1024 скрытых, 16 голов, 336M параметров. Обучение работе с английским текстом в нижнем регистре с использованием маскировки всего слова (см. Подробности). | |
| 24 слоя, 1024 скрытых, 16 голов, 335M параметров. Обучается по регистровому английскому тексту с использованием маскировки всего слова (см. Подробности). | |
| 24 слоя, 1024 скрытых, 16 голов, 336M параметров. Модель (подробности тонкой настройки см. В разделе примеров). | |
| 24 слоя, 1024 скрытых, 16 головок, параметры 335M Модель (подробности тонкой настройки см. В разделе примеров) | |
| 12-слойный, 768-скрытый, 12-головный, параметры 110M. Модель (подробности тонкой настройки см. В разделе примеров) | |
| 12-слойный, 768-скрытый, 12-головный, параметры 110M. Обучено DBMDZ на немецком тексте(подробности см. В репозитории dbmdz). | |
| 12-слойный, 768-скрытый, 12-головный, параметры 110M. Обучается по немецкому тексту без регистра в DBMDZ (подробности см. В репозитории dbmdz). | |
| 12 слоев, 768 скрытых, 12 головок, параметры 111M. Обучен японскому тексту. Текст токенизируется с помощью MeCab и WordPiece, и для этого требуются некоторые дополнительные зависимости, Используйте (подробности см. В репозитории cl-tohoku). | |
| 12 слоев, 768 скрытых, 12 головок, параметры 111M. Обучен японскому тексту. Текст токенизируется с помощью MeCab и WordPiece, и для этого требуются некоторые дополнительные зависимости, Используйте (подробности см. В репозитории cl-tohoku). | |
| 12-слойный, 768-скрытый, 12-головный, параметры 90M. Обучен японскому тексту. Текст разбивается на символы. (подробности см. В репозитории cl-tohoku). | |
| 12 слоев, 768 скрытых, 12 головок, параметры 90M. Обучен японскому тексту с использованием маскировки всего слова. Текст разбивается на символы. (подробности см. В репозитории cl-tohoku). | |
| 12-слойный, 768-скрытый, 12-головный, параметры 125M. Обучается по регистровому финскому тексту. (подробности см. На turkunlp.org). | |
| 12-слойный, 768-скрытый, 12-головный, параметры 110M. Обучение работе с финским текстом без регистра. (подробности см. На turkunlp.org). | |
| 12-слойный, 768-скрытый, 12-головный, параметры 110M. Обучается по регистровому голландскому тексту. (подробности см. В репозитории wietsedv). | |
GPT | | 12-слойный, 768-скрытый, 12-головный, параметры 110M. OpenAI GPT английская модель |
GPT-2 | | 12 слоев, 768 скрытых, 12 голов, 117M параметров. OpenAI GPT-2 английская модель |
| 24 слоя, 1024 скрытых, 16 голов, 345M параметров. OpenAI's GPT-2 среднего размера, английская модель | |
| 36 слоев, 1280 скрытых, 20 голов, 774M параметров. OpenAI’s Large-Size GPT-2 English model | |
| 48 слоев, 1600 скрытых, 25 головок, параметры 1558M. OpenAI's XL-size GPT-2 английская модель | |
GPTNeo | | 24 слоя, 2048 скрытых, 16 голов, параметры 1,3B. Языковая модель EleutherAI GPT-3. |
| 32 слоя, 2560 скрытых, 20 голов, параметры 2.7B. Языковая модель EleutherAI GPT-3. | |
Трансформатор XL | | 18 слоев, 1024 скрытых, 16 голов, 257 млн параметров. Английская модель обучена по wikitext-103 |
XLNet | | 12-слойный, 768-скрытый, 12-головный, параметры 110M. XLNet, английская модель |
| 24 слоя, 1024 скрытых, 16 голов, 340M параметров. XLNet Large English, модель | |
XLM | | 12 слоев, 2048 скрытых, 16 голов XLM Английская модель |
| 6 слоев, 1024 скрытых, 8 голов Англо-немецкая модель XLM, обученная объединению английской и немецкой Википедии | |
| 6 слоев, 1024 скрытых, 8 голов Англо-французская модель XLM, обученная объединению английской и французской Википедии | |
| 6 слоев, 1024 скрытых, 8 голов XLM Англо-румынский Многоязычная модель | |
| 12 слоев, 1024 скрытых, 8 голов | |
| 12 слоев, 1024 скрытых, 8 голов | |
| 6 слоев, 1024 скрытых, 8 голов Англо-французская модель XLM, обученная с помощью CLM (моделирование причинного языка) на объединении английской и французской Википедии | |
| 6 слоев, 1024 скрытых, 8 голов Англо-немецкая модель XLM, обученная с помощью CLM (моделирование причинного языка) на объединении английской и немецкой википедии | |
| 16 слоев, 1280 скрытых, 16 голов МодельXLM обучена с MLM (моделирование маскированного языка) на 17 языках. | |
| 16 слоев, 1280 скрытых, 16 голов МодельXLM обучена с MLM (моделирование маскированного языка) на 100 языках. | |
Роберта | | 12 слоев, 768 скрытых, 12 головок, параметры 125M RoBERTa с использованием BERT-базовой архитектуры (см. Подробности) |
| 24 слоя, 1024 скрытых, 16 головок, параметры 355M RoBERTa с использованием BERT-большой архитектуры (см. Подробнее) | |
| 24 слоя, 1024 скрытых, 16 головок, параметры 355M roberta-large доработан на MNLI.(см. Подробнее) | |
| 6 слоев, 768 скрытых, 12 головок, параметры 82M Модель DistilRoBERTa, полученная на основе контрольно-пропускного пункта RoBERTa model roberta-base . (см. Подробнее) | |
| 12 слоев, 768 скрытых, 12 головок, параметры 125M (см. Подробнее) | |
| 24 слоя, 1024 скрытых, 16 головок, параметры 355M (см. Подробнее) | |
DistilBERT | | 6 слоев, 768 скрытых, 12 головок, параметры 66M Модель DistilBERT, полученная на основе модели BERT bert-base-uncased checkpoint (см. Подробнее) |
| 6 слоев, 768 скрытых, 12 головок, параметры 66M Модель DistilBERT, полученная на основе контрольной точки BERT модели без корпуса , с дополнительным линейным слоем. (см. Подробнее) | |
| 6-слойный, 768-скрытый, 12-головок, параметры 65M Модель DistilBERT, полученная на основе контрольно-пропускного пункта BERT модели с базовым корпусом (см. Подробнее) | |
| 6-слойный, 768-скрытый, 12-головок, параметры 65M Модель DistilBERT, полученная на основе контрольно-пропускного пункта BERT модели с базовым корпусом, с дополнительным слоем для ответов на вопросы. (см. Подробнее) | |
| 6 слоев, 768 скрытых, 12 головок, параметры 82M Модель DistilGPT2, полученная на основе контрольной точки модели GPT2 gpt2 . (см. Подробнее) | |
| 6 слоев, 768 скрытых, 12 головок, параметры 66M Немецкая модель DistilBERT, полученная на основе немецкого контрольно-пропускного пункта DBMDZ BERT model bert-base-german-dbmdz-cased . (см. Подробнее) | |
| 6-слойный, 768-скрытый, 12-головок, параметры 134M Многоязычная модель DistilBERT, полученная на основе контрольно-пропускного пункта Multilingual BERT model bert-base-многоязычный корпус . (см. Подробнее) | |
КОНТР | | 48 слоев, 1280 скрытых, 16 головок, 1.6Б параметры Модель Salesforce с большим CTRL, английская версия |
CamemBERT | | 12 слоев, 768 скрытых, 12 головок, параметры 110M CamemBERT с использованием BERT-базовой архитектуры (см. Подробнее) |
АЛЬБЕРТ | | 12 повторяющихся слоев, 128 встраиваний, 768-скрытых, 12-головок, 11M параметров ALBERT базовая модель (см. Подробнее) |
| 24 повторяющихся слоя, 128 встраиваний, 1024 скрытых, 16 головок, 17 миллионов параметров ALBERT большая модель (см. Подробнее) | |
| 24 повторяющихся слоя, 128 встраивания, 2048-скрытых, 16-головок, 58M параметров ALBERT xlarge модель (см. Подробнее) | |
| 12 повторяющихся слоев, 128 встраиваний, 4096-скрытых, 64-головных, 223M параметров ALBERT xx большая модель (см. Подробнее) | |
| 12 повторяющихся слоев, 128 встраиваний, 768 скрытых, 12 головок, параметры 11M Базовая модель ALBERT без отсева, дополнительных данных обучения и более длительного обучения (см. Подробнее) | |
| 24 повторяющихся слоя, 128 встраиваний, 1024 скрытых, 16 головок, 17 миллионов параметров ALBERT - большая модель без отсева, с дополнительными данными для обучения и более длительным обучением (см. Подробнее) | |
| 24 повторяющихся слоя, 128 встраивания, 2048-скрытых, 16-головок, 58M параметров ALBERT xlarge модель без выпадения, дополнительных данных для обучения и более длительного обучения (см. Подробнее) | |
| 12 повторяющихся слоев, 128 встраиваний, 4096-скрытых, 64-головных, 223M параметров ALBERT xx большая модель без выпадения, дополнительных данных для обучения и более длительного обучения (см. Подробнее) | |
T5 | | ~ 60 млн параметров с 6 уровнями, 512 скрытых состояний, 2048 скрытых состояний с прямой связью, 8 головок, Обучено английскому тексту: Colossal Clean Crawled Corpus (C4) |
| ~ 220M параметров с 12 слоями, 768-скрытое состояние, 3072 прямое скрытое состояние, 12-головок, Обучено английскому тексту: Colossal Clean Crawled Corpus (C4) | |
| ~ 770M параметров с 24 уровнями, 1024-скрытое состояние, 4096 скрытых состояний с прямой связью, 16-головок, Обучено английскому тексту: Colossal Clean Crawled Corpus (C4) | |
| ~ 2. Параметры 8B с 24 уровнями, 1024-скрытые состояния, 16384 скрытых состояния с прямой связью, 32-головки, Обучено английскому тексту: Colossal Clean Crawled Corpus (C4) | |
| ~ 11B параметров с 24 уровнями, 1024-скрытое состояние, 65536 скрытых состояний с прямой связью, 128-головок, Обучено английскому тексту: Colossal Clean Crawled Corpus (C4) | |
XLM-RoBERTa | | ~ 270M параметров с 12-слойным, 768-скрытым состоянием, 3072 прямолинейным скрытым состоянием, 8-головками, Обучен на 2.5 ТБ недавно созданных чистых данных CommonCrawl на 100 языках |
| ~ 550M параметров с 24 уровнями, 1024-скрытое состояние, 4096 скрытых состояний с прямой связью, 16-головок, Обучено 2,5 ТБ недавно созданных чистых данных CommonCrawl на 100 языках | |
FlauBERT | | 6-слойный, 512-скрытый, 8-головок, 54M параметры Малая архитектура FlauBERT (см. Подробнее) |
| 12 слоев, 768 скрытых, 12 головок, параметры 137M Базовая архитектура FlauBERT с нечувствительным словарем (см. Подробнее) | |
| 12 слоев, 768 скрытых, 12 головок, параметры 138M Базовая архитектура FlauBERT с регистром словаря (см. Подробнее) | |
| 24 слоя, 1024 скрытых, 16 головок, 373 млн параметров Большая архитектура FlauBERT (см. Подробнее) | |
Барт | | 24 слоя, 1024 скрытых, 16 головок, параметры 406M (см. Подробнее) |
| 12 слоев, 768 скрытых, 16 головок, параметры 139M | |
| Добавляет двухслойную классификационную головку с 1 миллионом параметров bart - большая базовая архитектура с классификационной головкой, точная настройка по MNLI | |
| 24 слоя, 1024 скрытых, 16 головок, параметры 406M (такие же, как большие) Базовая архитектура bart-large, оптимизированная для задачи суммирования cnn | |
BARThez | | 12 слоев, 768 скрытых, 12 головок, 216M параметры (см. Подробнее) |
| 24 слоя, 1024 скрытых, 16 головок, параметры 561M | |
DialoGPT | | 12 слоев, 768 скрытых, 12 головок, параметры 124M Обучено английскому тексту: 147 миллионов разговоров, извлеченных из Reddit. |
| 24 слоя, 1024 скрытых, 16 головок, параметры 355M Обучено английскому тексту: 147 миллионов разговоров, извлеченных из Reddit. | |
| 36 слоев, 1280 скрытых, 20 головок, параметры 774M Обучено английскому тексту: 147 миллионов разговоров, извлеченных из Reddit. | |
Реформатор | | 12 слоев, 1024 скрытых, 8 головок, параметры 149M Обучается по данным английской Википедии - enwik8. |
| 6 слоев, 256 скрытых, 2 головки, параметры 3M Обучен английскому тексту: Роман Федора Достоевского «Преступление и наказание». | |
M2M100 | | 24 слоя, 1024 скрытых, 16 головок, 418M параметров многоязычная модель машинного перевода на 100 языков |
| 48 слоев, 1024 скрытых, 16 головок, параметры 1,2B многоязычная модель машинного перевода на 100 языков | |
MarianMT | | 12-слойный, 512-скрытый, 8-головный, параметр ~ 74M Модели машинного перевода. Количество параметров зависит от размера словаря. |
Пегас | | 16 слоев, 1024 скрытых, 16 головок, параметр ~ 568M, 2.2 ГБ для сводки. список моделей |
Лонгформер | | 12 слоев, 768 скрытых, 12 головок, ~ 149M параметров Начиная с пункта пропуска RoBERTa-base, обучен на документах максимальной длины 4096 |
| 24 слоя, 1024 скрытых, 16 головок, ~ 435M параметры Начиная с КПП RoBERTa-large, обучен на документах максимальной длины 4096 | |
МБАртикул | | 24 слоя, 1024 скрытых, 16 головок, параметры 610M Модель mBART (большая архитектура), обученная на одноязычном корпусе из 25 языков |
| 24 слоя, 1024 скрытых, 16 головок, параметры 610M Модельmbart-large-cc25 оптимизирована в переводе WMT с английского на румынский. | |
| 24 слоя, 1024 скрытых, 16 головок, МодельmBART обучена на одноязычном корпусе из 50 языков. | |
| 24 слоя, 1024 скрытых, 16 головок, mbart-50 - большая модель, оптимизированная для одного (английского) на многоязычный машинный перевод, охватывающий 50 языков. | |
| 24 слоя, 1024 скрытых, 16 головок, mbart-50 - большая модель, оптимизированная для многоязычного машинного перевода на 50 языков. | |
Лксмерт | | 9-язычных слоев, 9-ти уровней взаимосвязей и 12-ти уровней кросс-модальности 768 скрытых, 12 голов (для каждого слоя) ~ 228M параметров Начиная с контрольной точки lxmert-base, обучен более чем 9 миллионам пар текстовых изображений из COCO, VisualGenome, GQA, VQA |
Трансформатор воронки | | 14 слоев: 3 блока по 4 слоя, затем двухуровневый декодер, 768-скрытые, 12-головные, 130M параметры (см. Подробнее) |
| 12 слоев: 3 блока по 4 слоя (без декодера), 768-скрытых, 12-головок, 115M параметров (см. Подробнее) | |
| 14 слоев: 3 блока 6, 3x2, 3x2 слоя, затем двухуровневый декодер, 768-скрытые, 12-головные, 130M параметры (см. Подробнее) | |
| 12 слоев: 3 блока 6, 3x2, 3x2 слоя (без декодера), 768-скрытые, 12-головные, параметры 115M (см. Подробнее) | |
| 20 слоев: 3 блока по 6 слоев, затем двухуровневый декодер, 768-скрытые, 12-головные, 177M параметров (см. Подробнее) | |
| 18 слоев: 3 блока по 6 слоев (без декодера), 768-скрытых, 12-головок, 161M параметры (см. Подробнее) | |
| 26 слоев: 3 блока по 8 слоев, затем двухуровневый декодер, 1024-скрытые, 12-головные, 386M параметры (см. Подробнее) | |
| 24 слоя: 3 блока по 8 слоев (без декодера), 1024 скрытых, 12 головок, 358M параметров (см. Подробнее) | |
| 32 слоя: 3 блока по 10 слоев, затем двухуровневый декодер, 1024-скрытые, 12-головные, 468M параметры (см. Подробнее) | |
| 30 слоев: 3 блока по 10 слоев (без декодера), 1024 скрытых, 12 головок, 440M параметров (см. Подробнее) | |
Схема LM | | 12 слоев, 768 скрытых, 12 головок, параметры 113M (см. Подробнее) |
| 24 слоя, 1024 скрытых, 16 головок, 343M параметры (см. Подробнее) | |
DeBERTa | | 12 слоев, 768 скрытых, 12 головок, ~ 140 млн параметров DeBERTa с использованием BERT-базовой архитектуры (см. Подробнее) |
| 24 слоя, 1024 скрытых, 16 головок, параметры ~ 400M DeBERTa с использованием большой архитектуры BERT (см. Подробнее) | |
| 48 слоев, 1024 скрытых, 16 головок, ~ 750 млн параметров DeBERTa XLarge с аналогичной архитектурой BERT (см. Подробнее) | |
| 24 слоя, 1536 скрытых, 24 головки, ~ 900M параметры DeBERTa XLarge V2 с аналогичной архитектурой BERT (см. Подробнее) | |
| 48 слоев, 1536 скрытых, 24 головки, ~ 1.5Б параметры DeBERTa XXLarge V2 с аналогичной архитектурой BERT (см. Подробнее) | |
SqueezeBERT | | 12-слойный, 768-скрытый, 12-головок, параметры 51M, в 4,3 раза быстрее, чем на смартфоне без корпуса bert-base. АрхитектураSqueezeBERT, предварительно обученная с нуля для задач маскированной языковой модели (MLM) и прогнозирования порядка предложений (SOP). |
| 12-слойный, 768-скрытый, 12-головок, параметры 51M, в 4,3 раза быстрее, чем на смартфоне без корпуса bert-base. Это модель без оболочки, оптимизированная для задачи классификации пар предложений MNLI с дистилляцией из электра-основы. | |
| 12-слойный, 768-скрытый, 12-головок, параметры 51M, 4.В 3 раза быстрее, чем на смартфоне без корпуса. Это модель без оболочки, оптимизированная для задачи классификации пар предложений MNLI с дистилляцией из электра-основы. Последний слой классификации удаляется, поэтому при точной настройке последний слой будет повторно инициализирован. |
Применение - трансформаторы 2.11.0 документация
На этой странице показаны наиболее частые варианты использования библиотеки. Доступные модели позволяют использовать множество различных конфигурации и большая универсальность в вариантах использования.Здесь представлены самые простые, демонстрирующие использование для таких задач, как ответы на вопросы, классификация последовательностей, распознавание именованных сущностей и другие.
В этих примерах используются автомодели, которые представляют собой классы, которые будут создавать экземпляр модели в соответствии с заданной контрольной точкой,
автоматический выбор правильной архитектуры модели. Пожалуйста, проверьте документацию AutoModel
для дополнительной информации.
Не стесняйтесь изменять код, чтобы он был более конкретным и адаптировал его к вашему конкретному варианту использования.
Чтобы модель хорошо справлялась с задачей, она должна быть загружена из контрольной точки, соответствующей этой задаче. Эти контрольные точки обычно предварительно обучаются на большом массиве данных и настраиваются на конкретную задачу. Это означает следующее:
Не все модели были настроены на все задачи. Если вы хотите настроить модель под конкретную задачу, вы можете использовать один из сценариев run_ $ TASK.py в каталог примеров.
Точно настроенные модели были настроены для определенного набора данных.Этот набор данных может совпадать, а может и не совпадать с вашим вариантом использования. и домен. Как упоминалось ранее, вы можете использовать примеры сценариев для точной настройки вашей модели, или вы можете создать свой собственный сценарий обучения.
Чтобы сделать вывод по задаче, библиотека предоставляет несколько механизмов:
Конвейеры: очень простые в использовании абстракции, для которых требуется всего две строки кода.
Использование модели напрямую с токенизатором (PyTorch / TensorFlow): полный вывод с использованием модели.Меньше абстракции, но намного мощнее.
Здесь представлены оба подхода.
Примечание
Во всех представленных здесь задачах используются предварительно обученные контрольные точки, настроенные для конкретных задач. Загрузка контрольная точка, которая не была точно настроена для конкретной задачи, будет загружать только слои базового трансформатора, а не дополнительная голова, которая используется для задачи, случайным образом инициализируя веса этой головы.
Это произвело бы случайный результат.
Классификация последовательностей
Классификация последовательностей - это задача классификации последовательностей согласно заданному количеству классов.Пример классификации последовательностей - это набор данных GLUE, который полностью основан на этой задаче. Если вы хотите настроить модель в задаче классификации последовательности КЛЕЙ, вы можете использовать run_glue.py или run_tf_glue.py скрипты.
Вот пример использования конвейеров для анализа тональности: определение положительной или отрицательной последовательности. Он использует точно настроенную модель на sst2, которая является задачей GLUE.
из импортного трубопровода трансформаторов nlp = pipeline ("анализ настроений") print (nlp («Я тебя ненавижу»)) print (nlp («Я люблю тебя»))
Это возвращает метку («ПОЛОЖИТЕЛЬНЫЙ» или «ОТРИЦАТЕЛЬНЫЙ») вместе со счетом, как показано ниже:
[{'label': 'ОТРИЦАТЕЛЬНЫЙ', 'score': 0.99}] [{'label': 'POSITIVE', 'score': 0,99986565}]
Вот пример выполнения классификации последовательностей с использованием модели, чтобы определить, являются ли две последовательности перефразированием. друг друга. Процесс следующий:
Создайте экземпляр токенизатора и модели из имени контрольной точки. Модель определяется как модель BERT и загружает ее. с грузами, хранящимися в КПП.
Создайте последовательность из двух предложений с правильными идентификаторами типов токенов разделителей для конкретной модели и маски внимания (
encode ()
иencode_plus ()
позаботьтесь об этом)Пропустите эту последовательность через модель, чтобы она была отнесена к одному из двух доступных классов: 0 (не пересказ) и 1 (пересказ)
Вычислить softmax результата, чтобы получить вероятности по классам
Распечатать результаты
## КОД PYTORCH из трансформаторов импортировать AutoTokenizer, AutoModelForSequenceClassification импортный фонарик tokenizer = AutoTokenizer.from_pretrained ("bert-base-cased-finetuned-mrpc") model = AutoModelForSequenceClassification.from_pretrained ("bert-base-cased-finetuned-mrpc") classes = ["не перефразировать", "перефразировать"] sequence_0 = "Компания HuggingFace базируется в Нью-Йорке" sequence_1 = "Яблоки особенно вредны для вашего здоровья" sequence_2 = "Штаб-квартира HuggingFace находится на Манхэттене" paraphrase = tokenizer.encode_plus (последовательность_0, последовательность_2, return_tensors = "pt") not_paraphrase = tokenizer.encode_plus (последовательность_0, последовательность_1, return_tensors = "pt") paraphrase_classification_logits = модель (** перефразировать) [0] not_paraphrase_classification_logits = модель (** not_paraphrase) [0] paraphrase_results = факел.softmax (paraphrase_classification_logits, dim = 1) .tolist () [0] not_paraphrase_results = torch.softmax (not_paraphrase_classification_logits, dim = 1) .tolist () [0] print ("Следует перефразировать") для i в диапазоне (len (классы)): print (f "{классы [i]}: {round (paraphrase_results [i] * 100)}%") print ("\ nНельзя перефразировать") для i в диапазоне (len (классы)): print (f "{классы [i]}: {round (not_paraphrase_results [i] * 100)}%") ## КОД ТЕНСОРНОГО ПОТОКА из трансформаторов импортируйте AutoTokenizer, TFAutoModelForSequenceClassification импортировать тензорный поток как tf tokenizer = AutoTokenizer.from_pretrained ("bert-base-cased-finetuned-mrpc") model = TFAutoModelForSequenceClassification.from_pretrained ("bert-base-cased-finetuned-mrpc") classes = ["не перефразировать", "перефразировать"] sequence_0 = "Компания HuggingFace базируется в Нью-Йорке" sequence_1 = "Яблоки особенно вредны для вашего здоровья" sequence_2 = "Штаб-квартира HuggingFace находится на Манхэттене" paraphrase = tokenizer.encode_plus (последовательность_0, последовательность_2, return_tensors = "tf") not_paraphrase = tokenizer.encode_plus (последовательность_0, последовательность_1, return_tensors = "tf") paraphrase_classification_logits = модель (перефразировать) [0] not_paraphrase_classification_logits = модель (not_paraphrase) [0] paraphrase_results = tf.nn.softmax (paraphrase_classification_logits, axis = 1) .numpy () [0] not_paraphrase_results = tf.nn.softmax (not_paraphrase_classification_logits, axis = 1) .numpy () [0] print ("Следует перефразировать") для i в диапазоне (len (классы)): print (f "{классы [i]}: {round (paraphrase_results [i] * 100)}%") print ("\ nНельзя перефразировать") для i в диапазоне (len (классы)): print (f "{классы [i]}: {round (not_paraphrase_results [i] * 100)}%")
Это дает следующие результаты:
Следует перефразировать не перефразировать: 10% перефразировать: 90% Не следует перефразировать не перефразировать: 94% перефразирует: 6%
Языковое моделирование
Языковое моделирование - это задача подгонки модели к корпусу, который может быть предметно-зависимым.Все популярные трансформеры модели на основе обучаются с использованием варианта языкового моделирования, например BERT с моделированием замаскированного языка, GPT-2 с каузальное языковое моделирование.
Моделирование языка может быть полезно и вне предтренинга, например, чтобы изменить распределение модели на зависящие от предметной области: использование языковой модели, обученной на очень большом корпусе, а затем ее точная настройка для набора данных новостей. или в научных статьях, например LysandreJik / arxiv-nlp.
Моделирование маскированного языка
Моделирование маскированного языка - это задача маскирования токенов в последовательности с помощью маскирующего токена и побуждения модели к заполните эту маску соответствующим токеном.Это позволяет модели учитывать как правильный контекст (токены на справа от маски) и левом контексте (токены слева от маски). Такое обучение создает прочную основу для последующих задач, требующих двунаправленного контекста, такого как SQuAD (ответы на вопросы, см. Льюис, Луи, Гойал и др., часть 4.2).
Вот пример использования конвейеров для замены маски из последовательности:
из импортного трубопровода трансформаторов nlp = pipeline ("маска-заливка") print (nlp (f "HuggingFace создает {nlp.tokenizer.mask_token}, который сообщество использует для решения задач НЛП. "))
Это выводит последовательности с заполненной маской, оценку достоверности, а также идентификатор токена в токенизаторе. словарь:
[ {'sequence': 'HuggingFace создает инструмент, который сообщество использует для решения задач НЛП.', 'score': 0.15627853572368622, 'token': 3944}, {'sequence': 'HuggingFace создает структуру, которую сообщество использует для решения задач НЛП.', 'score': 0.116329500198, 'токен': 7208}, {'sequence': '
HuggingFace создает библиотеку, которую сообщество использует для решения задач НЛП.', 'score': 0,058063216507434845, 'token': 5560}, {'sequence': 'HuggingFace создает базу данных, которую сообщество использует для решения задач НЛП.', 'score': 0,04211743175983429, 'token': 8503}, {'sequence': 'HuggingFace создает прототип, который сообщество использует для решения задач НЛП.', 'score': 0,024718601256608963, 'token': 17715} ]
Вот пример моделирования маскированного языка с использованием модели и токенизатора.Процесс следующий:
Создайте экземпляр токенизатора и модели из имени контрольной точки. Модель обозначена как модель DistilBERT и загружает его с грузами, хранящимися в контрольно-пропускном пункте.
Определите последовательность с замаскированным токеном, поместив
tokenizer.mask_token
вместо слова.Закодируйте эту последовательность в идентификаторы и найдите положение замаскированного токена в этом списке идентификаторов.
Получить прогнозы по индексу токена маски: этот тензор имеет тот же размер, что и словарь, а значения - это баллы, присвоенные каждому токену.Модель дает более высокую оценку токенам, которые он считает вероятными в этом отношении. контекст.
Получите 5 верхних токенов с помощью методов PyTorch
topk
или TensorFlowtop_k
.Замените токен маски токенами и распечатайте результаты
## КОД PYTORCH из трансформаторов импорт AutoModelWithLMHead, AutoTokenizer импортный фонарик tokenizer = AutoTokenizer.from_pretrained ("на основе дистилберта") модель = AutoModelWithLMHead.from_pretrained ("основание дистилберта") sequence = f "Дистиллированные модели меньше, чем модели, которые они имитируют. Использование их вместо больших версий поможет {tokenizer.mask_token} уменьшить наш углеродный след". input = tokenizer.encode (последовательность, return_tensors = "pt") mask_token_index = torch.where (input == tokenizer.mask_token_id) [1] token_logits = модель (вход) [0] mask_token_logits = token_logits [0, mask_token_index,:] top_5_tokens = torch.topk (mask_token_logits, 5, dim = 1) .indices [0] .tolist () для токена в top_5_tokens: печать (последовательность.replace (tokenizer.mask_token, tokenizer.decode ([token]))) ## КОД ТЕНСОРНОГО ПОТОКА из трансформаторов импорт TFAutoModelWithLMHead, AutoTokenizer импортировать тензорный поток как tf tokenizer = AutoTokenizer.from_pretrained ("на основе дистилберта") model = TFAutoModelWithLMHead.from_pretrained ("основание дистилберта") sequence = f "Дистиллированные модели меньше, чем модели, которые они имитируют. Использование их вместо больших версий поможет {tokenizer.mask_token} уменьшить наш углеродный след". input = tokenizer.encode (последовательность, return_tensors = "tf") mask_token_index = tf.где (input == tokenizer.mask_token_id) [0, 1] token_logits = модель (вход) [0] mask_token_logits = token_logits [0, mask_token_index,:] top_5_tokens = tf.math.top_k (mask_token_logits, 5) .indices.numpy () для токена в top_5_tokens: print (sequence.replace (tokenizer.mask_token, tokenizer.decode ([token])))
Это печатает пять последовательностей, из которых 5 основных токенов предсказаны моделью:
МоделиDistilled меньше, чем модели, которым они подражают. Использование их вместо больших версий поможет уменьшить наш углеродный след.Дистиллированные модели меньше моделей, которым они подражают. Использование их вместо больших версий поможет увеличить углеродный след. Дистиллированные модели меньше моделей, которым они подражают. Использование их вместо больших версий поможет уменьшить наш углеродный след. Дистиллированные модели меньше моделей, которым они подражают. Использование их вместо больших версий поможет компенсировать углеродный след. Дистиллированные модели меньше моделей, которым они подражают. Использование их вместо больших версий поможет уменьшить углеродный след.
Моделирование причинного языка
Моделирование причинного языка - это задача прогнозирования токена, следующего за последовательностью токенов. В этой ситуации модель касается только левого контекста (токены слева от маски). Такой тренинг особенно интересен для задач генерации.
Обычно следующий токен предсказывается путем выборки из логитов последнего скрытого состояния, которое модель создает из входной последовательности.
Вот пример использования токенизатора и модели, а также использования метода top_k_top_p_filtering ()
для выборки следующего токена, следующего за входной последовательностью токенов.
## КОД PYTORCH из трансформаторов импорт AutoModelWithLMHead, AutoTokenizer, top_k_top_p_filtering импортный фонарик из torch.nn импортировать функционал как F tokenizer = AutoTokenizer.from_pretrained ("gpt2") model = AutoModelWithLMHead.from_pretrained ("gpt2") sequence = f "Обнимающее лицо живет в ДУМБО, Нью-Йорке, и" input_ids = tokenizer.encode (последовательность, return_tensors = "pt") # получить логиты последнего скрытого состояния next_token_logits = модель (input_ids) [0] [:, -1,:] # фильтр filter_next_token_logits = top_k_top_p_filtering (next_token_logits, top_k = 50, top_p = 1.0) # образец probs = F.softmax (filter_next_token_logits, dim = -1) next_token = torch.multinomial (probs, num_samples = 1) генерируется = torch.cat ([input_ids, next_token], dim = -1) результирующая_строка = tokenizer.decode (created.tolist () [0]) печать (результирующая_строка) ## КОД ТЕНСОРНОГО ПОТОКА из трансформаторов импорт TFAutoModelWithLMHead, AutoTokenizer, tf_top_k_top_p_filtering импортировать тензорный поток как tf tokenizer = AutoTokenizer.from_pretrained ("gpt2") model = TFAutoModelWithLMHead.from_pretrained ("gpt2") sequence = f "Обнимающее лицо живет в ДУМБО, Нью-Йорке, и" input_ids = токенизатор.кодировать (последовательность, return_tensors = "tf") # получить логиты последнего скрытого состояния next_token_logits = модель (input_ids) [0] [:, -1,:] # фильтр filter_next_token_logits = tf_top_k_top_p_filtering (next_token_logits, top_k = 50, top_p = 1.0) # образец next_token = tf.random.categorical (filter_next_token_logits, dtype = tf.int32, num_samples = 1) сгенерированный = tf.concat ([input_ids, next_token], axis = 1) результирующая_строка = tokenizer.decode (created.numpy (). tolist () [0]) печать (результирующая_строка)
Это выводит (надеюсь) последовательный следующий токен, следующий за исходной последовательностью, которая в нашем случае является словом , имеющим :
Hugging Face базируется в ДУМБО, Нью-Йорк, и имеет
В следующем разделе мы покажем, как эта функциональность используется в generate ()
для генерации нескольких токенов до определенной пользователем длины.
Генерация текста
При генерации текста ( a.k.a открытая генерация текста ) цель состоит в том, чтобы создать связную часть текста, которая является продолжением данного контекста. В качестве примера показано, как GPT-2 можно использовать в конвейерах для генерации текста. По умолчанию все модели применяют отбор проб Top-K при использовании в трубопроводах, как указано в соответствующих конфигурациях (см., Например, конфигурацию gpt-2).
из импортного трубопровода трансформаторов text_generator = pipeline ("создание текста") print (text_generator («Насколько я понимаю, я сделаю», max_length = 50))
Здесь модель генерирует случайный текст с общей максимальной длиной 50 токенов из контекста «Насколько мне известно, я буду» .Аргументы по умолчанию PreTrainedModel.generate ()
можно напрямую переопределить в конвейере, как показано выше для аргумента max_length
.
Вот пример генерации текста с использованием XLNet и его токензера.
## КОД PYTORCH из трансформаторов импорт AutoModelWithLMHead, AutoTokenizer model = AutoModelWithLMHead.from_pretrained ("xlnet-base-cased") tokenizer = AutoTokenizer.from_pretrained ("xlnet-base-cased") # Padding text помогает XLNet с короткими подсказками - предложено Aman Rusia в https: // github.com / rusiaaman / XLNet-gen # методология PADDING_TEXT = "" "В 1991 году останки русского царя Николая II и его семьи. (кроме Алексея и Марии) обнаружены. Голос маленького сына Николая, цесаревича Алексея Николаевича, повествует остаток истории. 1883 г. Западная Сибирь, Молодой Григорий Распутин просит его отец и группа мужчин сотворить магию. Распутин видит видение и называет одного из мужчин вором лошадей. Хотя его отец сначала дает ему пощечину за такое обвинение, Распутин наблюдает, как за человеком гонятся и избивают.Двадцать лет спустя Распутин видит видение Дева Мария, побудившая его стать священником. Распутин быстро становится известным, с людьми, даже с епископом, просящим его благословения."" " prompt = "Сегодня действительно хорошая погода, и я планирую" input = tokenizer.encode (подсказка PADDING_TEXT +, add_special_tokens = False, return_tensors = "pt") prompt_length = len (tokenizer.decode (входы [0], skip_special_tokens = True, clean_up_tokenization_spaces = True)) выходы = модель.генерировать (входы, max_length = 250, do_sample = True, top_p = 0.95, top_k = 60) created = prompt + tokenizer.decode (выводит [0]) [prompt_length:] печать (сгенерировано) ## КОД ТЕНСОРНОГО ПОТОКА из трансформаторов импорт TFAutoModelWithLMHead, AutoTokenizer model = TFAutoModelWithLMHead.from_pretrained ("xlnet-base-cased") tokenizer = AutoTokenizer.from_pretrained ("xlnet-base-cased") # Padding text помогает XLNet с короткими подсказками - предложено Aman Rusia в https://github.com/rusiaaman/XLNet-gen#methodology PADDING_TEXT = "" "В 1991 году останки русского царя Николая II и его семьи. (кроме Алексея и Марии) обнаружены.Голос маленького сына Николая, цесаревича Алексея Николаевича, повествует остаток истории. 1883 г. Западная Сибирь, Молодой Григорий Распутин просит его отец и группа мужчин сотворить магию. Распутин видит видение и называет одного из мужчин вором лошадей. Хотя его отец сначала дает ему пощечину за такое обвинение, Распутин наблюдает, как за человеком гонятся и избивают. Двадцать лет спустя Распутин видит видение Дева Мария, побудившая его стать священником.Распутин быстро становится известным, с людьми, даже с епископом, просящим его благословения. "" " prompt = "Сегодня действительно хорошая погода, и я планирую" input = tokenizer.encode (подсказка PADDING_TEXT +, add_special_tokens = False, return_tensors = "tf") prompt_length = len (tokenizer.decode (входы [0], skip_special_tokens = True, clean_up_tokenization_spaces = True)) output = model.generate (input, max_length = 250, do_sample = True, top_p = 0.95, top_k = 60) сгенерировано = подсказка + токенизатор.декодировать (выводит [0]) [prompt_length:] печать (сгенерировано)
Генерация текста в настоящее время возможна с GPT-2 , OpenAi-GPT , CTRL , XLNet , Transfo-XL и Reformer в PyTorch, а также для большинства моделей в Tensorflow. Как видно из приведенного выше примера, XLNet и Transfo-xl часто нуждаются в мягкой подкладке для хорошей работы. GPT-2 обычно является хорошим выбором для генерации открытого текста , потому что он был обучен на миллионах веб-страниц с целью моделирования причинного языка.
Для получения дополнительной информации о том, как применять различные стратегии декодирования для генерации текста, пожалуйста, также обратитесь к нашему сообщению в блоге генерации здесь.
Признание именной организации
Распознавание именованных объектов (NER) - это задача классификации токенов в соответствии с классом, например, идентификация токен как человек, организация или место. Примером набора данных распознавания именованных объектов является набор данных CoNLL-2003, который полностью основан на этой задаче. Если вы хотите точно настроить модель для задачи NER, вы можете использовать ner / run_ner.py (PyTorch), ner / run_pl_ner.py (с использованием pytorch-lightning) или скрипты ner / run_tf_ner.py (TensorFlow).
Вот пример использования конвейеров для распознавания именованных сущностей, попытки идентифицировать токены как принадлежащие одному 9 классов:
O, за пределами названной организации
B-MIS, Начало отдельной сущности сразу после другой разной сущности
I-MIS, Разное лицо
B-PER, начало имени человека сразу после имени другого человека
I-PER, ФИО
B-ORG, Начало организации сразу после другой организации
I-ORG, Организация
B-LOC, Начало местоположения сразу после другого местоположения
I-LOC, местонахождение
Он использует доработанную модель на CoNLL-2003, доработанную @ stefan-it из dbmdz.
из импортного трубопровода трансформаторов nlp = pipeline ("ner") sequence = "Hugging Face Inc. - это компания, базирующаяся в Нью-Йорке. Ее штаб-квартира находится в ДУМБО, поэтому очень" \ «недалеко от Манхэттенского моста, который виден из окна». печать (nlp (последовательность))
Это выводит список всех слов, которые были идентифицированы как сущность из 9 классов, определенных выше. Здесь ожидаемые результаты:
[ {'word': 'Hu', 'score': 0,9995632767677307, 'entity': 'I-ORG'}, {'word': '## gging', 'score': 0.98973426819, 'entity': 'I-ORG'}, {'word': 'Face', 'score': 0,9982671737670898, 'entity': 'I-ORG'}, {'word': 'Inc', 'score': 0.99944037199, 'entity': 'I-ORG'}, {'word': 'Новый', 'score': 0,9994346499443054, 'entity': 'I-LOC'}, {'word': 'York', 'score': 0,9993270635604858, 'entity': 'I-LOC'}, {'word': 'City', 'score': 0,99938648939, 'entity': 'I-LOC'}, {'word': 'D', 'score': 0.9825621843338013, 'entity': 'I-LOC'}, {'word': '## UM', 'score': 0,936983048
3, 'entity': 'I-LOC'}, {'word': '## BO', 'score': 0.8987102508544922, 'entity': 'I-LOC'}, {'word': 'Manhattan', 'score': 0,9758241176605225, 'entity': 'I-LOC'}, {'word': 'Bridge', 'score': 0,9514579773, 'entity': 'I-LOC'} ]
Обратите внимание, как слова «обнимающее лицо» были идентифицированы как организация, а «Нью-Йорк», «ДУМБО» и «Манхэттенский мост» был определен как место.
Вот пример распознавания именованных сущностей с использованием модели и токенизатора. Процесс следующий:
Создайте экземпляр токенизатора и модели из имени контрольной точки.Модель идентифицирована как модель BERT и загружает его с грузами, хранящимися в контрольно-пропускном пункте.
Определите список меток, на котором обучалась модель.
Определите последовательность с известными объектами, такими как «Обнимающее лицо» как организация и «Нью-Йорк» как местоположение.
Разбивает слова на токены, чтобы их можно было сопоставить с предсказаниями. Используем небольшой хак сначала полностью кодирование и декодирование последовательности, так что у нас остается строка, содержащая специальные токены.
Закодируйте эту последовательность в идентификаторы (специальные токены добавляются автоматически).
Получите прогнозы, передав входные данные модели и получив первый результат. Это приводит к распределение по 9 возможным классам для каждого токена. Мы берем argmax, чтобы получить наиболее вероятный класс за каждый токен.
Заархивируйте каждый токен с прогнозом и распечатайте его.
## КОД PYTORCH из трансформаторов импорт AutoModelForTokenClassification, AutoTokenizer импортный фонарик model = AutoModelForTokenClassification.from_pretrained ("dbmdz / bert-large-cased-finetuned-conll03-english") tokenizer = AutoTokenizer.from_pretrained ("базовый корпус") label_list = [ "O", # Вне названной сущности "B-MISC", # Начало разнородной сущности сразу после другой разной сущности "I-MISC", # Разное "B-PER", # Начало имени человека сразу после имени другого человека "I-PER", # Имя человека "B-ORG", # Начало организации сразу после другой организации "I-ORG", # Организация "B-LOC", # Начало локации сразу после другой локации "I-LOC" # Местоположение ] sequence = "Hugging Face Inc.это компания, базирующаяся в Нью-Йорке. Его штаб-квартира находится в ДУМБО, поэтому очень "\ «недалеко от Манхэттенского моста». # Немного взлома, чтобы получить жетоны с помощью специальных жетонов tokens = tokenizer.tokenize (tokenizer.decode (tokenizer.encode (последовательность))) input = tokenizer.encode (последовательность, return_tensors = "pt") выходы = модель (входы) [0] прогнозы = torch.argmax (выходы, dim = 2) print ([(token, label_list [prediction]) для токена, прогноз в zip (токены, прогнозы [0] .tolist ())]) ## КОД ТЕНСОРНОГО ПОТОКА из трансформаторов импорт TFAutoModelForTokenClassification, AutoTokenizer импортировать тензорный поток как tf model = TFAutoModelForTokenClassification.from_pretrained ("dbmdz / bert-large-cased-finetuned-conll03-english") tokenizer = AutoTokenizer.from_pretrained ("базовый корпус") label_list = [ "O", # Вне названной сущности "B-MISC", # Начало разнородной сущности сразу после другой разной сущности "I-MISC", # Разное "B-PER", # Начало имени человека сразу после имени другого человека "I-PER", # Имя человека "B-ORG", # Начало организации сразу после другой организации "I-ORG", # Организация "B-LOC", # Начало локации сразу после другой локации "I-LOC" # Местоположение ] sequence = "Hugging Face Inc.это компания, базирующаяся в Нью-Йорке. Его штаб-квартира находится в ДУМБО, поэтому очень "\ «недалеко от Манхэттенского моста». # Немного взлома, чтобы получить жетоны с помощью специальных жетонов tokens = tokenizer.tokenize (tokenizer.decode (tokenizer.encode (последовательность))) input = tokenizer.encode (последовательность, return_tensors = "tf") выходы = модель (входы) [0] прогнозы = tf.argmax (выходы, ось = 2) print ([(token, label_list [prediction]) для токена, прогноз в zip (токены, прогнозы [0] .numpy ())])
Это выводит список каждого токена, сопоставленного с их предсказанием.В отличие от конвейера, здесь каждый токен имеет предсказание, поскольку мы не удаляли класс «0», что означает, что на этом токене не было обнаружено никакой конкретной сущности. В на выходе должен быть следующий массив:
[('[CLS]', 'O'), ('Hu', 'I-ORG'), ('## gging', 'I-ORG'), ('Face', 'I-ORG' ), ('Inc', 'I-ORG'), ('.', 'O'), ('is', 'O'), ('a', 'O'), ('компания', ' O '), (' на основе ',' O '), (' in ',' O '), (' New ',' I-LOC '), (' York ',' I-LOC '), (' Город ',' I-LOC '), ('. ',' O '), (' Its ',' O '), (' штаб-квартира ',' O '), (' are ',' O '), ('in', 'O'), ('D', 'I-LOC'), ('## UM', 'I-LOC'), ('## BO', 'I-LOC'), (',', 'O'), ('следовательно', 'O'), ('очень', 'O'), ('## c', 'O'), ('## проиграть', ' O '), (' в ',' O '), (' the ',' O '), (' Манхэттен ',' I-LOC '), (' Мост ',' I-LOC '), (' .',' O '), (' [SEP] ',' O ')]
Обобщение
Резюме - это задача резюмирования текста / статьи в более короткий текст.
Примером набора данных резюмирования является набор данных CNN / Daily Mail, который состоит из длинных новостных статей и был создан для задачи реферирования.
Если вы хотите точно настроить модель для задачи суммирования, вы можете использовать сценарий examples / summarization / bart / run_train.sh
(использование pytorch-lightning).
Вот пример использования конвейеров для обобщения.Он использует модель Барта, которая была точно настроена на наборе данных CNN / Daily Mail.
из импортного трубопровода трансформаторов summarizer = pipeline ("суммирование") ARTICLE = "" "Нью-Йорк (CNN) Когда Лиане Барриентос было 23 года, она вышла замуж в округе Вестчестер, штат Нью-Йорк. Год спустя она снова вышла замуж в округе Вестчестер, но уже за другого мужчину, не разводясь с первым мужем. Всего через 18 дней после этого брака она снова замужем. Затем Барриентос заявил «Да» еще пять раз, иногда с разницей в две недели.В 2010 году она снова вышла замуж, на этот раз в Бронксе. В заявлении на получение разрешения на брак она указала, что это был ее «первый и единственный» брак. Барриентос, которой сейчас 39 лет, предъявлено обвинение в двух уголовных преступлениях за «предложение фальшивого документа для подачи документов первой степени», ссылаясь на ее ложные заявления на Заявление о выдаче разрешения на брак в 2010 году, согласно судебным документам. Прокуроры заявили, что браки были частью иммиграционной аферы. В пятницу она не признала себя виновной в Верховном суде штата Бронкс, по словам ее адвоката Кристофера Райта, который отказался от дальнейших комментариев.После того, как он покинул суд, Барриентос был арестован и обвинен в краже услуг и преступном посягательстве на незаконное проникновение в метро Нью-Йорка через запасной выход, сказал детектив. Аннет Марковски, пресс-секретарь полиции. Всего Барриентос была замужем 10 раз, девять из которых были заключены в период с 1999 по 2002 год. Все происходило либо в округе Вестчестер, на Лонг-Айленде, в Нью-Джерси, либо в Бронксе. Считается, что она до сих пор замужем за четырьмя мужчинами, и когда-то она была замужем за восемью мужчинами сразу, говорят прокуроры.Прокуратура сообщила, что в иммиграционной афере были замешаны некоторые из ее мужей, которые подали документы на постоянное проживание вскоре после свадьбы. Любые разводы происходили только после утверждения таких документов. Пока неясно, будет ли кто-либо из мужчин привлечен к уголовной ответственности. Дело было передано в окружную прокуратуру Бронкса иммиграционной и таможенной службой и Департаментом внутренней безопасности. Следственный отдел. Семь мужчин из так называемых стран с красным флагом, включая Египет, Турцию, Грузию, Пакистан и Мали.Ее восьмой муж, Рашид Раджпут, был депортирован в 2006 году в свой родной Пакистан после расследования Объединенной оперативной группы по борьбе с терроризмом. В случае признания виновным Барриентосу грозит до четырех лет тюрьмы. Ее следующая явка в суд назначена на 18 мая. "" " print (сумматор (СТАТЬЯ, max_length = 130, min_length = 30))
Поскольку конвейер суммирования зависит от метода PretrainedModel.generate ()
, мы можем переопределить аргументы по умолчанию
из PretrainedModel.generate ()
непосредственно в конвейере, как показано выше для max_length
и min_length
.Это выводит следующую сводку:
Лиана Барриентос была замужем 10 раз, иногда с разницей в две недели. Прокуратура утверждает, что браки были частью иммиграционной аферы. В пятницу она не признала себя виновной в Верховном суде штата Бронкс.
Вот пример суммирования с использованием модели и токенизатора. Процесс следующий:
Создайте экземпляр токенизатора и модели из имени контрольной точки. Обобщение обычно выполняется с использованием модели кодировщика-декодера, например
Bart
илиT5
.Определите статью, которая должна быть резюмирована.
Воспользуйтесь методом
PretrainedModel.generate ()
.Добавьте специальный префикс T5 «суммировать:».
Здесь используется модель Google T5, которая была предварительно обучена на многозадачном смешанном наборе данных (включая CNN / Daily Mail), но, тем не менее, дает очень хорошие результаты.
## КОД PYTORCH из трансформаторов импорт AutoModelWithLMHead, AutoTokenizer модель = AutoModelWithLMHead.from_pretrained ("t5-base") tokenizer = AutoTokenizer.from_pretrained ("t5-base") # T5 использует max_length равное 512, поэтому мы сокращаем статью до 512 токенов. input = tokenizer.encode ("суммировать:" + СТАТЬЯ, return_tensors = "pt", max_length = 512) output = model.generate (input, max_length = 150, min_length = 40, length_penalty = 2.0, num_beams = 4, early_stopping = True) печать (выходы) ## КОД ТЕНСОРНОГО ПОТОКА из трансформаторов импорт TFAutoModelWithLMHead, AutoTokenizer model = TFAutoModelWithLMHead.from_pretrained ("t5-base") tokenizer = AutoTokenizer.from_pretrained ("t5-base") # T5 использует max_length равное 512, поэтому мы сокращаем статью до 512 токенов. input = tokenizer.encode ("суммировать:" + СТАТЬЯ, return_tensors = "tf", max_length = 512) output = model.generate (input, max_length = 150, min_length = 40, length_penalty = 2.0, num_beams = 4, early_stopping = True) печать (выходы)
Перевод
Перевод - это перевод текста с одного языка на другой.
Примером набора данных перевода является набор данных WMT с английского на немецкий, в котором в качестве входных данных используются предложения на английском языке. и немецкие предложения в качестве целевых данных.
Вот пример использования конвейеров для перевода. Он использует модель T5, которая была предварительно обучена только на наборе многозадачных смешанных данных (включая WMT), но дает впечатляющие результаты. перевод результаты тем не менее.
из импортного трубопровода трансформаторов переводчик = конвейер ("перевод_en_to_de") print (переводчик («Hugging Face - технологическая компания, базирующаяся в Нью-Йорке и Париже», max_length = 40))
Поскольку конвейер трансляции зависит от модели PretrainedModel.generate ()
, мы можем переопределить аргументы по умолчанию
из PretrainedModel.generate ()
непосредственно в конвейере, как показано выше для max_length
.
Это выводит следующий перевод на немецкий язык:
«Обнимающее лицо» - это организация «Технологии ситцев» в Нью-Йорке и Париже.
Вот пример выполнения перевода с использованием модели и токенизатора. Процесс следующий:
Создайте экземпляр токенизатора и модели из имени контрольной точки.Обобщение обычно выполняется с использованием модели кодировщика-декодера, например
Bart
илиT5
.Определите статью, которая должна быть резюмирована.
Воспользуйтесь методом
PretrainedModel.generate ()
.Добавьте специальный префикс T5 «перевод с английского на немецкий:»
## КОД PYTORCH из трансформаторов импорт AutoModelWithLMHead, AutoTokenizer model = AutoModelWithLMHead.from_pretrained ("t5-base") tokenizer = AutoTokenizer.from_pretrained ("t5-base") input = tokenizer.encode («переведите с английского на немецкий: Hugging Face - технологическая компания, базирующаяся в Нью-Йорке и Париже», return_tensors = «pt») output = model.generate (входы, max_length = 40, num_beams = 4, early_stopping = True) печать (выходы) ## КОД ТЕНСОРНОГО ПОТОКА из трансформаторов импорт TFAutoModelWithLMHead, AutoTokenizer model = TFAutoModelWithLMHead.from_pretrained ("t5-base") tokenizer = AutoTokenizer.from_pretrained ("t5-base") input = tokenizer.encode ("переведите с английского на немецкий: Hugging Face - технологическая компания, базирующаяся в Нью-Йорке и Париже", return_tensors = "tf") выходы = модель.генерировать (входы, max_length = 40, num_beams = 4, early_stopping = True) печать (выходы)
BERT Text Classification на другом языке | Филипп Шмид
Набор данных хранится в двух текстовых файлах, которые мы можем извлечь со страницы соревнований. Один из вариантов их загрузки - использовать 2 простые команды интерфейса командной строки wget
.
После этого мы используем магию панд и
для создания фрейма данных.
Поскольку у нас нет тестового набора данных, мы разделили его на train_df
и test_df
.Мы используем 90% данных для обучения ( train_df
) и 10% для тестирования ( test_df
).
Следующим шагом будет загрузка предварительно обученной модели. Мы делаем это, создавая экземпляр ClassificationModel
с именем model
. Этот экземпляр принимает следующие параметры:
- архитектура (в нашем случае
"bert"
) - предварительно обученная модель (
"distilbert-base-german-cased"
) - количество меток классов (
4
) - и наш гиперпараметр для обучения (
train_args
).
Вы можете настроить гиперпараметр в широком диапазоне возможностей. Подробное описание каждого атрибута см. В документации.
Чтобы обучить нашу модель, нам нужно только запустить model.train_model ()
и указать, на каком наборе данных нужно обучаться.
После успешного обучения нашей модели мы можем ее оценить. Поэтому мы создаем простую вспомогательную функцию f1_multiclass ()
, которая используется для вычисления f1_score
. f1_score
- это показатель точности модели. Подробнее об этом здесь.
Мы достигли f1_score
из 0,6895
. Поначалу это кажется довольно низким, но имейте в виду: максимальное количество заявок на Germeval 2019 было 0,7361
. Мы бы попали в топ-20 без настройки гиперпараметра. Это впечатляет!
В одном из будущих постов я покажу вам, как достичь более высокого значения f1_score
путем настройки гиперпараметров.
Simple Transformers сохраняет модель
автоматически каждые 2000
шагов и в конце процесса обучения. Каталог по умолчанию - выходов /
. Но output_dir
является гиперпараметром и может быть перезаписан. Я создал вспомогательную функцию pack_model ()
, которую мы используем, чтобы упаковать
все необходимые файлы модели в файл tar.gz
для развертывания.
В качестве последнего шага мы загружаем и прогнозируем реальный пример.Поскольку мы упаковали наши файлы шагом ранее с помощью pack_model ()
, мы должны сначала распаковать
их. Поэтому я написал еще одну вспомогательную функцию unpack_model ()
для распаковки файлов нашей модели.
Чтобы загрузить сохраненную модель, нам нужно только указать путь
к нашим сохраненным файлам и инициализировать его так же, как мы это делали на этапе обучения. Примечание: вам нужно будет указать правильные (обычно те же, что используются при обучении) аргументы при загрузке модели.
После инициализации мы можем использовать модель .pred ()
функция для классификации вывода с заданным вводом. В этом примере мы берем два твита из набора данных Germeval 2018.
Наша модель предсказала правильный класс OTHER
и INSULT
.
В заключение можно сказать, что мы достигли нашей цели по созданию неанглийской модели классификации текста на основе BERT.
Наш пример относится к немецкому языку, но может быть легко переведен на другой язык. HuggingFace предлагает множество предварительно обученных моделей для таких языков, как французский, испанский, итальянский, русский, китайский и т. Д.
[PDF] Парафразировщики русского языка: перефразирование с помощью трансформаторов
ПОКАЗЫВАЕТ 1-10 ИЗ 29 ССЫЛКИ
СОРТИРОВАТЬ ПО РелевантностиСамые популярные статьиРедакция
Корпус перефразирования русского языка с автоматическим ранжированием для генерации текста
В этом исследовании проводится сбор, ранжирование и оценка нового общедоступного корпуса перефразирования заголовков (ParaPhraser Plus), а затем проводятся эксперименты по созданию текста с ручной оценкой на автоматически ранжируемых корпусах с использованием архитектуры универсального преобразователя.Развернуть- Просмотреть 1 отрывок, справочная информация
ParaPhraser: Корпус перефразирования русского языка и общая задача
Результаты задания отражают следующие тенденции: лучшие результаты получаются при использовании стратегии использования традиционных классификаторов в сочетании с мелкозернистыми лингвистическими особенностями, однако сложные нейронные сети, поверхностные методы и чисто технические методы также демонстрируют конкурентоспособные результаты. Развернуть- Просмотреть 3 отрывка, ссылки на методы
Перефразирование для стиля
Эта работа показывает, что даже с относительно небольшим объемом данных параллельного обучения можно изучить модели перефразирования, которые фиксируют стилистические явления, и эти модели превосходят базовые показатели на основе словари и параллельный текст вне домена.Развернуть- Просмотреть 1 отрывок, справочная информация
Стратегии эффективного перефразирования
Новое измерение перефразирования текста, в котором характеристики исходного текста мотивируют стратегии для эффективного перефразирования, которые объединяют два существующих надежных компонента: естественный IRUS-II система понимания языка и система генерации SPOKESMAN. Развернуть- Просмотреть 1 отрывок, ссылки на методы
Изучение разнообразных выражений для генерации парафраз
В этой статье предлагается новый подход с двумя дискриминаторами и несколькими генераторами для генерации множества различных парафраз и демонстрируется, что модель не только значительно увеличивает разнообразие, но также улучшает качество генерации по нескольким современным базовым линиям.Развернуть- Просмотр 1 отрывок, ссылки на методы
Глубокая генеративная структура для генерации перефразирования
Количественная оценка предложенного метода на эталонном наборе данных перефразирования демонстрирует его эффективность и повышение производительности по сравнению с современными методами. значительный запас, тогда как качественная человеческая оценка показывает, что сгенерированные пересказы правильно сформированы, грамматически правильны и имеют отношение к входному предложению. Развернуть- Просмотреть 1 отрывок, справочная информация
Неконтролируемый перефразирование посредством глубокого обучения с подкреплением
Предлагается прогрессивный неконтролируемый парафраз (PUP): новый метод неконтролируемого перефразирования, основанный на глубоком обучении с подкреплением (DRL), который превосходит неконтролируемый государственный современные методы перефразирования как с точки зрения автоматических показателей, так и с точки зрения пользовательских исследований на четырех реальных наборах данных.Развернуть- Просмотреть 1 отрывок, ссылки на методы
Нейронный машинный перевод с библиотекой преобразователей Hugging Face | автор: Anno.Ai
… и сравнение с услугами перевода облачного провайдера
Фото Daniel Romero на UnsplashКак мы уже говорили в предыдущем посте, группа специалистов по анализу данных Anno.Ai продолжила оценка поставщиков моделей машинного обучения путем тестирования предложений машинного перевода.В части 1 мы сравнили API Google Cloud Platform (GCP), Amazon Web Services (AWS) и Microsoft Azure для перевода арабского, китайского, персидского и русского языков на английский.
Хотя коммерческие облачные сервисы предоставляют отличный вариант для онлайн-сценариев использования, некоторые из наших сценариев использования требуют запуска моделей в автономной среде и / или гибкости для повторного обучения и настройки этих моделей для более конкретных сред данных. В этих случаях мы обратились к моделям нейронного машинного перевода с открытым исходным кодом (NMT), которые можно настроить и развернуть для автономных сред.Во второй части этой серии мы дадим обзор моделей NMT с открытым исходным кодом. Мы также сравним модели, доступные в библиотеке Hugging Face Transformers, с сервисами облачных провайдеров, которые мы оценивали в первой части серии переводов.
За последние пять лет появилось несколько надежных фреймворков NMT с открытым исходным кодом. Вот некоторые из самых популярных:
- MarianMT: MarianMT - это среда быстрого перевода, написанная на C ++ и в основном поддерживаемая командой переводчиков Microsoft.Это также механизм NMT, который используется в службе нейронного машинного перевода Microsoft.
- OpenNMT: Команда Гарвардского НЛП первоначально разработала OpenNMT, и теперь он в основном поддерживается SYSTRAN.
- Sockeye: Sockeye - это фреймворк от последовательности к последовательности для нейронного машинного перевода; он скрытно используется Amazon Translate.
- Fairseq: Fairseq - это набор инструментов Facebook для моделирования последовательности, который позволяет исследователям и разработчикам обучать пользовательские модели для перевода, обобщения, языкового моделирования и других задач создания текста.Он предоставляет справочные реализации и предварительно обученные модели, связанные со многими недавними исследовательскими статьями по NMT.
- Hugging Face Transformers: Библиотека Transformers предоставляет универсальные архитектуры для перевода, а также ряд других задач моделирования языков и создания текста. Это также позволяет участникам публиковать языковые наборы данных и обмениваться обученными моделями.
При первоначальном обзоре этих фреймворков мы искали как вариант обучения и настройки наших собственных моделей для более конкретных сред данных, так и существующие (или «предварительно обученные») модели, которые мы могли бы использовать сразу. для широкого набора разных языков.
Предварительно обученная модель - это модель, созданная кем-то другим, и которую можно использовать в качестве отправной точки по сравнению с обучением вашей собственной модели с нуля. Предварительно обученные модели могут быть полезны для быстрого прототипирования, трансфертного обучения или если вам нужна широкая языковая поддержка для различных языковых пар (и у вас нет времени / ресурсов для самостоятельного обучения всех этих моделей). Публикация и совместное использование крупных предварительно обученных языковых моделей также сокращает затраты на электроэнергию и влияние на климат, связанные с обучением каждого конечного пользователя своим собственным моделям.
Хотя все эти проекты с открытым исходным кодом поддерживают обучение ваших собственных моделей с нуля, большинство из них не предоставляют очень много предварительно обученных моделей - большинство предоставляют только модели, обученные на двуязычных данных WMT2017 для англо-немецких и некоторых других языковых пар. Единственным исключением является библиотека Hugging Face Transformers, в которую ранее в этом году добавлен большой набор предварительно обученных моделей машинного перевода. Мы были рады глубже погрузиться в библиотеку Transformers, а также протестировать, как эти модели перевода будут работать по сравнению с коммерческими услугами, которые мы оценивали в Части 1!
Библиотека Hugging Face Transformers обеспечивает доступ к широкому спектру моделей перевода «с полки».”Фотография Jeff Warner на UnsplashБиблиотека Transformers позволяет участникам публиковать языковые наборы данных и делиться предварительно обученными моделями. В мае 2020 года Исследовательская группа языковых технологий при Хельсинкском университете (Helsinki-NLP) опубликовала большой набор моделей перевода для библиотеки Transformers. Эти модели были обучены с использованием инфраструктуры MarianNMT и набора данных Open Parallel Corpus (OPUS). Набор моделей включает более 1000 языковых пар и 169 переводов исходных языков или языковых семей на английский.
Источник: https://github.com/huggingface/transformersИспользовать эти предварительно обученные модели просто. В приведенном ниже примере показано, как динамически загружать модели из концентратора моделей Hugging Face, или вы можете загрузить и сохранить их локально для доступа в автономном режиме (каждый набор весов моделей и файлов токенизатора составляет около 310 МБ).
После загрузки моделей перевода Hugging Face для интересующих нас языков мы хотели проверить, как эти модели будут работать по сравнению с коммерческими услугами, которые мы оценивали в нашей предыдущей публикации.Хотя в наборе моделей перевода «Обнимающее лицо» есть модели для перевода с арабского, русского и китайского на английский, в них нет персидской модели, поэтому вместо этого мы использовали индо-иранскую семейную модель. Мы запустили модели перевода Hugging Face через тот же процесс оценки, который описан в нашей предыдущей публикации. Мы провели двухэтапную оценку качества переводов для каждого языка: один этап с использованием автоматических показателей и один с привлечением рецензентов-людей.
Количественное сравнение
Для автоматизированных показателей мы вычислили оценки BLEU, METEOR и NIST для переводов в наборе данных Global Voices (для арабского, персидского и русского языков) и тестовом наборе данных из задачи перевода новостей Ассоциации вычислительной техники 2019 года. Ежегодное собрание по лингвистике (для китайского языка).
Модели Hugging Face остались собственными и дали результаты, которые были на одном уровне (или в некоторых случаях лучше, чем) другие модели для арабского и русского языков. Для китайцев показатели модели Hugging Face были немного ниже, но все же близки к коммерческим моделям. Индо-иранская модель Hugging Face уступала персидским переводам, и нам нужно было бы улучшить / переобучить эту модель для наших сценариев использования, но это неудивительно, учитывая диапазон языков, охватываемых моделью.
Создано Anno.AiHuman Rater Review
Мы также попросили наших лингвистов проверить подмножество переводов на предмет правильности как по беглости, так и по значению, и усреднили эти оценки, чтобы получить оценку из 100. Сравнение оценок рецензентов коммерческих API с • Модели Hugging Face включены ниже, и мы также включили несколько примеров переводов на каждый язык. Модели Hugging Face были на одном уровне с коммерческими моделями для переводов на арабский, китайский и русский языки. Что касается персидского языка, хотя индо-иранская модель семьи иногда давала точные переводы, в целом переводы были совершенно неточными, и в этом случае нам пришлось бы переучивать модель.
В целом, мы были очень впечатлены производительностью и простотой использования модели Hugging Face, особенно в случаях автономного использования с арабским, китайским или русским языком. И последнее замечание о скорости: модели перевода Hugging Face не очень быстрые (несколько секунд на перевод на основе предложения на ЦП), отчасти из-за использования более медленного токенизатора. Hugging Face находится в процессе обновления своих токенизаторов в рамках Transformers 4.0.0 и последующих выпусков, и, надеюсь, в скором времени увеличится скорость и у других моделей перевода.
Как настроить BERT для распознавания именованных объектов | by Charlene Chambliss
Используйте всемогущий BERT для своего следующего проекта НЛП
Двунаправленные представления кодировщика от трансформаторов (BERT) - чрезвычайно мощная универсальная модель, которую можно использовать практически для любой задачи машинного обучения на основе текста. Вместо того, чтобы обучать модели с нуля, новая парадигма в обработке естественного языка (НЛП) заключается в выборе готовой модели, которая была обучена задаче «языкового моделирования» (прогнозирование того, какие слова принадлежат к предложению), а затем «Доработка» модели с данными из вашей конкретной задачи.Повышение производительности, полученное за счет сочетания гибкой архитектуры Transformer BERT с предварительным обучением по новой задаче моделирования маскированного языка, быстро сделало BERT доминирующей моделью для трансферного обучения в сфере НЛП.
Недавно я настроил модели BERT для выполнения распознавания именованных сущностей (NER) на двух языках (английском и русском), получив оценку F1 0,95 для тега Person на английском языке и 0,93 F1 для тега Person в Русский. Более подробную информацию о производительности для других тегов можно найти во второй части этой статьи.
NER в славянских языках довольно сложен по сравнению с английским, отчасти из-за свободного порядка слов и перегиба; суффиксы присоединяются к существительным в зависимости от их роли в предложении, поэтому одна и та же сущность может выглядеть по-разному от предложения к предложению. Это остается активной областью исследований в многоязычном НЛП; В 2019 году BSNLP провела семинар, полностью посвященный славянскому NER.
Конечной целью было интегрировать возможности NER в интерфейс анализа ошибок Lab41 для оценки качества машинного перевода, чтобы объекты могли отображаться более заметно в графическом интерфейсе (примечание , ). : он еще не интегрирован; это ссылка на прототип интерфейса).Ошибочно переведенные имена - обычная проблема в моделях славянского МП, и важно быстро найти их в переводах, чтобы человек мог оценить и исправить качество перевода.
Интерактивная демонстрация, которую я развернул, чтобы оценить предсказания модели на параллельном тексте. Я объединил модель BERT с моделью spaCy (CNN). Если обе модели согласовали сущность, это был более сильный сигнал, чем если бы любая из моделей находила сущность в одиночку.Если вы хотите взглянуть на код, прежде чем мы начнем, репозиторий GitHub находится здесь.На данный момент я считаю, что моя реализация является первой реализацией PyTorch русского NER с BERT.
Это был мой первый проект, сочетающий глубокое обучение с НЛП, поэтому я хотел убедиться, что у меня есть разумный шаблон, на который можно ссылаться. Я работал с этим руководством, которое потребовало значительных изменений, но, к счастью, позволило мне повторно использовать множество шаблонов.
Если это будет ваш первый проект, посвященный не только Jupyter-notebook, я бы порекомендовал поискать соответствующие репозитории git для вашей задачи, а не просто учебные пособия.Репозиторий часто дает вам лучшее представление о том, как структурировать код для обеспечения расширяемости. Учебники написаны скорее как демонстрация, чем как пример того, как структурировать поддерживаемый проект. Я также рекомендую расширить свой кругозор, например, до «репозиториев, которые что-то делают с BERT», вместо того, чтобы делать, как я, и искать только для примеров NER с BERT.
Предварительные требования и подготовка
Для точной настройки BERT вам действительно понадобится лишь среднее владение Python и опыт правильного управления массивами и тензорами.Реализации предварительно обученных моделей BERT уже существуют как в PyTorch, так и в TensorFlow из-за его популярности. При создании этого проекта я использовал популярную библиотеку transformers
.
Тем не менее, может быть весело и приятно узнать, что происходит внутри самой модели. Базовая архитектура BERT основана на Transformer (см. Ссылку на документ ниже). Архитектура Transformer сильно зависит от внимания, что позволяет ей изучать более сложные представления взаимозависимостей в языке.Однако стандартная задача моделирования двунаправленного языка, на которой обучается Transformer (предсказание следующего слова), ограничивает объем контекста, который он может принять во внимание; он может только «видеть» слова, которые стояли перед словом, на котором он сейчас стоит.
BERT, с другой стороны, обучен «моделированию замаскированного языка», что означает, что ему разрешено видеть все предложение, за исключением пробелов, которые его просят предсказать. Он также был обучен задаче, продвигающей здравый смысл, под названием «Предсказание следующего предложения», что в точности соответствует тому, на что это похоже: различать, может ли одно предложение разумно следовать за предыдущим.
Более подробное описание того, как работает BERT, выходит за рамки этой статьи, но я укажу вам несколько ресурсов, которые я нашел полезными:
The How-To of Fine-Tuning Fine-tuning BERT Сейчас у него много хороших руководств, а для некоторых задач в пакете pytorch-transformers
от HuggingFace (сейчас всего transformers
) уже есть скрипты. Фактически, за последние пару месяцев они добавили скрипт для тонкой настройки BERT для NER. Однако ничего подобного не было, когда я проводил свое исследование для этой задачи, что сделало интересным проект, за который нужно взяться, чтобы познакомиться с BERT, а также внести свой вклад в ресурсы с открытым исходным кодом в процессе.
«Как» тонкой настройки BERT выглядит следующим образом:
(см. Ссылки на каждом шаге для примера кода / функций)
- Предварительно обработайте данные для обучения
- Инициализируйте предварительно обученную модель и установите гиперпараметры (я использовал BertForTokenClassification с гиперпараметрами, рекомендованными авторами статьи BERT - см. код и README для более подробной информации)
- Преобразование данных в тензоры и загрузка тензоров в DataLoaders
- Обучение и проверка за 3-5 эпох; вывод и / или сохранение соответствующих измерений для каждой эпохи (потеря, точность / отзыв / оценка F1, матрица путаницы)
- Обеспечение сохранения контрольных точек модели и оптимизатора после каждой эпохи (см. выше)
- (Необязательно) Создание интерактивного веб-приложения или инструмент командной строки для проверки прогнозов модели
И все! Сами шаги просты, но есть некоторые детали реализации, на которые следует обратить внимание.Я обращаюсь к этим деталям во второй части серии «Уроки тонкой настройки BERT для распознавания именованных сущностей» - прочтите, чтобы узнать больше!
Lab41 - это испытательная лаборатория Кремниевой долины, где эксперты из разведывательного сообщества США (IC), академических кругов, промышленности и In-Q-Tel собираются вместе, чтобы лучше понять, как работать с большими данными и в конечном итоге использовать их.