看看 Gradio 为机器学习开发人员提供的 AI Playground

2024-10-28 18:07:36 英文原文

作者:David Eastman

是 Hugging Face 上为机器学习开发人员提供的组件库,现已更新为版本5其值得注意的新功能之一是“实验性 AI Playground”,它允许您“使用 AI 生成或修改 Gradio 应用程序并立即在浏览器中预览应用程序。” 后端开发人员专注于AI 仍然需要将其工作显示为可见输出,而这正是 Gradio 所服务的利基市场。因为我几乎总是被一流的作品所左右。 操场,在这篇文章中,我们将演练该新功能。

正如我们开始吧,很明显我们有一个Python前端生成器。这个想法是人工智能工程师会发现这比使用 CSS 和 JavaScript 更有吸引力。正如您将看到的,这与人工智能无关。

我们从 pip 安装开始:

我们实际上并不需要只有几行的代码编辑器,因此我们可以编写示例应用程序.py直接进入终端。

进口 渐变作为

定义 迎接姓名, 强度):

​​​​ 返回 “你好, ” + 姓名 + “!” * 整数强度

演示 = 界面

​​​​​​​ =迎接,

​​​​​​​ 输入=[“文本”, “滑块”],

​​​​​​​ 输出=[“文本”],

演示发射()


我们确实可以在Jupyter笔记本,如果您选择这条道路,Gradio 会照顾您。

如果你只运行上面的代码,它的行为就像一个网络服务器:

输出如下:

从表面上看,这是在网页上生成用户界面 (UI) 的一种非常有效的方法。我们指向一个函数并提到我们想要输入和输出的组件。我们没有指出滑块应如何表现或组件应如何排列(例如)。幸运的是,这些组件以响应方式合理地堆叠。重点是,如果您对 UI 美观不感兴趣,只对可用性感兴趣,那么这很好用。

要检查版本,请运行以下代码:

进口 渐变作为

打印__版本__


我认为来自 Gradio 命令本身的版本响应会更好。请注意,我只能获取 v4.44.1,因此较新的 Gradio 5 功能可能尚不可见。

有趣的是,在公共服务器上创建这个演示很简单,并且可以通过代码完成。事实上,我们运行代码后在上面的终端响应中已经指出了这一点。我们只需将最后一行替换为demo.launch(分享=True)该应用程序现已公开托管。当我这样做时(我使用 gradio 命令调用代码,该命令运行热加载),公共 URL 和条件如下:

为了创建一些快速的临时托管,已经完成了大量繁重的工作。对于在线教学来说,这本身就非常有用。

格拉迪奥有一个丰富的组件尝试一下,包括必须明确支持事件的按钮之类的东西。但明智的是,它们允许较低水平的建筑使用积木。这是我将花更多时间进行检查的地方,因为这可能使 Gradio 与其他 UI 设计师处于同一水平。

让我们看一下带有块的简单输入输出类型示例。你可以只使用操场;只需从左侧选择“Hello Blocks”即可:

我们在这里所做的所有不同之处是通过按钮事件驱动体验流,而不是将其委托给黑匣子。我们明确控制组件标签,但仅此而已。我不是 Python 开发人员,所以我必须查找陈述。正如这里所使用的,它实际上是一种在 try/catch 块中编写异常处理的更简洁的方法。请注意,相同的组件文本框既用作输入又用作输出,因此是角色对其行为进行建模。

除了单击按钮之外,您还可以监听变化行为。因此,我们可以更改第一个示例并强制输出框监听滑块:

实际上,输入(或输出)的数量必须与函数参数的数量相匹配。

您可以在 Playground 中使用以下代码,它是 Sepia Filter 示例的改编版本。使用图像组件和快速棕褐色滤镜:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17 号

18

19

20

进口 麻木作为 NP

进口 渐变作为

定义 棕褐色输入图像):

​​​​​​​ 棕褐色过滤器 = NP大批([

​​​​​​​​​​​​ [0.393, 0.769, 0.189],​​​​ 

​​​​​​​​​​​​ [0.349, 0.686, 0.168],

​​​​​​​​​​​​ [0.272, 0.534, 0.131]

​​​​​​​ ])

​​​​​​​​ 棕褐色_img = 输入图像棕褐色过滤器时间

​​​​​​​ 棕褐色_img /= 棕褐色_img最大限度()

​​​​​​​ 返回 棕褐色_img

积木() 作为 演示:

​​​​​​​ 图像输入= 图像标签 = 「原图」

​​​​​​​ 图像输出 = 图像标签 = “让我变成棕褐色”

​​​​​​​ 图像输入改变=棕褐色, 输入=图像输入, 输出=图像输出

如果 __姓名__ == “__主要的__”:

​​​​​​​ 演示发射()


以下是一些先前生成的艺术作品的结果:

此时,我对哪些示例可以在 Playground 中运行以及为什么我只能获得 4.44.1 版本而不是 5 感到有点困惑。但是,当从命令行构建时,我确实得到了以下缓慢的编写器工作:

进口 时间 进口

渐变作为

定义 慢回声信息, 历史):

​​​​​​​ 为了 范围信息)):

​​​​​​​​​​​​​ 时间睡觉0.3

​​​​​​​​​​​​​ 屈服 “您输入:” + 信息[: +1]

聊天界面慢回声)。发射()


这使用了两个想法:流式聊天机器人界面和 发电机函数。结果是我最近自己实现的东西:一个缓慢的作家。这是每个字母以很短的时间间隔写出来的时候,就像数字通信非常慢的电影中一样。

显然,聊天界面的想法是您使用自己的 LLM 模型作为源(我可能会在以后的文章中尝试使用 Gradio 和 LLM 构建一些东西),但在这个示例中,我们使用慢回声生成器函数,每次调用都会从一系列中产生不同的结果。

结论

对于 UI 只是显示结果或概念的临时框架的情况,您可以看到为什么 Python 开发人员会受益于 Gradio。虽然有些逻辑有点迟钝,但仍然需要很少的代码即可在屏幕上获得工作界面 - 如果您不围绕 UI 进行创新,为什么还要浪费时间呢?

团体 用草图创建。

关于《看看 Gradio 为机器学习开发人员提供的 AI Playground》的评论


暂无评论

发表评论

摘要

Gradio 是 Hugging Face 上为机器学习开发人员提供的组件库,已更新到版本 5,引入了“AI Playground”功能,允许用户直接在浏览器中使用 AI 生成或修改 Gradio 应用程序。新版本通过需要最少的代码输入和自动排列组件来简化 UI 创建。开发人员只需几行Python代码即可创建基于Web的界面,例如部署“greet”函数示例,而无需指定详细的UI设计参数。此外,该更新还可以通过单个命令更改(“demo.launch(share=True)”)轻松实现公共托管。Gradio 还通过其 Blocks 框架支持事件驱动按钮和图像处理等高级功能。Playground 演示了基本的输入输出交互和更复杂的功能,例如带有生成器功能的流式聊天界面。总体而言,版本 5 增强了 AI 应用程序的快速原型设计能力。格拉迪奥