LLM 課程文件
構建你的第一個演示
並獲得增強的文件體驗
開始使用
構建你的第一個演示
讓我們從安裝 Gradio 開始!由於它是一個 Python 包,只需執行
$ pip install gradio
你可以在任何地方執行 Gradio,無論是你最喜歡的 Python IDE,還是 Jupyter notebooks,甚至是 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 函式。例如,在機器學習應用中,這個函式會*呼叫模型對輸入進行預測*並返回輸出。 - 然後,我們使用三個引數
fn
、inputs
和outputs
建立一個 GradioInterface
。這些引數定義了預測函式,以及我們想要的輸入和輸出元件的*型別*。在我們的例子中,這兩個元件都是簡單的文字框。 - 然後,我們在建立的
Interface
上呼叫launch()
方法。
如果你執行此程式碼,介面將自動顯示在 Jupyter/Colab notebook 中,或者如果從指令碼執行,則會在瀏覽器中彈出 https://: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 上更新