Spaces:
Runtime error
Runtime error
import gradio as gr | |
from backend import get_message_single, get_message_spam, send_single, send_spam | |
from defaults import ( | |
ADDRESS_BETTERTRANSFORMER, | |
ADDRESS_VANILLA, | |
defaults_bt_single, | |
defaults_bt_spam, | |
defaults_vanilla_single, | |
defaults_vanilla_spam, | |
) | |
with gr.Blocks() as demo: | |
gr.Markdown( | |
""" | |
Let's try out TorchServe + BetterTransformer! | |
BetterTransformer is a feature made available with PyTorch 1.13. allowing to use a fastpath execution for encoder attention blocks. | |
As a one-liner, you can use BetterTransformer with compatible Transformers models: | |
``` | |
better_model = BetterTransformer.transform(model) | |
``` | |
This Space is a demo of an **end-to-end** deployement of PyTorch eager-mode models, both with and without BetterTransformer. The goal is to see what are the benefits server-side and client-side of using BetterTransformer. | |
## Inference using... | |
""" | |
) | |
with gr.Row(): | |
with gr.Column(scale=50): | |
gr.Markdown("### Vanilla Transformers + TorchServe") | |
address_input_vanilla = gr.Textbox( | |
max_lines=1, label="ip vanilla", value=ADDRESS_VANILLA, visible=False | |
) | |
input_model_vanilla = gr.Textbox( | |
max_lines=1, | |
label="Text", | |
value="Expectations were low, enjoyment was high", | |
) | |
btn_single_vanilla = gr.Button("Send single text request") | |
output_single_vanilla = gr.Markdown( | |
label="Output single vanilla", | |
value=get_message_single(**defaults_vanilla_single), | |
) | |
btn_spam_vanilla = gr.Button( | |
"Spam text requests (from sst2 validation set)" | |
) | |
output_spam_vanilla = gr.Markdown( | |
label="Output spam vanilla", | |
value=get_message_spam(**defaults_vanilla_spam), | |
) | |
btn_single_vanilla.click( | |
fn=send_single, | |
inputs=[input_model_vanilla, address_input_vanilla], | |
outputs=output_single_vanilla, | |
) | |
btn_spam_vanilla.click( | |
fn=send_spam, | |
inputs=[address_input_vanilla], | |
outputs=output_spam_vanilla, | |
) | |
with gr.Column(scale=50): | |
gr.Markdown("### BetterTransformer + TorchServe") | |
address_input_bettertransformer = gr.Textbox( | |
max_lines=1, | |
label="ip bettertransformer", | |
value=ADDRESS_BETTERTRANSFORMER, | |
visible=False, | |
) | |
input_model_bettertransformer = gr.Textbox( | |
max_lines=1, | |
label="Text", | |
value="Expectations were low, enjoyment was high", | |
) | |
btn_single_bt = gr.Button("Send single text request") | |
output_single_bt = gr.Markdown( | |
label="Output single bt", value=get_message_single(**defaults_bt_single) | |
) | |
btn_spam_bt = gr.Button("Spam text requests (from sst2 validation set)") | |
output_spam_bt = gr.Markdown( | |
label="Output spam bt", value=get_message_spam(**defaults_bt_spam) | |
) | |
btn_single_bt.click( | |
fn=send_single, | |
inputs=[input_model_bettertransformer, address_input_bettertransformer], | |
outputs=output_single_bt, | |
) | |
btn_spam_bt.click( | |
fn=send_spam, | |
inputs=[address_input_bettertransformer], | |
outputs=output_spam_bt, | |
) | |
demo.queue(concurrency_count=1) | |
demo.launch() | |