Gradio Interface构建Huggingface的交互式平台

Gradio是一个Python库,用于创建交互式的机器学习和深度学习模型演示。其Interface类简化了构建用户界面的过程,只需要几行代码就能实现。文章还展示了如何结合HuggingFace的预训练模型进行文本分类,并介绍了Interface的主要参数,包括批处理支持和自定义界面功能。
摘要由CSDN通过智能技术生成

一.Gradio的简单介绍

1.Gradio是一个Python的第三方库,是一个交互式平台,一个基于Web的图形用户界面,用来作为可视化演示,为机器学习模型和深度学习模型等提供了强大的解决方案。

2.Gradio的核心是“Interface”模块,该模块简单上手,容易操作,非常简单的实现可视化,还可以实现与用户共享的功能。Gradio通过封装关键功能,简化了构建交互式演示的过程。如何实现创建引人注目且用户友好的机器学习界面化,是每一个计算机学习者渴望实现的事。

3.Gradio.Interface是Gradio提供的主要类,仅仅只需几行代码,研究算法的人员就可以创建一个界面,允许用户与底层模型进行交互并观察实时输出,给算法工程师带来了福音。

4.Interface类需要三个关键参数:封装的函数、所需的输入组件和所需的输出组件。此外,可以使用各种可选参数来自定义演示的外观和行为。

二.Gradio的基础使用

这里使用huggingface中的预训练模型完成gradio的基础demo,官网也实现了相关案例的研究和demo的开发,有兴趣的可以参考下方的链接。

# 导入gradio
import gradio as gr
# 导入Transformers相关包
from transformers import pipeline
# 使用Gradio展示文本分类
# share参数可以
gr.Interface.from_pipeline(pipeline("text-classification",model="uer/roberta-base-finetuned-dianping-chinese")).launch(share=True)

运行后的图形界面
在这里插入图片描述

三.Gradio中Interface的主要参数详解

Gradio Interface参数表格,包括每个参数的数据类型和默认值
Interface类通过以下三个参数进行初始化:

fn:包装的函数
inputs:输入组件类型,(例如:“text”、"image)
ouputs:输出组件类型,(例如:“text”、"image)
参数名数据类型描述
fnCallable | None 该参数是必须的用于包装接口的函数。通常是机器学习模型的预测函数。函数的每个参数对应于一个输入组件,函数应返回单个值或值元组,元组中的每个元素对应于一个输出组件。
inputsComponent | list[Component] | None要用作输入的 gradio.components 列表。如果函数不接受任何输入,则这应该是一个空列表。
ouputsComponent | list[Component] | None用作输出的 gradio.components 列表。如果函数未返回任何输出,则这应该是一个空列表。
api_namestr | None | Literal[False]定义终结点在 API 文档中的显示方式。可以是字符串、无或假。如果为 False,则不会在 api 文档中公开终结点。如果设置为“无”,则端点将在 api 文档中作为未命名端点公开,尽管此行为将在 Gradio 4.0 中更改。如果设置为字符串,则终结点将以给定名称在 api 文档中公开。
show_progressLiteral[‘full’, ‘minimal’, ‘hidden’]如果为 True,则在挂起时显示进度动画
queuebool如果为 True,则将请求放在队列上(如果队列已启用)。如果为 False,则不会将此事件放在队列中,即使队列已启用也是如此。如果为 None,将使用 gradio 应用程序的队列设置。
batchbool如果为 True,则函数应处理一批输入,这意味着它应接受每个参数的输入值列表。列表的长度应相等(长度应为“max_batch_size”)。然后需要该函数返回列表元组(即使只有 1 个输出组件),元组中的每个列表对应于一个输出组件。
max_batch_sizeint如果从队列中调用,则要批处理在一起的最大输入数(仅当 batch=True 时才相关)
preprocessbool如果为 False,则在运行“fn”之前不会运行组件数据的预处理
postprocessbool如果为 False,则在将“fn”输出返回到浏览器之前不会运行组件数据的后处理。
cancelsdict[str, Any] | list[dict[str, Any]]None
everyfloat在客户端连接打开的情况下,每隔’秒运行一次此事件。以秒为单位进行解释。必须启用队列。

最常用的基础模块构成。

1.常常使用的应用界面:gr.Interface(简易场景), gr.Blocks(定制化场景)
2.布局组件:gr.Tab(标签页), gr.Row(行布局), gr.Column(列布局)
3.比较常用于人工智能的输入输出操作:gr.Image(图像), gr.Textbox(文本框), gr.DataFrame(数据框), gr.Dropdown(下拉选项), gr.Number(数字), gr.Markdown, gr.Files
4.相关图形交互页面的控制组件:gr.Button(按钮)

四.总结

Gradio Interface提供了多个参数,允许开发人员根据特定需求自定义自己的需求。开发人员可以为函数提供示例输入,这些输入将显示在UI组件下方,并可点击以填充界面。这个功能有助于用户理解预期的输入格式,并提供了一种方便的方式来探索模型的行为。Interface支持不同的解释方法来解释预测输出。同时,Gradio允许开发人员应用自定义主题和CSS样式到界面,使其与应用的品牌或设计指南相匹配,提供了启用用户标记输入和输出的选项。

在需要同时处理多个输入的情况下,Gradio Interface提供了批处理支持。通过将batch参数设置为True,函数可以接受每个参数的输入值列表。界面将自动对输入进行批处理,并显示相应的输出。开发人员可以使用max_batch_size参数指定最大批处理大小。

今天在学习huggingface的时候,本来要使用streamlit构建交互式平台,看到网上有人使用一种新的交互式平台Gradio,因此在网上查了一些资料进行学习,相关的参考资料如下。后续学习到新的知识会进行更新。
1.官网API参考手册
2.Gradio快速入手
3.官网给出的Demo
4Gradio从入门到进阶

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Algorithm_Engineer_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值