17 просмотров

Создание системы искусственного интеллекта для классификации и обучения текстовых сообщений в реальном времени.

В этом сообщении блога я демонстрирую, как создать систему искусственного интеллекта (ИИ) для классификации и обучения текстовых сообщений в реальном времени с использованием Dynamic AI56. Пакет этой модели доступен в AWS Marketplace.

При обычном машинном обучении (ML) вы сначала обучаете свою модель, а затем развертываете ее, чтобы получить выводы на основе ваших данных. Динамический ИИ объединяет эти две задачи в одном работающем изображении. Таким образом, вы можете получать выводы для текстовых данных и одновременно проводить обучение.

Предпосылки

  • Активный аккаунт AWS
  • Базовые навыки Python
  • Базовое понимание технологии ML

В этом руководстве вы будете использовать технологию Jupyter Notebook. Записная книжка — это интерактивный веб-интерфейс для серверной части Python, также называемый ядром. Серверное ядро ​​обрабатывает все вычисления, а результаты визуализируются в режиме реального времени в разделах блокнота, называемых ячейками.Чтобы запустить ячейку, вы можете просто поместить курсор внутрь и нажать Shift+Enter. Вы можете сохранять записные книжки в файлы и при необходимости загружать их в Jupyter.

Как создать систему машинного обучения для классификации и обучения текстовых сообщений в реальном времени

Шаг 1: Подготовьте блокнот

1.1 Создайте экземпляр записной книжки

Откройте консоль Amazon SageMaker. В левой панели меню найдите раздел Блокнот и выберите Экземпляры ноутбуков. В правом верхнем углу выберите Создайте новый экземпляр Notebook. Откроется страница параметров создания экземпляра. Введите желаемое имя экземпляра, например динамическое AI-демо. Остальные настройки оставьте по умолчанию.

Статья в тему:  Бернард Марр, как Amazon использует искусственный интеллект

Прокрутите страницу вниз до Git-репозитории раздел. Выберите, чтобы развернуть его. Я подготовил для вас демонстрационный блокнот примеров для Amazon SageMaker с вспомогательным модулем. Для вашего удобства вы можете просто клонировать этот репозиторий при создании блокнота. Для этого под Репозиторий по умолчанию подраздел репозиториев Git, щелкните стрелку справа, чтобы изменить параметр «Репозиторий» с «Нет» на « Клонировать общедоступный репозиторий Git только в этот экземпляр записной книжки. Появится поле URL-адрес репозитория. Вставьте в поле следующий адрес репозитория Git: https://github.com/Dynamic-AI/aws-sagemaker-examples.git. См. следующий снимок экрана.

Скриншот репозитория git

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

На странице Экземпляры записной книжки в столбце Действия выберите Открытый Юпитер. Это запускает новую вкладку браузера. Подождите несколько секунд, пока не увидите дерево файлов на вкладке Jupyter. Перейдите к папка src а затем v1 папка. Выберите Демо DynamicAI.ipynb файл, чтобы открыть записную книжку в новой вкладке браузера.

1.2. Разверните модель динамического ИИ на конечной точке Amazon SageMaker.

Чтобы пройти это руководство, вам необходимо подписаться на продукт Dynamic AI ML Model в AWS Marketplace. Для этого перейдите по этой ссылке на страницу продукта с демонстрационной моделью динамического ИИ. Продукт имеет 60-дневную бесплатную пробную версию, в течение которой не будет взиматься плата за программное обеспечение. В правом верхнем углу выберите Продолжить подписку. Выбирать Принять предложение.

Теперь вернитесь на вкладку Jupyter Notebook, которую вы открыли на шаге 1.1. Обратитесь к следующему снимку экрана.

Статья в тему:  Когда искусственный интеллект станет самодостаточным

Скриншот Юпитера

Эта ячейка сначала звонит get_model_package_arn() функция из вспомогательного модуля dynamic_ai.py, который находится в той же папке. Он используется для определения ARN пакета модели продукта Dynamic AI Demo для вашего текущего региона AWS. Потом идет звонок развернуть_модель() Функция, которая выполняет всю работу по запуску модели. Функция принимает два параметра:

  • model_arn – идентификатор продукта, который вы только что получили
  • instance_type — это тип экземпляра для развертывания модели. Просто сохраните тип по умолчанию «ml.m5.4xlarge».

Запустите эту ячейку, поместив в нее курсор и нажав Shift+Enter. Выполнение операции может занять несколько минут. На следующем изображении показана первая ячейка с предыдущими параметрами, введенными после завершения.

первая ячейка с предыдущими параметрами

1.3. Подтвердите, что динамический ИИ работает

Чтобы убедиться, что система динамического ИИ запущена и работает, запустите следующую, нажав Shift+Ввод в этом. Дополнительные сведения о работе с ячейками см. в руководстве по Jupyter, указанному в разделе «Предварительные условия». На следующем изображении показана эта успешная функция и положительный результат True в разделе Out [2].

положительный результат True Under Out

Если ваш результат не Истинный, просто подождите минуту и ​​повторно запустите ячейку, пока не получите результат Истинный.

Шаг 2: Добавьте свои сообщения

2.1. Отправка сообщений в систему

Для добавления сообщений используйте добавить сообщение() функция. Эта функция принимает фрагмент текста в качестве аргумента и возвращает уникальный идентификатор, который можно использовать в последующих вызовах в качестве ссылки. В Jupyter я добавил «Очень простое тестовое сообщение», введя этот текст в первую строку следующей ячейки после Добавление сообщения заголовок. Он вернул 22-значный буквенно-цифровой уникальный идентификатор в поле вывода, как показано на следующем снимке экрана.

Статья в тему:  Как искусственный интеллект работает в здравоохранении

уникальный идентификатор сообщения

Вы также можете добавить несколько сообщений в кучу, вызвав добавить сообщение() функция несколько раз, передавая различный текст. Я сделал это в соседней камере. я добавил «Еще одно простое тестовое сообщение», «И еще одно простое тестовое сообщение», а также «Последнее простое тестовое сообщение» в поле кода Python ячейки. Обратитесь к следующему снимку экрана.

несколько сообщений

2.2. Проверка ваших сообщений

Чтобы убедиться, что ваши сообщения были добавлены в систему, используйте список_сообщений() функция. Он вернет вам словарь с идентификаторами и соответствующими текстами добавленных сообщений.

Для этого я вошел dynai.list_message() в поле кода Python следующей ячейки, а затем выберите значок запуска слева. Я получил список из четырех сообщений, которые я ввел на предыдущих шагах в разделе Выход[5], как показано на следующем снимке экрана.

скриншот списка сообщений

Обратите внимание, что текст сообщения сохраняется только на стороне клиента и будет стерт при перезапуске ядра Jupyter.

Поздравляем! Вы успешно добавили текстовые данные в систему динамического ИИ. Теперь с ним можно сделать что-нибудь полезное.

Шаг 3. Добавьте и определите категории в наборе данных.

Организация известных сообщений по категориям позволяет прогнозировать категории для новых, неизвестных входящих текстов, ранее невидимых для системы. На этом шаге я покажу, как использовать добавить сообщение() а также set_category() функции для создания простого набора данных, состоящего из одной категории с четырьмя сообщениями. Одной из отличительных особенностей системы Dynamic AI является возможность работы даже с таким небольшим набором сообщений.

Статья в тему:  Снежинка что такое искусственный интеллект

3.1. Использование функции set_category()

Чтобы пометить сообщение как член определенной пользовательской категории, используйте кнопку set_category() функция. Эта функция принимает два параметра. Первый — это идентификатор сообщения, а второй — произвольное имя категории.Они будут служить входными данными для классификатора динамического ИИ. Чтобы использовать set_category() функции, сначала установите категорию для всех текстовых сообщений, которые вы ранее добавили на шаге 2. Добавьте свои сообщения, как показано в следующей ячейке. Функция должна вернуть Истинный, что свидетельствует об успехе.

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

На следующем снимке экрана показана эта успешная функция и повторение ее с другими тремя примерами сообщений.

успешная функция установки категории и повторение

3.2. Использование функции predict_category()

Чтобы использовать систему динамического ИИ для прогнозирования категории ранее неизвестного сообщения, вы используете две функции. Во-первых, используйте добавить сообщение() функция добавления нового сообщения. Затем используйте предсказать_категорию() функцию, чтобы предсказать его категорию на основе обучения, которое вы сделали в предыдущем разделе, Использование set_category() функция.

Когда вы вызываете предсказать_категорию() функция, она возвращает следующие значения:

  • категория – прогнозируемое название категории
  • точность – предполагаемая точность предсказания
  • одобрено – логический флаг; Истинный означает, что прогноз системы проверен и надежен (с точностью до предполагаемой точности). Ниже приводится краткое объяснение.

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

Статья в тему:  Каковы основы искусственного интеллекта

предсказание категории

Этот последний флаг (одобрено) — это уникальная функция динамического ИИ, которая показывает, насколько система уверена в выставленной ею оценке точности. Он основан на анализе семантического подобия, обеспечиваемом запатентованной технологией Dynamic AI, и зависит от предыдущих входных данных и классификаций, сделанных системой. Если вы попробуете тот же метод с совершенно другим сообщением, вы получите другой результат.

Например, в следующей ячейке я ввел dynai.add_message('Эй, вот и я — совершенно другое сообщение') и получил результат («категория»: нет, «точность»: 0,0, «is_approved»: ложь). Результат категории Никто указывает, что это сообщение не принадлежит ни к одной известной категории, что верно. См. следующий снимок экрана.

несвязанный результат категории сообщений

Шаг 4: Работа с большими наборами данных

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

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

4.1. Импорт образца набора данных

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

Статья в тему:  Какое лучшее программное обеспечение для искусственного интеллекта

результат набора данных

4.2. Тестирование системы классификации

Образец набора данных имеет три категории:

  • Авария – все о авариях
  • Отмена — запросы на отмену и вопросы о политике отмены компании.
  • Счет-фактура – ​​вопросы и запросы, связанные со счетами-фактурами

Для проверки я просто добавляю в систему новые сообщения и анализирую категории, которые возвращает функция классификации. Для этого в следующей ячейке следуйте инструкциям из раздела «Использование функции predict_category()» из шага 3.2. Значение Истинный за одобрено Поле ответа указывает на точную классификацию.

Я проверил это, введя три сообщения. В следующих нескольких ячейках я сделал это для двух фраз:Уважаемая компания Rent-A-Car, я потерял свой счет, не могли бы вы выслать мне его еще раз?’, ‘Привет! Мои планы изменились, не могли бы вы отменить мою бронь, пожалуйста?’ и получили правильные результаты, как показано на следующем снимке экрана.

результат категоризации тестового сообщения

Эти две фразы были успешно классифицированы системой как принадлежащие Счет а также Отмена категории, это правильно.

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

Статья в тему:  Как сократить искусственный интеллект

несвязанный результат категории сообщений

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

Очистка

Чтобы выполнить очистку после этой демонстрации, необходимо удалить конечную точку модели и экземпляр ноутбука в Amazon SageMaker. Перейдите в последнюю ячейку блокнота и запустите ее, нажав Shift+Ввод. Он вызовет неисправность() вспомогательная функция, которая заботится о завершении конечной точки модели. Обратитесь к следующему снимку экрана.

функция отключения

Затем закройте все открытые вкладки Jupyter, одну для блокнота, а другую для файлового навигатора. Теперь вернитесь к консоли Amazon SageMaker и нажмите N.экземпляры otebook на левой панели меню. Найдите свой экземпляр записной книжки в таблице и выберите Останавливаться от Действия раскрывающийся список в правом верхнем углу. После остановки экземпляра ноутбука выберите Удалить из того же Действия падать.

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

Следующие шаги

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

Статья в тему:  Робототехника, искусственный интеллект, что перспективнее?

Вывод

В этой записи блога я показал, как использовать продукт Dynamic AI56 из Amazon SageMaker Marketplace для создания системы ИИ для классификации и обучения текстовых сообщений в реальном времени. Я показал, как можно сочетать добавление и классификацию сообщений в рамках одного сеанса. Эта возможность позволяет вам расширять свои категории в режиме реального времени и переназначать сообщения на разные категории на лету.

Содержание и мнения в этом сообщении принадлежат стороннему автору, и AWS не несет ответственности за содержание или точность этого сообщения.

голоса
Рейтинг статьи
Ссылка на основную публикацию
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x