与Hugging Face Hub集成
为了让你的生活更轻松,Gradio 直接与Hugging Face Hub和Hugging Face Spaces集成。你只需一行代码即可从Hub和Spaces加载演示。
从Hugging Face Hub加载模型
首先,从Hub中选择Hugging Face提供的数千个模型之一,如第4章所述。
使用特殊的Interface.load()
方法,传递"model/"
(或等效地,"huggingface/"
),后跟模型名称。例如,以下代码构建了一个用于GPT-J(一个大型语言模型)的演示,并添加了一些示例输入
import gradio as gr
title = "GPT-J-6B"
description = "Gradio Demo for GPT-J 6B, a transformer model trained using Ben Wang's Mesh Transformer JAX. 'GPT-J' refers to the class of model, while '6B' represents the number of trainable parameters. To use it, simply add your text, or click one of the examples to load them. Read more at the links below."
article = "<p style='text-align: center'><a href='https://github.com/kingoflolz/mesh-transformer-jax' target='_blank'>GPT-J-6B: A 6 Billion Parameter Autoregressive Language Model</a></p>"
gr.Interface.load(
"huggingface/EleutherAI/gpt-j-6B",
inputs=gr.Textbox(lines=5, label="Input Text"),
title=title,
description=description,
article=article,
).launch()
以上代码将生成以下界面
以这种方式加载模型使用的是Hugging Face的推理API,而不是将模型加载到内存中。这对于像GPT-J或T0pp这样需要大量RAM的大型模型来说非常理想。
从Hugging Face Spaces加载
要加载Hugging Face Hub中的任何Space并在本地重新创建它,你可以将spaces/
传递给Interface
,后跟Space的名称。
还记得第1节中删除图像背景的演示吗?让我们从Hugging Face Spaces加载它。
gr.Interface.load("spaces/abidlabs/remove-bg").launch()
从Hub或Spaces加载演示的一个很酷的功能是,你可以通过覆盖任何参数来自定义它们。在这里,我们添加了一个标题,并使其能够使用网络摄像头。
gr.Interface.load(
"spaces/abidlabs/remove-bg", inputs="webcam", title="Remove your webcam background!"
).launch()
现在我们已经探索了将Gradio与Hugging Face Hub集成的几种方法,让我们来看看Interface
类的一些高级功能。这是下一节的主题!