Преобразуйте свои модели машинного обучения в долларовые стеки за 5 простых шагов

Черт бы побрал эти файлы рассола!

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

Звучит знакомо?

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

Но что, если я скажу вам, что есть способ

  1. Подготовить эти модели к продаже?
  2. Создать свои цены на ваши вещи?
  3. Монетизировать свои модели как источник пассивного дохода?

Введите RapidAPI.

Я проведу вас шаг за шагом, как это сделать, от самого начала до конца.

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

Это приложение может выполнять 7 задач НЛП:

  1. Классификация тем Zero-Shot: учитывая список текстов и возможных ярлыков, эта модель классифицирует тексты по соответствующим ярлыкам. Эта модель рассматривает проблему как проблему классификации с несколькими метками. Таким образом, текст может принадлежать нескольким категориям/меткам.
  2. Анализ настроений: учитывая список предложений, эта модель классифицирует их по положительным или отрицательным настроениям. Таким образом, текст может принадлежать обоим настроениям с определенной вероятностью. Эта модель рассматривает проблему как проблему классификации с несколькими метками.
  3. Обнаружение эмоций: учитывая список текстов, эта модель классифицирует их по одной или нескольким из 7 эмоций: радость, грусть, злость, ненависть, нейтральность, любознательность и информативность. Здесь также текст может передавать более одной эмоции.
  4. Поиск документов: при наличии списка документов и ключевых слов эта модель вычисляет количество вхождений ключевых слов в каждой записи.
  5. Обобщение текста: при наличии списка значимых текстов эта модель суммирует тексты.
  6. Извлечение ключевых слов для исследовательской работы: при наличии любой ссылки на исследовательскую работу/pdf эта модель анализирует текст и извлекает из текста все ключевые слова.
  7. Извлечение ключевых слов веб-сайта: эта модель извлекает все ключевые слова SEO по любой ссылке на веб-сайт (которая не имеет технологии блокировки).

Все это упражнение состоит из 5 основных шагов:

  1. Создайте API из своих моделей
  2. Докеризируйте API и отправьте его на AWS ECR
  3. Используйте AWS FARGATE + ECS для создания бессерверного развертывания/приложения
  4. Используйте RapidAPI для использования этого приложения
  5. Вызвать дождь (MONEYYYY)

Шаг 1 — Создайте API из ваших моделей

Я покажу вам один из моих примеров — например, Извлечение ключевых слов веб-сайта. Эта конечная точка принимает URL-адрес веб-сайта и извлекает ключевые слова SEO для этого веб-сайта.

Во-первых, нам нужно обернуть модель внутри API. Для этого мы будем использовать FastAPI.

Итак, в этом файле происходят следующие вещи.

  1. Функция Website_keyword_extract принимает список URL-адресов. Эта функция доступна в конечной точке API /website_keyword_extractor.
  2. HTML-код сайта извлекается и очищается с помощью некоторых вспомогательных функций.
  3. После этого мы используем пользовательскую функцию под названием KeywordExtractor() для прогнозирования ключевых слов для веб-сайта. Эта функция загружает сохраненную модель для прогнозирования.
  4. Ключевые слова возвращаются в формате словаря.
  5. Наконец, мы запускаем это приложение на порту 8080.

Когда мы запускаем это приложение и переходим к 0.0.0.0:8080/docs, мы видим такой экран.

Когда мы вводим https://github.com и нажимаем выполнить, мы получаем такой результат:

Шаг 2. Докеризируйте API и отправьте его в AWS ECR

Затем нам нужно докеризовать приложение и отправить этот контейнер в AWS ECR.

Мы можем докеризовать это приложение с помощью следующего Dockerfile.

Мы можем докеризовать файл с помощью следующей команды:

docker build -t nlp_comprehensive:latest .

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

docker run -p 8080:8080 nlp_comprehensive:latest

Пока этот док-контейнер работает, мы можем открыть IDE и выполнить этот код для тестирования API.

Это дает следующий вывод

{'https://github.com': [['учебная лаборатория', 0.4915720229678845],
['search github', 0.48844890760646464],
['software githubthe', 0.4663235674212823],< br /> ['github enterprise', 0.45443799127301476],
['level security', 0.4516176850683411],
['административные функции', 0.4506104328523862],
['github jasonetco', 0.434628697 6925689] ,
['совершает минуты', 0.43308424429477144],
['запрос на вытягивание', 0.3436060389521536],
['открытый запрос на вытягивание', 0.3051961544504077]]}

Итак, мы видим, что API работает отлично. Итак, теперь мы отправим его на AWS ECR. Вы можете следовать этому документу, чтобы узнать, как отправить образ Docker в AWS ECR.

Шаг 3. Используйте AWS FARGATE + ECS для создания бессерверного развертывания/приложения

Вместо развертывания этого приложения на инстансах EC2 гораздо лучше развернуть его на AWS FARGATE, создав определение задачи в ECS. Преимущество этого в том, что вы платите только тогда, когда кто-то использует ваше приложение.

На следующем изображении вы можете увидеть, насколько это дешево!

Вы можете прочитать эту прекрасную статью, чтобы узнать, как можно развернуть этот док-контейнер с помощью FARGATE + ECS.

После завершения развертывания вы сможете получить общедоступный IP-адрес вашего API в задачах кластера ECS.

Обратите внимание на ваш общедоступный IP-адрес; он понадобится вам на следующем шаге.

Шаг 4 — Используйте RapidAPI для монетизации этого приложения.

После того, как вы развернули свое приложение в AWS и получили общедоступный IP-адрес, перейдите на https://rapidapi.com/ и создайте учетную запись.

Затем перейдите в «Мои API» и нажмите «Добавить новый API».

Затем следуйте пошаговым инструкциям, чтобы добавить базовый URL-адрес (ваш общедоступный IP-адрес, номер порта) и конечные точки.

После того, как вы создали базовый URL-адрес и конечные точки, перейдите в «Глобальные настройки» и сделайте API общедоступным.

И это живо!

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

Шаг 5 — СДЕЛАЙТЕ ДОЖДЬ (ДЕНЬГИ…)

Вот и настал момент, которого мы все ждали! Монетизируйте свой труд.

Перейдите в раздел «Планы и цены». Здесь вы можете установить цену API для всего мира.

Вы можете сделать каждый запрос цены на основе (т. е. каждый план позволяет определенное количество запросов).

Например, моя структура ценообразования выглядит так.

Таким образом, каждый план допускает определенное количество запросов в месяц. Если кто-то превысит этот порог, ему придется доплатить 0,1 доллара США за запрос.

Всего за несколько часов вы можете видеть, что мое приложение достигло отличного показателя популярности 7,6/10, и я уже вижу значительный поток трафика. И да! Трое из них выбрали платную подписку!

Отличительной чертой RapidAPI является то, что они преобразуют ваши вызовы API в коды почти на 20 языках программирования, чтобы их можно было вызывать из любого места и в любое время. Языки включают C, Python, NodeJS, Java, PHP, JavaScript и HTTP и многие другие.

Заключение

Вместо того, чтобы модели машинного обучения устаревали внутри вашего компьютера, сделайте это. Возьмите любую свою работу (это не обязательно должна быть модель машинного обучения), преобразуйте ее в API, разверните где-нибудь (AWS, Azure, GCP) и используйте в RapidAPI с вашими индивидуальный тарифный план.

Поделитесь своим API со всем миром, и вы увидите, как накапливаются деньги!

Если вы считаете, что эта статья помогла вам и мое всеобъемлющее приложение НЛП поможет вам в работе, проявите любовь и подпишитесь на него! Бесплатная версия позволяет вам 5000 запросов в месяц, что хорошо для начала.