LLM 课程文档
构建你的第一个演示
并获得增强的文档体验
开始使用
构建你的第一个演示
让我们从安装 Gradio 开始!因为它是一个 Python 包,只需运行
$ pip install gradio
你可以在任何地方运行 Gradio,无论是你最喜欢的 Python IDE,还是 Jupyter 笔记本,甚至是 Google Colab 🤯!所以,在任何你运行 Python 的地方安装 Gradio!
让我们从一个简单的“Hello World”示例开始,熟悉 Gradio 的语法
import gradio as gr
def greet(name):
return "Hello " + name
demo = gr.Interface(fn=greet, inputs="text", outputs="text")
demo.launch()
让我们逐步了解上面的代码
- 首先,我们定义一个名为
greet()
的函数。在本例中,它是一个简单的函数,在你的名字前添加“Hello”,但它可以是任何通用的 Python 函数。例如,在机器学习应用中,这个函数会调用模型对输入进行预测并返回输出。 - 然后,我们创建一个带有三个参数的 Gradio
Interface
,即fn
、inputs
和outputs
。这些参数定义了预测函数,以及我们想要的输入和输出组件的类型。在我们的例子中,这两个组件都是简单的文本框。 - 然后,我们调用我们创建的
Interface
上的launch()
方法。
如果你运行这段代码,下面的界面将自动出现在 Jupyter/Colab 笔记本中,或者在 http://localhost:7860 的浏览器中弹出(如果从脚本运行)。
现在就用你自己的名字或其他输入试用这个 GUI!
你会注意到,在这个 GUI 中,Gradio 自动推断了输入参数的名称 (name
),并将其作为标签应用于文本框的顶部。如果你想更改它怎么办?或者如果你想以其他方式自定义文本框怎么办?在这种情况下,你可以实例化一个表示输入组件的类对象。
看看下面的例子
import gradio as gr
def greet(name):
return "Hello " + name
# We instantiate the Textbox class
textbox = gr.Textbox(label="Type your name here:", placeholder="John Doe", lines=2)
gr.Interface(fn=greet, inputs=textbox, outputs="text").launch()
在这里,我们创建了一个带有标签、占位符和设定行数的输入文本框。你也可以对输出文本框做同样的事情,但我们现在先不考虑。
我们已经看到,只需几行代码,Gradio 就可以让你围绕任何函数创建简单的界面,这些函数可以接受任何类型的输入或输出。在本节中,我们从一个简单的文本框开始,但在接下来的章节中,我们将介绍其他类型的输入和输出。现在让我们来看看如何在 Gradio 应用程序中包含一些 NLP。
🤖 包含模型预测
现在让我们构建一个简单的界面,让你演示像 GPT-2 这样的文本生成模型。
我们将使用 🤗 Transformers 中的 pipeline()
函数加载我们的模型。如果你需要快速回顾,可以回到第一章的那部分。
首先,我们定义一个预测函数,该函数接受文本提示并返回文本补全
from transformers import pipeline
model = pipeline("text-generation")
def predict(prompt):
completion = model(prompt)[0]["generated_text"]
return completion
此函数完成你提供的提示,你可以使用自己的输入提示运行它,看看它是如何工作的。这是一个例子(你可能会得到不同的补全)
predict("My favorite programming language is")
>> My favorite programming language is Haskell. I really enjoyed the Haskell language, but it doesn't have all the features that can be applied to any other language. For example, all it does is compile to a byte array.
现在我们有了一个生成预测的函数,我们可以像之前一样创建和启动一个 Interface
import gradio as gr
gr.Interface(fn=predict, inputs="text", outputs="text").launch()
就是这样!你现在可以使用这个界面来使用 GPT-2 模型生成文本,如下所示 🤯。
继续阅读,了解如何使用 Gradio 构建其他类型的演示!
< > 在 GitHub 上更新