Gradio+HuggingFace网页端轻松部署算法模型

1,599 阅读2分钟

背景介绍

自然语言处理、计算机视觉和图像处理的算法具有直观的实用性。作为算法研发人员,将自己的算法部署到网页端的UI接口供大家使用是一件很妙的事。但这个过程需要学习庞杂的前后端知识(HTML、CSS、JavaScript)而且需要购买域名,技术复杂且不免费。最近人们陆续开发出剥离前后端知识的应用部署方案,以dashstreamlitgradio为代表的这里我将介绍一种简单且免费的方案供大家参考。

gradio

gradio是一个Python包,使用Gradio可以通过少量的几行Python代码就能自动化生成交互式web页面,并支持多种输入输出格式,图像加载/显示框、文本框、各类按钮等常见控件。同时,还支持生成能外部网络访问的链接,能够迅速让非技术人员体验你的算法。

  • 安装命令

pip install gradio

Gradio生成在线应用

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

demo.launch(share=True)

demo.launch()可以生成一个本地链接(local urlhttp://127.0.0.1:7860/ 如果假如参数share = True则可以生成一个公共链接(public url7880c007e544b12cfb.gradio.live/

但是 This share link expires in 72 hours. For free permanent hosting and GPU upgrades, run gradio deploy from Terminal to deploy to Spaces (huggingface.co/spaces)

此共享链接将在 72 小时后失效。如需永久免费托管和 GPU 升级,请从终端运行 gradio deploy 以部署到 Spaces

HuggingFace 部署

  • 注册账号 注册一个 HuggingFace 的账号 在这里插入图片描述

  • 创建新的项目空间 点击左上角的头像,然后点击 “+New Space” 创建一个新的项目空间 在这里插入图片描述

  • 填写相关信息 给 Space 取一个名字,然后在 Select the Space SDK 里面,选择第二个 Gradio。硬件选择免费的服务器,项目选择 public在这里插入图片描述 每个项目空间免费配备8个CPU核和16GB 运行内存(CPU basic ·2 vCPU · 16 GB · FREE),而GPU资源需要单独付费。

  • 创建成功后,跳转界面 在这里插入图片描述

开始你的项目

  • Start by cloning this repo by using:
git clone https://huggingface.co/spaces/aimaswx/demo
  • Create your Gradio app.py file:
import gradio as gr

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

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

在这里插入图片描述

  • Then commit and push:
git add app.py
git commit -m "Add application file"
git push

(Hint: Create the app.py file right in your browser alternatively) (提示:也可直接在浏览器中创建 app.py 文件) UI构建文件必须得命名成app.py且位于根目录 在这里插入图片描述

  • 🤗 Your app should be running on this page after a few moments !

🤗 几分钟后,您的应用程序就会在此页面上运行!

  • 依赖 Dependencies

您可以在版本库根目录下添加 requirements.txt 文件,以指定 Python 依赖项。

如果需要,也可以在版本库根目录下添加 packages.txt 文件,指定 Debian 依赖项。

gradio 软件包已预装,其版本在 README.md 文件的 sdk_version 字段中设置。

成果展示

一个简单的hello应用 在这里插入图片描述