Использование библиотеки Hugging Face для работы с моделями NLP на Python

Читать в полной версии →

Лаборатория исследования искусственного интеллекта Hugging Face c 2016 года разрабатывает инструменты для создания приложений с использованием машинного обучения. Ее наиболее известные продукты — библиотека Transformers и платформа для обмена моделями машинного обучения и наборами данных.

Что такое Hugging Face и как работает?

В своих разработках основной фокус Hugging Face делает на технологии искусственного интеллекта и сервисах распознавание речи и создания текста. Hugging Face стремится сделать модели обработки естественного языка NLP доступными для всех и предлагает ряд ресурсов с открытым исходным кодом, чтобы пользователи могли разрабатывать модели и внедрять их в проекты по доступным ценам.

Продукты Hugging Face упрощают процесс машинного обучения и обработки естественного языка. Для этого они предлагают:

Что такое модели NLP и где они используются?

Модели NLP относятся к технологиям искусственного интеллекта по обработке естественного языка, то есть языка общения людей. Инструменты могут:

Платформа Hugging Face предлагает разработчикам ряд библиотек, моделей и данных NLP для работы. Рассмотрим базовые библиотеки: Transformers, Dataset и Tokenizers.

Transformers

Трансформеры — это библиотека с открытым исходным кодом, которую используют для машинного обучения и обработки естественного языка. Набор предварительно обученных моделей оптимизирует входные данные и хорошо подходит для построения объемных языковых моделей.

Библиотека состоит из модулей. Она проста в использовании, не требует больших временных затрат на обучение и подходит для решения таких задач, как классификация и генерация текста, перевод, составление вопросов и ответов и др.

Datasets

Библиотека наборов данных от Hugging Face будет полезна для проектов по обработке естественного языка, в которых необходим массив данных. Для работы с этим модулем можно использовать такие фреймворки, как Numpy, Pandas, PyTorch или TensorFlow. Datasets предлагает наборы данных NLP из академических исследований, популярных тестов и реальных приложений более чем на 186 языках.

Данные тщательно отбираются, обрабатываются и унифицируются, что гарантирует их согласованность и упрощает использование. В библиотеке есть расширения для разделения и перетасовки данных, а также загрузки предварительно обученных моделей.

А еще пользователи могут загрузить критерии оценки для проверки, насколько успешно модели NLP справляются с поставленными задачами. Datasets хорошо сочетается с другими популярными библиотеками, например Transformers, и плавно интегрируется с NLP-моделями.

Tokenizers

Библиотека токенизаторов содержит компоненты для разбивки предложений и фраз на слова и термины для повышения производительности и универсальности финального решения. Она обрабатывает большие объемы данных за очень короткое время, помогая высвободить вычислительные ресурсы для обучения моделей.

Основная функция коллекции — обработка новых словарей с привлечением наиболее популярных токенизаторов. Сервис эффективно выполняет предварительную работу с использованием операторов Truncate, Ipad и необходимых для вашей модели токенов.

Инструкция по работе с Hugging Face на Python

Загрузите платформу Hugging Face Hub в свою среду разработки с помощью команды:

pip install --upgrade huggingface_hub

Импортируйте библиотеки Transformers и Datasets:

pip install -q transformers

from transformers import pipeline


# code

pip install datasets

Импортируйте данные из библиотеки Datasets:

from datasets import load_dataset

dataset = load_dataset("imdb")

Или используйте собственный источник c помощью фреймворка Pandas, где "path/to/your/csv/file.csv" — фактический путь к файлу с данными:

import pandas as pd
from datasets import Dataset, DatasetDict

csv_path = "path/to/your/csv/file.csv"
df = pd.read_csv(csv_path)

dataset = Dataset.from_pandas(df)

dataset_dict = DatasetDict({"train": dataset})

print(dataset_dict)

Теперь всё готово к работе!

Какие задачи можно решать с NLP-моделями Hugging Face

Hugging Face предоставляет NLP-инструменты для классификации, распознавания имен собственных, вопросов и ответов, языкового моделирования, резюмирования, перевода, множественного выбора и генерации текста.

Рассмотрим вариант сокращения текста со 130 знаков до 30 знаков с помощью модели резюмирования philschmid/bart-large-cnn-samsum. Предварительно обученную модель с соответствующим ей токенизатором вы выбираете из списка.

Для работы мы будем использовать класс pipeline, так как это самый простой способ получения модели из библиотеки Transformers.

В результате мы получим следующий текст:

The tower is 324 meters (1,063 ft) tall, about the same height as an 81-storey building. It is the tallest structure in Paris and the second tallest free-standing structure in France after the Millau Viaduct.

На курсе «Python-разработчик» вы получите необходимые знания и прокачаете ваши умения для выполнения задач с использованием искусственного интеллекта.