Spaces:
Paused
Paused
import os | |
import gradio as gr | |
from utils import get_model_summary, install_flash_attn, authenticate_hf | |
# Install required package | |
install_flash_attn() | |
# Authenticate with Hugging Face | |
HF_TOKEN = os.getenv("HF_TOKEN") | |
authenticate_hf(HF_TOKEN) | |
# Create the Gradio Blocks interface | |
with gr.Blocks(theme="sudeepshouche/minimalist") as demo: | |
with gr.Row(): | |
with gr.Column(): | |
textbox = gr.Textbox(label="Model Name", placeholder="Enter the model name here OR select an example below...", lines=1) | |
gr.Markdown("### Vision Models") | |
vision_examples = gr.Examples( | |
examples=[ | |
["google/paligemma-3b-mix-224"], | |
["google/paligemma-3b-ft-refcoco-seg-224"], | |
["llava-hf/llava-v1.6-mistral-7b-hf"], | |
["xtuner/llava-phi-3-mini-hf"], | |
["xtuner/llava-llama-3-8b-v1_1-transformers"], | |
["vikhyatk/moondream2"], | |
["openbmb/MiniCPM-Llama3-V-2_5"], | |
["microsoft/Phi-3-vision-128k-instruct"], | |
["HuggingFaceM4/idefics2-8b-chatty"], | |
["microsoft/llava-med-v1.5-mistral-7b"] | |
], | |
inputs=textbox | |
) | |
gr.Markdown("### Other Models") | |
other_examples = gr.Examples( | |
examples=[ | |
["dwb2023/mistral-7b-instruct-quantized"], | |
["mistralai/Mistral-7B-Instruct-v0.2"], | |
["mistralai/Mistral-7B-Instruct-v0.3"], | |
["google/gemma-7b"], | |
["microsoft/Phi-3-mini-4k-instruct"], | |
["meta-llama/Meta-Llama-3-8B"] | |
], | |
inputs=textbox | |
) | |
submit_button = gr.Button("Submit") | |
gr.Markdown(""" | |
Where to get started with Vision Language Models: | |
- [Hugging Face overview of VLMs](https://huggingface.co/blog/vlms#overview-of-open-source-vision-language-models) | |
- [Blog Post on PaliGemma Model Capabilities and Use Cases](https://huggingface.co/blog/paligemma#model-capabilities) | |
Keep an eye on the evolution of the [Model Explorer from Google](https://ai.google.dev/edge/model-explorer#two_ways_to_use_model_explorer). It didn't work initially for some of the VLM "fusion" model types I was initially looking at, but certainly a great tool for the right model. | |
""") | |
with gr.Column(): | |
output = gr.Textbox(label="Model Architecture", lines=20, placeholder="Model architecture will appear here...", show_copy_button=True) | |
error_output = gr.Textbox(label="Error", lines=10, placeholder="Exceptions will appear here...", show_copy_button=True) | |
def handle_click(model_name): | |
model_summary, error_message = get_model_summary(model_name) | |
return model_summary, error_message | |
submit_button.click(fn=handle_click, inputs=textbox, outputs=[output, error_output]) | |
# Launch the interface | |
demo.launch() | |