Spaces:
Running
Running
import json | |
from glob import glob | |
from pathlib import Path | |
import tyro | |
def infer_params_from_name(model_name: str) -> str: | |
"""Try to guess the model parameters from the model name. | |
It basically parses the model name to look for a string that looks like "%d[bB]". | |
Examples: | |
- "meta-llama/Meta-Llama-3.1-8B-Instruct" -> 8B | |
- "facebook/chameleon-30b" -> 30B | |
""" | |
for token in model_name.lower().split("-"): | |
if token.endswith("b") and token[:-1].isdigit(): | |
return token.upper() | |
return "NA" | |
def main(results_dir: Path, output_file: Path) -> None: | |
output_file.parent.mkdir(parents=True, exist_ok=True) | |
print(f"{results_dir} -> {output_file}") | |
models = {} | |
for model_dir in sorted(glob(f"{results_dir}/*/*")): | |
model_name = "/".join(model_dir.split("/")[-2:]) | |
print(f" {model_name}") | |
model_info = dict( | |
url=f"https://huggingface.co/{model_name}", | |
nickname=model_name.split("/")[-1].replace("-", " ").title(), | |
params=infer_params_from_name(model_name), | |
) | |
assert model_name not in models | |
models[model_name] = model_info | |
json.dump(models, open(output_file, "w"), indent=2) | |
if __name__ == "__main__": | |
tyro.cli(main) | |