
譯者 | 劉濤
審校 | 重樓
人工智能領(lǐng)域呈現(xiàn)出高速發(fā)展的態(tài)勢。每周均有新的模型誕生,舊有模型也在持續(xù)優(yōu)化,基于這些模型開發(fā)的應(yīng)用工具愈發(fā)便捷易用。
然而,在構(gòu)建機器學習項目的過程中,開發(fā)者可能會遭遇一個關(guān)鍵挑戰(zhàn):如何高效地分享項目成果,以供他人進行試用。
單純提供一本滿是代碼的筆記本顯然是不夠的。用戶期望能夠與模型進行交互,通過輸入特定內(nèi)容、點擊操作按鈕,進而即時獲取處理結(jié)果。
在此情況下,Gradio這款工具發(fā)揮了重要作用。借助幾行Python代碼,開發(fā)者即可將自身的AI模型轉(zhuǎn)化為一個簡易的網(wǎng)頁應(yīng)用程序。開發(fā)者無需掌握HTML、CSS或JavaScript等前端技術(shù)知識,Gradio會自動處理界面設(shè)計與實現(xiàn),使開發(fā)者能夠?qū)⒕杏谀P偷难邪l(fā)與優(yōu)化。
在本教程中,將詳細介紹如何在短時間內(nèi)運用Gradio構(gòu)建AI演示。完成本教程的學習后,開發(fā)者將能夠搭建一個可供任意用戶進行測試的實時演示系統(tǒng)。
目錄
- Gradio的概念
- Gradio的應(yīng)用價值
- 搭建首個Gradio
- 將機器學習模型集成至Gradio
- Gradio界面的自定義策略
- Gradio應(yīng)用程序的分享途徑
- 總結(jié)
Gradio的概念
Gradio是一個開源的Python庫,可用于便捷地為機器學習模型創(chuàng)建交互式網(wǎng)絡(luò)界面。
假設(shè)要訓練一個文本摘要生成器或圖像分類器,若不使用Gradio,就需要構(gòu)建前端、編寫后端代碼、尋找托管平臺,并將各部分進行連接,這一過程既耗費時間又消耗精力。
而使用了Gradio后,僅需編寫幾行Python代碼,它便能生成一個附帶完整用戶界面(UI)的可分享鏈接。該界面可在任何具備瀏覽器的設(shè)備上使用,還能嵌入網(wǎng)站,也可分享給團隊成員以收集反饋。
Gradio支持文本、圖像、音頻、視頻及多種其他數(shù)據(jù)類型,適用于計算機視覺、自然語言處理、語音識別等各類人工智能應(yīng)用。
Gradio的應(yīng)用價值
速度是選用Gradio的關(guān)鍵因素之一。若從零開始為模型構(gòu)建網(wǎng)絡(luò)應(yīng)用程序,可能需耗費數(shù)小時甚至數(shù)天時間。而Gradio可將此過程縮短至幾分鐘,讓開發(fā)者能夠?qū)W⒂谌斯ぶ悄苣P偷膬?yōu)化,由Gradio負責處理用戶界面的搭建。
Gradio具有較低的學習門檻。即便僅具備基礎(chǔ)Python知識的初學者,也能夠利用其創(chuàng)建出可運行的演示程序。它與TensorFlow、PyTorch以及Hugging Face Transformers等主流庫具有良好的兼容性。
分享便捷是Gradio的另一顯著優(yōu)勢。啟動Gradio應(yīng)用程序時,系統(tǒng)會生成一個公共鏈接,任何用戶均可通過該鏈接訪問應(yīng)用程序,無需手動部署或搭建服務(wù)器。這一特性使Gradio在黑客馬拉松活動、快速原型制作,以及向客戶和朋友展示演示程序等場景中具有較高的適用性。
如何安裝Gradio
在搭建首個應(yīng)用程序前,需完成 Gradio 的安裝。具體操作是,打開終端或命令提示符,輸入如下指令:
pip install gradio安裝便捷簡單,通常在一分鐘內(nèi)即可完成。安裝完成后,便可以著手搭建首個演示程序。
搭建首個Gradio
下面從一個簡單示例開始。假定要搭建一個文本反轉(zhuǎn)應(yīng)用程序,該程序可接收用戶輸入的句子,并展示其反轉(zhuǎn)后的內(nèi)容。盡管這并非嚴格意義上的人工智能模型,但有助于掌握相關(guān)基礎(chǔ)知識。
具體代碼如下:
# Import the Gradio library
import gradio as gr
# Define a function that reverses any input text
def reverse_text(text):
# The [::-1] slice notation reverses the string
return text[::-1]
# Create a Gradio interface to connect the function with a simple web UI
demo = gr.Interface(
fn=reverse_text, # Function to call when the user submits input
inputs="text", # Type of input (a text box for user input)
outputs="text", # Type of output (a text box to display reversed text)
title="Text Reversal App", # Title displayed on the app
description="Type any text and see it reversed instantly." # Short description for users
)
# Launch the web app in the browser
demo.launch()gr.Interface()用于將Python函數(shù)與基于網(wǎng)頁的用戶界面進行連接。其中,fn=reverse_text指示 Gradio,在用戶輸入內(nèi)容時調(diào)用該函數(shù)進行處理。
inputs="text" 明確輸入框的類型為文本框,outputs="text"則規(guī)定輸出以文本形式呈現(xiàn)。
title和 description可通過添加標題和說明,優(yōu)化應(yīng)用程序的展示效果。
將上述代碼保存為Python文件并運行,系統(tǒng)會自動彈出一個瀏覽器窗口,窗口中包含一個文本框。在文本框中輸入內(nèi)容并點擊提交后,即可看到反轉(zhuǎn)后的文本顯示出來。

將機器學習模型集成至Gradio
接下來,構(gòu)建一個更具實際意義的應(yīng)用程序。假設(shè)擁有一個情感分析模型,該模型能夠接收文本輸入,并對文本情感進行預測,判斷其為積極、消極或中性。你可以便捷地將此模型與Gradio進行集成。
以下是一個運用Hugging Face Transformers的示例:
# Import the Gradio library
import gradio as gr
# Import the 'pipeline' function from Hugging Face's Transformers library
# 'pipeline' lets you load pre-trained AI models with a single line of code
from transformers import pipeline
# Load a pre-trained sentiment analysis model from Hugging Face
# This model can classify text as POSITIVE, NEGATIVE, or NEUTRAL along with a confidence score
sentiment_model = pipeline("sentiment-analysis")
# Define a function that uses the model to analyze text sentiment
def analyze_sentiment(text):
# Pass the user-provided text to the model
# The model returns a list of predictions; we take the first one using [0]
result = sentiment_model(text)[0]
# Return the label (e.g., POSITIVE) and the confidence score formatted to 2 decimal places
return f"Label: {result['label']}, Score: {result['score']:.2f}"
# Create a Gradio interface to turn the function into a web app
demo = gr.Interface(
fn=analyze_sentiment, # The function to call when user inputs text
inputs="text", # The input type (a single-line text box)
outputs="text", # The output type (display as text)
title="Sentiment Analysis App", # Title shown at the top of the web app
descriptinotallow="Type a sentence to check its sentiment." # Short explanation for the app
)
# Launch the web app so users can interact with it in a browser
demo.launch()運行此代碼,在輸入框中輸入 “我喜歡這個產(chǎn)品!”,模型將輸出“Label:POSITIVE”以及相應(yīng)的置信度得分。

Gradio界面的自定義策略
Gradio支持對標題、描述、主題,甚至示例進行自定義設(shè)置。例如,可以按照如下方式添加示例輸入:
demo = gr.Interface(fn=analyze_sentiment,
inputs="text",
outputs="text",
title="Sentiment Analysis App",
descriptinotallow="Type a sentence to check its sentiment.",
examples=[["I love AI"], ["I hate waiting"]])目前,應(yīng)用程序會展示例句,用戶點擊這些例句即可立即開展測試。

Gradio 應(yīng)用程序的分享途徑
運行demo.launch()時,Gradio會啟動本地服務(wù)器并生成一個本地鏈接。若需獲取可分享鏈接,可使用demo.launch(share = True),執(zhí)行該操作后,系統(tǒng)將生成一個公共鏈接,可用于與他人分享應(yīng)用程序。

默認情況下,公共鏈接的有效期為72小時。若需要永久鏈接,可選擇免費部署至 Hugging Face Spaces,也可使用AWS等平臺完成部署。
總結(jié)
Gradio革新了開發(fā)者分享機器學習模型的方式。以往需耗時數(shù)小時編碼才能達成的任務(wù),如今借助Gradio僅需幾分鐘便可完成。開發(fā)者只需編寫模型代碼,并將其與Gradio進行連接,即可迅速獲得一個可運行的演示程序以及與之對應(yīng)的可分享鏈接。
對于學習人工智能的學生、分享研究成果的科研人員,或是進行原型構(gòu)建的開發(fā)者而言,Gradio均能有效節(jié)省時間與精力。它簡化了網(wǎng)頁開發(fā)流程,使開發(fā)者能夠?qū)⒕杏诤诵墓ぷ鳌獦?gòu)建人工智能模型。


























