- Функция pipeline (конвеер).
Функция pipeline является наиболее высокоуровневым API
библиотеки Transformers.
Она объединяет все шаги
перехода от необработанных текстов к пригодным для использования прогнозам.
Используемая модель лежит в основе конвейера,
но конвейер также включает
всю необходимую пред-обработку,
поскольку модель ожидает не тексты, а числа,
а также некоторую постобработку,
чтобы сделать вывод модели человекочитаемым.
Давайте рассмотрим первый пример
с конвейером анализа настроений.
Этот конвейер выполняет классификацию текста на заданном входе
и определяет, является ли он позитивным или негативным.
Здесь он приписывает положительную оценку данному тексту
с достоверностью 95%.
Вы можете передать множество текстов в один конвейер,
которые будут обработаны и переданы
через модель вместе как батч (пакет).
На выходе получается список отдельных результатов
в том же порядке, что и входные тексты.
Здесь мы находим ту же метку и оценку для первого текста,
а второй текст оценивается как отрицательный
с достоверностью 99,9%.
Конвейер zero-shot классификации
это более общий конвейер классификации текста,
он позволяет вам предоставлять нужные метки.
Здесь мы хотим классифицировать наш входной текст по меткам,
образование, политика и бизнес.
Конвейер успешно распознает
это скорее образование, чем другие метки,
с достоверностью 84%.
Переходим к другим задачам,
конвейер генерации текста будет
автоматически заполнять заданную подсказку.
Вывод генерируется с некоторой долей случайности,
поэтому он меняется каждый раз, когда вы вызываете объект генератора
для заданной строки.
До сих пор мы использовали API конвейера
с моделью по умолчанию, связанной с каждой задачей,
но вы можете использовать его с любой моделью, которая была предварительно обучена
или дообучена на этой задаче.
Зайдя в хаб моделей, huggingface.co/models
вы можете отфильтровать доступные модели по задаче.
Модель по умолчанию, использованная в нашем предыдущем примере, была gpt2,
но существует множество других моделей,
и не только на английском языке.
Давайте вернемся к конвейеру генерации текста
и загрузим в него другую модель, distilgpt2.
Это облегченная версия gpt2
созданная командой Hugging Face.
При применении конвейера к данной строке,
мы можем указать несколько аргументов
такие как максимальная длина генерируемых текстов,
или количество предложений, которые мы хотим вернуть,
поскольку в процессе генерации присутствует некоторая случайность.
Генерирование текстов путем угадывания следующего слова в предложении
было целью предварительного обучения в GPT-2.
Конвейер заполнения маски является целью предварительного обучения BERT,
которая заключается в угадывании значения замаскированного слова.
В этом случае мы спрашиваем два наиболее вероятных значения
для пропущенных слов, согласно модели,
и получаем в качестве возможных вариантов ответов "mathematical" или "computational".
Еще одна задача, которую может выполнить модель Transformers
классифицировать каждое слово в предложении
вместо предложения в целом.
Одним из примеров этого является Named Entity Recognition (распознавание именованных сущностей),
которая представляет собой задачу идентификации сущностей,
таких как люди, организации или места в предложении.
Здесь модель правильно находит персону, "Sylvain",
организацию, "Hugging Face",
а также местоположение, "Brooklyn",
внутри входного текста.
Аргумент grouped_entities=True используется
для того, чтобы заставить конвейер сгруппировать
различные слова, связанные с одним и тем же объектом,
например, "Hugging" и "Face".
Еще одна задача, доступная с помощью API конвейера
является extractive question answering (экстрактивный ответ на вопрос).
Предоставляется контекст и вопрос,
модель определит участок текста в контексте
содержащий ответ на вопрос.
Получение кратких резюме очень длинных статей
это то, с чем также может помочь библиотека Transformers,
с конвейером суммаризации.
Наконец, последняя задача, поддерживаемая API конвейера
это перевод.
Здесь мы используем французско-английскую модель
найденную в хабе моделей
для получения английской версии нашего входного текста.
Вот краткий обзор всех задач
которые мы рассмотрели в этом видео.
Попробуйте использовать виджеты инференса
в хабе моделей.