Введение:
Развертывание моделей машинного обучения — важный шаг на пути внедрения ваших моделей в реальные приложения. Однако процесс развертывания и интеграции моделей с пользовательскими интерфейсами может быть сложным и занимать много времени. Gradio, библиотека Python, упрощает этот процесс, предоставляя удобный интерфейс для развертывания моделей машинного обучения.
В этой статье я проведу вас через пошаговый процесс развертывания модели машинного обучения с помощью Gradio. .
- Шаг 1: Создайте папку проекта
Для начала вам нужно зайти в проводник и создать новую папку для вашего проекта, назовем ее gradio_app. Затем вы можете создать файл requirements.txt, который будет содержать все пакеты и библиотеки, которые вам нужны в вашей виртуальной среде для запуска вашего приложения, затем вы можете создать файл readme.md, чтобы поместить несколько описаний о вашей работе. затем файл .gitignore с именем вашей виртуальной среды внутри, чтобы папка среды игнорировалась git при создании репозитория для проекта. Вы также можете создать папку src, в которой будут храниться файл app.py и файл компонента модели машинного обучения или другие файлы, которые вы могли экспортировать из своей записной книжки. Когда ваша папка будет готова, вы можете открыть ее в любом текстовом редакторе по вашему выбору, скажем, в Visual Studio Code. После того, как папка проекта открыта в vscode, вы можете открыть файл requirements.txt, содержащий необходимые установки для вашего проекта, после чего появится всплывающая кнопка с просьбой создать виртуальную среду, или вы можете открыть терминал и сделать ярлык на Windows ctrl+shift+p, чтобы открыть список команд, затем вы можете выбрать создание виртуальной среды, после чего она создаст виртуальную среду на основе установок, указанных в файле requirements.txt. Допустим, имя вашей новой среды — venv, тогда вы можете ввести следующую команду в терминале, чтобы активировать вашу виртуальную среду; venv/Скрипты/активировать.
- Шаг 2: Подготовьте модель
Перед развертыванием модели убедитесь, что она обучена и готова к использованию. Допустим, вы используете библиотеку Scikit-learn, тогда вы можете построить конвейер с классом конвейера scikit-learn, который будет содержать все модули для предварительной обработки данных, такие как кодировщики, импутеры и масштабаторы, а также оценщик, подходящий для обучающего набора данных и экспортированный. с рассолом, готовым к использованию в вашем приложении gradio.
- Шаг 3: Импортируйте необходимые библиотеки
В вашем app.py вы можете импортировать необходимые библиотеки, включая Gradio и библиотеки, связанные с вашей платформой машинного обучения. Например, если вы используете Scikit-learn;
import gradio as gr import sklearn import pandas pd import numpy as np
- Шаг 4: Определите свою модель и функции ввода/вывода
Определите свою модель и любые необходимые функции предварительной обработки. Для Gradio требуется функция, которая принимает входные данные и возвращает выходные данные. Убедитесь, что форматы ввода и вывода соответствуют требованиям вашей модели. Допустим, вы обучили свою модель на данных об оттоке клиентов, таких как в этом блокноте, тогда ваш код может выглядеть так, как показано ниже.
def make_prediction(gender, Partner, Dependents, tenure, MultipleLines, InternetService, OnlineSecurity, OnlineBackup, DeviceProtection, TechSupport, Contract, PaperlessBilling, PaymentMethod, MonthlyCharges, TotalCharges): input_data = pd.DataFrame({'gender':[gender], 'Partner':[Partner], 'Dependents':[Dependents], 'tenure':[tenure], 'MultipleLines':[MultipleLines], 'InternetService':[InternetService], 'OnlineSecurity':[OnlineSecurity], 'OnlineBackup':[OnlineBackup], 'DeviceProtection':[DeviceProtection], 'TechSupport':[TechSupport], 'Contract':[Contract], 'PaperlessBilling':[PaperlessBilling], 'PaymentMethod':[PaymentMethod], 'MonthlyCharges':[MonthlyCharges], 'TotalCharges':[TotalCharges]}) #load already saved pipeline and make predictions with open("ml_model.pkl", "rb") as f: model = pickle.load(f) predt = model.predict(input_data) #return prediction return predt
- Шаг 5: Создайте компонент вменения
#create the input components for gradio gender_input = gr.inputs.Dropdown(choices =['Female', 'Male']) Partner_input = gr.inputs.Dropdown(choices =['Yes', 'No']) Dependents_input = gr.inputs.Dropdown(choices =['Yes', 'No']) tenure_input = gr.Number() MultipleLines_input = gr.inputs.Dropdown(choices =['No phone service', 'No', 'Yes']) InternetService_input = gr.inputs.Dropdown(choices =['DSL', 'Fiber optic', 'No']) OnlineSecurity_input = gr.inputs.Dropdown(choices =['No', 'Yes', 'No internet service']) OnlineBackup_input = gr.inputs.Dropdown(choices =['Yes', 'No', 'No internet service']) DeviceProtection_input = gr.inputs.Dropdown(choices =['No', 'Yes', 'No internet service']) TechSupport_input = gr.inputs.Dropdown(choices =['No', 'Yes', 'No internet service']) Contract_input = gr.inputs.Dropdown(choices =['Month-to-month', 'One year', 'Two year']) PaperlessBilling_input = gr.inputs.Dropdown(choices =['Yes', 'No']) PaymentMethod_input = gr.inputs.Dropdown(choices =['Electronic check', 'Mailed check', 'Bank transfer (automatic)','Credit card (automatic)']) MonthlyCharges_input = gr.Number() TotalCharges_input = gr.Number() output = gr.Textbox(label='Prediction')
- Шаг 6: Создайте интерфейс Gradio
Создайте интерфейс Gradio, указав тип ввода, тип вывода и любые дополнительные параметры, которые вы хотите включить. Gradio поддерживает различные типы ввода, включая изображения, ввод текста и раскрывающиеся меню, а также типы вывода, такие как текст и изображения.
#create the interface component app = gr.Interface(fn =make_prediction,inputs =[gender_input, Partner_input, Dependents_input, tenure_input, MultipleLines_input, InternetService_input, OnlineSecurity_input, OnlineBackup_input, DeviceProtection_input, TechSupport_input, Contract_input, PaperlessBilling_input, PaymentMethod_input, MonthlyCharges_input, TotalCharges_input], title ="Customer Churn Predictor", description="Enter the feilds Below and click the submit button to Make Your Prediction", outputs = output)
- Шаг 7: Запустите интерфейс
Запустите интерфейс Gradio, используя метод launch()
. Это запустит локальный веб-сервер, на котором размещена ваша модель.
app.launch(share = True)
- Шаг 8. Протестируйте развернутую модель
После запуска интерфейса вы можете протестировать развернутую модель, взаимодействуя с предоставленным веб-интерфейсом.
- Шаг 9. Поделитесь развернутой моделью
Gradio предоставляет простой способ поделиться развернутой моделью с другими. По умолчанию Gradio создает веб-интерфейс, доступный по адресу http://localhost:7860
. Вы можете поделиться этим URL-адресом с другими, что позволит им взаимодействовать с вашей развернутой моделью через свой веб-браузер.
Заключение:
Развертывание моделей машинного обучения может быть сложной задачей, но с Gradio этот процесс значительно упрощается. Следуя пошаговому руководству, описанному в этой статье, вы сможете быстро развернуть свои модели машинного обучения с помощью удобного интерфейса. Гибкость и простота использования Gradio делают его отличным выбором для создания прототипов и демонстрации ваших моделей более широкой аудитории. Так что вперед, попробуйте Gradio и с легкостью воплотите в жизнь свои модели машинного обучения.