Что такое Hugging Face и как работает?
Лаборатория исследования искусственного интеллекта Hugging Face c 2016 года разрабатывает инструменты для создания приложений с использованием машинного обучения. Ее наиболее известные продукты — библиотека Transformers и платформа для обмена моделями машинного обучения и наборами данных.
В своих разработках основной фокус 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-разработчик» вы получите необходимые знания и прокачаете ваши умения для выполнения задач с использованием искусственного интеллекта.