skypilot-gradio / app.py
ZackBradshaw's picture
Upload folder using huggingface_hub
e91b0da verified
import gradio as gr
import sky
def deploy_vllm_on_sky(model_path, gpu_type, cpus, memory, cloud_provider, region, disk_size, disk_type):
task = sky.Task(
name="vllm_serving",
setup="pip install vllm",
run=f"vllm serve --model_name_or_path {model_path} --port 8080",
envs={"MODEL_PATH": model_path},
workdir=".",
ports=8080
)
task.set_resources(
sky.Resources(
cloud=sky.Cloud(provider=cloud_provider, region=region),
accelerators=f"{gpu_type}:1",
cpus=cpus,
memory=memory,
disk=sky.Disk(size=disk_size, type=disk_type)
)
)
cluster = sky.Cluster(
name="vllm-cluster",
cloud=sky.Cloud(provider=cloud_provider, region=region)
)
sky.launch(task, cluster=cluster)
return f"VLLM model deployed on SkyPilot with cluster name: {cluster.name}"
sky_pilot_interface = gr.Interface(
fn=deploy_vllm_on_sky,
inputs=[
gr.Textbox(label="Model Path", placeholder="EleutherAI/gpt-neo-2.7B"),
gr.Dropdown(label="GPU Type", choices=["V100", "P100", "T4"], value="V100"),
gr.Slider(label="CPUs", minimum=1, maximum=16, value=4),
gr.Slider(label="Memory (GB)", minimum=4, maximum=64, value=16),
gr.Dropdown(label="Cloud Provider", choices=["AWS", "GCP", "Azure"], value="AWS"),
gr.Textbox(label="Region", placeholder="us-west-2"),
gr.Slider(label="Disk Size (GB)", minimum=20, maximum=1000, value=100),
gr.Dropdown(label="Disk Type", choices=["standard", "ssd"], value="ssd")
],
outputs="text",
title="Deploy VLLM on SkyPilot",
description="Configure and deploy a VLLM model on a SkyPilot-managed cloud instance with full parameter customization."
)
if __name__ == "__main__":
sky_pilot_interface.launch()