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, будет сгенерирована такая страница:
В этом URL-адресе вы можете проверить окончательный результат и повозиться с забавными услугами НЛП HuggingFace.
Вы можете найти весь код в этом репозитории GitHub.
Заворачивать
В этом посте мы увидели, как построить комплексное решение НЛП с использованием компонентов COTS, предоставляемых HuggingFace и Wix.
Несмотря на то, что это простой пример, в этом руководстве показано, как Titan может ускорить процесс, чтобы обеспечить реальную ценность для бизнеса, используя коммерческие и легкодоступные инструменты и модели.
И, конечно же, этот же подход можно использовать для использования преимуществ всех типов библиотек не только в НЛП, но и в других областях, таких как распознавание изображений, любые предсказания или автоматические классификации.
Если вы хотите узнать больше о том, как начать использовать Titan или получить бесплатную демоверсию, посетите наш веб-сайт или напишите нам по адресу [email protected].
При желании вы можете назначить встречу с нами здесь.