File size: 1,638 Bytes
068ec50
f898d1e
d7a9664
 
 
 
068ec50
f898d1e
068ec50
d7a9664
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3cff5a5
 
068ec50
d7a9664
068ec50
d7a9664
 
 
068ec50
d7a9664
 
 
 
 
 
 
 
 
 
1293585
068ec50
 
d7a9664
 
 
 
068ec50
 
 
 
 
 
d7a9664
 
 
068ec50
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
import gradio as gr
import spaces
from openmodellab.genome.model_loader import load_model
from openmodellab.genome.analyzer import analyze_model
from openmodellab.benchmark import analyze_benchmark


@spaces.GPU
def analyze(model_name):
    try:
        model, tokenizer = load_model(model_name)

        genome = analyze_model(
            model_name,
            model,
            tokenizer
        )

        benchmark = analyze_benchmark(
            model,
            tokenizer
        )

        return f"""
## OpenModelLab Results

**Model:** `{model_name}`

### Architecture

- Parameters: {genome["model"].get("parameter_count", "N/A") / 1_000_000:.2f}M
- Architecture: {genome["model"].get("architecture", "N/A")}

### Hardware

- Device: {benchmark["hardware"].get("device")}
- GPU: {benchmark["hardware"].get("gpu_name", "N/A")}
- CUDA: {benchmark["hardware"].get("cuda_version", "N/A")}

### Benchmark

- Latency: **{benchmark["latency"]["average_ms"]} ms**
- Throughput: **{benchmark["throughput"]["samples_per_second"]} samples/sec**
- Peak GPU memory: **{benchmark["memory"].get("gpu_peak_allocated_mb", "N/A")} MB**

### Batch Scaling

{benchmark["batch_scaling"]["results"]}

[Whitepaper / DOI](https://doi.org/10.5281/zenodo.21861654)
"""

    except Exception as e:
        return f"Error: {type(e).__name__}: {e}"


demo = gr.Interface(
    fn=analyze,
    inputs=gr.Textbox(
        label="Hugging Face Model",
        value="sentence-transformers/all-MiniLM-L6-v2"
    ),
    outputs=gr.Markdown(),
    title="OpenModelLab",
    description="AI model genome extraction and runtime benchmarking."
)

demo.launch()