|
import pandas as pd |
|
import requests |
|
from tqdm.auto import tqdm |
|
from huggingface_hub import HfApi, hf_hub_download |
|
from huggingface_hub.repocard import metadata_load |
|
|
|
|
|
|
|
|
|
def make_clickable_model(model_name): |
|
|
|
model_name_show = ' '.join(model_name.split('/')[1:]) |
|
|
|
link = "https://huggingface.co/" + model_name |
|
return f'<a target="_blank" href="{link}">{model_name_show}</a>' |
|
|
|
|
|
def make_clickable_user(user_id): |
|
link = "https://huggingface.co/" + user_id |
|
return f'<a target="_blank" href="{link}">{user_id}</a>' |
|
|
|
|
|
|
|
def get_model_ids(rl_env): |
|
api = HfApi() |
|
models = api.list_models(filter=rl_env) |
|
model_ids = [x.modelId for x in models] |
|
return model_ids |
|
|
|
def get_metadata(model_id): |
|
try: |
|
readme_path = hf_hub_download(model_id, filename="README.md") |
|
return metadata_load(readme_path) |
|
except requests.exceptions.HTTPError: |
|
|
|
return None |
|
|
|
def parse_metrics_accuracy(meta): |
|
if "model-index" not in meta: |
|
return None |
|
result = meta["model-index"][0]["results"] |
|
metrics = result[0]["metrics"] |
|
accuracy = metrics[0]["value"] |
|
return accuracy |
|
|
|
|
|
def parse_rewards(accuracy): |
|
default_std = -1000 |
|
default_reward=-1000 |
|
if accuracy != None: |
|
accuracy = str(accuracy) |
|
parsed = accuracy.split(' +/- ') |
|
if len(parsed)>1: |
|
mean_reward = float(parsed[0]) |
|
std_reward = float(parsed[1]) |
|
elif len(parsed)==1: |
|
mean_reward = float(parsed[0]) |
|
std_reward = float(0) |
|
|
|
else: |
|
mean_reward = float(default_std) |
|
std_reward = float(default_reward) |
|
|
|
else: |
|
mean_reward = float(default_std) |
|
std_reward = float(default_reward) |
|
return mean_reward, std_reward |
|
|
|
|