Spaces:
Running
Running
| import gradio as gr | |
| import plotly.express as px | |
| SCORE_MEMORY_LATENCY_DATA = [ | |
| "Model π€", | |
| "DType π₯", | |
| "Backend π", | |
| "Params (B)", | |
| "Architecture ποΈ", | |
| "Optimization π οΈ", | |
| "Quantization ποΈ", | |
| "Open LLM Score (%)", | |
| "Prefill (s)", | |
| "Decode (tokens/s)", | |
| "Memory (MB)", | |
| "End-to-End (s)", | |
| # "End-to-End (tokens/s)", | |
| ] | |
| def get_lat_score_mem_fig(llm_perf_df): | |
| copy_df = llm_perf_df.copy() | |
| # plot | |
| fig = px.scatter( | |
| copy_df, | |
| x="End-to-End (s)", | |
| y="Open LLM Score (%)", | |
| size="Memory (MB)", | |
| color="Architecture ποΈ", | |
| custom_data=SCORE_MEMORY_LATENCY_DATA, | |
| color_discrete_sequence=px.colors.qualitative.Light24, | |
| ) | |
| fig.update_traces( | |
| hovertemplate="<br>".join( | |
| [f"<b>{column}:</b> %{{customdata[{i}]}}" for i, column in enumerate(SCORE_MEMORY_LATENCY_DATA)] | |
| ) | |
| ) | |
| fig.update_layout( | |
| title={ | |
| "text": "vs. Score vs. Memory", | |
| "y": 0.95, | |
| "x": 0.5, | |
| "xanchor": "center", | |
| "yanchor": "top", | |
| }, | |
| xaxis_title="Time To Generate 256 Tokens (s)", | |
| yaxis_title="Open LLM Score (%)", | |
| legend_title="LLM Architecture", | |
| width=1200, | |
| height=600, | |
| ) | |
| return fig | |
| def create_lat_score_mem_plot(llm_perf_df): | |
| # descriptive text | |
| gr.HTML("π Hover over the points π for additional information. ", elem_id="text") | |
| # get figure | |
| fig = get_lat_score_mem_fig(llm_perf_df) | |
| # create plot | |
| plot = gr.components.Plot( | |
| value=fig, | |
| elem_id="plot", | |
| show_label=False, | |
| ) | |
| return plot | |