Spaces:
Running on CPU Upgrade
Running on CPU Upgrade
Basma Boussaha commited on
Commit ·
fdbda9e
1
Parent(s): 88406c9
remove unnecessary tags
Browse files- backend/helpers.py +1 -2
- backend/submission_handler.py +41 -44
backend/helpers.py
CHANGED
|
@@ -25,10 +25,9 @@ def unify_precision(raw_precision: str) -> str:
|
|
| 25 |
|
| 26 |
return PRECISION_MAP.get(clean_p, "Missing")
|
| 27 |
|
| 28 |
-
def get_model_size(model_info: ModelInfo
|
| 29 |
"""
|
| 30 |
Return approximate model parameter size in billions.
|
| 31 |
-
Note: 'precision' arg is kept for compatibility but currently unused.
|
| 32 |
"""
|
| 33 |
try:
|
| 34 |
# Safely access safetensors, defaulting to None if attribute missing
|
|
|
|
| 25 |
|
| 26 |
return PRECISION_MAP.get(clean_p, "Missing")
|
| 27 |
|
| 28 |
+
def get_model_size(model_info: ModelInfo) -> float:
|
| 29 |
"""
|
| 30 |
Return approximate model parameter size in billions.
|
|
|
|
| 31 |
"""
|
| 32 |
try:
|
| 33 |
# Safely access safetensors, defaulting to None if attribute missing
|
backend/submission_handler.py
CHANGED
|
@@ -84,8 +84,8 @@ class SlackNotifier:
|
|
| 84 |
"""
|
| 85 |
model_name = submission_data.get("model", "Unknown")
|
| 86 |
org = model_name.split("/")[0] if "/" in model_name else "Unknown"
|
| 87 |
-
precision = submission_data.get("precision", "UNK")
|
| 88 |
-
weight_type = submission_data.get("weight_type", "Unknown")
|
| 89 |
params = submission_data.get("params", "Unknown")
|
| 90 |
|
| 91 |
blocks = [
|
|
@@ -108,14 +108,14 @@ class SlackNotifier:
|
|
| 108 |
"type": "mrkdwn",
|
| 109 |
"text": f"*Organization:*\n{org}"
|
| 110 |
},
|
| 111 |
-
{
|
| 112 |
-
|
| 113 |
-
|
| 114 |
-
},
|
| 115 |
-
{
|
| 116 |
-
|
| 117 |
-
|
| 118 |
-
},
|
| 119 |
{
|
| 120 |
"type": "mrkdwn",
|
| 121 |
"text": f"*Parameters:*\n{params}"
|
|
@@ -391,8 +391,8 @@ def integrate_with_submission(original_submit_func):
|
|
| 391 |
"model": args[0] if len(args) > 0 else kwargs.get("model_name"),
|
| 392 |
"base_model": args[1] if len(args) > 1 else kwargs.get("base_model"),
|
| 393 |
"revision": args[2] if len(args) > 2 else kwargs.get("revision"),
|
| 394 |
-
"precision": args[3] if len(args) > 3 else kwargs.get("precision"),
|
| 395 |
-
"weight_type": args[4] if len(args) > 4 else kwargs.get("weight_type"),
|
| 396 |
"submitted_time": datetime.utcnow().isoformat() + "Z",
|
| 397 |
"slack_thread_ts": null
|
| 398 |
}
|
|
@@ -406,7 +406,7 @@ def integrate_with_submission(original_submit_func):
|
|
| 406 |
return wrapper
|
| 407 |
|
| 408 |
|
| 409 |
-
def already_in_queue(df: pd.DataFrame, model_name: str
|
| 410 |
"""
|
| 411 |
Check if (model, revision, precision) is already in the provided dataframe.
|
| 412 |
"""
|
|
@@ -415,9 +415,7 @@ def already_in_queue(df: pd.DataFrame, model_name: str, revision: str, precision
|
|
| 415 |
|
| 416 |
# Create a boolean mask for matching rows
|
| 417 |
mask = (
|
| 418 |
-
(df["model"] == model_name)
|
| 419 |
-
(df["revision"] == revision) &
|
| 420 |
-
(df["precision"] == unify_precision(precision))
|
| 421 |
)
|
| 422 |
return not df[mask].empty
|
| 423 |
|
|
@@ -539,7 +537,7 @@ def submit_model(
|
|
| 539 |
if base_model:
|
| 540 |
base_model = base_model.strip()
|
| 541 |
revision = revision.strip() or "main"
|
| 542 |
-
precision = precision.strip()
|
| 543 |
model_type = MODEL_TYPE_NORMALIZATION.get(model_type.strip().lower(), model_type.strip())
|
| 544 |
|
| 545 |
|
|
@@ -560,20 +558,20 @@ def submit_model(
|
|
| 560 |
return f"**Error**: {card_msg}"
|
| 561 |
|
| 562 |
# B. Check Hub Existence (Base vs Target)
|
| 563 |
-
if weight_type.lower() in ["adapter", "delta"]:
|
| 564 |
-
|
| 565 |
-
|
| 566 |
-
|
| 567 |
-
|
| 568 |
-
|
| 569 |
-
|
| 570 |
-
|
| 571 |
-
else:
|
| 572 |
-
|
| 573 |
-
|
| 574 |
-
|
| 575 |
-
|
| 576 |
-
|
| 577 |
|
| 578 |
# C. Fetch Model Info (Likes, License, Private Status)
|
| 579 |
try:
|
|
@@ -586,11 +584,11 @@ def submit_model(
|
|
| 586 |
model_private = bool(getattr(info, "private", False))
|
| 587 |
|
| 588 |
# D. Check Queue Duplication
|
| 589 |
-
if already_in_queue(load_requests("finished"), model_name
|
| 590 |
-
return f"**Warning**: '{model_name}'
|
| 591 |
|
| 592 |
-
if already_in_queue(load_requests("pending"), model_name
|
| 593 |
-
return f"**Warning**: '{model_name}'
|
| 594 |
|
| 595 |
# E. Check Rate Limit
|
| 596 |
under_threshold, limit_msg = check_org_threshold(org)
|
|
@@ -598,19 +596,19 @@ def submit_model(
|
|
| 598 |
return f"**Error**: {limit_msg}"
|
| 599 |
|
| 600 |
# --- 3. Submission Construction ---
|
| 601 |
-
precision_final = unify_precision(precision)
|
| 602 |
-
if precision_final == "Missing":
|
| 603 |
-
|
| 604 |
|
| 605 |
-
model_params = get_model_size(model_info=info
|
| 606 |
current_time = datetime.utcnow().isoformat() + "Z"
|
| 607 |
|
| 608 |
submission_data = {
|
| 609 |
"model": model_name,
|
| 610 |
-
"base_model": base_model,
|
| 611 |
"revision": revision,
|
| 612 |
-
"precision": precision_final,
|
| 613 |
-
"weight_type": weight_type,
|
| 614 |
"status": "PENDING",
|
| 615 |
"submitted_time": current_time,
|
| 616 |
"model_type": model_type,
|
|
@@ -623,8 +621,7 @@ def submit_model(
|
|
| 623 |
}
|
| 624 |
|
| 625 |
# Define path in the requests dataset
|
| 626 |
-
|
| 627 |
-
file_path = f"{org}/{repo_id}_eval_request_{private_str}_{precision_final}_{weight_type}.json"
|
| 628 |
|
| 629 |
# --- 4. Upload to Hub ---
|
| 630 |
try:
|
|
|
|
| 84 |
"""
|
| 85 |
model_name = submission_data.get("model", "Unknown")
|
| 86 |
org = model_name.split("/")[0] if "/" in model_name else "Unknown"
|
| 87 |
+
# precision = submission_data.get("precision", "UNK")
|
| 88 |
+
# weight_type = submission_data.get("weight_type", "Unknown")
|
| 89 |
params = submission_data.get("params", "Unknown")
|
| 90 |
|
| 91 |
blocks = [
|
|
|
|
| 108 |
"type": "mrkdwn",
|
| 109 |
"text": f"*Organization:*\n{org}"
|
| 110 |
},
|
| 111 |
+
# {
|
| 112 |
+
# "type": "mrkdwn",
|
| 113 |
+
# "text": f"*Precision:*\n{precision}"
|
| 114 |
+
# },
|
| 115 |
+
# {
|
| 116 |
+
# "type": "mrkdwn",
|
| 117 |
+
# "text": f"*Weight Type:*\n{weight_type}"
|
| 118 |
+
# },
|
| 119 |
{
|
| 120 |
"type": "mrkdwn",
|
| 121 |
"text": f"*Parameters:*\n{params}"
|
|
|
|
| 391 |
"model": args[0] if len(args) > 0 else kwargs.get("model_name"),
|
| 392 |
"base_model": args[1] if len(args) > 1 else kwargs.get("base_model"),
|
| 393 |
"revision": args[2] if len(args) > 2 else kwargs.get("revision"),
|
| 394 |
+
# "precision": args[3] if len(args) > 3 else kwargs.get("precision"),
|
| 395 |
+
# "weight_type": args[4] if len(args) > 4 else kwargs.get("weight_type"),
|
| 396 |
"submitted_time": datetime.utcnow().isoformat() + "Z",
|
| 397 |
"slack_thread_ts": null
|
| 398 |
}
|
|
|
|
| 406 |
return wrapper
|
| 407 |
|
| 408 |
|
| 409 |
+
def already_in_queue(df: pd.DataFrame, model_name: str) -> bool:
|
| 410 |
"""
|
| 411 |
Check if (model, revision, precision) is already in the provided dataframe.
|
| 412 |
"""
|
|
|
|
| 415 |
|
| 416 |
# Create a boolean mask for matching rows
|
| 417 |
mask = (
|
| 418 |
+
(df["model"] == model_name)
|
|
|
|
|
|
|
| 419 |
)
|
| 420 |
return not df[mask].empty
|
| 421 |
|
|
|
|
| 537 |
if base_model:
|
| 538 |
base_model = base_model.strip()
|
| 539 |
revision = revision.strip() or "main"
|
| 540 |
+
# precision = precision.strip()
|
| 541 |
model_type = MODEL_TYPE_NORMALIZATION.get(model_type.strip().lower(), model_type.strip())
|
| 542 |
|
| 543 |
|
|
|
|
| 558 |
return f"**Error**: {card_msg}"
|
| 559 |
|
| 560 |
# B. Check Hub Existence (Base vs Target)
|
| 561 |
+
# if weight_type.lower() in ["adapter", "delta"]:
|
| 562 |
+
# if not base_model:
|
| 563 |
+
# return "**Error**: For adapter/delta, you must provide a valid `base_model`."
|
| 564 |
+
# ok_base, base_err, _ = is_model_on_hub(
|
| 565 |
+
# base_model, revision, hf_api_token, trust_remote_code=True
|
| 566 |
+
# )
|
| 567 |
+
# if not ok_base:
|
| 568 |
+
# return f"**Error**: Base model '{base_model}' {base_err}"
|
| 569 |
+
# else:
|
| 570 |
+
ok_model, model_err, _ = is_model_on_hub(
|
| 571 |
+
model_name, revision, hf_api_token, trust_remote_code=True
|
| 572 |
+
)
|
| 573 |
+
if not ok_model:
|
| 574 |
+
return f"**Error**: Model '{model_name}' {model_err}"
|
| 575 |
|
| 576 |
# C. Fetch Model Info (Likes, License, Private Status)
|
| 577 |
try:
|
|
|
|
| 584 |
model_private = bool(getattr(info, "private", False))
|
| 585 |
|
| 586 |
# D. Check Queue Duplication
|
| 587 |
+
if already_in_queue(load_requests("finished"), model_name):
|
| 588 |
+
return f"**Warning**: '{model_name}') has already been evaluated."
|
| 589 |
|
| 590 |
+
if already_in_queue(load_requests("pending"), model_name):
|
| 591 |
+
return f"**Warning**: '{model_name}') is already in PENDING."
|
| 592 |
|
| 593 |
# E. Check Rate Limit
|
| 594 |
under_threshold, limit_msg = check_org_threshold(org)
|
|
|
|
| 596 |
return f"**Error**: {limit_msg}"
|
| 597 |
|
| 598 |
# --- 3. Submission Construction ---
|
| 599 |
+
# precision_final = unify_precision(precision)
|
| 600 |
+
# if precision_final == "Missing":
|
| 601 |
+
# precision_final = "UNK"
|
| 602 |
|
| 603 |
+
model_params = get_model_size(model_info=info)
|
| 604 |
current_time = datetime.utcnow().isoformat() + "Z"
|
| 605 |
|
| 606 |
submission_data = {
|
| 607 |
"model": model_name,
|
| 608 |
+
# "base_model": base_model,
|
| 609 |
"revision": revision,
|
| 610 |
+
# "precision": precision_final,
|
| 611 |
+
# "weight_type": weight_type,
|
| 612 |
"status": "PENDING",
|
| 613 |
"submitted_time": current_time,
|
| 614 |
"model_type": model_type,
|
|
|
|
| 621 |
}
|
| 622 |
|
| 623 |
# Define path in the requests dataset
|
| 624 |
+
file_path = f"{org}/{repo_id}_eval_request.json"
|
|
|
|
| 625 |
|
| 626 |
# --- 4. Upload to Hub ---
|
| 627 |
try:
|