Развертывание Gradio на AWS: краткое руководство для начинающих

Введение

Gradio позволяет быстро поделиться моделью МО с пользователями, но не гарантирует производительности. Крайне важно вывести приложение Gradio за рамки локального ноутбука, особенно при демонстрации модели в качестве доказательства концепции (POC). Для более масштабных проектов более подходящим вариантом может стать Streamlit.

Развертывание с помощью AWS

В этом руководстве рассмотрим процесс развертывания базового приложения Gradio с помощью Amazon Web Services (AWS). Предварительный опыт работы с AWS не требуется, поскольку каждый шаг будет сопровождаться детальными инструкциями.

Пример приложения Gradio

Чтобы проиллюстрировать шаги по развертыванию, будем использовать в качестве примера простое приложение Gradio:

import gradio as gr

def greet(name):
return "Hello " + name + "!"

demo = gr.Interface(fn=greet, inputs="text", outputs="text")

demo.launch()

Шаг 1. Преобразование в скрипт Python

Перед использованием AWS убедитесь в том, что приложение Gradio выполнено в виде скрипта Python. Если оно находится в файле notebook, преобразуйте его в скрипт с помощью следующей команды:

$ jupyter nbconvert --to script [YOUR_NOTEBOOK].ipynb

Кроме того, установите в скрипте параметр server_name равным “0.0.0.0”:

import gradio as gr

def greet(name):
return "Hello " + name + "!"

demo = gr.Interface(fn=greet, inputs="text", outputs="text")

demo.launch(server_name="0.0.0.0")

Шаг 2. Создание репозитория GitHub

Создайте репозиторий GitHub и загрузите туда проект Gradio. Не забудьте создать файл “requirements.txt”, чтобы облегчить установку всех необходимых библиотек на инстанс EC2 с помощью одной команды. Создать этот файл можно, выполнив следующую команду в каталоге проекта Gradio:

python -m pipreqs.pipreqs .

Шаг 3. Настройка инстанса EC2

Начните с создания учетной записи на AWS, а затем перейдите к созданию инстанса EC2. Это можно сделать, выполнив поиск по “ec2” и выбрав опцию “launch instance” (“запустить инстанс”).

Набираем “ec2” в строке поиска

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

Перед запуском инстанса сгенерируйте и загрузите пару ключей для доступа к инстансу с локального компьютера, нажав кнопку “Create new key pair” (“Создать новую пару ключей”).

Шаг 4. Настройка правил безопасности входящих сообщений

После успешного запуска инстанса перейдите на вкладку “Security” (“Безопасность”) и выберите имя группы безопасности. В результате этого действия откроется окно, позволяющее изменить правила входящих подключений.

Вкладки, доступные после запуска инстанса

Перейдите во вкладку “Inbound rules” (“Правила входящих подключений”) и выберите “Edit inbound rules” (“Редактировать правила входящих подключений”). Добавьте новое правило со следующими характеристиками.

  • Тип: Custom TCP.
  • Диапазон портов: 7860–7870.
  • Источник: Anywhere (для обеспечения доступа из любого места).

Кликните “Save rules” (“Сохранить правила”).

Шаг 5. Подключение к инстансу AWS по протоколу SSH

Для подключения к инстансу необходимо выполнить два шага:

1. Вы должны быть владельцем файла c парой ключей. Продемонстрируем, как это сделать на платформах Windows и Linux/macOS.

Для пользователей Windows:

  • Кликните правой кнопкой мыши на файл с парой ключей.
  • Перейдите к “Properties” (“Свойства”).
  • Перейдите во вкладку “Security” (“Безопасность”).
  • Кликните “Advanced” (“Дополнительно”).
  • Просмотрите записи о правах доступа. Если ваше имя пользователя отсутствует, кликните “Change” (“Изменить”) (требуются права администратора), чтобы добавить свое имя пользователя, а затем убрать все остальные привилегии из System (“Система”) и Administrators (“Администраторы”).

Для пользователей Linux/macOS:

  • Выполните следующую команду:
chmod 400 path_to_your_keypair_file.pem

2. Выполните следующую команду для установления соединения:

ssh -i path_to_your_keypair_file.pem ec2-user@Public-IPv4-address

Учтите, что использование “ec2-user” перед символом “@” не всегда применимо и зависит от конкретного инстанса. Чтобы определить правильное имя пользователя, кликните на инстанс, перейдите в раздел “Connect” (“Подключение”) и во вкладке “EC2 instance connect” (“Подключение инстанса EC2”) найдите требуемое имя пользователя. Кроме того, в панели инстанса EC2 можно найти публичный IPv4-адрес.

Шаг 6. Конфигурация на сервисе EC2

После подключения к сервису EC2 выполните следующие задачи.

  • Запустите обновление системы:
sudo apt-get update
  • Установите Git:
sudo apt-get install git
  • Установите Pip:
sudo apt-get install python3-pip
  • Клонируйте GitHub-репозиторий:
git clone your_repository_url
  • Запустите приложение Gradio:
python script_name.py

После запуска приложения вам будет предоставлен локальный URL. Обратите внимание на номер порта в конце (7860). Объедините этот порт с ранее используемым публичным IPv4-адресом в следующем формате: “Public-IPv4-address:7860”.

Теперь у вас есть полностью готовое к работе приложение Gradio, доступное из любой точки мира и обладающее отличной производительностью.

Читайте также:

Читайте нас в Telegram, VK и Дзен


Перевод статьи Abdulrahman Almutlaq: Deploying Gradio on AWS: A Beginner’s Quick-Start Guide 

Предыдущая статьяКак создать приложение Android за 7 шагов
Следующая статьяПродвинутые техники PHP. Часть 2