from pathlib import Path | |
import json | |
from pprint import pprint | |
def main(): | |
results = {} | |
for pfin in Path(__file__).parent.joinpath("evals").rglob("*.json"): | |
if pfin.stem == "models": | |
continue | |
short_name = pfin.stem.split("_")[2] | |
if short_name not in results: | |
results[short_name] = {} | |
data = json.loads(pfin.read_text(encoding="utf-8")) | |
if "config" not in data: | |
continue | |
config = data["config"] | |
if "model_args" not in config: | |
continue | |
model_args = dict(params.split("=") for params in config["model_args"].split(",")) | |
if "pretrained" not in model_args: | |
continue | |
results[short_name]["model_name"] = model_args["pretrained"] | |
results[short_name]["compute_dtype"] = model_args.get("dtype", None) | |
results[short_name]["quantization"] = None | |
if "load_in_8bit" in model_args: | |
results[short_name]["quantization"] = "8-bit" | |
elif "load_in_4bit" in model_args: | |
results[short_name]["quantization"] = "4-bit" | |
pprint(results) | |
if __name__ == '__main__': | |
main() |