Skip to content

Commit 4a2d497

Browse files
authored
Merge 73aa52a into 1261fe8
2 parents 1261fe8 + 73aa52a commit 4a2d497

File tree

2 files changed

+63
-6
lines changed

2 files changed

+63
-6
lines changed

src/guidellm/presentation/data_models.py

Lines changed: 46 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,21 @@
1+
import httpx
12
import random
23
from collections import defaultdict
34
from math import ceil
4-
from typing import TYPE_CHECKING, Optional, Union
5+
from typing import TYPE_CHECKING, Any, Optional, Union
56

67
from pydantic import BaseModel, computed_field
78

89
if TYPE_CHECKING:
910
from guidellm.benchmark.benchmark import GenerativeBenchmark
1011

12+
from guidellm.dataset.file import FileDatasetCreator
13+
from guidellm.dataset.hf_datasets import HFDatasetsCreator
14+
from guidellm.dataset.in_memory import InMemoryDatasetCreator
15+
from guidellm.dataset.synthetic import SyntheticDatasetConfig, SyntheticDatasetCreator
1116
from guidellm.objects.statistics import DistributionSummary
17+
from guidellm.preprocess.dataset import TokensConfig
18+
1219

1320

1421
class Bucket(BaseModel):
@@ -58,6 +65,38 @@ class Model(BaseModel):
5865
class Dataset(BaseModel):
5966
name: str
6067

68+
@classmethod
69+
def from_data(cls, request_loader: Any):
70+
creators = [
71+
InMemoryDatasetCreator,
72+
SyntheticDatasetCreator,
73+
FileDatasetCreator,
74+
HFDatasetsCreator,
75+
]
76+
dataset_name = ""
77+
data = request_loader.data
78+
data_args = request_loader.data_args
79+
processor = request_loader.processor
80+
processor_args = request_loader.processor_args
81+
82+
for creator in creators:
83+
if creator.is_supported(data, None):
84+
random_seed = 42
85+
dataset = creator.handle_create(data, data_args, processor, processor_args, random_seed)
86+
dataset_name = creator.extract_dataset_name(dataset)
87+
if dataset_name is None or dataset_name == "":
88+
if creator == SyntheticDatasetCreator:
89+
data_dict = SyntheticDatasetConfig.parse_str(data)
90+
dataset_name = data_dict.source
91+
if creator == FileDatasetCreator or isinstance(creator, HFDatasetsCreator):
92+
dataset_name = data
93+
if creator == InMemoryDatasetCreator:
94+
dataset_name = "In-memory"
95+
break
96+
return cls(
97+
name=dataset_name or ""
98+
)
99+
61100

62101
class RunInfo(BaseModel):
63102
model: Model
@@ -71,13 +110,16 @@ def from_benchmarks(cls, benchmarks: list["GenerativeBenchmark"]):
71110
timestamp = max(
72111
bm.run_stats.start_time for bm in benchmarks if bm.start_time is not None
73112
)
113+
response = httpx.get(f"https://huggingface.co/api/models/{model}")
114+
modelJson = response.json()
115+
74116
return cls(
75-
model=Model(name=model, size=0),
117+
model=Model(name=model, size=modelJson.get("usedStorage", 0)),
76118
task="N/A",
77119
timestamp=timestamp,
78-
dataset=Dataset(name="N/A"),
120+
dataset=Dataset.from_data(benchmarks[0].request_loader),
79121
)
80-
122+
81123

82124
class Distribution(BaseModel):
83125
statistics: Optional[DistributionSummary] = None

src/ui/lib/components/PageHeader/PageHeader.component.tsx

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,14 @@
22
import { Box, Typography } from '@mui/material';
33

44
import { useGetRunInfoQuery } from '../../store/slices/runInfo';
5-
import { formateDate } from '../../utils/helpers';
5+
import { formateDate, getFileSize } from '../../utils/helpers';
66
import { SpecBadge } from '../SpecBadge';
77
import { HeaderCell, HeaderWrapper } from './PageHeader.styles';
88

99
export const Component = () => {
1010
const { data } = useGetRunInfoQuery();
11+
const modelSize = getFileSize(data?.model?.size || 0);
12+
1113
return (
1214
<Box py={2}>
1315
<Typography variant="subtitle2" color="surface.onSurfaceAccent">
@@ -24,11 +26,24 @@ export const Component = () => {
2426
variant="metric2"
2527
withTooltip
2628
/>
29+
<SpecBadge
30+
label="Model size"
31+
value={data?.model?.size ? `${modelSize?.size} ${modelSize?.units}` : '0B'}
32+
variant="body1"
33+
/>
34+
</HeaderCell>
35+
<HeaderCell item xs={5} withDivider>
36+
<SpecBadge
37+
label="Dataset"
38+
value={data?.dataset?.name || 'N/A'}
39+
variant="caption"
40+
withTooltip
41+
/>
2742
</HeaderCell>
2843
<HeaderCell item xs={2} sx={{ paddingRight: 0 }}>
2944
<SpecBadge
3045
label="Time Stamp"
31-
value={data?.timestamp ? formateDate(data?.timestamp) : 'n/a'}
46+
value={data?.timestamp ? formateDate(data?.timestamp) : 'N/A'}
3247
variant="caption"
3348
/>
3449
</HeaderCell>

0 commit comments

Comments
 (0)