Введение
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” (“запустить инстанс”).
При настройке инстанса следует предусмотреть возможность доступа к нему из любого места, поскольку речь идет о быстром развертывании с использованием бесплатного уровня.
Перед запуском инстанса сгенерируйте и загрузите пару ключей для доступа к инстансу с локального компьютера, нажав кнопку “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, доступное из любой точки мира и обладающее отличной производительностью.
Читайте также:
- Создайте приложение для резюмирования новостных статей с Hugging Face и Gradio
- Как развернуть 2-уровневую архитектуру с AWS и Terraform Cloud
- Руководство по AWS: настройка экземпляра EC2 для развертывания приложений Java
Читайте нас в Telegram, VK и Дзен
Перевод статьи Abdulrahman Almutlaq: Deploying Gradio on AWS: A Beginner’s Quick-Start Guide