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

Различные методы развертывания обсуждались в предыдущей статье Рабочий процесс машинного обучения и методы развертывания. При развертывании модель может быть доступна для использования через веб-приложение или программное обеспечение. Данные могут быть введены пользователем в модель, а прогнозы могут быть получены обратно через приложение из модели.

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

Так как же это работает за кулисами? Эта статья обсуждает это вкратце.

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

Теперь, как все коммуникации внутри приложения и модели работают в продакшене? Чтобы ответить на этот вопрос, нам нужно знать о конечной точке. Конечная точка — это в основном интерфейс для модели. В нашем случае моделей машинного обучения конечная точка — это шлюз, который облегчает связь между приложением и моделью. Подводя итог, функционирование этого интерфейса, которое мы называем конечными точками, можно описать следующим образом.

  • Конечная точка позволяет приложению отправлять данные от пользователя в модель.
  • Затем возвращаются выходные данные прогноза модели, основанные на данных, введенных пользователем.

Изображение ниже наглядно поясняет этот канал связи.

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

def main():
    #Obtain data from user
    input_user_data = get_user_data()
    #Receive predictions based upon the data fetched from user
    prediction = ml_model(input_user_data)
    #Showcase prediction to user
    showcase_prediction_to_user(predictions)
def ml_model(user_data):
    loaded_data = load_user_data(user_data)

В приведенной выше программе программа ml_app.py представляет приложение. Функция ml_model может быть указана как модель, а вызов функции «предсказание» представляет собой конечную точку.

В строке 6,

prediction = ml_model(input_user_data)

Это вызов функции ml_model, которая является конечной точкой.

В строке 12,

def ml_model(user_data): 

Он определяет модель.

Точно так же программа Python ml_app.py представляет приложение.

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

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

Как конечная точка облегчает связь между моделью и приложением?

Связь между моделью и приложением происходит через интерфейс, который мы называем конечной точкой, так что конечной точкой является API. API — это в основном аббревиатура интерфейса прикладного программирования, который представляет собой набор правил, которые позволяют программам взаимодействовать друг с другом и, в нашем случае, с моделью и приложением. API использует архитектуру REST, которая обеспечивает основу для правил и ограничений, которые необходимо соблюдать для осуществления связи. REST API использует HTTP-запросы и ответы для обеспечения связи через конечную точку для приложения и модели.

HTTP-запрос

Запрос HTTP (протокол передачи гипертекста), отправляемый из приложения в модель, состоит из четырех компонентов.

Конечная точка

Конечная точка будет иметь форму URL, т.е. Веб-адрес.

Метод HTTP

Из четырех HTTP-методов GET, POST, PUT и DELETE для развертывания в приложении используется только метод POST.

Заголовки HTTP

Такая информация, как формат данных, содержащихся в сообщении для программы-получателя, содержится в заголовках HTTP.

Сообщение

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

Точно так же HTTP-ответ, отправляемый приложению из модели, состоит из трех компонентов.

Код состояния HTTP

Когда модель успешно получает и обрабатывает данные от пользователя, код состояния начинается с 2, например 200.

Чтобы прочитать статью полностью, посетите C#Corner,