llm_perf/common/utils.py (34 lines of code) (raw):
import pandas as pd
from llm_perf.common.dependency import get_benchmark_top_n, is_debug_mode
INPUT_SHAPES = {"batch_size": 1, "sequence_length": 256}
GENERATE_KWARGS = {"max_new_tokens": 64, "min_new_tokens": 64}
OPEN_LLM_LEADERBOARD = pd.read_csv(
"hf://datasets/optimum-benchmark/llm-perf-leaderboard/llm-df.csv"
)
OPEN_LLM_LIST = OPEN_LLM_LEADERBOARD.drop_duplicates(subset=["Model"])["Model"].tolist()
PRETRAINED_OPEN_LLM_LIST = (
OPEN_LLM_LEADERBOARD[OPEN_LLM_LEADERBOARD["Type"] == "pretrained"]
.drop_duplicates(subset=["Model"])["Model"]
.tolist()
)
def get_top_llm_list(n: int = 10) -> list[str]:
"""
Fetches the top n text generation models from the Hugging Face dataset.
Args:
n (int): Number of top models to retrieve. Defaults to 10.
Returns:
list: A list of strings representing the top n models in the format "organization/model_name".
"""
try:
# Download the dataset from the Hugging Face Hub
from datasets import load_dataset
ds = load_dataset("optimum-benchmark/top-text-generation-models")
# Get the data from the dataset
models_data = ds["train"].to_pandas().to_dict("records")
# sort by downloads
models_data = sorted(models_data, key=lambda x: x["downloads"], reverse=True)
# Create the list of top models
top_models = [
f"{model['organization']}/{model['model_name']}"
for model in models_data[:n]
]
return top_models
except Exception as e:
print(f"Error fetching top LLM list: {e}")
return []
if is_debug_mode():
CANONICAL_PRETRAINED_OPEN_LLM_LIST = ["bigscience/bloomz-560m"]
else:
CANONICAL_PRETRAINED_OPEN_LLM_LIST = get_top_llm_list(n=get_benchmark_top_n())
print(
f"Benchamrking the following {len(CANONICAL_PRETRAINED_OPEN_LLM_LIST)} models: {CANONICAL_PRETRAINED_OPEN_LLM_LIST}"
)