Spaces:
Running
on
CPU Upgrade
Running
on
CPU Upgrade
Tom Aarsen
commited on
Commit
•
970b6a5
1
Parent(s):
7d3a9f6
Add Memory Usage column to all tables
Browse files- app.py +69 -68
- utils/model_size.py +6 -5
app.py
CHANGED
@@ -10,7 +10,7 @@ from huggingface_hub.repocard import metadata_load
|
|
10 |
import pandas as pd
|
11 |
from tqdm.autonotebook import tqdm
|
12 |
|
13 |
-
from utils.model_size import
|
14 |
|
15 |
TASKS = [
|
16 |
"BitextMining",
|
@@ -1227,7 +1227,7 @@ with open("EXTERNAL_MODEL_RESULTS.json", "w") as f:
|
|
1227 |
|
1228 |
def get_dim_seq_size(model):
|
1229 |
filenames = [sib.rfilename for sib in model.siblings]
|
1230 |
-
dim, seq
|
1231 |
for filename in filenames:
|
1232 |
if re.match("\d+_Pooling/config.json", filename):
|
1233 |
st_config_path = hf_hub_download(model.modelId, filename=filename)
|
@@ -1243,9 +1243,9 @@ def get_dim_seq_size(model):
|
|
1243 |
if not dim:
|
1244 |
dim = config.get("hidden_dim", config.get("hidden_size", config.get("d_model", "")))
|
1245 |
seq = config.get("n_positions", config.get("max_position_embeddings", config.get("n_ctx", config.get("seq_length", ""))))
|
1246 |
-
# Get model file size without downloading
|
1247 |
-
|
1248 |
-
return dim, seq,
|
1249 |
|
1250 |
def make_datasets_clickable(df):
|
1251 |
"""Does not work"""
|
@@ -1256,7 +1256,7 @@ def make_datasets_clickable(df):
|
|
1256 |
return df
|
1257 |
|
1258 |
def add_rank(df):
|
1259 |
-
cols_to_rank = [col for col in df.columns if col not in ["Model", "Model Size (Million Parameters)", "Embedding Dimensions", "Max Tokens"]]
|
1260 |
if len(cols_to_rank) == 1:
|
1261 |
df.sort_values(cols_to_rank[0], ascending=False, inplace=True)
|
1262 |
else:
|
@@ -1287,6 +1287,7 @@ def get_mteb_data(tasks=["Clustering"], langs=[], datasets=[], fillna=True, add_
|
|
1287 |
if len(res) > 1:
|
1288 |
if add_emb_dim:
|
1289 |
res["Model Size (Million Parameters)"] = EXTERNAL_MODEL_TO_SIZE.get(model, "")
|
|
|
1290 |
res["Embedding Dimensions"] = EXTERNAL_MODEL_TO_DIM.get(model, "")
|
1291 |
res["Max Tokens"] = EXTERNAL_MODEL_TO_SEQLEN.get(model, "")
|
1292 |
df_list.append(res)
|
@@ -1327,7 +1328,7 @@ def get_mteb_data(tasks=["Clustering"], langs=[], datasets=[], fillna=True, add_
|
|
1327 |
if add_emb_dim:
|
1328 |
try:
|
1329 |
# Fails on gated repos, so we only include scores for them
|
1330 |
-
out["Embedding Dimensions"], out["Max Tokens"], out["Model Size (Million Parameters)"] = get_dim_seq_size(model)
|
1331 |
except:
|
1332 |
pass
|
1333 |
df_list.append(out)
|
@@ -1381,32 +1382,32 @@ def get_mteb_average():
|
|
1381 |
|
1382 |
DATA_OVERALL = DATA_OVERALL.round(2)
|
1383 |
|
1384 |
-
DATA_CLASSIFICATION_EN = add_rank(DATA_OVERALL[["Model", "Model Size (Million Parameters)"] + TASK_LIST_CLASSIFICATION])
|
1385 |
# Only keep rows with at least one score in addition to the "Model" & rank column
|
1386 |
-
DATA_CLASSIFICATION_EN = DATA_CLASSIFICATION_EN[DATA_CLASSIFICATION_EN.iloc[:,
|
1387 |
|
1388 |
-
DATA_CLUSTERING = add_rank(DATA_OVERALL[["Model", "Model Size (Million Parameters)"] + TASK_LIST_CLUSTERING])
|
1389 |
-
DATA_CLUSTERING = DATA_CLUSTERING[DATA_CLUSTERING.iloc[:,
|
1390 |
|
1391 |
-
DATA_PAIR_CLASSIFICATION = add_rank(DATA_OVERALL[["Model", "Model Size (Million Parameters)"] + TASK_LIST_PAIR_CLASSIFICATION])
|
1392 |
-
DATA_PAIR_CLASSIFICATION = DATA_PAIR_CLASSIFICATION[DATA_PAIR_CLASSIFICATION.iloc[:,
|
1393 |
|
1394 |
-
DATA_RERANKING = add_rank(DATA_OVERALL[["Model", "Model Size (Million Parameters)"] + TASK_LIST_RERANKING])
|
1395 |
-
DATA_RERANKING = DATA_RERANKING[DATA_RERANKING.iloc[:,
|
1396 |
|
1397 |
-
DATA_RETRIEVAL = add_rank(DATA_OVERALL[["Model", "Model Size (Million Parameters)"] + TASK_LIST_RETRIEVAL])
|
1398 |
-
DATA_RETRIEVAL = DATA_RETRIEVAL[DATA_RETRIEVAL.iloc[:,
|
1399 |
|
1400 |
-
DATA_STS_EN = add_rank(DATA_OVERALL[["Model", "Model Size (Million Parameters)"] + TASK_LIST_STS])
|
1401 |
-
DATA_STS_EN = DATA_STS_EN[DATA_STS_EN.iloc[:,
|
1402 |
|
1403 |
-
DATA_SUMMARIZATION = add_rank(DATA_OVERALL[["Model", "Model Size (Million Parameters)"] + TASK_LIST_SUMMARIZATION])
|
1404 |
DATA_SUMMARIZATION = DATA_SUMMARIZATION[DATA_SUMMARIZATION.iloc[:, 1:].ne("").any(axis=1)]
|
1405 |
|
1406 |
# Fill NaN after averaging
|
1407 |
DATA_OVERALL.fillna("", inplace=True)
|
1408 |
|
1409 |
-
DATA_OVERALL = DATA_OVERALL[["Rank", "Model", "Model Size (Million Parameters)", "Embedding Dimensions", "Max Tokens", f"Average ({len(TASK_LIST_EN)} datasets)", f"Classification Average ({len(TASK_LIST_CLASSIFICATION)} datasets)", f"Clustering Average ({len(TASK_LIST_CLUSTERING)} datasets)", f"Pair Classification Average ({len(TASK_LIST_PAIR_CLASSIFICATION)} datasets)", f"Reranking Average ({len(TASK_LIST_RERANKING)} datasets)", f"Retrieval Average ({len(TASK_LIST_RETRIEVAL)} datasets)", f"STS Average ({len(TASK_LIST_STS)} datasets)", f"Summarization Average ({len(TASK_LIST_SUMMARIZATION)} dataset)"]]
|
1410 |
DATA_OVERALL = DATA_OVERALL[DATA_OVERALL.iloc[:, 5:].ne("").any(axis=1)]
|
1411 |
|
1412 |
return DATA_OVERALL
|
@@ -1443,29 +1444,29 @@ def get_mteb_average_zh():
|
|
1443 |
|
1444 |
DATA_OVERALL_ZH = DATA_OVERALL_ZH.round(2)
|
1445 |
|
1446 |
-
DATA_CLASSIFICATION_ZH = add_rank(DATA_OVERALL_ZH[["Model", "Model Size (Million Parameters)"] + TASK_LIST_CLASSIFICATION_ZH])
|
1447 |
# Only keep rows with at least one score in addition to the "Model" & rank column
|
1448 |
-
DATA_CLASSIFICATION_ZH = DATA_CLASSIFICATION_ZH[DATA_CLASSIFICATION_ZH.iloc[:,
|
1449 |
|
1450 |
-
DATA_CLUSTERING_ZH = add_rank(DATA_OVERALL_ZH[["Model", "Model Size (Million Parameters)"] + TASK_LIST_CLUSTERING_ZH])
|
1451 |
-
DATA_CLUSTERING_ZH = DATA_CLUSTERING_ZH[DATA_CLUSTERING_ZH.iloc[:,
|
1452 |
|
1453 |
-
DATA_PAIR_CLASSIFICATION_ZH = add_rank(DATA_OVERALL_ZH[["Model", "Model Size (Million Parameters)"] + TASK_LIST_PAIR_CLASSIFICATION_ZH])
|
1454 |
-
DATA_PAIR_CLASSIFICATION_ZH = DATA_PAIR_CLASSIFICATION_ZH[DATA_PAIR_CLASSIFICATION_ZH.iloc[:,
|
1455 |
|
1456 |
-
DATA_RERANKING_ZH = add_rank(DATA_OVERALL_ZH[["Model", "Model Size (Million Parameters)"] + TASK_LIST_RERANKING_ZH])
|
1457 |
-
DATA_RERANKING_ZH = DATA_RERANKING_ZH[DATA_RERANKING_ZH.iloc[:,
|
1458 |
|
1459 |
-
DATA_RETRIEVAL_ZH = add_rank(DATA_OVERALL_ZH[["Model", "Model Size (Million Parameters)"] + TASK_LIST_RETRIEVAL_ZH])
|
1460 |
-
DATA_RETRIEVAL_ZH = DATA_RETRIEVAL_ZH[DATA_RETRIEVAL_ZH.iloc[:,
|
1461 |
|
1462 |
-
DATA_STS_ZH = add_rank(DATA_OVERALL_ZH[["Model", "Model Size (Million Parameters)"] + TASK_LIST_STS_ZH])
|
1463 |
-
DATA_STS_ZH = DATA_STS_ZH[DATA_STS_ZH.iloc[:,
|
1464 |
|
1465 |
# Fill NaN after averaging
|
1466 |
DATA_OVERALL_ZH.fillna("", inplace=True)
|
1467 |
|
1468 |
-
DATA_OVERALL_ZH = DATA_OVERALL_ZH[["Rank", "Model", "Model Size (Million Parameters)", "Embedding Dimensions", "Max Tokens", f"Average ({len(TASK_LIST_ZH)} datasets)", f"Classification Average ({len(TASK_LIST_CLASSIFICATION_ZH)} datasets)", f"Clustering Average ({len(TASK_LIST_CLUSTERING_ZH)} datasets)", f"Pair Classification Average ({len(TASK_LIST_PAIR_CLASSIFICATION_ZH)} datasets)", f"Reranking Average ({len(TASK_LIST_RERANKING_ZH)} datasets)", f"Retrieval Average ({len(TASK_LIST_RETRIEVAL_ZH)} datasets)", f"STS Average ({len(TASK_LIST_STS_ZH)} datasets)"]]
|
1469 |
DATA_OVERALL_ZH = DATA_OVERALL_ZH[DATA_OVERALL_ZH.iloc[:, 5:].ne("").any(axis=1)]
|
1470 |
|
1471 |
return DATA_OVERALL_ZH
|
@@ -1503,31 +1504,31 @@ def get_mteb_average_fr():
|
|
1503 |
DATA_OVERALL_FR.insert(0, "Rank", list(range(1, len(DATA_OVERALL_FR) + 1)))
|
1504 |
DATA_OVERALL_FR = DATA_OVERALL_FR.round(2)
|
1505 |
|
1506 |
-
DATA_CLASSIFICATION_FR = add_rank(DATA_OVERALL_FR[["Model", "Model Size (Million Parameters)"] + TASK_LIST_CLASSIFICATION_FR])
|
1507 |
-
DATA_CLASSIFICATION_FR = DATA_CLASSIFICATION_FR[DATA_CLASSIFICATION_FR.iloc[:,
|
1508 |
|
1509 |
-
DATA_CLUSTERING_FR = add_rank(DATA_OVERALL_FR[["Model", "Model Size (Million Parameters)"] + TASK_LIST_CLUSTERING_FR])
|
1510 |
-
DATA_CLUSTERING_FR = DATA_CLUSTERING_FR[DATA_CLUSTERING_FR.iloc[:,
|
1511 |
|
1512 |
-
DATA_PAIR_CLASSIFICATION_FR = add_rank(DATA_OVERALL_FR[["Model", "Model Size (Million Parameters)"] + TASK_LIST_PAIR_CLASSIFICATION_FR])
|
1513 |
-
DATA_PAIR_CLASSIFICATION_FR = DATA_PAIR_CLASSIFICATION_FR[DATA_PAIR_CLASSIFICATION_FR.iloc[:,
|
1514 |
|
1515 |
-
DATA_RERANKING_FR = add_rank(DATA_OVERALL_FR[["Model", "Model Size (Million Parameters)"] + TASK_LIST_RERANKING_FR])
|
1516 |
-
DATA_RERANKING_FR = DATA_RERANKING_FR[DATA_RERANKING_FR.iloc[:,
|
1517 |
|
1518 |
-
DATA_RETRIEVAL_FR = add_rank(DATA_OVERALL_FR[["Model", "Model Size (Million Parameters)"] + TASK_LIST_RETRIEVAL_FR])
|
1519 |
-
DATA_RETRIEVAL_FR = DATA_RETRIEVAL_FR[DATA_RETRIEVAL_FR.iloc[:,
|
1520 |
|
1521 |
-
DATA_STS_FR = add_rank(DATA_OVERALL_FR[["Model", "Model Size (Million Parameters)"] + TASK_LIST_STS_FR])
|
1522 |
-
DATA_STS_FR = DATA_STS_FR[DATA_STS_FR.iloc[:,
|
1523 |
|
1524 |
-
DATA_SUMMARIZATION_FR = add_rank(DATA_OVERALL_FR[["Model", "Model Size (Million Parameters)"] + TASK_LIST_SUMMARIZATION_FR])
|
1525 |
DATA_SUMMARIZATION_FR = DATA_SUMMARIZATION_FR[DATA_SUMMARIZATION_FR.iloc[:, 1:].ne("").any(axis=1)]
|
1526 |
|
1527 |
# Fill NaN after averaging
|
1528 |
DATA_OVERALL_FR.fillna("", inplace=True)
|
1529 |
|
1530 |
-
DATA_OVERALL_FR = DATA_OVERALL_FR[["Rank", "Model", "Model Size (Million Parameters)", "Embedding Dimensions", "Max Tokens", f"Average ({len(TASK_LIST_FR)} datasets)", f"Classification Average ({len(TASK_LIST_CLASSIFICATION_FR)} datasets)", f"Clustering Average ({len(TASK_LIST_CLUSTERING_FR)} datasets)", f"Pair Classification Average ({len(TASK_LIST_PAIR_CLASSIFICATION_FR)} datasets)", f"Reranking Average ({len(TASK_LIST_RERANKING_FR)} datasets)", f"Retrieval Average ({len(TASK_LIST_RETRIEVAL_FR)} datasets)", f"STS Average ({len(TASK_LIST_STS_FR)} datasets)", f"Summarization Average ({len(TASK_LIST_SUMMARIZATION_FR)} dataset)"]]
|
1531 |
DATA_OVERALL_FR = DATA_OVERALL_FR[DATA_OVERALL_FR.iloc[:, 5:].ne("").any(axis=1)]
|
1532 |
|
1533 |
return DATA_OVERALL_FR
|
@@ -1562,26 +1563,26 @@ def get_mteb_average_pl():
|
|
1562 |
|
1563 |
DATA_OVERALL_PL = DATA_OVERALL_PL.round(2)
|
1564 |
|
1565 |
-
DATA_CLASSIFICATION_PL = add_rank(DATA_OVERALL_PL[["Model", "Model Size (Million Parameters)"] + TASK_LIST_CLASSIFICATION_PL])
|
1566 |
# Only keep rows with at least one score in addition to the "Model" & rank column
|
1567 |
-
DATA_CLASSIFICATION_PL = DATA_CLASSIFICATION_PL[DATA_CLASSIFICATION_PL.iloc[:,
|
1568 |
|
1569 |
-
DATA_CLUSTERING_PL = add_rank(DATA_OVERALL_PL[["Model", "Model Size (Million Parameters)"] + TASK_LIST_CLUSTERING_PL])
|
1570 |
-
DATA_CLUSTERING_PL = DATA_CLUSTERING_PL[DATA_CLUSTERING_PL.iloc[:,
|
1571 |
|
1572 |
-
DATA_PAIR_CLASSIFICATION_PL = add_rank(DATA_OVERALL_PL[["Model", "Model Size (Million Parameters)"] + TASK_LIST_PAIR_CLASSIFICATION_PL])
|
1573 |
-
DATA_PAIR_CLASSIFICATION_PL = DATA_PAIR_CLASSIFICATION_PL[DATA_PAIR_CLASSIFICATION_PL.iloc[:,
|
1574 |
|
1575 |
-
DATA_RETRIEVAL_PL = add_rank(DATA_OVERALL_PL[["Model", "Model Size (Million Parameters)"] + TASK_LIST_RETRIEVAL_PL])
|
1576 |
-
DATA_RETRIEVAL_PL = DATA_RETRIEVAL_PL[DATA_RETRIEVAL_PL.iloc[:,
|
1577 |
|
1578 |
-
DATA_STS_PL = add_rank(DATA_OVERALL_PL[["Model", "Model Size (Million Parameters)"] + TASK_LIST_STS_PL])
|
1579 |
-
DATA_STS_PL = DATA_STS_PL[DATA_STS_PL.iloc[:,
|
1580 |
|
1581 |
# Fill NaN after averaging
|
1582 |
DATA_OVERALL_PL.fillna("", inplace=True)
|
1583 |
|
1584 |
-
DATA_OVERALL_PL = DATA_OVERALL_PL[["Rank", "Model", "Model Size (Million Parameters)", "Embedding Dimensions", "Max Tokens", f"Average ({len(TASK_LIST_PL)} datasets)", f"Classification Average ({len(TASK_LIST_CLASSIFICATION_PL)} datasets)", f"Clustering Average ({len(TASK_LIST_CLUSTERING_PL)} datasets)", f"Pair Classification Average ({len(TASK_LIST_PAIR_CLASSIFICATION_PL)} datasets)", f"Retrieval Average ({len(TASK_LIST_RETRIEVAL_PL)} datasets)", f"STS Average ({len(TASK_LIST_STS_PL)} datasets)"]]
|
1585 |
DATA_OVERALL_PL = DATA_OVERALL_PL[DATA_OVERALL_PL.iloc[:, 5:].ne("").any(axis=1)]
|
1586 |
|
1587 |
return DATA_OVERALL_PL
|
@@ -1590,15 +1591,15 @@ get_mteb_average()
|
|
1590 |
get_mteb_average_fr()
|
1591 |
get_mteb_average_pl()
|
1592 |
get_mteb_average_zh()
|
1593 |
-
DATA_BITEXT_MINING = get_mteb_data(["BitextMining"], [], TASK_LIST_BITEXT_MINING)[["Rank", "Model", "Model Size (Million Parameters)", "Average"] + TASK_LIST_BITEXT_MINING]
|
1594 |
-
DATA_BITEXT_MINING_DA = get_mteb_data(["BitextMining"], [], TASK_LIST_BITEXT_MINING_DA)[["Rank", "Model", "Model Size (Million Parameters)"] + TASK_LIST_BITEXT_MINING_DA]
|
1595 |
-
DATA_CLASSIFICATION_DA = get_mteb_data(["Classification"], [], TASK_LIST_CLASSIFICATION_DA)[["Rank", "Model", "Model Size (Million Parameters)", "Average"] + TASK_LIST_CLASSIFICATION_DA]
|
1596 |
-
DATA_CLASSIFICATION_NB = get_mteb_data(["Classification"], [], TASK_LIST_CLASSIFICATION_NB)[["Rank", "Model", "Model Size (Million Parameters)", "Average"] + TASK_LIST_CLASSIFICATION_NB]
|
1597 |
-
DATA_CLASSIFICATION_SV = get_mteb_data(["Classification"], [], TASK_LIST_CLASSIFICATION_SV)[["Rank", "Model", "Model Size (Million Parameters)", "Average"] + TASK_LIST_CLASSIFICATION_SV]
|
1598 |
-
DATA_CLASSIFICATION_OTHER = get_mteb_data(["Classification"], [], TASK_LIST_CLASSIFICATION_OTHER)[["Rank", "Model", "Model Size (Million Parameters)", "Average"] + TASK_LIST_CLASSIFICATION_OTHER]
|
1599 |
-
DATA_CLUSTERING_DE = get_mteb_data(["Clustering"], [], TASK_LIST_CLUSTERING_DE)[["Rank", "Model", "Model Size (Million Parameters)", "Average"] + TASK_LIST_CLUSTERING_DE]
|
1600 |
-
DATA_STS_OTHER = get_mteb_data(["STS"], [], TASK_LIST_STS_OTHER)[["Rank", "Model", "Model Size (Million Parameters)", "Average"] + TASK_LIST_STS_OTHER]
|
1601 |
-
DATA_RETRIEVAL_LAW = get_mteb_data(["Retrieval"], [], TASK_LIST_RETRIEVAL_LAW)[["Rank", "Model", "Model Size (Million Parameters)", "Average"] + TASK_LIST_RETRIEVAL_LAW]
|
1602 |
|
1603 |
# Exact, add all non-nan integer values for every dataset
|
1604 |
NUM_SCORES = 0
|
|
|
10 |
import pandas as pd
|
11 |
from tqdm.autonotebook import tqdm
|
12 |
|
13 |
+
from utils.model_size import get_model_parameters_memory
|
14 |
|
15 |
TASKS = [
|
16 |
"BitextMining",
|
|
|
1227 |
|
1228 |
def get_dim_seq_size(model):
|
1229 |
filenames = [sib.rfilename for sib in model.siblings]
|
1230 |
+
dim, seq = "", ""
|
1231 |
for filename in filenames:
|
1232 |
if re.match("\d+_Pooling/config.json", filename):
|
1233 |
st_config_path = hf_hub_download(model.modelId, filename=filename)
|
|
|
1243 |
if not dim:
|
1244 |
dim = config.get("hidden_dim", config.get("hidden_size", config.get("d_model", "")))
|
1245 |
seq = config.get("n_positions", config.get("max_position_embeddings", config.get("n_ctx", config.get("seq_length", ""))))
|
1246 |
+
# Get model file size without downloading. Parameters in million parameters and memory in GB
|
1247 |
+
parameters, memory = get_model_parameters_memory(model)
|
1248 |
+
return dim, seq, parameters, memory
|
1249 |
|
1250 |
def make_datasets_clickable(df):
|
1251 |
"""Does not work"""
|
|
|
1256 |
return df
|
1257 |
|
1258 |
def add_rank(df):
|
1259 |
+
cols_to_rank = [col for col in df.columns if col not in ["Model", "Model Size (Million Parameters)", "Memory Usage (GB, fp32)", "Embedding Dimensions", "Max Tokens"]]
|
1260 |
if len(cols_to_rank) == 1:
|
1261 |
df.sort_values(cols_to_rank[0], ascending=False, inplace=True)
|
1262 |
else:
|
|
|
1287 |
if len(res) > 1:
|
1288 |
if add_emb_dim:
|
1289 |
res["Model Size (Million Parameters)"] = EXTERNAL_MODEL_TO_SIZE.get(model, "")
|
1290 |
+
res["Memory Usage (GB, fp32)"] = round(res["Model Size (Million Parameters)"] * 1e6 * 4 / 1024**3, 2) if res["Model Size (Million Parameters)"] != "" else ""
|
1291 |
res["Embedding Dimensions"] = EXTERNAL_MODEL_TO_DIM.get(model, "")
|
1292 |
res["Max Tokens"] = EXTERNAL_MODEL_TO_SEQLEN.get(model, "")
|
1293 |
df_list.append(res)
|
|
|
1328 |
if add_emb_dim:
|
1329 |
try:
|
1330 |
# Fails on gated repos, so we only include scores for them
|
1331 |
+
out["Embedding Dimensions"], out["Max Tokens"], out["Model Size (Million Parameters)"], out["Memory Usage (GB, fp32)"] = get_dim_seq_size(model)
|
1332 |
except:
|
1333 |
pass
|
1334 |
df_list.append(out)
|
|
|
1382 |
|
1383 |
DATA_OVERALL = DATA_OVERALL.round(2)
|
1384 |
|
1385 |
+
DATA_CLASSIFICATION_EN = add_rank(DATA_OVERALL[["Model", "Model Size (Million Parameters)", "Memory Usage (GB, fp32)"] + TASK_LIST_CLASSIFICATION])
|
1386 |
# Only keep rows with at least one score in addition to the "Model" & rank column
|
1387 |
+
DATA_CLASSIFICATION_EN = DATA_CLASSIFICATION_EN[DATA_CLASSIFICATION_EN.iloc[:, 4:].ne("").any(axis=1)]
|
1388 |
|
1389 |
+
DATA_CLUSTERING = add_rank(DATA_OVERALL[["Model", "Model Size (Million Parameters)", "Memory Usage (GB, fp32)"] + TASK_LIST_CLUSTERING])
|
1390 |
+
DATA_CLUSTERING = DATA_CLUSTERING[DATA_CLUSTERING.iloc[:, 4:].ne("").any(axis=1)]
|
1391 |
|
1392 |
+
DATA_PAIR_CLASSIFICATION = add_rank(DATA_OVERALL[["Model", "Model Size (Million Parameters)", "Memory Usage (GB, fp32)"] + TASK_LIST_PAIR_CLASSIFICATION])
|
1393 |
+
DATA_PAIR_CLASSIFICATION = DATA_PAIR_CLASSIFICATION[DATA_PAIR_CLASSIFICATION.iloc[:, 4:].ne("").any(axis=1)]
|
1394 |
|
1395 |
+
DATA_RERANKING = add_rank(DATA_OVERALL[["Model", "Model Size (Million Parameters)", "Memory Usage (GB, fp32)"] + TASK_LIST_RERANKING])
|
1396 |
+
DATA_RERANKING = DATA_RERANKING[DATA_RERANKING.iloc[:, 4:].ne("").any(axis=1)]
|
1397 |
|
1398 |
+
DATA_RETRIEVAL = add_rank(DATA_OVERALL[["Model", "Model Size (Million Parameters)", "Memory Usage (GB, fp32)"] + TASK_LIST_RETRIEVAL])
|
1399 |
+
DATA_RETRIEVAL = DATA_RETRIEVAL[DATA_RETRIEVAL.iloc[:, 4:].ne("").any(axis=1)]
|
1400 |
|
1401 |
+
DATA_STS_EN = add_rank(DATA_OVERALL[["Model", "Model Size (Million Parameters)", "Memory Usage (GB, fp32)"] + TASK_LIST_STS])
|
1402 |
+
DATA_STS_EN = DATA_STS_EN[DATA_STS_EN.iloc[:, 4:].ne("").any(axis=1)]
|
1403 |
|
1404 |
+
DATA_SUMMARIZATION = add_rank(DATA_OVERALL[["Model", "Model Size (Million Parameters)", "Memory Usage (GB, fp32)"] + TASK_LIST_SUMMARIZATION])
|
1405 |
DATA_SUMMARIZATION = DATA_SUMMARIZATION[DATA_SUMMARIZATION.iloc[:, 1:].ne("").any(axis=1)]
|
1406 |
|
1407 |
# Fill NaN after averaging
|
1408 |
DATA_OVERALL.fillna("", inplace=True)
|
1409 |
|
1410 |
+
DATA_OVERALL = DATA_OVERALL[["Rank", "Model", "Model Size (Million Parameters)", "Memory Usage (GB, fp32)", "Embedding Dimensions", "Max Tokens", f"Average ({len(TASK_LIST_EN)} datasets)", f"Classification Average ({len(TASK_LIST_CLASSIFICATION)} datasets)", f"Clustering Average ({len(TASK_LIST_CLUSTERING)} datasets)", f"Pair Classification Average ({len(TASK_LIST_PAIR_CLASSIFICATION)} datasets)", f"Reranking Average ({len(TASK_LIST_RERANKING)} datasets)", f"Retrieval Average ({len(TASK_LIST_RETRIEVAL)} datasets)", f"STS Average ({len(TASK_LIST_STS)} datasets)", f"Summarization Average ({len(TASK_LIST_SUMMARIZATION)} dataset)"]]
|
1411 |
DATA_OVERALL = DATA_OVERALL[DATA_OVERALL.iloc[:, 5:].ne("").any(axis=1)]
|
1412 |
|
1413 |
return DATA_OVERALL
|
|
|
1444 |
|
1445 |
DATA_OVERALL_ZH = DATA_OVERALL_ZH.round(2)
|
1446 |
|
1447 |
+
DATA_CLASSIFICATION_ZH = add_rank(DATA_OVERALL_ZH[["Model", "Model Size (Million Parameters)", "Memory Usage (GB, fp32)"] + TASK_LIST_CLASSIFICATION_ZH])
|
1448 |
# Only keep rows with at least one score in addition to the "Model" & rank column
|
1449 |
+
DATA_CLASSIFICATION_ZH = DATA_CLASSIFICATION_ZH[DATA_CLASSIFICATION_ZH.iloc[:, 4:].ne("").any(axis=1)]
|
1450 |
|
1451 |
+
DATA_CLUSTERING_ZH = add_rank(DATA_OVERALL_ZH[["Model", "Model Size (Million Parameters)", "Memory Usage (GB, fp32)"] + TASK_LIST_CLUSTERING_ZH])
|
1452 |
+
DATA_CLUSTERING_ZH = DATA_CLUSTERING_ZH[DATA_CLUSTERING_ZH.iloc[:, 4:].ne("").any(axis=1)]
|
1453 |
|
1454 |
+
DATA_PAIR_CLASSIFICATION_ZH = add_rank(DATA_OVERALL_ZH[["Model", "Model Size (Million Parameters)", "Memory Usage (GB, fp32)"] + TASK_LIST_PAIR_CLASSIFICATION_ZH])
|
1455 |
+
DATA_PAIR_CLASSIFICATION_ZH = DATA_PAIR_CLASSIFICATION_ZH[DATA_PAIR_CLASSIFICATION_ZH.iloc[:, 4:].ne("").any(axis=1)]
|
1456 |
|
1457 |
+
DATA_RERANKING_ZH = add_rank(DATA_OVERALL_ZH[["Model", "Model Size (Million Parameters)", "Memory Usage (GB, fp32)"] + TASK_LIST_RERANKING_ZH])
|
1458 |
+
DATA_RERANKING_ZH = DATA_RERANKING_ZH[DATA_RERANKING_ZH.iloc[:, 4:].ne("").any(axis=1)]
|
1459 |
|
1460 |
+
DATA_RETRIEVAL_ZH = add_rank(DATA_OVERALL_ZH[["Model", "Model Size (Million Parameters)", "Memory Usage (GB, fp32)"] + TASK_LIST_RETRIEVAL_ZH])
|
1461 |
+
DATA_RETRIEVAL_ZH = DATA_RETRIEVAL_ZH[DATA_RETRIEVAL_ZH.iloc[:, 4:].ne("").any(axis=1)]
|
1462 |
|
1463 |
+
DATA_STS_ZH = add_rank(DATA_OVERALL_ZH[["Model", "Model Size (Million Parameters)", "Memory Usage (GB, fp32)"] + TASK_LIST_STS_ZH])
|
1464 |
+
DATA_STS_ZH = DATA_STS_ZH[DATA_STS_ZH.iloc[:, 4:].ne("").any(axis=1)]
|
1465 |
|
1466 |
# Fill NaN after averaging
|
1467 |
DATA_OVERALL_ZH.fillna("", inplace=True)
|
1468 |
|
1469 |
+
DATA_OVERALL_ZH = DATA_OVERALL_ZH[["Rank", "Model", "Model Size (Million Parameters)", "Memory Usage (GB, fp32)", "Embedding Dimensions", "Max Tokens", f"Average ({len(TASK_LIST_ZH)} datasets)", f"Classification Average ({len(TASK_LIST_CLASSIFICATION_ZH)} datasets)", f"Clustering Average ({len(TASK_LIST_CLUSTERING_ZH)} datasets)", f"Pair Classification Average ({len(TASK_LIST_PAIR_CLASSIFICATION_ZH)} datasets)", f"Reranking Average ({len(TASK_LIST_RERANKING_ZH)} datasets)", f"Retrieval Average ({len(TASK_LIST_RETRIEVAL_ZH)} datasets)", f"STS Average ({len(TASK_LIST_STS_ZH)} datasets)"]]
|
1470 |
DATA_OVERALL_ZH = DATA_OVERALL_ZH[DATA_OVERALL_ZH.iloc[:, 5:].ne("").any(axis=1)]
|
1471 |
|
1472 |
return DATA_OVERALL_ZH
|
|
|
1504 |
DATA_OVERALL_FR.insert(0, "Rank", list(range(1, len(DATA_OVERALL_FR) + 1)))
|
1505 |
DATA_OVERALL_FR = DATA_OVERALL_FR.round(2)
|
1506 |
|
1507 |
+
DATA_CLASSIFICATION_FR = add_rank(DATA_OVERALL_FR[["Model", "Model Size (Million Parameters)", "Memory Usage (GB, fp32)"] + TASK_LIST_CLASSIFICATION_FR])
|
1508 |
+
DATA_CLASSIFICATION_FR = DATA_CLASSIFICATION_FR[DATA_CLASSIFICATION_FR.iloc[:, 4:].ne("").any(axis=1)]
|
1509 |
|
1510 |
+
DATA_CLUSTERING_FR = add_rank(DATA_OVERALL_FR[["Model", "Model Size (Million Parameters)", "Memory Usage (GB, fp32)"] + TASK_LIST_CLUSTERING_FR])
|
1511 |
+
DATA_CLUSTERING_FR = DATA_CLUSTERING_FR[DATA_CLUSTERING_FR.iloc[:, 4:].ne("").any(axis=1)]
|
1512 |
|
1513 |
+
DATA_PAIR_CLASSIFICATION_FR = add_rank(DATA_OVERALL_FR[["Model", "Model Size (Million Parameters)", "Memory Usage (GB, fp32)"] + TASK_LIST_PAIR_CLASSIFICATION_FR])
|
1514 |
+
DATA_PAIR_CLASSIFICATION_FR = DATA_PAIR_CLASSIFICATION_FR[DATA_PAIR_CLASSIFICATION_FR.iloc[:, 4:].ne("").any(axis=1)]
|
1515 |
|
1516 |
+
DATA_RERANKING_FR = add_rank(DATA_OVERALL_FR[["Model", "Model Size (Million Parameters)", "Memory Usage (GB, fp32)"] + TASK_LIST_RERANKING_FR])
|
1517 |
+
DATA_RERANKING_FR = DATA_RERANKING_FR[DATA_RERANKING_FR.iloc[:, 4:].ne("").any(axis=1)]
|
1518 |
|
1519 |
+
DATA_RETRIEVAL_FR = add_rank(DATA_OVERALL_FR[["Model", "Model Size (Million Parameters)", "Memory Usage (GB, fp32)"] + TASK_LIST_RETRIEVAL_FR])
|
1520 |
+
DATA_RETRIEVAL_FR = DATA_RETRIEVAL_FR[DATA_RETRIEVAL_FR.iloc[:, 4:].ne("").any(axis=1)]
|
1521 |
|
1522 |
+
DATA_STS_FR = add_rank(DATA_OVERALL_FR[["Model", "Model Size (Million Parameters)", "Memory Usage (GB, fp32)"] + TASK_LIST_STS_FR])
|
1523 |
+
DATA_STS_FR = DATA_STS_FR[DATA_STS_FR.iloc[:, 4:].ne("").any(axis=1)]
|
1524 |
|
1525 |
+
DATA_SUMMARIZATION_FR = add_rank(DATA_OVERALL_FR[["Model", "Model Size (Million Parameters)", "Memory Usage (GB, fp32)"] + TASK_LIST_SUMMARIZATION_FR])
|
1526 |
DATA_SUMMARIZATION_FR = DATA_SUMMARIZATION_FR[DATA_SUMMARIZATION_FR.iloc[:, 1:].ne("").any(axis=1)]
|
1527 |
|
1528 |
# Fill NaN after averaging
|
1529 |
DATA_OVERALL_FR.fillna("", inplace=True)
|
1530 |
|
1531 |
+
DATA_OVERALL_FR = DATA_OVERALL_FR[["Rank", "Model", "Model Size (Million Parameters)", "Memory Usage (GB, fp32)", "Embedding Dimensions", "Max Tokens", f"Average ({len(TASK_LIST_FR)} datasets)", f"Classification Average ({len(TASK_LIST_CLASSIFICATION_FR)} datasets)", f"Clustering Average ({len(TASK_LIST_CLUSTERING_FR)} datasets)", f"Pair Classification Average ({len(TASK_LIST_PAIR_CLASSIFICATION_FR)} datasets)", f"Reranking Average ({len(TASK_LIST_RERANKING_FR)} datasets)", f"Retrieval Average ({len(TASK_LIST_RETRIEVAL_FR)} datasets)", f"STS Average ({len(TASK_LIST_STS_FR)} datasets)", f"Summarization Average ({len(TASK_LIST_SUMMARIZATION_FR)} dataset)"]]
|
1532 |
DATA_OVERALL_FR = DATA_OVERALL_FR[DATA_OVERALL_FR.iloc[:, 5:].ne("").any(axis=1)]
|
1533 |
|
1534 |
return DATA_OVERALL_FR
|
|
|
1563 |
|
1564 |
DATA_OVERALL_PL = DATA_OVERALL_PL.round(2)
|
1565 |
|
1566 |
+
DATA_CLASSIFICATION_PL = add_rank(DATA_OVERALL_PL[["Model", "Model Size (Million Parameters)", "Memory Usage (GB, fp32)"] + TASK_LIST_CLASSIFICATION_PL])
|
1567 |
# Only keep rows with at least one score in addition to the "Model" & rank column
|
1568 |
+
DATA_CLASSIFICATION_PL = DATA_CLASSIFICATION_PL[DATA_CLASSIFICATION_PL.iloc[:, 4:].ne("").any(axis=1)]
|
1569 |
|
1570 |
+
DATA_CLUSTERING_PL = add_rank(DATA_OVERALL_PL[["Model", "Model Size (Million Parameters)", "Memory Usage (GB, fp32)"] + TASK_LIST_CLUSTERING_PL])
|
1571 |
+
DATA_CLUSTERING_PL = DATA_CLUSTERING_PL[DATA_CLUSTERING_PL.iloc[:, 4:].ne("").any(axis=1)]
|
1572 |
|
1573 |
+
DATA_PAIR_CLASSIFICATION_PL = add_rank(DATA_OVERALL_PL[["Model", "Model Size (Million Parameters)", "Memory Usage (GB, fp32)"] + TASK_LIST_PAIR_CLASSIFICATION_PL])
|
1574 |
+
DATA_PAIR_CLASSIFICATION_PL = DATA_PAIR_CLASSIFICATION_PL[DATA_PAIR_CLASSIFICATION_PL.iloc[:, 4:].ne("").any(axis=1)]
|
1575 |
|
1576 |
+
DATA_RETRIEVAL_PL = add_rank(DATA_OVERALL_PL[["Model", "Model Size (Million Parameters)", "Memory Usage (GB, fp32)"] + TASK_LIST_RETRIEVAL_PL])
|
1577 |
+
DATA_RETRIEVAL_PL = DATA_RETRIEVAL_PL[DATA_RETRIEVAL_PL.iloc[:, 4:].ne("").any(axis=1)]
|
1578 |
|
1579 |
+
DATA_STS_PL = add_rank(DATA_OVERALL_PL[["Model", "Model Size (Million Parameters)", "Memory Usage (GB, fp32)"] + TASK_LIST_STS_PL])
|
1580 |
+
DATA_STS_PL = DATA_STS_PL[DATA_STS_PL.iloc[:, 4:].ne("").any(axis=1)]
|
1581 |
|
1582 |
# Fill NaN after averaging
|
1583 |
DATA_OVERALL_PL.fillna("", inplace=True)
|
1584 |
|
1585 |
+
DATA_OVERALL_PL = DATA_OVERALL_PL[["Rank", "Model", "Model Size (Million Parameters)", "Memory Usage (GB, fp32)", "Embedding Dimensions", "Max Tokens", f"Average ({len(TASK_LIST_PL)} datasets)", f"Classification Average ({len(TASK_LIST_CLASSIFICATION_PL)} datasets)", f"Clustering Average ({len(TASK_LIST_CLUSTERING_PL)} datasets)", f"Pair Classification Average ({len(TASK_LIST_PAIR_CLASSIFICATION_PL)} datasets)", f"Retrieval Average ({len(TASK_LIST_RETRIEVAL_PL)} datasets)", f"STS Average ({len(TASK_LIST_STS_PL)} datasets)"]]
|
1586 |
DATA_OVERALL_PL = DATA_OVERALL_PL[DATA_OVERALL_PL.iloc[:, 5:].ne("").any(axis=1)]
|
1587 |
|
1588 |
return DATA_OVERALL_PL
|
|
|
1591 |
get_mteb_average_fr()
|
1592 |
get_mteb_average_pl()
|
1593 |
get_mteb_average_zh()
|
1594 |
+
DATA_BITEXT_MINING = get_mteb_data(["BitextMining"], [], TASK_LIST_BITEXT_MINING)[["Rank", "Model", "Model Size (Million Parameters)", "Memory Usage (GB, fp32)", "Average"] + TASK_LIST_BITEXT_MINING]
|
1595 |
+
DATA_BITEXT_MINING_DA = get_mteb_data(["BitextMining"], [], TASK_LIST_BITEXT_MINING_DA)[["Rank", "Model", "Model Size (Million Parameters)", "Memory Usage (GB, fp32)"] + TASK_LIST_BITEXT_MINING_DA]
|
1596 |
+
DATA_CLASSIFICATION_DA = get_mteb_data(["Classification"], [], TASK_LIST_CLASSIFICATION_DA)[["Rank", "Model", "Model Size (Million Parameters)", "Memory Usage (GB, fp32)", "Average"] + TASK_LIST_CLASSIFICATION_DA]
|
1597 |
+
DATA_CLASSIFICATION_NB = get_mteb_data(["Classification"], [], TASK_LIST_CLASSIFICATION_NB)[["Rank", "Model", "Model Size (Million Parameters)", "Memory Usage (GB, fp32)", "Average"] + TASK_LIST_CLASSIFICATION_NB]
|
1598 |
+
DATA_CLASSIFICATION_SV = get_mteb_data(["Classification"], [], TASK_LIST_CLASSIFICATION_SV)[["Rank", "Model", "Model Size (Million Parameters)", "Memory Usage (GB, fp32)", "Average"] + TASK_LIST_CLASSIFICATION_SV]
|
1599 |
+
DATA_CLASSIFICATION_OTHER = get_mteb_data(["Classification"], [], TASK_LIST_CLASSIFICATION_OTHER)[["Rank", "Model", "Model Size (Million Parameters)", "Memory Usage (GB, fp32)", "Average"] + TASK_LIST_CLASSIFICATION_OTHER]
|
1600 |
+
DATA_CLUSTERING_DE = get_mteb_data(["Clustering"], [], TASK_LIST_CLUSTERING_DE)[["Rank", "Model", "Model Size (Million Parameters)", "Memory Usage (GB, fp32)", "Average"] + TASK_LIST_CLUSTERING_DE]
|
1601 |
+
DATA_STS_OTHER = get_mteb_data(["STS"], [], TASK_LIST_STS_OTHER)[["Rank", "Model", "Model Size (Million Parameters)", "Memory Usage (GB, fp32)", "Average"] + TASK_LIST_STS_OTHER]
|
1602 |
+
DATA_RETRIEVAL_LAW = get_mteb_data(["Retrieval"], [], TASK_LIST_RETRIEVAL_LAW)[["Rank", "Model", "Model Size (Million Parameters)", "Memory Usage (GB, fp32)", "Average"] + TASK_LIST_RETRIEVAL_LAW]
|
1603 |
|
1604 |
# Exact, add all non-nan integer values for every dataset
|
1605 |
NUM_SCORES = 0
|
utils/model_size.py
CHANGED
@@ -8,11 +8,12 @@ from huggingface_hub import hf_hub_download
|
|
8 |
KNOWN_BYTES_PER_PARAM = {}
|
9 |
|
10 |
|
11 |
-
def
|
12 |
'''Get the size of the model in million of parameters.'''
|
13 |
try:
|
14 |
safetensors = get_safetensors_metadata(model_info.id)
|
15 |
-
|
|
|
16 |
except Exception as e:
|
17 |
pass
|
18 |
|
@@ -21,7 +22,7 @@ def get_model_size(model_info: ModelInfo):
|
|
21 |
url = hf_hub_url(model_info.id, filename="pytorch_model.bin")
|
22 |
meta = get_hf_file_metadata(url)
|
23 |
bytes_per_param = KNOWN_BYTES_PER_PARAM.get(model_info.id, 4)
|
24 |
-
return round(meta.size / bytes_per_param / 1e6)
|
25 |
|
26 |
if "pytorch_model.bin.index.json" in filenames:
|
27 |
index_path = hf_hub_download(model_info.id, filename="pytorch_model.bin.index.json")
|
@@ -34,6 +35,6 @@ def get_model_size(model_info: ModelInfo):
|
|
34 |
size = json.load(open(index_path))
|
35 |
bytes_per_param = KNOWN_BYTES_PER_PARAM.get(model_info.id, 4)
|
36 |
if ("metadata" in size) and ("total_size" in size["metadata"]):
|
37 |
-
return round(size["metadata"]["total_size"] / bytes_per_param / 1e6)
|
38 |
|
39 |
-
return None
|
|
|
8 |
KNOWN_BYTES_PER_PARAM = {}
|
9 |
|
10 |
|
11 |
+
def get_model_parameters_memory(model_info: ModelInfo):
|
12 |
'''Get the size of the model in million of parameters.'''
|
13 |
try:
|
14 |
safetensors = get_safetensors_metadata(model_info.id)
|
15 |
+
num_parameters = sum(safetensors.parameter_count.values())
|
16 |
+
return round(num_parameters / 1e6), round(num_parameters * 4 / 1024**3, 2)
|
17 |
except Exception as e:
|
18 |
pass
|
19 |
|
|
|
22 |
url = hf_hub_url(model_info.id, filename="pytorch_model.bin")
|
23 |
meta = get_hf_file_metadata(url)
|
24 |
bytes_per_param = KNOWN_BYTES_PER_PARAM.get(model_info.id, 4)
|
25 |
+
return round(meta.size / bytes_per_param / 1e6), round(meta.size / 1024**3, 2)
|
26 |
|
27 |
if "pytorch_model.bin.index.json" in filenames:
|
28 |
index_path = hf_hub_download(model_info.id, filename="pytorch_model.bin.index.json")
|
|
|
35 |
size = json.load(open(index_path))
|
36 |
bytes_per_param = KNOWN_BYTES_PER_PARAM.get(model_info.id, 4)
|
37 |
if ("metadata" in size) and ("total_size" in size["metadata"]):
|
38 |
+
return round(size["metadata"]["total_size"] / bytes_per_param / 1e6), round(size["metadata"]["total_size"] / 1024**3, 2)
|
39 |
|
40 |
+
return None, None
|