Update library versions, change messages
Browse files- app.py +1 -1
- requirements.txt +1 -1
- src/submission/check_validity.py +30 -11
- src/submission/submit.py +8 -8
app.py
CHANGED
|
@@ -181,7 +181,7 @@ with demo:
|
|
| 181 |
# choices=[i.value.name for i in Precision if i != Precision.Unknown],
|
| 182 |
# label="Precision",
|
| 183 |
# multiselect=False,
|
| 184 |
-
# value="
|
| 185 |
# interactive=True,
|
| 186 |
# )
|
| 187 |
# weight_type = gr.Dropdown(
|
|
|
|
| 181 |
# choices=[i.value.name for i in Precision if i != Precision.Unknown],
|
| 182 |
# label="Precision",
|
| 183 |
# multiselect=False,
|
| 184 |
+
# value="bfloat16",
|
| 185 |
# interactive=True,
|
| 186 |
# )
|
| 187 |
# weight_type = gr.Dropdown(
|
requirements.txt
CHANGED
|
@@ -12,5 +12,5 @@ pandas
|
|
| 12 |
python-dateutil
|
| 13 |
tqdm
|
| 14 |
transformers
|
| 15 |
-
tokenizers>=0.
|
| 16 |
sentencepiece
|
|
|
|
| 12 |
python-dateutil
|
| 13 |
tqdm
|
| 14 |
transformers
|
| 15 |
+
tokenizers>=0.15.0
|
| 16 |
sentencepiece
|
src/submission/check_validity.py
CHANGED
|
@@ -34,33 +34,52 @@ def check_model_card(repo_id: str) -> tuple[bool, str]:
|
|
| 34 |
|
| 35 |
return True, ""
|
| 36 |
|
| 37 |
-
|
| 38 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 39 |
"""Checks if the model model_name is on the hub, and whether it (and its tokenizer) can be loaded with AutoClasses."""
|
| 40 |
-
try:
|
| 41 |
-
config = AutoConfig.from_pretrained(
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 42 |
if test_tokenizer:
|
| 43 |
try:
|
| 44 |
-
_ = AutoTokenizer.from_pretrained(
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 45 |
except ValueError as e:
|
| 46 |
return (
|
| 47 |
False,
|
| 48 |
-
|
| 49 |
-
None
|
| 50 |
)
|
| 51 |
except Exception:
|
| 52 |
-
return (
|
|
|
|
|
|
|
|
|
|
|
|
|
| 53 |
return True, None, config
|
| 54 |
|
| 55 |
except ValueError:
|
| 56 |
return (
|
| 57 |
False,
|
| 58 |
-
|
| 59 |
-
None
|
| 60 |
)
|
| 61 |
|
| 62 |
except Exception:
|
| 63 |
-
return False,
|
| 64 |
|
| 65 |
|
| 66 |
def get_model_size(model_info: ModelInfo, precision: str = None):
|
|
|
|
| 34 |
|
| 35 |
return True, ""
|
| 36 |
|
| 37 |
+
def is_model_on_hub(
|
| 38 |
+
model_name: str,
|
| 39 |
+
revision: str,
|
| 40 |
+
token: str = None,
|
| 41 |
+
trust_remote_code: bool = False,
|
| 42 |
+
test_tokenizer: bool = False,
|
| 43 |
+
) -> tuple[bool, str | None, AutoConfig | None]:
|
| 44 |
"""Checks if the model model_name is on the hub, and whether it (and its tokenizer) can be loaded with AutoClasses."""
|
| 45 |
+
try:
|
| 46 |
+
config = AutoConfig.from_pretrained(
|
| 47 |
+
model_name,
|
| 48 |
+
revision=revision,
|
| 49 |
+
trust_remote_code=trust_remote_code,
|
| 50 |
+
token=token,
|
| 51 |
+
)
|
| 52 |
if test_tokenizer:
|
| 53 |
try:
|
| 54 |
+
_ = AutoTokenizer.from_pretrained(
|
| 55 |
+
model_name,
|
| 56 |
+
revision=revision,
|
| 57 |
+
trust_remote_code=trust_remote_code,
|
| 58 |
+
token=token,
|
| 59 |
+
)
|
| 60 |
except ValueError as e:
|
| 61 |
return (
|
| 62 |
False,
|
| 63 |
+
'uses a tokenizer which is not in a transformers release: {}'.format(e),
|
| 64 |
+
None,
|
| 65 |
)
|
| 66 |
except Exception:
|
| 67 |
+
return (
|
| 68 |
+
False,
|
| 69 |
+
"'s tokenizer cannot be loaded. Is your tokenizer class in a stable transformers release, and correctly configured?",
|
| 70 |
+
None,
|
| 71 |
+
)
|
| 72 |
return True, None, config
|
| 73 |
|
| 74 |
except ValueError:
|
| 75 |
return (
|
| 76 |
False,
|
| 77 |
+
'needs to be launched with `trust_remote_code=True`. For safety reason, we do not allow these models to be automatically submitted to the leaderboard.',
|
| 78 |
+
None,
|
| 79 |
)
|
| 80 |
|
| 81 |
except Exception:
|
| 82 |
+
return False, 'was not found.', None
|
| 83 |
|
| 84 |
|
| 85 |
def get_model_size(model_info: ModelInfo, precision: str = None):
|
src/submission/submit.py
CHANGED
|
@@ -36,7 +36,7 @@ def add_new_eval(
|
|
| 36 |
current_time = datetime.now(timezone.utc).strftime("%Y-%m-%dT%H:%M:%SZ")
|
| 37 |
|
| 38 |
if model_type is None or model_type == "":
|
| 39 |
-
return styled_error("Please select a model type.")
|
| 40 |
|
| 41 |
# Does the model actually exist?
|
| 42 |
if revision == "":
|
|
@@ -57,7 +57,7 @@ def add_new_eval(
|
|
| 57 |
try:
|
| 58 |
model_info = API.model_info(repo_id=model_name, revision=revision)
|
| 59 |
except Exception:
|
| 60 |
-
return styled_error("Could not get your model information. Please fill it up properly.")
|
| 61 |
|
| 62 |
model_size = get_model_size(
|
| 63 |
model_info=model_info,
|
|
@@ -68,14 +68,14 @@ def add_new_eval(
|
|
| 68 |
try:
|
| 69 |
license_title = model_info.cardData["license"]
|
| 70 |
except Exception:
|
| 71 |
-
return styled_error("Please select a license for your model")
|
| 72 |
|
| 73 |
is_model_card_ok, error_msg = check_model_card(model_name)
|
| 74 |
if not is_model_card_ok:
|
| 75 |
return styled_error(error_msg)
|
| 76 |
|
| 77 |
# Seems good, creating the eval
|
| 78 |
-
print("Adding new
|
| 79 |
|
| 80 |
eval_entry = {
|
| 81 |
# "model": model,
|
|
@@ -95,10 +95,10 @@ def add_new_eval(
|
|
| 95 |
# Check for duplicate submission
|
| 96 |
request_id = get_request_id(model_name, revision, precision)
|
| 97 |
if request_id in REQUESTED_MODELS:
|
| 98 |
-
return styled_warning(
|
| 99 |
request_hash = get_request_hash(model_name, revision, precision)
|
| 100 |
|
| 101 |
-
print("Creating
|
| 102 |
OUT_DIR = f"{EVAL_REQUESTS_PATH}/{model_name}"
|
| 103 |
os.makedirs(OUT_DIR, exist_ok=True)
|
| 104 |
|
|
@@ -109,13 +109,13 @@ def add_new_eval(
|
|
| 109 |
with open(out_path, "w") as f:
|
| 110 |
f.write(json.dumps(eval_entry))
|
| 111 |
|
| 112 |
-
print("Uploading
|
| 113 |
API.upload_file(
|
| 114 |
path_or_fileobj=out_path,
|
| 115 |
path_in_repo='{}/{}.json'.format(model_name, request_hash),
|
| 116 |
repo_id=REQUESTS_REPO,
|
| 117 |
repo_type="dataset",
|
| 118 |
-
commit_message=f"Add {model_name}
|
| 119 |
)
|
| 120 |
|
| 121 |
# Remove the local file
|
|
|
|
| 36 |
current_time = datetime.now(timezone.utc).strftime("%Y-%m-%dT%H:%M:%SZ")
|
| 37 |
|
| 38 |
if model_type is None or model_type == "":
|
| 39 |
+
return styled_error("Please, select a model type.")
|
| 40 |
|
| 41 |
# Does the model actually exist?
|
| 42 |
if revision == "":
|
|
|
|
| 57 |
try:
|
| 58 |
model_info = API.model_info(repo_id=model_name, revision=revision)
|
| 59 |
except Exception:
|
| 60 |
+
return styled_error("Could not get your model information. Please, fill it up properly.")
|
| 61 |
|
| 62 |
model_size = get_model_size(
|
| 63 |
model_info=model_info,
|
|
|
|
| 68 |
try:
|
| 69 |
license_title = model_info.cardData["license"]
|
| 70 |
except Exception:
|
| 71 |
+
return styled_error("Please, select a license for your model.")
|
| 72 |
|
| 73 |
is_model_card_ok, error_msg = check_model_card(model_name)
|
| 74 |
if not is_model_card_ok:
|
| 75 |
return styled_error(error_msg)
|
| 76 |
|
| 77 |
# Seems good, creating the eval
|
| 78 |
+
print("Adding new evaluation request...")
|
| 79 |
|
| 80 |
eval_entry = {
|
| 81 |
# "model": model,
|
|
|
|
| 95 |
# Check for duplicate submission
|
| 96 |
request_id = get_request_id(model_name, revision, precision)
|
| 97 |
if request_id in REQUESTED_MODELS:
|
| 98 |
+
return styled_warning('This model has already been submitted.')
|
| 99 |
request_hash = get_request_hash(model_name, revision, precision)
|
| 100 |
|
| 101 |
+
print("Creating evaluation request file...")
|
| 102 |
OUT_DIR = f"{EVAL_REQUESTS_PATH}/{model_name}"
|
| 103 |
os.makedirs(OUT_DIR, exist_ok=True)
|
| 104 |
|
|
|
|
| 109 |
with open(out_path, "w") as f:
|
| 110 |
f.write(json.dumps(eval_entry))
|
| 111 |
|
| 112 |
+
print("Uploading evaluation file...")
|
| 113 |
API.upload_file(
|
| 114 |
path_or_fileobj=out_path,
|
| 115 |
path_in_repo='{}/{}.json'.format(model_name, request_hash),
|
| 116 |
repo_id=REQUESTS_REPO,
|
| 117 |
repo_type="dataset",
|
| 118 |
+
commit_message=f"Add an evaluation request for {model_name}",
|
| 119 |
)
|
| 120 |
|
| 121 |
# Remove the local file
|