Titan Tutorial # 13: Набор инструментов NLP, использующий HuggingFace, Titan и инструмент No-Code.

Вступление

NLP (обработка естественного языка) добивается невероятных успехов благодаря применению передовых методов глубокого обучения. В частности, появление архитектуры Transformer открывает путь к повсеместному использованию NLP во всех типах сред.

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

Для этого мы объединим три строительных блока:

  • HuggingFace: поставщик технологий обработки естественного языка (NLP) с открытым исходным кодом.
  • Titan: наш инструмент MLOps для простого развертывания моделей машинного обучения.
  • Wix: инструмент с низким кодом для создания веб-сайтов.

Основная идея состоит в том, чтобы использовать доступные технологии, чтобы получить функциональный продукт НЛП, работающий с нуля с использованием Titan. Прежде чем мы начнем, удобно кратко взглянуть на инструменты, которые мы будем использовать во время обучения.

ОбниматьЛицо

Компания HuggingFace, основанная в 2016 году в Нью-Йорке, предлагает решения НЛП. HuggingFace начинал как приложение чат-бота, но стал действительно актуальным после выпуска библиотеки с открытым исходным кодом для приложений НЛП.

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

Помимо этого, возможно, наиболее важным аспектом HuggingFace является созданное ими великое сообщество, которое постоянно экспериментирует и обучает новые модели НЛП.

Подводя итог, HuggingFace предлагает готовые изощренные возможности НЛП, которые можно использовать для создания сложных диалоговых интерфейсов.

WiX

Wix - израильская компания, основанная 10 лет назад в 2006 году, которая предлагает веб-платформу для создания веб-сайтов на HTML5, не требуя технических знаний.

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

Титан

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

Несмотря на то, что HuggingFace уже позволяет развертывать модели через свой CLI (интерфейс командной строки), мы увидим, как Titan с его возможностями развертывания общего назначения также может быть легко использован для этой цели очень гибким способом.

Как мы видели в прошлых руководствах, Titan можно использовать для развертывания не только моделей НЛП, но и всех типов AI / ML, о которых вы только можете подумать.

Приступаем к работе

Создание сервисов

Как упоминалось ранее, мы будем использовать готовые возможности HuggingFace для создания моделей НЛП для этого примера.

HuggingFace предоставляет очень мощный инструмент под названием конвейеры в своем репозитории трансформеров. Конвейеры - отличный способ использовать модели НЛП, не сталкиваясь со всей сложностью его обучения и проектирования.

В общем, каждый конвейер HuggingFace состоит из:

  • Токенизатор для отображения текста в токены
  • Образец модели
  • Дополнительные инструменты пост-обработки для вывода

Использование этих конвейеров может быть таким же простым, как показано ниже в Блокноте Jupyter:

Как обычно, с помощью Titan мы можем предоставить необходимую среду и оборудование для этой модели в ячейке markdown. Кроме того, в файл requirements.txt необходимо добавить необходимые зависимости:

transformers==3.5

После этого нам просто нужно импортировать конвейеры из библиотеки преобразователей, чтобы начать их использовать. В этом примере мы будем использовать эти три конвейера:

  • анализ настроений: чтобы выполнить анализ настроений (положительных или отрицательных) на входе.
  • ответ на вопрос: при условии контекста и вопроса модель возвращает ответ на вопрос.
  • fill-mask (генерация текста): при вводе этот конвейер завершает предложение несколькими предлагаемыми вариантами.

Когда у нас есть все конвейеры в модели, нам просто нужно указать необходимые конечные точки, как мы обычно делаем в Titan.

# POST /question_answering
# POST /sentiment_analysis
# POST /text_generation

Как обычно, можно создать фиктивный запрос в Блокноте, чтобы его можно было протестировать локально. Что касается параметров запросов, был использован следующий подход:

Для конечных точек / question_answering и / text_generation ввод передается с использованием параметра запроса:

args = {
 “param”: [‘Such a nice weather outside !’]
}
REQUEST = json.dumps({ ‘args’: args })

Ожидается, что для конечной точки / sentiment_analysis данные будут поступать внутри тела запроса:

body = {
'context':'Akoios is a Spanish company based in Madrid.' ,
'question': 'Where is Akoios based ?'
}

После того, как модель подготовлена, ее можно развернуть, запустив:

$titan deploy

Создание базового веб-сайта

Как только у нас будут запущены сервисы, пора создать базовый веб-сайт для их использования. Мы будем использовать WiX по нескольким причинам:

  • Перетаскивайте интерфейс для создания макетов
  • Интегрированные формы
  • Наличие Javascript Fetch API, который можно использовать для взаимодействия с REST API через HTTPS.

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

Когда макет готов, нам нужно реализовать логику для вызова API развернутых конечных точек и обработки ответов. WiX можно рассматривать как инструмент с низким кодом, поскольку он позволяет создавать более сложные функции, добавляя некоторые программы на веб-сайты.

Для этого примера нам нужно будет отредактировать два разных файла в Wix, один на бэкэнде, а другой на интерфейсе:

  • Predictions.jsw: файл серверной части, который будет выполнять фактические вызовы API и возвращать результаты.
  • Home.jsw: файл внешнего интерфейса, который получает входные данные, вызывает функции внутреннего интерфейса и отображает ответ в указанных полях.

Оба файла показаны в следующих фрагментах кода:

Теперь, когда весь код включен, мы можем проверить, как все работает вместе. Публикуя созданный веб-сайт с помощью WiX, будет сгенерирована такая страница:

Https://javier869.wixsite.com/nlp-toolkit.

В этом URL-адресе вы можете проверить окончательный результат и повозиться с забавными услугами НЛП HuggingFace.

Вы можете найти весь код в этом репозитории GitHub.

Заворачивать

В этом посте мы увидели, как построить комплексное решение НЛП с использованием компонентов COTS, предоставляемых HuggingFace и Wix.

Несмотря на то, что это простой пример, в этом руководстве показано, как Titan может ускорить процесс, чтобы обеспечить реальную ценность для бизнеса, используя коммерческие и легкодоступные инструменты и модели.

И, конечно же, этот же подход можно использовать для использования преимуществ всех типов библиотек не только в НЛП, но и в других областях, таких как распознавание изображений, любые предсказания или автоматические классификации.

Если вы хотите узнать больше о том, как начать использовать Titan или получить бесплатную демоверсию, посетите наш веб-сайт или напишите нам по адресу [email protected].

При желании вы можете назначить встречу с нами здесь.