Spaces:
Running
Running
draft V0: test with sample input
Browse files- README.md +2 -2
- app.py +163 -148
- crm-results/hf_leaderboard_accuracy.csv +250 -0
- requirements.txt +4 -4
- src/about.py +9 -10
- src/display/css_html_js.py +2 -2
- src/display/utils.py +64 -22
- src/envs.py +6 -3
- src/leaderboard/read_evals.py +29 -30
- src/populate.py +13 -0
- src/submission/check_validity.py +0 -99
- src/submission/submit.py +0 -119
README.md
CHANGED
|
@@ -38,7 +38,7 @@ If you encounter problem on the space, don't hesitate to restart it to remove th
|
|
| 38 |
|
| 39 |
# Code logic for more complex edits
|
| 40 |
|
| 41 |
-
You'll find
|
| 42 |
- the main table' columns names and properties in `src/display/utils.py`
|
| 43 |
- the logic to read all results and request files, then convert them in dataframe lines, in `src/leaderboard/read_evals.py`, and `src/populate.py`
|
| 44 |
-
- teh logic to allow or filter submissions in `src/submission/submit.py` and `src/submission/check_validity.py`
|
|
|
|
| 38 |
|
| 39 |
# Code logic for more complex edits
|
| 40 |
|
| 41 |
+
You'll find
|
| 42 |
- the main table' columns names and properties in `src/display/utils.py`
|
| 43 |
- the logic to read all results and request files, then convert them in dataframe lines, in `src/leaderboard/read_evals.py`, and `src/populate.py`
|
| 44 |
+
- teh logic to allow or filter submissions in `src/submission/submit.py` and `src/submission/check_validity.py`
|
app.py
CHANGED
|
@@ -1,103 +1,58 @@
|
|
| 1 |
-
import subprocess
|
| 2 |
import gradio as gr
|
| 3 |
import pandas as pd
|
| 4 |
|
| 5 |
-
|
| 6 |
-
|
| 7 |
-
# from huggingface_hub import snapshot_download
|
| 8 |
-
|
| 9 |
-
from src.about import (
|
| 10 |
-
# CITATION_BUTTON_LABEL,
|
| 11 |
-
# CITATION_BUTTON_TEXT,
|
| 12 |
-
# EVALUATION_QUEUE_TEXT,
|
| 13 |
INTRODUCTION_TEXT,
|
| 14 |
LLM_BENCHMARKS_TEXT,
|
| 15 |
TITLE,
|
| 16 |
)
|
| 17 |
from src.display.css_html_js import custom_css
|
| 18 |
-
from src.display.utils import (
|
| 19 |
-
BENCHMARK_COLS,
|
| 20 |
COLS,
|
| 21 |
-
EVAL_COLS,
|
| 22 |
-
EVAL_TYPES,
|
| 23 |
-
NUMERIC_INTERVALS,
|
| 24 |
TYPES,
|
| 25 |
AutoEvalColumn,
|
| 26 |
-
ModelType,
|
| 27 |
fields,
|
| 28 |
-
WeightType,
|
| 29 |
-
Precision,
|
| 30 |
)
|
| 31 |
|
| 32 |
# from src.envs import API, EVAL_REQUESTS_PATH, EVAL_RESULTS_PATH, QUEUE_REPO, REPO_ID, RESULTS_REPO, TOKEN
|
| 33 |
-
from src.envs import
|
| 34 |
-
from src.populate import
|
| 35 |
-
from src.submission.submit import add_new_eval
|
| 36 |
-
|
| 37 |
-
|
| 38 |
-
def restart_space():
|
| 39 |
-
API.restart_space(repo_id=REPO_ID)
|
| 40 |
-
|
| 41 |
|
| 42 |
-
|
| 43 |
-
# print(EVAL_REQUESTS_PATH)
|
| 44 |
-
# snapshot_download(
|
| 45 |
-
# repo_id=QUEUE_REPO,
|
| 46 |
-
# local_dir=EVAL_REQUESTS_PATH,
|
| 47 |
-
# repo_type="dataset",
|
| 48 |
-
# tqdm_class=None,
|
| 49 |
-
# etag_timeout=30,
|
| 50 |
-
# token=TOKEN,
|
| 51 |
-
# )
|
| 52 |
-
# except Exception:
|
| 53 |
-
# restart_space()
|
| 54 |
-
# try:
|
| 55 |
-
# print(EVAL_RESULTS_PATH)
|
| 56 |
-
# snapshot_download(
|
| 57 |
-
# repo_id=RESULTS_REPO,
|
| 58 |
-
# local_dir=EVAL_RESULTS_PATH,
|
| 59 |
-
# repo_type="dataset",
|
| 60 |
-
# tqdm_class=None,
|
| 61 |
-
# etag_timeout=30,
|
| 62 |
-
# token=TOKEN,
|
| 63 |
-
# )
|
| 64 |
-
# except Exception:
|
| 65 |
-
# restart_space()
|
| 66 |
|
| 67 |
-
|
| 68 |
-
raw_data, original_df = get_leaderboard_df(EVAL_RESULTS_PATH, EVAL_REQUESTS_PATH, COLS, BENCHMARK_COLS)
|
| 69 |
leaderboard_df = original_df.copy()
|
| 70 |
-
|
| 71 |
-
(
|
| 72 |
-
finished_eval_queue_df,
|
| 73 |
-
running_eval_queue_df,
|
| 74 |
-
pending_eval_queue_df,
|
| 75 |
-
) = get_evaluation_queue_df(EVAL_REQUESTS_PATH, EVAL_COLS)
|
| 76 |
|
| 77 |
|
| 78 |
# Searching and filtering
|
| 79 |
def update_table(
|
| 80 |
hidden_df: pd.DataFrame,
|
| 81 |
columns: list,
|
| 82 |
-
|
| 83 |
-
|
| 84 |
-
|
| 85 |
-
|
| 86 |
-
|
|
|
|
| 87 |
):
|
| 88 |
-
filtered_df = filter_models(hidden_df, type_query, size_query, precision_query, show_deleted)
|
| 89 |
-
filtered_df = filter_queries(query, filtered_df)
|
|
|
|
| 90 |
df = select_columns(filtered_df, columns)
|
| 91 |
return df
|
| 92 |
|
| 93 |
|
| 94 |
-
def
|
| 95 |
-
return df[
|
|
|
|
|
|
|
|
|
|
|
|
|
| 96 |
|
| 97 |
|
| 98 |
def select_columns(df: pd.DataFrame, columns: list) -> pd.DataFrame:
|
| 99 |
always_here_cols = [
|
| 100 |
-
AutoEvalColumn.model_type_symbol.name,
|
| 101 |
AutoEvalColumn.model.name,
|
| 102 |
]
|
| 103 |
# We use COLS to maintain sorting
|
|
@@ -105,44 +60,45 @@ def select_columns(df: pd.DataFrame, columns: list) -> pd.DataFrame:
|
|
| 105 |
return filtered_df
|
| 106 |
|
| 107 |
|
| 108 |
-
def filter_queries(query: str, filtered_df: pd.DataFrame) -> pd.DataFrame:
|
| 109 |
-
|
| 110 |
-
|
| 111 |
-
|
| 112 |
-
|
| 113 |
-
|
| 114 |
-
|
| 115 |
-
|
| 116 |
-
|
| 117 |
-
|
| 118 |
-
|
| 119 |
-
|
| 120 |
-
|
| 121 |
-
|
| 122 |
-
|
| 123 |
|
| 124 |
-
|
| 125 |
|
| 126 |
|
| 127 |
-
def filter_models(
|
| 128 |
-
|
| 129 |
-
) -> pd.DataFrame:
|
| 130 |
-
|
| 131 |
-
|
| 132 |
-
|
| 133 |
-
|
| 134 |
-
|
|
|
|
| 135 |
|
| 136 |
-
|
| 137 |
-
|
| 138 |
-
|
| 139 |
|
| 140 |
-
|
| 141 |
-
|
| 142 |
-
|
| 143 |
-
|
| 144 |
|
| 145 |
-
|
| 146 |
|
| 147 |
|
| 148 |
demo = gr.Blocks(css=custom_css)
|
|
@@ -154,12 +110,12 @@ with demo:
|
|
| 154 |
with gr.TabItem("🏅 LLM Benchmark", elem_id="llm-benchmark-tab-table", id=0):
|
| 155 |
with gr.Row():
|
| 156 |
with gr.Column():
|
| 157 |
-
with gr.Row():
|
| 158 |
-
|
| 159 |
-
|
| 160 |
-
|
| 161 |
-
|
| 162 |
-
|
| 163 |
with gr.Row():
|
| 164 |
shown_columns = gr.CheckboxGroup(
|
| 165 |
choices=[c.name for c in fields(AutoEvalColumn) if not c.hidden and not c.never_hidden],
|
|
@@ -172,32 +128,89 @@ with demo:
|
|
| 172 |
elem_id="column-select",
|
| 173 |
interactive=True,
|
| 174 |
)
|
| 175 |
-
with gr.Row():
|
| 176 |
-
|
| 177 |
-
|
| 178 |
-
|
| 179 |
-
with gr.Column(min_width=320):
|
| 180 |
-
|
| 181 |
-
|
| 182 |
-
|
| 183 |
-
|
| 184 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 185 |
interactive=True,
|
| 186 |
-
elem_id="filter-columns-type",
|
| 187 |
)
|
| 188 |
-
|
| 189 |
-
|
| 190 |
-
choices=[
|
| 191 |
-
value=[
|
|
|
|
|
|
|
| 192 |
interactive=True,
|
| 193 |
-
elem_id="filter-columns-precision",
|
| 194 |
)
|
| 195 |
-
|
| 196 |
-
|
| 197 |
-
choices=list(
|
| 198 |
-
value=list(
|
|
|
|
|
|
|
| 199 |
interactive=True,
|
| 200 |
-
elem_id="filter-columns-size",
|
| 201 |
)
|
| 202 |
|
| 203 |
leaderboard_table = gr.components.Dataframe(
|
|
@@ -216,36 +229,38 @@ with demo:
|
|
| 216 |
datatype=TYPES,
|
| 217 |
visible=False,
|
| 218 |
)
|
| 219 |
-
search_bar.submit(
|
| 220 |
-
|
| 221 |
-
|
| 222 |
-
|
| 223 |
-
|
| 224 |
-
|
| 225 |
-
|
| 226 |
-
|
| 227 |
-
|
| 228 |
-
|
| 229 |
-
|
| 230 |
-
|
| 231 |
-
)
|
| 232 |
for selector in [
|
| 233 |
shown_columns,
|
| 234 |
-
|
| 235 |
-
|
| 236 |
-
|
| 237 |
-
|
|
|
|
| 238 |
]:
|
| 239 |
selector.change(
|
| 240 |
update_table,
|
| 241 |
[
|
| 242 |
hidden_leaderboard_table_for_search,
|
| 243 |
shown_columns,
|
| 244 |
-
|
| 245 |
-
|
| 246 |
-
|
| 247 |
-
|
| 248 |
-
|
|
|
|
| 249 |
],
|
| 250 |
leaderboard_table,
|
| 251 |
queue=True,
|
|
|
|
|
|
|
| 1 |
import gradio as gr
|
| 2 |
import pandas as pd
|
| 3 |
|
| 4 |
+
from src.about import ( # CITATION_BUTTON_LABEL,; CITATION_BUTTON_TEXT,; EVALUATION_QUEUE_TEXT,
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 5 |
INTRODUCTION_TEXT,
|
| 6 |
LLM_BENCHMARKS_TEXT,
|
| 7 |
TITLE,
|
| 8 |
)
|
| 9 |
from src.display.css_html_js import custom_css
|
| 10 |
+
from src.display.utils import ( # EVAL_TYPES,; WeightType,; BENCHMARK_COLS,; EVAL_COLS,; NUMERIC_INTERVALS,; ModelType,; Precision,
|
|
|
|
| 11 |
COLS,
|
|
|
|
|
|
|
|
|
|
| 12 |
TYPES,
|
| 13 |
AutoEvalColumn,
|
|
|
|
| 14 |
fields,
|
|
|
|
|
|
|
| 15 |
)
|
| 16 |
|
| 17 |
# from src.envs import API, EVAL_REQUESTS_PATH, EVAL_RESULTS_PATH, QUEUE_REPO, REPO_ID, RESULTS_REPO, TOKEN
|
| 18 |
+
from src.envs import CRM_RESULTS_PATH
|
| 19 |
+
from src.populate import get_leaderboard_df_crm
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 20 |
|
| 21 |
+
original_df = get_leaderboard_df_crm(CRM_RESULTS_PATH, COLS)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 22 |
|
| 23 |
+
# raw_data, original_df = get_leaderboard_df(EVAL_RESULTS_PATH, EVAL_REQUESTS_PATH, COLS, BENCHMARK_COLS)
|
|
|
|
| 24 |
leaderboard_df = original_df.copy()
|
| 25 |
+
# leaderboard_df = leaderboard_df.style.format({"accuracy_metric_average": "{0:.2f}"})
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 26 |
|
| 27 |
|
| 28 |
# Searching and filtering
|
| 29 |
def update_table(
|
| 30 |
hidden_df: pd.DataFrame,
|
| 31 |
columns: list,
|
| 32 |
+
accuracy_method_query: str,
|
| 33 |
+
# type_query: list,
|
| 34 |
+
# precision_query: str,
|
| 35 |
+
# size_query: list,
|
| 36 |
+
# show_deleted: bool,
|
| 37 |
+
# query: str,
|
| 38 |
):
|
| 39 |
+
# filtered_df = filter_models(hidden_df, type_query, size_query, precision_query, show_deleted)
|
| 40 |
+
# filtered_df = filter_queries(query, filtered_df)
|
| 41 |
+
filtered_df = filter_accuracy_method_func(hidden_df, accuracy_method_query)
|
| 42 |
df = select_columns(filtered_df, columns)
|
| 43 |
return df
|
| 44 |
|
| 45 |
|
| 46 |
+
def filter_accuracy_method_func(df: pd.DataFrame, accuracy_method_query: str) -> pd.DataFrame:
|
| 47 |
+
return df[df["Accuracy Method"] == accuracy_method_query]
|
| 48 |
+
|
| 49 |
+
|
| 50 |
+
# def search_table(df: pd.DataFrame, query: str) -> pd.DataFrame:
|
| 51 |
+
# return df[(df[AutoEvalColumn.model.name].str.contains(query, case=False))]
|
| 52 |
|
| 53 |
|
| 54 |
def select_columns(df: pd.DataFrame, columns: list) -> pd.DataFrame:
|
| 55 |
always_here_cols = [
|
|
|
|
| 56 |
AutoEvalColumn.model.name,
|
| 57 |
]
|
| 58 |
# We use COLS to maintain sorting
|
|
|
|
| 60 |
return filtered_df
|
| 61 |
|
| 62 |
|
| 63 |
+
# def filter_queries(query: str, filtered_df: pd.DataFrame) -> pd.DataFrame:
|
| 64 |
+
# final_df = []
|
| 65 |
+
# if query != "":
|
| 66 |
+
# queries = [q.strip() for q in query.split(";")]
|
| 67 |
+
# for _q in queries:
|
| 68 |
+
# _q = _q.strip()
|
| 69 |
+
# if _q != "":
|
| 70 |
+
# temp_filtered_df = search_table(filtered_df, _q)
|
| 71 |
+
# if len(temp_filtered_df) > 0:
|
| 72 |
+
# final_df.append(temp_filtered_df)
|
| 73 |
+
# if len(final_df) > 0:
|
| 74 |
+
# filtered_df = pd.concat(final_df)
|
| 75 |
+
# filtered_df = filtered_df.drop_duplicates(
|
| 76 |
+
# subset=[AutoEvalColumn.model.name, AutoEvalColumn.precision.name, AutoEvalColumn.revision.name]
|
| 77 |
+
# )
|
| 78 |
|
| 79 |
+
# return filtered_df
|
| 80 |
|
| 81 |
|
| 82 |
+
# def filter_models(
|
| 83 |
+
# df: pd.DataFrame, type_query: list, size_query: list, precision_query: list, show_deleted: bool
|
| 84 |
+
# ) -> pd.DataFrame:
|
| 85 |
+
# # Show all models
|
| 86 |
+
# filtered_df = df
|
| 87 |
+
# # if show_deleted:
|
| 88 |
+
# # filtered_df = df
|
| 89 |
+
# # else: # Show only still on the hub models
|
| 90 |
+
# # filtered_df = df[df[AutoEvalColumn.still_on_hub.name] is True]
|
| 91 |
|
| 92 |
+
# type_emoji = [t[0] for t in type_query]
|
| 93 |
+
# filtered_df = filtered_df.loc[df[AutoEvalColumn.model_type_symbol.name].isin(type_emoji)]
|
| 94 |
+
# filtered_df = filtered_df.loc[df[AutoEvalColumn.precision.name].isin(precision_query + ["None"])]
|
| 95 |
|
| 96 |
+
# numeric_interval = pd.IntervalIndex(sorted([NUMERIC_INTERVALS[s] for s in size_query]))
|
| 97 |
+
# params_column = pd.to_numeric(df[AutoEvalColumn.params.name], errors="coerce")
|
| 98 |
+
# mask = params_column.apply(lambda x: any(numeric_interval.contains(x)))
|
| 99 |
+
# filtered_df = filtered_df.loc[mask]
|
| 100 |
|
| 101 |
+
# return filtered_df
|
| 102 |
|
| 103 |
|
| 104 |
demo = gr.Blocks(css=custom_css)
|
|
|
|
| 110 |
with gr.TabItem("🏅 LLM Benchmark", elem_id="llm-benchmark-tab-table", id=0):
|
| 111 |
with gr.Row():
|
| 112 |
with gr.Column():
|
| 113 |
+
# with gr.Row():
|
| 114 |
+
# search_bar = gr.Textbox(
|
| 115 |
+
# placeholder=" 🔍 Search for your model (separate multiple queries with `;`) and press ENTER...",
|
| 116 |
+
# show_label=False,
|
| 117 |
+
# elem_id="search-bar",
|
| 118 |
+
# )
|
| 119 |
with gr.Row():
|
| 120 |
shown_columns = gr.CheckboxGroup(
|
| 121 |
choices=[c.name for c in fields(AutoEvalColumn) if not c.hidden and not c.never_hidden],
|
|
|
|
| 128 |
elem_id="column-select",
|
| 129 |
interactive=True,
|
| 130 |
)
|
| 131 |
+
# with gr.Row():
|
| 132 |
+
# deleted_models_visibility = gr.Checkbox(
|
| 133 |
+
# value=False, label="Show gated/private/deleted models", interactive=True
|
| 134 |
+
# )
|
| 135 |
+
# with gr.Column(min_width=320):
|
| 136 |
+
# # with gr.Box(elem_id="box-filter"):
|
| 137 |
+
# filter_columns_type = gr.CheckboxGroup(
|
| 138 |
+
# label="Model types",
|
| 139 |
+
# choices=[t.to_str() for t in ModelType],
|
| 140 |
+
# value=[t.to_str() for t in ModelType],
|
| 141 |
+
# interactive=True,
|
| 142 |
+
# elem_id="filter-columns-type",
|
| 143 |
+
# )
|
| 144 |
+
# filter_columns_precision = gr.CheckboxGroup(
|
| 145 |
+
# label="Precision",
|
| 146 |
+
# choices=[i.value.name for i in Precision],
|
| 147 |
+
# value=[i.value.name for i in Precision],
|
| 148 |
+
# interactive=True,
|
| 149 |
+
# elem_id="filter-columns-precision",
|
| 150 |
+
# )
|
| 151 |
+
# filter_columns_size = gr.CheckboxGroup(
|
| 152 |
+
# label="Model sizes (in billions of parameters)",
|
| 153 |
+
# choices=list(NUMERIC_INTERVALS.keys()),
|
| 154 |
+
# value=list(NUMERIC_INTERVALS.keys()),
|
| 155 |
+
# interactive=True,
|
| 156 |
+
# elem_id="filter-columns-size",
|
| 157 |
+
# )
|
| 158 |
+
with gr.Row():
|
| 159 |
+
with gr.Column():
|
| 160 |
+
filter_use_case_type = gr.CheckboxGroup(
|
| 161 |
+
choices=["Summary", "Generation"],
|
| 162 |
+
value=["Summary", "Generation"],
|
| 163 |
+
label="Use Case Type",
|
| 164 |
+
info="",
|
| 165 |
+
interactive=True,
|
| 166 |
+
)
|
| 167 |
+
with gr.Column():
|
| 168 |
+
filter_use_case = gr.Dropdown(
|
| 169 |
+
choices=list(original_df["Use Case Name"].unique()),
|
| 170 |
+
# value=list(original_df["Use Case Name"].unique()),
|
| 171 |
+
label="Use Case",
|
| 172 |
+
info="",
|
| 173 |
+
multiselect=True,
|
| 174 |
+
interactive=True,
|
| 175 |
+
)
|
| 176 |
+
with gr.Column():
|
| 177 |
+
filter_metric_area = gr.CheckboxGroup(
|
| 178 |
+
choices=["Accuracy", "Speed (Latency)", "Trust & Safety", "Cost"],
|
| 179 |
+
value=["Accuracy", "Speed (Latency)", "Trust & Safety", "Cost"],
|
| 180 |
+
label="Metric Area",
|
| 181 |
+
info="",
|
| 182 |
+
interactive=True,
|
| 183 |
+
)
|
| 184 |
+
with gr.Column():
|
| 185 |
+
filter_accuracy_method = gr.Radio(
|
| 186 |
+
choices=["Manual", "Auto"],
|
| 187 |
+
value="Manual",
|
| 188 |
+
label="Accuracy Method",
|
| 189 |
+
info="accuracy method",
|
| 190 |
+
interactive=True,
|
| 191 |
+
)
|
| 192 |
+
with gr.Column():
|
| 193 |
+
filter_accuracy_threshold = gr.Number(
|
| 194 |
+
value="3",
|
| 195 |
+
label="Accuracy Threshold",
|
| 196 |
+
info="",
|
| 197 |
interactive=True,
|
|
|
|
| 198 |
)
|
| 199 |
+
with gr.Column():
|
| 200 |
+
filter_llm = gr.CheckboxGroup(
|
| 201 |
+
choices=list(original_df["Model Name"].unique()),
|
| 202 |
+
value=list(original_df["Model Name"].unique()),
|
| 203 |
+
label="Model Name",
|
| 204 |
+
info="",
|
| 205 |
interactive=True,
|
|
|
|
| 206 |
)
|
| 207 |
+
with gr.Column():
|
| 208 |
+
filter_llm_provider = gr.CheckboxGroup(
|
| 209 |
+
choices=list(original_df["LLM Provider"].unique()),
|
| 210 |
+
value=list(original_df["LLM Provider"].unique()),
|
| 211 |
+
label="LLM Provider",
|
| 212 |
+
info="",
|
| 213 |
interactive=True,
|
|
|
|
| 214 |
)
|
| 215 |
|
| 216 |
leaderboard_table = gr.components.Dataframe(
|
|
|
|
| 229 |
datatype=TYPES,
|
| 230 |
visible=False,
|
| 231 |
)
|
| 232 |
+
# search_bar.submit(
|
| 233 |
+
# update_table,
|
| 234 |
+
# [
|
| 235 |
+
# hidden_leaderboard_table_for_search,
|
| 236 |
+
# shown_columns,
|
| 237 |
+
# filter_columns_type,
|
| 238 |
+
# filter_columns_precision,
|
| 239 |
+
# filter_columns_size,
|
| 240 |
+
# deleted_models_visibility,
|
| 241 |
+
# search_bar,
|
| 242 |
+
# ],
|
| 243 |
+
# leaderboard_table,
|
| 244 |
+
# )
|
| 245 |
for selector in [
|
| 246 |
shown_columns,
|
| 247 |
+
filter_accuracy_method,
|
| 248 |
+
# filter_columns_type,
|
| 249 |
+
# filter_columns_precision,
|
| 250 |
+
# filter_columns_size,
|
| 251 |
+
# deleted_models_visibility,
|
| 252 |
]:
|
| 253 |
selector.change(
|
| 254 |
update_table,
|
| 255 |
[
|
| 256 |
hidden_leaderboard_table_for_search,
|
| 257 |
shown_columns,
|
| 258 |
+
filter_accuracy_method,
|
| 259 |
+
# filter_columns_type,
|
| 260 |
+
# filter_columns_precision,
|
| 261 |
+
# filter_columns_size,
|
| 262 |
+
# deleted_models_visibility,
|
| 263 |
+
# search_bar,
|
| 264 |
],
|
| 265 |
leaderboard_table,
|
| 266 |
queue=True,
|
crm-results/hf_leaderboard_accuracy.csv
ADDED
|
@@ -0,0 +1,250 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
Use Case Name,Use Case Type,Accuracy Method,Model Name,Model Version,LLM Provider,Instruction Following,Completeness,Conciseness,Factuality,Average
|
| 2 |
+
Service: Conversation summary,Summary,Auto,Gemini Pro 1,Gemini Pro 1,Google,3.9834791059280854,3.9193391642371234,3.847424684159378,3.871720116618076,3.9054907677356656
|
| 3 |
+
Service: Conversation summary,Summary,Auto,GPT4-o,GPT4-o,OpenAI,3.9961127308066082,3.9844509232264333,3.9300291545189503,3.9669582118561713,3.9693877551020407
|
| 4 |
+
Service: Conversation summary,Summary,Auto,AI21 Jamba-Instruct,AI21 (jamba-instruct-preview),AI21,3.998056365403304,3.9737609329446064,3.8104956268221573,3.9310009718172982,3.9283284742468414
|
| 5 |
+
Service: Conversation summary,Summary,Auto,GPT 4 Turbo,gpt-4-0613,OpenAI,4.0,3.9805636540330416,3.9067055393586005,3.9504373177842567,3.9594266277939747
|
| 6 |
+
Service: Conversation summary,Summary,Auto,SF-TextBase 70B,TextBase-70B (Llama FT),Salesforce,3.998056365403304,3.992225461613217,3.881438289601555,3.9591836734693877,3.957725947521866
|
| 7 |
+
Service: Conversation summary,Summary,Auto,Claude 3 Haiku,Claude 3 Haiku,Anthropic,3.999028182701652,3.993197278911565,3.6997084548104957,3.9591836734693877,3.912779397473275
|
| 8 |
+
Service: Conversation summary,Summary,Auto,Cohere Command R+,cohere.cmd-R+,Cohere AI,4.0,3.9951409135082603,3.8328474246841595,3.954324586977648,3.945578231292517
|
| 9 |
+
Service: Conversation summary,Summary,Auto,XGen 22B,XGen 22B (1228),Salesforce,3.9941690962099123,3.836734693877551,3.9047619047619047,3.880466472303207,3.9040330417881437
|
| 10 |
+
Service: Conversation summary,Summary,Auto,SF-TextBase 7B,TextBase-7B (Mistral FT),Salesforce,3.991253644314869,3.9407191448007777,3.7862001943634596,3.8746355685131197,3.898202137998057
|
| 11 |
+
Service: Conversation summary,Summary,Auto,LLaMA 3 70B,Meta-Llama-3-70B-Instruct,Meta,3.999028182701652,3.990281827016521,3.9280855199222544,3.9591836734693877,3.9691448007774537
|
| 12 |
+
Service: Conversation summary,Summary,Auto,Cohere Command Text,cohere.command-text-v14,Cohere AI,3.938775510204082,3.938775510204082,3.6530612244897958,3.7560738581146746,3.8216715257531586
|
| 13 |
+
Service: Conversation summary,Summary,Auto,GPT 3.5 Turbo,gpt-3.5-turbo,OpenAI,3.9961127308066082,3.935860058309038,3.9834791059280854,3.9310009718172982,3.961613216715257
|
| 14 |
+
Service: Conversation summary,Summary,Auto,Claude 3 Opus,Claude 3 (Opus),Anthropic,3.998056365403304,3.989310009718173,3.7657920310981536,3.9640427599611274,3.9293002915451893
|
| 15 |
+
Service: Conversation summary,Summary,Auto,Gemini Pro 1.5,Gemini Pro 1.5,Google,3.9961127308066082,3.9727891156462585,3.943634596695821,3.9494655004859087,3.9655004859086493
|
| 16 |
+
Service: Conversation summary,Summary,Auto,LLaMA 3 8B,Meta-Llama-3-8B-Instruct,Meta,4.0,3.9961127308066082,3.565597667638484,3.922254616132167,3.8709912536443145
|
| 17 |
+
Service: Conversation summary,Summary,Auto,Mistral 7B,Mistral-7B-Instruct-v0.1,Mistral,3.927113702623907,3.924198250728863,3.327502429543246,3.7764820213799806,3.738824101068999
|
| 18 |
+
Service: Conversation summary,Summary,Auto,Mixtral 8x7B,Mixtral-8x7B-v0.1,Mistral,3.987366375121477,3.9825072886297375,3.3751214771622933,3.9115646258503403,3.814139941690962
|
| 19 |
+
Service: Conversation summary,Summary,Auto,SF-TextSum,Summarization model 7B for Service (Mistral FT),Salesforce,3.997084548104956,3.9280855199222544,3.7755102040816326,3.9037900874635567,3.9011175898931
|
| 20 |
+
Sales: Email Generation,Generation,Auto,Mistral 7B,Mistral-7B-Instruct-v0.1,Mistral,1.9811320754716981,2.018867924528302,1.8867924528301887,2.2452830188679247,2.0330188679245285
|
| 21 |
+
Sales: Email Generation,Generation,Auto,Gemini Pro 1,Gemini Pro 1,Google,3.207547169811321,3.0377358490566038,3.0754716981132075,3.188679245283019,3.1273584905660377
|
| 22 |
+
Sales: Email Generation,Generation,Auto,LLaMA 3 8B,Meta-Llama-3-8B-Instruct,Meta,3.7358490566037736,3.0754716981132075,3.5849056603773586,3.660377358490566,3.5141509433962264
|
| 23 |
+
Sales: Email Generation,Generation,Auto,SF-TextSum,Summarization model 7B for Service (Mistral FT),Salesforce,3.4150943396226414,2.9245283018867925,3.5283018867924527,3.4716981132075473,3.334905660377359
|
| 24 |
+
Sales: Email Generation,Generation,Auto,Claude 3 Haiku,Claude 3 Haiku,Anthropic,2.5283018867924527,2.811320754716981,2.5283018867924527,3.0377358490566038,2.7264150943396226
|
| 25 |
+
Sales: Email Generation,Generation,Auto,Cohere Command R+,cohere.cmd-R+,Cohere AI,3.6792452830188678,3.018867924528302,3.547169811320755,3.7358490566037736,3.4952830188679247
|
| 26 |
+
Sales: Email Generation,Generation,Auto,Cohere Command Text,cohere.command-text-v14,Cohere AI,2.358490566037736,2.452830188679245,2.2641509433962264,2.7547169811320753,2.4575471698113205
|
| 27 |
+
Sales: Email Generation,Generation,Auto,XGen 22B,XGen 22B (1228),Salesforce,2.339622641509434,2.2830188679245285,2.3962264150943398,2.509433962264151,2.3820754716981134
|
| 28 |
+
Sales: Email Generation,Generation,Auto,SF-TextBase 70B,TextBase-70B (Llama FT),Salesforce,3.849056603773585,3.018867924528302,3.69811320754717,3.811320754716981,3.5943396226415096
|
| 29 |
+
Sales: Email Generation,Generation,Auto,LLaMA 3 70B,Meta-Llama-3-70B-Instruct,Meta,3.849056603773585,3.0,3.7358490566037736,3.811320754716981,3.599056603773585
|
| 30 |
+
Sales: Email Generation,Generation,Auto,Claude 3 Opus,Claude 3 (Opus),Anthropic,3.056603773584906,3.0,3.509433962264151,3.452830188679245,3.2547169811320753
|
| 31 |
+
Sales: Email Generation,Generation,Auto,GPT4-o,GPT4-o,OpenAI,3.830188679245283,3.0377358490566038,3.4716981132075473,3.792452830188679,3.533018867924528
|
| 32 |
+
Sales: Email Generation,Generation,Auto,Mixtral 8x7B,Mixtral-8x7B-v0.1,Mistral,2.9245283018867925,2.69811320754717,2.7547169811320753,3.0377358490566038,2.8537735849056607
|
| 33 |
+
Sales: Email Generation,Generation,Auto,Gemini Pro 1.5,Gemini Pro 1.5,Google,3.7735849056603774,3.0,3.69811320754717,3.6792452830188678,3.537735849056604
|
| 34 |
+
Sales: Email Generation,Generation,Auto,GPT 3.5 Turbo,gpt-3.5-turbo,OpenAI,3.056603773584906,2.69811320754717,3.056603773584906,3.4339622641509435,3.061320754716981
|
| 35 |
+
Sales: Email Generation,Generation,Auto,GPT 4 Turbo,gpt-4-0613,OpenAI,3.547169811320755,3.0,3.30188679245283,3.7358490566037736,3.3962264150943398
|
| 36 |
+
Sales: Email Generation,Generation,Auto,AI21 Jamba-Instruct,AI21 (jamba-instruct-preview),AI21,2.169811320754717,2.490566037735849,2.150943396226415,2.6226415094339623,2.3584905660377355
|
| 37 |
+
Sales: Email Generation,Generation,Auto,SF-TextBase 7B,TextBase-7B (Mistral FT),Salesforce,3.150943396226415,2.8867924528301887,3.150943396226415,3.4716981132075473,3.165094339622642
|
| 38 |
+
Service: Reply Recommendations,Generation,Auto,Mistral 7B,Mistral-7B-Instruct-v0.1,Mistral,3.3333333333333335,2.7222222222222223,2.9444444444444446,2.7777777777777777,2.9444444444444446
|
| 39 |
+
Service: Reply Recommendations,Generation,Auto,Gemini Pro 1,Gemini Pro 1,Google,3.7222222222222223,3.5,2.611111111111111,3.1666666666666665,3.25
|
| 40 |
+
Service: Reply Recommendations,Generation,Auto,GPT4-o,GPT4-o,OpenAI,3.9444444444444446,3.111111111111111,3.8333333333333335,3.388888888888889,3.5694444444444446
|
| 41 |
+
Service: Reply Recommendations,Generation,Auto,SF-TextBase 70B,TextBase-70B (Llama FT),Salesforce,3.9444444444444446,3.3333333333333335,3.6666666666666665,3.2222222222222223,3.541666666666667
|
| 42 |
+
Service: Reply Recommendations,Generation,Auto,LLaMA 3 8B,Meta-Llama-3-8B-Instruct,Meta,3.9444444444444446,3.111111111111111,3.5555555555555554,3.111111111111111,3.4305555555555554
|
| 43 |
+
Service: Reply Recommendations,Generation,Auto,Claude 3 Haiku,Claude 3 Haiku,Anthropic,3.7777777777777777,3.1666666666666665,3.2777777777777777,3.111111111111111,3.333333333333333
|
| 44 |
+
Service: Reply Recommendations,Generation,Auto,Cohere Command R+,cohere.cmd-R+,Cohere AI,3.611111111111111,3.1666666666666665,2.888888888888889,3.0,3.1666666666666665
|
| 45 |
+
Service: Reply Recommendations,Generation,Auto,Cohere Command Text,cohere.command-text-v14,Cohere AI,3.2777777777777777,3.1666666666666665,2.5555555555555554,3.0555555555555554,3.013888888888889
|
| 46 |
+
Service: Reply Recommendations,Generation,Auto,SF-TextBase 7B,TextBase-7B (Mistral FT),Salesforce,3.5555555555555554,2.8333333333333335,3.111111111111111,3.2777777777777777,3.1944444444444446
|
| 47 |
+
Service: Reply Recommendations,Generation,Auto,XGen 22B,XGen 22B (1228),Salesforce,3.7222222222222223,3.111111111111111,3.2777777777777777,3.0,3.2777777777777777
|
| 48 |
+
Service: Reply Recommendations,Generation,Auto,LLaMA 3 70B,Meta-Llama-3-70B-Instruct,Meta,4.0,3.2777777777777777,3.888888888888889,3.1666666666666665,3.583333333333333
|
| 49 |
+
Service: Reply Recommendations,Generation,Auto,Claude 3 Opus,Claude 3 (Opus),Anthropic,4.0,3.5555555555555554,3.388888888888889,3.3333333333333335,3.5694444444444446
|
| 50 |
+
Service: Reply Recommendations,Generation,Auto,Mixtral 8x7B,Mixtral-8x7B-v0.1,Mistral,3.888888888888889,3.1666666666666665,3.611111111111111,3.2222222222222223,3.4722222222222223
|
| 51 |
+
Service: Reply Recommendations,Generation,Auto,Gemini Pro 1.5,Gemini Pro 1.5,Google,3.7777777777777777,2.888888888888889,3.8333333333333335,3.2777777777777777,3.4444444444444446
|
| 52 |
+
Service: Reply Recommendations,Generation,Auto,GPT 3.5 Turbo,gpt-3.5-turbo,OpenAI,3.888888888888889,3.0555555555555554,3.7777777777777777,3.1666666666666665,3.472222222222222
|
| 53 |
+
Service: Reply Recommendations,Generation,Auto,GPT 4 Turbo,gpt-4-0613,OpenAI,3.9444444444444446,3.1666666666666665,3.5,3.2222222222222223,3.458333333333333
|
| 54 |
+
Service: Reply Recommendations,Generation,Auto,AI21 Jamba-Instruct,AI21 (jamba-instruct-preview),AI21,3.8333333333333335,3.2222222222222223,3.2777777777777777,3.0,3.333333333333333
|
| 55 |
+
Service: Reply Recommendations,Generation,Auto,SF-TextSum,Summarization model 7B for Service (Mistral FT),Salesforce,3.888888888888889,3.1666666666666665,3.2777777777777777,3.2777777777777777,3.4027777777777777
|
| 56 |
+
Sales & Service: Update CRM Info,Generation,Auto,Gemini Pro 1,Gemini Pro 1,Google,3.4,3.4242424242424243,3.4451219512195124,3.466666666666667,3.434007760532151
|
| 57 |
+
Sales & Service: Update CRM Info,Generation,Auto,GPT4-o,GPT4-o,OpenAI,3.8848484848484848,3.6484848484848484,3.915151515151515,3.909090909090909,3.83939393939394
|
| 58 |
+
Sales & Service: Update CRM Info,Generation,Auto,AI21 Jamba-Instruct,AI21 (jamba-instruct-preview),AI21,3.581818181818182,3.533333333333333,3.709090909090909,3.6787878787878787,3.625757575757576
|
| 59 |
+
Sales & Service: Update CRM Info,Generation,Auto,GPT 4 Turbo,gpt-4-0613,OpenAI,3.709090909090909,3.6363636363636362,3.806060606060606,3.7333333333333334,3.7212121212121216
|
| 60 |
+
Sales & Service: Update CRM Info,Generation,Auto,SF-TextBase 70B,TextBase-70B (Llama FT),Salesforce,3.824242424242424,3.775757575757576,3.83030303030303,3.806060606060606,3.809090909090909
|
| 61 |
+
Sales & Service: Update CRM Info,Generation,Auto,Claude 3 Haiku,Claude 3 Haiku,Anthropic,3.618181818181818,3.624242424242424,3.7151515151515153,3.6666666666666665,3.656060606060606
|
| 62 |
+
Sales & Service: Update CRM Info,Generation,Auto,Cohere Command R+,cohere.cmd-R+,Cohere AI,3.7636363636363637,3.624242424242424,3.757575757575758,3.812121212121212,3.7393939393939393
|
| 63 |
+
Sales & Service: Update CRM Info,Generation,Auto,XGen 22B,XGen 22B (1228),Salesforce,3.7333333333333334,3.6787878787878787,3.7818181818181817,3.7454545454545456,3.734848484848485
|
| 64 |
+
Sales & Service: Update CRM Info,Generation,Auto,SF-TextBase 7B,TextBase-7B (Mistral FT),Salesforce,2.9696969696969697,3.0545454545454547,2.8,3.096969696969697,2.9803030303030305
|
| 65 |
+
Sales & Service: Update CRM Info,Generation,Auto,LLaMA 3 70B,Meta-Llama-3-70B-Instruct,Meta,3.806060606060606,3.7515151515151515,3.8181818181818183,3.812121212121212,3.796969696969697
|
| 66 |
+
Sales & Service: Update CRM Info,Generation,Auto,Cohere Command Text,cohere.command-text-v14,Cohere AI,2.909090909090909,2.896969696969697,2.8666666666666667,2.903030303030303,2.893939393939394
|
| 67 |
+
Sales & Service: Update CRM Info,Generation,Auto,GPT 3.5 Turbo,gpt-3.5-turbo,OpenAI,3.703030303030303,3.6606060606060606,3.7515151515151515,3.7515151515151515,3.716666666666667
|
| 68 |
+
Sales & Service: Update CRM Info,Generation,Auto,Claude 3 Opus,Claude 3 (Opus),Anthropic,3.7454545454545456,3.606060606060606,3.812121212121212,3.7636363636363637,3.731818181818182
|
| 69 |
+
Sales & Service: Update CRM Info,Generation,Auto,Gemini Pro 1.5,Gemini Pro 1.5,Google,3.478787878787879,3.3575757575757574,3.5393939393939395,3.503030303030303,3.4696969696969697
|
| 70 |
+
Sales & Service: Update CRM Info,Generation,Auto,LLaMA 3 8B,Meta-Llama-3-8B-Instruct,Meta,2.787878787878788,3.242424242424242,2.3333333333333335,3.3575757575757574,2.93030303030303
|
| 71 |
+
Sales & Service: Update CRM Info,Generation,Auto,Mistral 7B,Mistral-7B-Instruct-v0.1,Mistral,1.6606060606060606,1.6848484848484848,1.6424242424242423,1.6787878787878787,1.6666666666666667
|
| 72 |
+
Sales & Service: Update CRM Info,Generation,Auto,Mixtral 8x7B,Mixtral-8x7B-v0.1,Mistral,3.6666666666666665,3.6363636363636362,3.690909090909091,3.690909090909091,3.6712121212121214
|
| 73 |
+
Sales & Service: Update CRM Info,Generation,Auto,SF-TextSum,Summarization model 7B for Service (Mistral FT),Salesforce,2.981818181818182,3.139393939393939,3.012121212121212,3.1575757575757577,3.0727272727272728
|
| 74 |
+
Service: Live Chat Summary,Summary,Auto,Gemini Pro 1,Gemini Pro 1,Google,3.542,3.479,3.303,3.381,3.42625
|
| 75 |
+
Service: Live Chat Summary,Summary,Auto,GPT4-o,GPT4-o,OpenAI,3.965,3.436,3.946,3.641,3.747
|
| 76 |
+
Service: Live Chat Summary,Summary,Auto,AI21 Jamba-Instruct,AI21 (jamba-instruct-preview),AI21,3.715,3.331,3.714,3.6236236236236237,3.595905905905906
|
| 77 |
+
Service: Live Chat Summary,Summary,Auto,SF-TextBase 70B,TextBase-70B (Llama FT),Salesforce,3.882,3.4004004004004003,3.904,3.718,3.7261001001001
|
| 78 |
+
Service: Live Chat Summary,Summary,Auto,Claude 3 Haiku,Claude 3 Haiku,Anthropic,3.927,3.566,3.607,3.588,3.6720000000000006
|
| 79 |
+
Service: Live Chat Summary,Summary,Auto,Cohere Command R+,cohere.cmd-R+,Cohere AI,3.945,3.725,3.666,3.453,3.69725
|
| 80 |
+
Service: Live Chat Summary,Summary,Auto,XGen 22B,XGen 22B (1228),Salesforce,3.703,3.247,3.689,3.605,3.561
|
| 81 |
+
Service: Live Chat Summary,Summary,Auto,SF-TextBase 7B,TextBase-7B (Mistral FT),Salesforce,3.694,3.158,3.75,3.593,3.54875
|
| 82 |
+
Service: Live Chat Summary,Summary,Auto,LLaMA 3 70B,Meta-Llama-3-70B-Instruct,Meta,3.903,3.309,3.947,3.765,3.731
|
| 83 |
+
Service: Live Chat Summary,Summary,Auto,Cohere Command Text,cohere.command-text-v14,Cohere AI,3.744,3.497,3.533,3.502,3.569
|
| 84 |
+
Service: Live Chat Summary,Summary,Auto,GPT 4 Turbo,gpt-4-0613,OpenAI,3.992,3.822,3.914,3.587,3.82875
|
| 85 |
+
Service: Live Chat Summary,Summary,Auto,GPT 3.5 Turbo,gpt-3.5-turbo,OpenAI,3.835,3.164164164164164,3.891,3.717,3.651791041041041
|
| 86 |
+
Service: Live Chat Summary,Summary,Auto,Claude 3 Opus,Claude 3 (Opus),Anthropic,3.862,3.492,3.864,3.574,3.698
|
| 87 |
+
Service: Live Chat Summary,Summary,Auto,Gemini Pro 1.5,Gemini Pro 1.5,Google,3.724,3.635,3.567,3.396,3.5805
|
| 88 |
+
Service: Live Chat Summary,Summary,Auto,LLaMA 3 8B,Meta-Llama-3-8B-Instruct,Meta,3.93,3.7,3.772,3.681,3.7707500000000005
|
| 89 |
+
Service: Live Chat Summary,Summary,Auto,Mistral 7B,Mistral-7B-Instruct-v0.1,Mistral,3.942,3.353,3.831,3.492,3.6544999999999996
|
| 90 |
+
Service: Live Chat Summary,Summary,Auto,Mixtral 8x7B,Mixtral-8x7B-v0.1,Mistral,3.866,3.379,3.846,3.609,3.6750000000000003
|
| 91 |
+
Service: Live Chat Summary,Summary,Auto,SF-TextSum,Summarization model 7B for Service (Mistral FT),Salesforce,3.595,3.129129129129129,3.709,3.504,3.4842822822822823
|
| 92 |
+
Service: Email Summary,Summary,Auto,Gemini Pro 1,Gemini Pro 1,Google,3.7755102040816326,3.7857142857142856,3.4285714285714284,3.561224489795918,3.6377551020408165
|
| 93 |
+
Service: Email Summary,Summary,Auto,GPT4-o,GPT4-o,OpenAI,3.9381443298969074,3.9587628865979383,3.8762886597938144,3.752577319587629,3.8814432989690726
|
| 94 |
+
Service: Email Summary,Summary,Auto,AI21 Jamba-Instruct,AI21 (jamba-instruct-preview),AI21,3.6122448979591835,3.5306122448979593,3.4285714285714284,3.377551020408163,3.4872448979591835
|
| 95 |
+
Service: Email Summary,Summary,Auto,SF-TextBase 70B,TextBase-70B (Llama FT),Salesforce,3.989795918367347,3.979591836734694,3.9693877551020407,3.673469387755102,3.9030612244897958
|
| 96 |
+
Service: Email Summary,Summary,Auto,Claude 3 Haiku,Claude 3 Haiku,Anthropic,3.979591836734694,3.9591836734693877,3.673469387755102,3.857142857142857,3.86734693877551
|
| 97 |
+
Service: Email Summary,Summary,Auto,Cohere Command R+,cohere.cmd-R+,Cohere AI,4.0,4.0,3.857142857142857,3.693877551020408,3.8877551020408165
|
| 98 |
+
Service: Email Summary,Summary,Auto,XGen 22B,XGen 22B (1228),Salesforce,3.5670103092783507,3.268041237113402,3.5463917525773194,3.288659793814433,3.4175257731958766
|
| 99 |
+
Service: Email Summary,Summary,Auto,SF-TextBase 7B,TextBase-7B (Mistral FT),Salesforce,3.7755102040816326,3.8979591836734695,3.5816326530612246,3.479591836734694,3.683673469387755
|
| 100 |
+
Service: Email Summary,Summary,Auto,LLaMA 3 70B,Meta-Llama-3-70B-Instruct,Meta,4.0,3.989795918367347,3.979591836734694,3.622448979591837,3.8979591836734695
|
| 101 |
+
Service: Email Summary,Summary,Auto,Cohere Command Text,cohere.command-text-v14,Cohere AI,3.9591836734693877,3.836734693877551,3.7448979591836733,3.3877551020408165,3.732142857142857
|
| 102 |
+
Service: Email Summary,Summary,Auto,GPT 4 Turbo,gpt-4-0613,OpenAI,3.989795918367347,4.0,3.8469387755102042,3.795918367346939,3.908163265306123
|
| 103 |
+
Service: Email Summary,Summary,Auto,GPT 3.5 Turbo,gpt-3.5-turbo,OpenAI,3.989795918367347,3.86734693877551,3.9693877551020407,3.5918367346938775,3.854591836734694
|
| 104 |
+
Service: Email Summary,Summary,Auto,Claude 3 Opus,Claude 3 (Opus),Anthropic,4.0,3.979591836734694,3.8469387755102042,3.795918367346939,3.9056122448979593
|
| 105 |
+
Service: Email Summary,Summary,Auto,Gemini Pro 1.5,Gemini Pro 1.5,Google,3.989795918367347,3.9183673469387754,3.938775510204082,3.5510204081632653,3.849489795918367
|
| 106 |
+
Service: Email Summary,Summary,Auto,LLaMA 3 8B,Meta-Llama-3-8B-Instruct,Meta,4.0,3.979591836734694,3.86734693877551,3.693877551020408,3.885204081632653
|
| 107 |
+
Service: Email Summary,Summary,Auto,Mistral 7B,Mistral-7B-Instruct-v0.1,Mistral,3.8877551020408165,3.8979591836734695,3.520408163265306,3.642857142857143,3.737244897959184
|
| 108 |
+
Service: Email Summary,Summary,Auto,Mixtral 8x7B,Mixtral-8x7B-v0.1,Mistral,3.979591836734694,3.9591836734693877,3.7346938775510203,3.673469387755102,3.836734693877551
|
| 109 |
+
Service: Email Summary,Summary,Auto,SF-TextSum,Summarization model 7B for Service (Mistral FT),Salesforce,3.377551020408163,3.6530612244897958,3.36734693877551,3.377551020408163,3.443877551020408
|
| 110 |
+
Service: Knowledge creation from Case Info,Generation,Auto,Gemini Pro 1,Gemini Pro 1,Google,3.1875,3.0625,2.8125,3.0,3.015625
|
| 111 |
+
Service: Knowledge creation from Case Info,Generation,Auto,GPT4-o,GPT4-o,OpenAI,3.625,3.6875,3.1875,3.3125,3.453125
|
| 112 |
+
Service: Knowledge creation from Case Info,Generation,Auto,AI21 Jamba-Instruct,AI21 (jamba-instruct-preview),AI21,3.125,3.125,2.8125,3.125,3.046875
|
| 113 |
+
Service: Knowledge creation from Case Info,Generation,Auto,SF-TextBase 70B,TextBase-70B (Llama FT),Salesforce,3.5625,3.4375,3.25,3.1875,3.359375
|
| 114 |
+
Service: Knowledge creation from Case Info,Generation,Auto,Claude 3 Haiku,Claude 3 Haiku,Anthropic,3.5625,3.25,3.1875,3.125,3.28125
|
| 115 |
+
Service: Knowledge creation from Case Info,Generation,Auto,Cohere Command R+,cohere.cmd-R+,Cohere AI,3.5625,3.1875,3.125,3.0,3.21875
|
| 116 |
+
Service: Knowledge creation from Case Info,Generation,Auto,XGen 22B,XGen 22B (1228),Salesforce,3.25,3.1875,3.0,3.1875,3.15625
|
| 117 |
+
Service: Knowledge creation from Case Info,Generation,Auto,SF-TextBase 7B,TextBase-7B (Mistral FT),Salesforce,3.5625,3.375,3.0625,3.3125,3.328125
|
| 118 |
+
Service: Knowledge creation from Case Info,Generation,Auto,LLaMA 3 70B,Meta-Llama-3-70B-Instruct,Meta,2.4375,2.3125,2.0625,3.0625,2.46875
|
| 119 |
+
Service: Knowledge creation from Case Info,Generation,Auto,Cohere Command Text,cohere.command-text-v14,Cohere AI,3.0625,3.0625,2.8125,3.125,3.015625
|
| 120 |
+
Service: Knowledge creation from Case Info,Generation,Auto,GPT 4 Turbo,gpt-4-0613,OpenAI,3.6875,3.375,3.1875,3.3125,3.390625
|
| 121 |
+
Service: Knowledge creation from Case Info,Generation,Auto,GPT 3.5 Turbo,gpt-3.5-turbo,OpenAI,3.5625,3.4375,3.3125,3.25,3.390625
|
| 122 |
+
Service: Knowledge creation from Case Info,Generation,Auto,Claude 3 Opus,Claude 3 (Opus),Anthropic,3.375,3.1875,2.9375,3.125,3.15625
|
| 123 |
+
Service: Knowledge creation from Case Info,Generation,Auto,Gemini Pro 1.5,Gemini Pro 1.5,Google,3.4375,3.125,3.125,3.1875,3.21875
|
| 124 |
+
Service: Knowledge creation from Case Info,Generation,Auto,LLaMA 3 8B,Meta-Llama-3-8B-Instruct,Meta,3.5625,3.4375,3.0,3.1875,3.296875
|
| 125 |
+
Service: Knowledge creation from Case Info,Generation,Auto,Mistral 7B,Mistral-7B-Instruct-v0.1,Mistral,3.5625,3.375,2.9375,3.0625,3.234375
|
| 126 |
+
Service: Knowledge creation from Case Info,Generation,Auto,Mixtral 8x7B,Mixtral-8x7B-v0.1,Mistral,3.4375,3.375,3.125,3.25,3.296875
|
| 127 |
+
Service: Knowledge creation from Case Info,Generation,Auto,SF-TextSum,Summarization model 7B for Service (Mistral FT),Salesforce,3.4375,3.3125,3.0,3.125,3.21875
|
| 128 |
+
Sales: Email Summary,Summary,Auto,Gemini Pro 1,Gemini Pro 1,Google,3.3877551020408165,3.4285714285714284,3.193877551020408,3.377551020408163,3.346938775510204
|
| 129 |
+
Sales: Email Summary,Summary,Auto,GPT4-o,GPT4-o,OpenAI,3.9693877551020407,3.8979591836734695,3.86734693877551,3.8877551020408165,3.9056122448979593
|
| 130 |
+
Sales: Email Summary,Summary,Auto,AI21 Jamba-Instruct,AI21 (jamba-instruct-preview),AI21,3.8979591836734695,3.663265306122449,3.9183673469387754,3.5714285714285716,3.7627551020408165
|
| 131 |
+
Sales: Email Summary,Summary,Auto,SF-TextBase 70B,TextBase-70B (Llama FT),Salesforce,3.979591836734694,3.836734693877551,3.9591836734693877,3.663265306122449,3.8596938775510203
|
| 132 |
+
Sales: Email Summary,Summary,Auto,Claude 3 Haiku,Claude 3 Haiku,Anthropic,3.989795918367347,3.7653061224489797,3.9183673469387754,3.857142857142857,3.88265306122449
|
| 133 |
+
Sales: Email Summary,Summary,Auto,Cohere Command R+,cohere.cmd-R+,Cohere AI,3.8979591836734695,3.7551020408163267,3.795918367346939,3.7244897959183674,3.793367346938776
|
| 134 |
+
Sales: Email Summary,Summary,Auto,XGen 22B,XGen 22B (1228),Salesforce,2.979381443298969,2.8969072164948453,3.142857142857143,3.2783505154639174,3.0743740795287184
|
| 135 |
+
Sales: Email Summary,Summary,Auto,SF-TextBase 7B,TextBase-7B (Mistral FT),Salesforce,3.6020408163265305,3.510204081632653,3.663265306122449,3.357142857142857,3.5331632653061225
|
| 136 |
+
Sales: Email Summary,Summary,Auto,LLaMA 3 70B,Meta-Llama-3-70B-Instruct,Meta,3.9693877551020407,3.8979591836734695,3.9591836734693877,3.642857142857143,3.86734693877551
|
| 137 |
+
Sales: Email Summary,Summary,Auto,Cohere Command Text,cohere.command-text-v14,Cohere AI,2.9690721649484537,3.2783505154639174,2.649484536082474,3.154639175257732,3.0128865979381443
|
| 138 |
+
Sales: Email Summary,Summary,Auto,GPT 4 Turbo,gpt-4-0613,OpenAI,4.0,3.9591836734693877,3.9285714285714284,3.826530612244898,3.928571428571429
|
| 139 |
+
Sales: Email Summary,Summary,Auto,GPT 3.5 Turbo,gpt-3.5-turbo,OpenAI,3.9591836734693877,3.693877551020408,3.9693877551020407,3.7857142857142856,3.8520408163265305
|
| 140 |
+
Sales: Email Summary,Summary,Auto,Claude 3 Opus,Claude 3 (Opus),Anthropic,4.0,3.938775510204082,3.9183673469387754,3.826530612244898,3.920918367346939
|
| 141 |
+
Sales: Email Summary,Summary,Auto,Gemini Pro 1.5,Gemini Pro 1.5,Google,3.9285714285714284,3.663265306122449,3.9183673469387754,3.7653061224489797,3.8188775510204085
|
| 142 |
+
Sales: Email Summary,Summary,Auto,LLaMA 3 8B,Meta-Llama-3-8B-Instruct,Meta,4.0,3.806122448979592,3.9693877551020407,3.7346938775510203,3.877551020408163
|
| 143 |
+
Sales: Email Summary,Summary,Auto,Mistral 7B,Mistral-7B-Instruct-v0.1,Mistral,3.948453608247423,3.948453608247423,3.7653061224489797,3.6288659793814433,3.822769829581317
|
| 144 |
+
Sales: Email Summary,Summary,Auto,Mixtral 8x7B,Mixtral-8x7B-v0.1,Mistral,3.9591836734693877,3.816326530612245,3.8469387755102042,3.5306122448979593,3.788265306122449
|
| 145 |
+
Sales: Email Summary,Summary,Auto,SF-TextSum,Summarization model 7B for Service (Mistral FT),Salesforce,3.836734693877551,3.642857142857143,3.7346938775510203,3.5306122448979593,3.686224489795918
|
| 146 |
+
Service: Call Summary,Summary,Auto,Mistral 7B,Mistral-7B-Instruct-v0.1,Mistral,3.95,3.925,3.925,3.75,3.8875
|
| 147 |
+
Service: Call Summary,Summary,Auto,Gemini Pro 1,Gemini Pro 1,Google,3.95,3.85,3.9,3.775,3.8687500000000004
|
| 148 |
+
Service: Call Summary,Summary,Auto,GPT4-o,GPT4-o,OpenAI,3.95,3.925,3.95,3.925,3.9375
|
| 149 |
+
Service: Call Summary,Summary,Auto,SF-TextBase 70B,TextBase-70B (Llama FT),Salesforce,3.95,3.95,3.95,3.975,3.9562500000000003
|
| 150 |
+
Service: Call Summary,Summary,Auto,LLaMA 3 8B,Meta-Llama-3-8B-Instruct,Meta,3.95,3.95,3.95,3.9,3.9375000000000004
|
| 151 |
+
Service: Call Summary,Summary,Auto,Claude 3 Haiku,Claude 3 Haiku,Anthropic,3.925,3.925,3.775,3.8,3.85625
|
| 152 |
+
Service: Call Summary,Summary,Auto,Cohere Command R+,cohere.cmd-R+,Cohere AI,3.95,3.925,3.95,3.925,3.9375
|
| 153 |
+
Service: Call Summary,Summary,Auto,Cohere Command Text,cohere.command-text-v14,Cohere AI,3.75,3.85,3.675,3.6,3.7187499999999996
|
| 154 |
+
Service: Call Summary,Summary,Auto,SF-TextBase 7B,TextBase-7B (Mistral FT),Salesforce,4.0,3.875,3.975,3.95,3.95
|
| 155 |
+
Service: Call Summary,Summary,Auto,XGen 22B,XGen 22B (1228),Salesforce,3.95,3.8,3.95,3.65,3.8375
|
| 156 |
+
Service: Call Summary,Summary,Auto,LLaMA 3 70B,Meta-Llama-3-70B-Instruct,Meta,3.95,3.925,3.95,3.875,3.925
|
| 157 |
+
Service: Call Summary,Summary,Auto,Claude 3 Opus,Claude 3 (Opus),Anthropic,4.0,4.0,4.0,3.95,3.9875
|
| 158 |
+
Service: Call Summary,Summary,Auto,Mixtral 8x7B,Mixtral-8x7B-v0.1,Mistral,3.975,3.925,3.95,3.825,3.91875
|
| 159 |
+
Service: Call Summary,Summary,Auto,Gemini Pro 1.5,Gemini Pro 1.5,Google,3.95,3.925,4.0,3.95,3.95625
|
| 160 |
+
Service: Call Summary,Summary,Auto,GPT 3.5 Turbo,gpt-3.5-turbo,OpenAI,3.95,3.875,3.95,3.85,3.90625
|
| 161 |
+
Service: Call Summary,Summary,Auto,GPT 4 Turbo,gpt-4-0613,OpenAI,3.95,3.925,3.95,3.9,3.93125
|
| 162 |
+
Service: Call Summary,Summary,Auto,AI21 Jamba-Instruct,AI21 (jamba-instruct-preview),AI21,3.95,3.9,3.925,3.825,3.8999999999999995
|
| 163 |
+
Service: Call Summary,Summary,Auto,SF-TextSum,Summarization model 7B for Service (Mistral FT),Salesforce,3.95,3.875,3.95,3.875,3.9125
|
| 164 |
+
Sales: Call Summary,Summary,Auto,Gemini Pro 1,Gemini Pro 1,Google,3.0526315789473686,2.8947368421052633,2.473684210526316,2.789473684210526,2.8026315789473686
|
| 165 |
+
Sales: Call Summary,Summary,Auto,GPT4-o,GPT4-o,OpenAI,3.9473684210526314,3.210526315789474,3.473684210526316,3.9473684210526314,3.6447368421052633
|
| 166 |
+
Sales: Call Summary,Summary,Auto,AI21 Jamba-Instruct,AI21 (jamba-instruct-preview),AI21,3.3157894736842106,3.0,3.1052631578947367,3.3684210526315788,3.1973684210526314
|
| 167 |
+
Sales: Call Summary,Summary,Auto,SF-TextBase 70B,TextBase-70B (Llama FT),Salesforce,3.3684210526315788,2.789473684210526,3.263157894736842,3.6842105263157894,3.276315789473684
|
| 168 |
+
Sales: Call Summary,Summary,Auto,Claude 3 Haiku,Claude 3 Haiku,Anthropic,3.473684210526316,3.0526315789473686,3.3157894736842106,3.6315789473684212,3.368421052631579
|
| 169 |
+
Sales: Call Summary,Summary,Auto,Cohere Command R+,cohere.cmd-R+,Cohere AI,3.6842105263157894,3.0526315789473686,2.8421052631578947,3.789473684210526,3.3421052631578942
|
| 170 |
+
Sales: Call Summary,Summary,Auto,XGen 22B,XGen 22B (1228),Salesforce,2.736842105263158,2.6315789473684212,2.5789473684210527,2.789473684210526,2.6842105263157894
|
| 171 |
+
Sales: Call Summary,Summary,Auto,SF-TextBase 7B,TextBase-7B (Mistral FT),Salesforce,3.1052631578947367,2.6315789473684212,3.210526315789474,3.210526315789474,3.0394736842105265
|
| 172 |
+
Sales: Call Summary,Summary,Auto,LLaMA 3 70B,Meta-Llama-3-70B-Instruct,Meta,3.263157894736842,2.8421052631578947,3.473684210526316,3.4210526315789473,3.2499999999999996
|
| 173 |
+
Sales: Call Summary,Summary,Auto,Cohere Command Text,cohere.command-text-v14,Cohere AI,2.473684210526316,2.3157894736842106,2.1052631578947367,1.7894736842105263,2.1710526315789473
|
| 174 |
+
Sales: Call Summary,Summary,Auto,GPT 4 Turbo,gpt-4-0613,OpenAI,3.736842105263158,3.0,3.3157894736842106,4.0,3.513157894736842
|
| 175 |
+
Sales: Call Summary,Summary,Auto,GPT 3.5 Turbo,gpt-3.5-turbo,OpenAI,3.3684210526315788,2.888888888888889,3.8421052631578947,3.8421052631578947,3.485380116959064
|
| 176 |
+
Sales: Call Summary,Summary,Auto,Claude 3 Opus,Claude 3 (Opus),Anthropic,3.8947368421052633,3.0,3.5789473684210527,3.9473684210526314,3.605263157894737
|
| 177 |
+
Sales: Call Summary,Summary,Auto,Gemini Pro 1.5,Gemini Pro 1.5,Google,3.6315789473684212,3.0526315789473686,3.0526315789473686,3.736842105263158,3.3684210526315788
|
| 178 |
+
Sales: Call Summary,Summary,Auto,LLaMA 3 8B,Meta-Llama-3-8B-Instruct,Meta,3.1578947368421053,2.8947368421052633,2.6315789473684212,2.9473684210526314,2.9078947368421053
|
| 179 |
+
Sales: Call Summary,Summary,Auto,Mistral 7B,Mistral-7B-Instruct-v0.1,Mistral,3.4210526315789473,3.1052631578947367,3.210526315789474,3.5555555555555554,3.323099415204678
|
| 180 |
+
Sales: Call Summary,Summary,Auto,Mixtral 8x7B,Mixtral-8x7B-v0.1,Mistral,3.263157894736842,3.0,2.6315789473684212,3.263157894736842,3.0394736842105265
|
| 181 |
+
Sales: Call Summary,Summary,Auto,SF-TextSum,Summarization model 7B for Service (Mistral FT),Salesforce,2.9473684210526314,2.736842105263158,3.0,3.0526315789473686,2.9342105263157894
|
| 182 |
+
Service: Live Chat Insights,Summary,Auto,Gemini Pro 1,Gemini Pro 1,Google,3.97265625,3.8359375,3.87109375,3.76953125,3.8623046875
|
| 183 |
+
Service: Live Chat Insights,Summary,Auto,GPT4-o,GPT4-o,OpenAI,4.0,3.91796875,3.9765625,3.91015625,3.951171875
|
| 184 |
+
Service: Live Chat Insights,Summary,Auto,AI21 Jamba-Instruct,AI21 (jamba-instruct-preview),AI21,3.97265625,3.8203125,3.8515625,3.859375,3.8759765625
|
| 185 |
+
Service: Live Chat Insights,Summary,Auto,SF-TextBase 70B,TextBase-70B (Llama FT),Salesforce,3.99609375,3.96875,3.94140625,3.85546875,3.9404296875
|
| 186 |
+
Service: Live Chat Insights,Summary,Auto,Claude 3 Haiku,Claude 3 Haiku,Anthropic,4.0,3.98046875,3.796875,3.8828125,3.9150390625
|
| 187 |
+
Service: Live Chat Insights,Summary,Auto,Cohere Command R+,cohere.cmd-R+,Cohere AI,3.984375,3.9375,3.8671875,3.87109375,3.9150390625
|
| 188 |
+
Service: Live Chat Insights,Summary,Auto,XGen 22B,XGen 22B (1228),Salesforce,3.9765625,3.4375,3.921875,3.74609375,3.7705078125
|
| 189 |
+
Service: Live Chat Insights,Summary,Auto,SF-TextBase 7B,TextBase-7B (Mistral FT),Salesforce,3.97265625,3.6875,3.90625,3.71484375,3.8203125
|
| 190 |
+
Service: Live Chat Insights,Summary,Auto,LLaMA 3 70B,Meta-Llama-3-70B-Instruct,Meta,3.9921875,3.93359375,3.97265625,3.85546875,3.9384765625
|
| 191 |
+
Service: Live Chat Insights,Summary,Auto,Cohere Command Text,cohere.command-text-v14,Cohere AI,3.9375,3.8671875,3.484375,3.51171875,3.7001953125
|
| 192 |
+
Service: Live Chat Insights,Summary,Auto,GPT 4 Turbo,gpt-4-0613,OpenAI,3.9921875,3.9375,3.93359375,3.91015625,3.943359375
|
| 193 |
+
Service: Live Chat Insights,Summary,Auto,GPT 3.5 Turbo,gpt-3.5-turbo,OpenAI,3.96875,3.71875,4.0,3.90234375,3.8974609375
|
| 194 |
+
Service: Live Chat Insights,Summary,Auto,Claude 3 Opus,Claude 3 (Opus),Anthropic,4.0,3.98046875,3.82421875,3.9140625,3.9296875
|
| 195 |
+
Service: Live Chat Insights,Summary,Auto,Gemini Pro 1.5,Gemini Pro 1.5,Google,3.98828125,3.88671875,3.9375,3.77734375,3.8974609375
|
| 196 |
+
Service: Live Chat Insights,Summary,Auto,LLaMA 3 8B,Meta-Llama-3-8B-Instruct,Meta,3.9921875,3.96484375,3.62890625,3.8359375,3.85546875
|
| 197 |
+
Service: Live Chat Insights,Summary,Auto,Mistral 7B,Mistral-7B-Instruct-v0.1,Mistral,3.9921875,3.875,3.7734375,3.8125,3.86328125
|
| 198 |
+
Service: Live Chat Insights,Summary,Auto,Mixtral 8x7B,Mixtral-8x7B-v0.1,Mistral,3.96875,3.953125,3.6015625,3.8046875,3.83203125
|
| 199 |
+
Service: Live Chat Insights,Summary,Auto,SF-TextSum,Summarization model 7B for Service (Mistral FT),Salesforce,3.9765625,3.7734375,3.92578125,3.80859375,3.87109375
|
| 200 |
+
Service: Reply Recommendations,Generation,Manual,GPT 3.5 Turbo,gpt-3.5-turbo,OpenAI,3.0935185185185183,3.22037037037037,3.443518518518519,3.0453703703703705,3.2006944444444443
|
| 201 |
+
Service: Reply Recommendations,Generation,Manual,GPT 4 Turbo,gpt-4-0613,OpenAI,3.525925925925926,3.3203703703703704,3.5129629629629635,3.52962962962963,3.4722222222222228
|
| 202 |
+
Service: Reply Recommendations,Generation,Manual,Mixtral 8x7B,Mixtral-8x7B-v0.1,Mistral,3.015740740740741,3.0203703703703706,3.2111111111111112,2.837037037037037,3.021064814814815
|
| 203 |
+
Service: Reply Recommendations,Generation,Manual,AI21 Jamba-Instruct,AI21 (jamba-instruct-preview),AI21,3.175,2.733333333333333,2.977777777777778,3.0962962962962965,2.995601851851852
|
| 204 |
+
Service: Reply Recommendations,Generation,Manual,Mistral 7B,Mistral-7B-Instruct-v0.1,Mistral,2.5185185185185186,2.4657407407407406,2.660185185185185,2.4314814814814816,2.5189814814814815
|
| 205 |
+
Service: Reply Recommendations,Generation,Manual,XGen 22B,XGen 22B (1228),Salesforce,2.892592592592593,2.9074074074074074,3.1231481481481485,2.486111111111111,2.852314814814815
|
| 206 |
+
Service: Reply Recommendations,Generation,Manual,Claude 3 Haiku,Claude 3 Haiku,Anthropic,3.3435185185185192,3.1203703703703702,3.184259259259259,3.28425925925926,3.233101851851852
|
| 207 |
+
Service: Reply Recommendations,Generation,Manual,Cohere Command Text,cohere.command-text-v14,Cohere AI,2.3768518518518515,2.8157407407407415,2.813888888888889,2.641666666666667,2.6620370370370376
|
| 208 |
+
Service: Reply Recommendations,Generation,Manual,Gemini Pro 1,Gemini Pro 1,Google,2.851851851851852,2.761111111111111,2.2962962962962963,3.2379629629629627,2.7868055555555555
|
| 209 |
+
Service: Reply Recommendations,Generation,Manual,LLaMA 3 70B,Meta-Llama-3-70B-Instruct,Meta,3.2796296296296297,3.2101851851851846,3.230555555555556,3.021296296296297,3.185416666666667
|
| 210 |
+
Service: Reply Recommendations,Generation,Manual,LLaMA 3 8B,Meta-Llama-3-8B-Instruct,Meta,3.087037037037037,3.1166666666666667,3.249074074074074,2.888888888888889,3.0854166666666667
|
| 211 |
+
Sales: Email Generation,Generation,Manual,GPT 3.5 Turbo,gpt-3.5-turbo,OpenAI,3.037735849056604,2.515723270440251,3.204402515723271,2.811320754716981,2.892295597484277
|
| 212 |
+
Sales: Email Generation,Generation,Manual,GPT 4 Turbo,gpt-4-0613,OpenAI,3.2169811320754724,3.067610062893082,2.9088050314465415,3.248427672955976,3.1104559748427683
|
| 213 |
+
Sales: Email Generation,Generation,Manual,Mixtral 8x7B,Mixtral-8x7B-v0.1,Mistral,3.1163522012578615,2.5345911949685536,2.9937106918238996,2.8899371069182394,2.8836477987421385
|
| 214 |
+
Sales: Email Generation,Generation,Manual,AI21 Jamba-Instruct,AI21 (jamba-instruct-preview),AI21,3.0817610062893084,2.1132075471698113,2.7106918238993716,2.880503144654088,2.6965408805031448
|
| 215 |
+
Sales: Email Generation,Generation,Manual,Mistral 7B,Mistral-7B-Instruct-v0.1,Mistral,2.9056603773584904,1.9182389937106918,2.883647798742138,2.60062893081761,2.5770440251572326
|
| 216 |
+
Sales: Email Generation,Generation,Manual,XGen 22B,XGen 22B (1228),Salesforce,3.0031446540880506,2.1540880503144657,2.90880503144654,2.7044025157232707,2.6926100628930816
|
| 217 |
+
Sales: Email Generation,Generation,Manual,Claude 3 Haiku,Claude 3 Haiku,Anthropic,3.0880503144654092,2.5283018867924527,3.0220125786163528,3.1635220125786163,2.9504716981132075
|
| 218 |
+
Sales: Email Generation,Generation,Manual,Cohere Command Text,cohere.command-text-v14,Cohere AI,2.878930817610063,2.1635220125786163,2.858490566037736,2.7106918238993707,2.6529088050314464
|
| 219 |
+
Sales: Email Generation,Generation,Manual,Gemini Pro 1,Gemini Pro 1,Google,3.1163522012578633,2.5911949685534585,2.757861635220126,2.9622641509433967,2.8569182389937113
|
| 220 |
+
Sales: Email Generation,Generation,Manual,LLaMA 3 70B,Meta-Llama-3-70B-Instruct,Meta,3.0943396226415096,3.0062893081761004,3.2232704402515724,3.1415094339622636,3.116352201257861
|
| 221 |
+
Sales: Email Generation,Generation,Manual,LLaMA 3 8B,Meta-Llama-3-8B-Instruct,Meta,3.213836477987421,3.0062893081761013,2.9937106918238996,3.0534591194968557,3.066823899371069
|
| 222 |
+
Sales: Email Generation,Generation,Manual,SF-TextBase 7B,TextBase-7B (Mistral FT),Salesforce,3.169871794871795,2.4839743589743586,2.9519230769230775,2.7660256410256405,2.8429487179487176
|
| 223 |
+
Sales: Email Generation,Generation,Manual,GPT4-o,GPT4-o,OpenAI,3.286163522012579,3.2389937106918247,3.2955974842767293,3.2421383647798745,3.265723270440252
|
| 224 |
+
Sales: Email Generation,Generation,Manual,SF-TextBase 70B,TextBase-70B (Llama FT),Salesforce,3.1729559748427683,3.09119496855346,3.172955974842768,3.2012578616352205,3.159591194968554
|
| 225 |
+
Service: Call Summary,Summary,Manual,GPT 3.5 Turbo,gpt-3.5-turbo,OpenAI,3.5694444444444446,3.3541666666666665,3.7948717948717947,3.4193548387096775,3.534459436173146
|
| 226 |
+
Service: Call Summary,Summary,Manual,GPT 4 Turbo,gpt-4-0613,OpenAI,3.4743589743589745,3.4871794871794872,3.5128205128205128,3.4615384615384617,3.483974358974359
|
| 227 |
+
Service: Call Summary,Summary,Manual,Mixtral 8x7B,Mixtral-8x7B-v0.1,Mistral,2.725,2.6875,2.782051282051282,2.675,2.717387820512821
|
| 228 |
+
Service: Call Summary,Summary,Manual,AI21 Jamba-Instruct,AI21 (jamba-instruct-preview),AI21,2.58974358974359,2.7125,2.7435897435897436,2.6538461538461537,2.674919871794872
|
| 229 |
+
Service: Call Summary,Summary,Manual,Mistral 7B,Mistral-7B-Instruct-v0.1,Mistral,2.75,2.775,2.8684210526315788,2.7,2.773355263157895
|
| 230 |
+
Service: Call Summary,Summary,Manual,XGen 22B,XGen 22B (1228),Salesforce,2.7,2.8125,2.9615384615384617,2.7,2.7935096153846155
|
| 231 |
+
Service: Call Summary,Summary,Manual,Claude 3 Haiku,Claude 3 Haiku,Anthropic,2.525,2.6,2.7222222222222223,2.5875,2.6086805555555554
|
| 232 |
+
Service: Call Summary,Summary,Manual,Cohere Command Text,cohere.command-text-v14,Cohere AI,2.35,2.4125,2.527027027027027,2.375,2.416131756756757
|
| 233 |
+
Service: Call Summary,Summary,Manual,Gemini Pro 1,Gemini Pro 1,Google,2.2051282051282053,2.3684210526315788,2.442857142857143,2.217948717948718,2.3085887796414113
|
| 234 |
+
Service: Call Summary,Summary,Manual,LLaMA 3 70B,Meta-Llama-3-70B-Instruct,Meta,2.7435897435897436,2.769230769230769,2.9285714285714284,2.6666666666666665,2.777014652014652
|
| 235 |
+
Service: Call Summary,Summary,Manual,LLaMA 3 8B,Meta-Llama-3-8B-Instruct,Meta,2.5135135135135136,2.6052631578947367,2.6818181818181817,2.4871794871794872,2.57194358510148
|
| 236 |
+
Service: Live Chat Insights,Summary,Manual,GPT 3.5 Turbo,gpt-3.5-turbo,OpenAI,3.72,3.7,3.7,3.74,3.7150000000000003
|
| 237 |
+
Service: Live Chat Insights,Summary,Manual,GPT 4 Turbo,gpt-4-0613,OpenAI,3.72,3.72,3.04,3.68,3.54
|
| 238 |
+
Service: Live Chat Insights,Summary,Manual,Mixtral 8x7B,Mixtral-8x7B-v0.1,Mistral,3.56,3.6,3.1,3.68,3.485
|
| 239 |
+
Service: Live Chat Insights,Summary,Manual,AI21 Jamba-Instruct,AI21 (jamba-instruct-preview),AI21,3.56,3.64,3.2,3.68,3.52
|
| 240 |
+
Service: Live Chat Insights,Summary,Manual,Mistral 7B,Mistral-7B-Instruct-v0.1,Mistral,3.56,3.54,3.2,3.6,3.475
|
| 241 |
+
Service: Live Chat Insights,Summary,Manual,XGen 22B,XGen 22B (1228),Salesforce,3.54,3.6,3.52,3.64,3.575
|
| 242 |
+
Service: Live Chat Insights,Summary,Manual,Claude 3 Haiku,Claude 3 Haiku,Anthropic,3.64,3.6,2.92,3.64,3.45
|
| 243 |
+
Service: Live Chat Insights,Summary,Manual,Cohere Command Text,cohere.command-text-v14,Cohere AI,3.26,3.36,3.0,3.56,3.295
|
| 244 |
+
Service: Live Chat Insights,Summary,Manual,Gemini Pro 1,Gemini Pro 1,Google,3.42,3.5,3.46,3.58,3.4899999999999998
|
| 245 |
+
Service: Live Chat Insights,Summary,Manual,LLaMA 3 70B,Meta-Llama-3-70B-Instruct,Meta,3.7,3.64,3.24,3.7,3.5700000000000003
|
| 246 |
+
Service: Live Chat Insights,Summary,Manual,LLaMA 3 8B,Meta-Llama-3-8B-Instruct,Meta,3.66,3.62,3.14,3.66,3.52
|
| 247 |
+
Service: Live Chat Insights,Summary,Manual,SF-TextSum,Summarization model 7B for Service (Mistral FT),Salesforce,3.46,3.56,3.58,3.56,3.54
|
| 248 |
+
Service: Live Chat Insights,Summary,Manual,SF-TextBase 7B,TextBase-7B (Mistral FT),Salesforce,3.56,3.64,3.68,3.66,3.6350000000000002
|
| 249 |
+
Service: Live Chat Insights,Summary,Manual,GPT4-o,GPT4-o,OpenAI,3.78,3.78,3.78,3.78,3.78
|
| 250 |
+
Service: Live Chat Insights,Summary,Manual,SF-TextBase 70B,TextBase-70B (Llama FT),Salesforce,3.72,3.74,3.6,3.72,3.6950000000000003
|
requirements.txt
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
|
|
| 1 |
APScheduler
|
| 2 |
black
|
| 3 |
click
|
|
@@ -5,14 +6,13 @@ datasets
|
|
| 5 |
gradio
|
| 6 |
gradio_client
|
| 7 |
huggingface-hub>=0.18.0
|
|
|
|
| 8 |
matplotlib
|
| 9 |
numpy
|
| 10 |
pandas
|
| 11 |
python-dateutil
|
| 12 |
requests
|
|
|
|
|
|
|
| 13 |
tqdm
|
| 14 |
transformers
|
| 15 |
-
tokenizers>=0.15.0
|
| 16 |
-
git+https://github.com/EleutherAI/lm-evaluation-harness.git@b281b0921b636bc36ad05c0b0b0763bd6dd43463#egg=lm-eval
|
| 17 |
-
accelerate
|
| 18 |
-
sentencepiece
|
|
|
|
| 1 |
+
accelerate
|
| 2 |
APScheduler
|
| 3 |
black
|
| 4 |
click
|
|
|
|
| 6 |
gradio
|
| 7 |
gradio_client
|
| 8 |
huggingface-hub>=0.18.0
|
| 9 |
+
git+https://github.com/EleutherAI/lm-evaluation-harness.git@b281b0921b636bc36ad05c0b0b0763bd6dd43463#egg=lm-eval
|
| 10 |
matplotlib
|
| 11 |
numpy
|
| 12 |
pandas
|
| 13 |
python-dateutil
|
| 14 |
requests
|
| 15 |
+
sentencepiece
|
| 16 |
+
tokenizers>=0.15.0
|
| 17 |
tqdm
|
| 18 |
transformers
|
|
|
|
|
|
|
|
|
|
|
|
src/about.py
CHANGED
|
@@ -1,6 +1,7 @@
|
|
| 1 |
from dataclasses import dataclass
|
| 2 |
from enum import Enum
|
| 3 |
|
|
|
|
| 4 |
@dataclass
|
| 5 |
class Task:
|
| 6 |
benchmark: str
|
|
@@ -11,29 +12,27 @@ class Task:
|
|
| 11 |
# Select your tasks here
|
| 12 |
# ---------------------------------------------------
|
| 13 |
class Tasks(Enum):
|
| 14 |
-
# task_key in the json file, metric_key in the json file, name to display in the leaderboard
|
| 15 |
task0 = Task("anli_r1", "acc", "ANLI")
|
| 16 |
task1 = Task("logiqa", "acc_norm", "LogiQA")
|
| 17 |
|
| 18 |
-
NUM_FEWSHOT = 0 # Change with your few shot
|
| 19 |
-
# ---------------------------------------------------
|
| 20 |
|
|
|
|
|
|
|
| 21 |
|
| 22 |
|
| 23 |
# Your leaderboard name
|
| 24 |
-
TITLE = """<h1 align="center" id="space-title"
|
|
|
|
|
|
|
| 25 |
|
| 26 |
# What does your leaderboard evaluate?
|
| 27 |
INTRODUCTION_TEXT = """
|
| 28 |
-
|
| 29 |
"""
|
| 30 |
|
| 31 |
# Which evaluations are you running? how can people reproduce what you have?
|
| 32 |
-
LLM_BENCHMARKS_TEXT =
|
| 33 |
-
## How it works
|
| 34 |
-
|
| 35 |
-
## Reproducibility
|
| 36 |
-
To reproduce our results, here is the commands you can run:
|
| 37 |
|
| 38 |
"""
|
| 39 |
|
|
|
|
| 1 |
from dataclasses import dataclass
|
| 2 |
from enum import Enum
|
| 3 |
|
| 4 |
+
|
| 5 |
@dataclass
|
| 6 |
class Task:
|
| 7 |
benchmark: str
|
|
|
|
| 12 |
# Select your tasks here
|
| 13 |
# ---------------------------------------------------
|
| 14 |
class Tasks(Enum):
|
| 15 |
+
# task_key in the json file, metric_key in the json file, name to display in the leaderboard
|
| 16 |
task0 = Task("anli_r1", "acc", "ANLI")
|
| 17 |
task1 = Task("logiqa", "acc_norm", "LogiQA")
|
| 18 |
|
|
|
|
|
|
|
| 19 |
|
| 20 |
+
NUM_FEWSHOT = 0 # Change with your few shot
|
| 21 |
+
# ---------------------------------------------------
|
| 22 |
|
| 23 |
|
| 24 |
# Your leaderboard name
|
| 25 |
+
TITLE = """<h1 align="center" id="space-title">🤗 LLM Leaderboard for CRM</h1>
|
| 26 |
+
<h3>Assess which LLMs are accurate enough or need fine-tuning, and weigh this versus tradeoffs of speed, costs, and trust and safety. This is based on human manual and automated evaluation with real operational CRM data per use case.</h3>
|
| 27 |
+
"""
|
| 28 |
|
| 29 |
# What does your leaderboard evaluate?
|
| 30 |
INTRODUCTION_TEXT = """
|
| 31 |
+
|
| 32 |
"""
|
| 33 |
|
| 34 |
# Which evaluations are you running? how can people reproduce what you have?
|
| 35 |
+
LLM_BENCHMARKS_TEXT = """
|
|
|
|
|
|
|
|
|
|
|
|
|
| 36 |
|
| 37 |
"""
|
| 38 |
|
src/display/css_html_js.py
CHANGED
|
@@ -33,7 +33,7 @@ custom_css = """
|
|
| 33 |
background: none;
|
| 34 |
border: none;
|
| 35 |
}
|
| 36 |
-
|
| 37 |
#search-bar {
|
| 38 |
padding: 0px;
|
| 39 |
}
|
|
@@ -77,7 +77,7 @@ table th:first-child {
|
|
| 77 |
#filter_type label > .wrap{
|
| 78 |
width: 103px;
|
| 79 |
}
|
| 80 |
-
#filter_type label > .wrap .wrap-inner{
|
| 81 |
padding: 2px;
|
| 82 |
}
|
| 83 |
#filter_type label > .wrap .wrap-inner input{
|
|
|
|
| 33 |
background: none;
|
| 34 |
border: none;
|
| 35 |
}
|
| 36 |
+
|
| 37 |
#search-bar {
|
| 38 |
padding: 0px;
|
| 39 |
}
|
|
|
|
| 77 |
#filter_type label > .wrap{
|
| 78 |
width: 103px;
|
| 79 |
}
|
| 80 |
+
#filter_type label > .wrap .wrap-inner{
|
| 81 |
padding: 2px;
|
| 82 |
}
|
| 83 |
#filter_type label > .wrap .wrap-inner input{
|
src/display/utils.py
CHANGED
|
@@ -5,6 +5,7 @@ import pandas as pd
|
|
| 5 |
|
| 6 |
from src.about import Tasks
|
| 7 |
|
|
|
|
| 8 |
def fields(raw_class):
|
| 9 |
return [v for k, v in raw_class.__dict__.items() if k[:2] != "__" and k[-2:] != "__"]
|
| 10 |
|
|
@@ -20,29 +21,66 @@ class ColumnContent:
|
|
| 20 |
hidden: bool = False
|
| 21 |
never_hidden: bool = False
|
| 22 |
|
|
|
|
| 23 |
## Leaderboard columns
|
| 24 |
auto_eval_column_dict = []
|
| 25 |
# Init
|
| 26 |
-
auto_eval_column_dict.append(["model_type_symbol", ColumnContent, ColumnContent("T", "str", True, never_hidden=True)])
|
| 27 |
-
auto_eval_column_dict.append(
|
| 28 |
-
|
| 29 |
-
|
| 30 |
-
|
| 31 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 32 |
# Model information
|
| 33 |
-
auto_eval_column_dict.append(["model_type", ColumnContent, ColumnContent("Type", "str", False)])
|
| 34 |
-
auto_eval_column_dict.append(["architecture", ColumnContent, ColumnContent("Architecture", "str", False)])
|
| 35 |
-
auto_eval_column_dict.append(["weight_type", ColumnContent, ColumnContent("Weight type", "str", False, True)])
|
| 36 |
-
auto_eval_column_dict.append(["precision", ColumnContent, ColumnContent("Precision", "str", False)])
|
| 37 |
-
auto_eval_column_dict.append(["license", ColumnContent, ColumnContent("Hub License", "str", False)])
|
| 38 |
-
auto_eval_column_dict.append(["params", ColumnContent, ColumnContent("#Params (B)", "number", False)])
|
| 39 |
-
auto_eval_column_dict.append(["likes", ColumnContent, ColumnContent("Hub ❤️", "number", False)])
|
| 40 |
-
auto_eval_column_dict.append(["still_on_hub", ColumnContent, ColumnContent("Available on the hub", "bool", False)])
|
| 41 |
-
auto_eval_column_dict.append(["revision", ColumnContent, ColumnContent("Model sha", "str", False, False)])
|
| 42 |
|
| 43 |
# We use make dataclass to dynamically fill the scores from Tasks
|
| 44 |
AutoEvalColumn = make_dataclass("AutoEvalColumn", auto_eval_column_dict, frozen=True)
|
| 45 |
|
|
|
|
| 46 |
## For the queue columns in the submission tab
|
| 47 |
@dataclass(frozen=True)
|
| 48 |
class EvalQueueColumn: # Queue column
|
|
@@ -53,12 +91,13 @@ class EvalQueueColumn: # Queue column
|
|
| 53 |
weight_type = ColumnContent("weight_type", "str", "Original")
|
| 54 |
status = ColumnContent("status", "str", True)
|
| 55 |
|
|
|
|
| 56 |
## All the model information that we might need
|
| 57 |
@dataclass
|
| 58 |
class ModelDetails:
|
| 59 |
name: str
|
| 60 |
display_name: str = ""
|
| 61 |
-
symbol: str = ""
|
| 62 |
|
| 63 |
|
| 64 |
class ModelType(Enum):
|
|
@@ -83,18 +122,20 @@ class ModelType(Enum):
|
|
| 83 |
return ModelType.IFT
|
| 84 |
return ModelType.Unknown
|
| 85 |
|
|
|
|
| 86 |
class WeightType(Enum):
|
| 87 |
Adapter = ModelDetails("Adapter")
|
| 88 |
Original = ModelDetails("Original")
|
| 89 |
Delta = ModelDetails("Delta")
|
| 90 |
|
|
|
|
| 91 |
class Precision(Enum):
|
| 92 |
float16 = ModelDetails("float16")
|
| 93 |
bfloat16 = ModelDetails("bfloat16")
|
| 94 |
float32 = ModelDetails("float32")
|
| 95 |
-
#qt_8bit = ModelDetails("8bit")
|
| 96 |
-
#qt_4bit = ModelDetails("4bit")
|
| 97 |
-
#qt_GPTQ = ModelDetails("GPTQ")
|
| 98 |
Unknown = ModelDetails("?")
|
| 99 |
|
| 100 |
def from_str(precision):
|
|
@@ -104,14 +145,15 @@ class Precision(Enum):
|
|
| 104 |
return Precision.bfloat16
|
| 105 |
if precision in ["float32"]:
|
| 106 |
return Precision.float32
|
| 107 |
-
#if precision in ["8bit"]:
|
| 108 |
# return Precision.qt_8bit
|
| 109 |
-
#if precision in ["4bit"]:
|
| 110 |
# return Precision.qt_4bit
|
| 111 |
-
#if precision in ["GPTQ", "None"]:
|
| 112 |
# return Precision.qt_GPTQ
|
| 113 |
return Precision.Unknown
|
| 114 |
|
|
|
|
| 115 |
# Column selection
|
| 116 |
COLS = [c.name for c in fields(AutoEvalColumn) if not c.hidden]
|
| 117 |
TYPES = [c.type for c in fields(AutoEvalColumn) if not c.hidden]
|
|
|
|
| 5 |
|
| 6 |
from src.about import Tasks
|
| 7 |
|
| 8 |
+
|
| 9 |
def fields(raw_class):
|
| 10 |
return [v for k, v in raw_class.__dict__.items() if k[:2] != "__" and k[-2:] != "__"]
|
| 11 |
|
|
|
|
| 21 |
hidden: bool = False
|
| 22 |
never_hidden: bool = False
|
| 23 |
|
| 24 |
+
|
| 25 |
## Leaderboard columns
|
| 26 |
auto_eval_column_dict = []
|
| 27 |
# Init
|
| 28 |
+
# auto_eval_column_dict.append(["model_type_symbol", ColumnContent, ColumnContent("T", "str", True, never_hidden=True)])
|
| 29 |
+
auto_eval_column_dict.append(
|
| 30 |
+
["model", ColumnContent, ColumnContent("Model Name", "markdown", True, never_hidden=True)]
|
| 31 |
+
)
|
| 32 |
+
auto_eval_column_dict.append(
|
| 33 |
+
["model_provider", ColumnContent, ColumnContent("LLM Provider", "markdown", True, never_hidden=True)]
|
| 34 |
+
)
|
| 35 |
+
auto_eval_column_dict.append(["use_case_name", ColumnContent, ColumnContent("Use Case Name", "markdown", True)])
|
| 36 |
+
auto_eval_column_dict.append(["use_case_type", ColumnContent, ColumnContent("Use Case Type", "markdown", True)])
|
| 37 |
+
|
| 38 |
+
auto_eval_column_dict.append(["accuracy_method", ColumnContent, ColumnContent("Accuracy Method", "markdown", True)])
|
| 39 |
+
# Accuracy metrics
|
| 40 |
+
auto_eval_column_dict.append(["accuracy_metric_average", ColumnContent, ColumnContent("Average", "markdown", True)])
|
| 41 |
+
auto_eval_column_dict.append(
|
| 42 |
+
[
|
| 43 |
+
"accuracy_metric_instruction_following",
|
| 44 |
+
ColumnContent,
|
| 45 |
+
ColumnContent("Instruction Following", "markdown", True),
|
| 46 |
+
]
|
| 47 |
+
)
|
| 48 |
+
auto_eval_column_dict.append(
|
| 49 |
+
["accuracy_metric_completeness", ColumnContent, ColumnContent("Completeness", "markdown", True)]
|
| 50 |
+
)
|
| 51 |
+
auto_eval_column_dict.append(
|
| 52 |
+
["accuracy_metric_conciseness", ColumnContent, ColumnContent("Conciseness", "markdown", True)]
|
| 53 |
+
)
|
| 54 |
+
auto_eval_column_dict.append(
|
| 55 |
+
["accuracy_metric_factuality", ColumnContent, ColumnContent("Factuality", "markdown", True)]
|
| 56 |
+
)
|
| 57 |
+
# Speed (Latency) metrics
|
| 58 |
+
|
| 59 |
+
|
| 60 |
+
# Cost metrics
|
| 61 |
+
|
| 62 |
+
# Trust & Safety metrics
|
| 63 |
+
|
| 64 |
+
|
| 65 |
+
# Scores
|
| 66 |
+
# auto_eval_column_dict.append(["average", ColumnContent, ColumnContent("Average ⬆️", "number", True)])
|
| 67 |
+
# for task in Tasks:
|
| 68 |
+
# auto_eval_column_dict.append([task.name, ColumnContent, ColumnContent(task.value.col_name, "number", True)])
|
| 69 |
# Model information
|
| 70 |
+
# auto_eval_column_dict.append(["model_type", ColumnContent, ColumnContent("Type", "str", False)])
|
| 71 |
+
# auto_eval_column_dict.append(["architecture", ColumnContent, ColumnContent("Architecture", "str", False)])
|
| 72 |
+
# auto_eval_column_dict.append(["weight_type", ColumnContent, ColumnContent("Weight type", "str", False, True)])
|
| 73 |
+
# auto_eval_column_dict.append(["precision", ColumnContent, ColumnContent("Precision", "str", False)])
|
| 74 |
+
# auto_eval_column_dict.append(["license", ColumnContent, ColumnContent("Hub License", "str", False)])
|
| 75 |
+
# auto_eval_column_dict.append(["params", ColumnContent, ColumnContent("#Params (B)", "number", False)])
|
| 76 |
+
# auto_eval_column_dict.append(["likes", ColumnContent, ColumnContent("Hub ❤️", "number", False)])
|
| 77 |
+
# auto_eval_column_dict.append(["still_on_hub", ColumnContent, ColumnContent("Available on the hub", "bool", False)])
|
| 78 |
+
# auto_eval_column_dict.append(["revision", ColumnContent, ColumnContent("Model sha", "str", False, False)])
|
| 79 |
|
| 80 |
# We use make dataclass to dynamically fill the scores from Tasks
|
| 81 |
AutoEvalColumn = make_dataclass("AutoEvalColumn", auto_eval_column_dict, frozen=True)
|
| 82 |
|
| 83 |
+
|
| 84 |
## For the queue columns in the submission tab
|
| 85 |
@dataclass(frozen=True)
|
| 86 |
class EvalQueueColumn: # Queue column
|
|
|
|
| 91 |
weight_type = ColumnContent("weight_type", "str", "Original")
|
| 92 |
status = ColumnContent("status", "str", True)
|
| 93 |
|
| 94 |
+
|
| 95 |
## All the model information that we might need
|
| 96 |
@dataclass
|
| 97 |
class ModelDetails:
|
| 98 |
name: str
|
| 99 |
display_name: str = ""
|
| 100 |
+
symbol: str = "" # emoji
|
| 101 |
|
| 102 |
|
| 103 |
class ModelType(Enum):
|
|
|
|
| 122 |
return ModelType.IFT
|
| 123 |
return ModelType.Unknown
|
| 124 |
|
| 125 |
+
|
| 126 |
class WeightType(Enum):
|
| 127 |
Adapter = ModelDetails("Adapter")
|
| 128 |
Original = ModelDetails("Original")
|
| 129 |
Delta = ModelDetails("Delta")
|
| 130 |
|
| 131 |
+
|
| 132 |
class Precision(Enum):
|
| 133 |
float16 = ModelDetails("float16")
|
| 134 |
bfloat16 = ModelDetails("bfloat16")
|
| 135 |
float32 = ModelDetails("float32")
|
| 136 |
+
# qt_8bit = ModelDetails("8bit")
|
| 137 |
+
# qt_4bit = ModelDetails("4bit")
|
| 138 |
+
# qt_GPTQ = ModelDetails("GPTQ")
|
| 139 |
Unknown = ModelDetails("?")
|
| 140 |
|
| 141 |
def from_str(precision):
|
|
|
|
| 145 |
return Precision.bfloat16
|
| 146 |
if precision in ["float32"]:
|
| 147 |
return Precision.float32
|
| 148 |
+
# if precision in ["8bit"]:
|
| 149 |
# return Precision.qt_8bit
|
| 150 |
+
# if precision in ["4bit"]:
|
| 151 |
# return Precision.qt_4bit
|
| 152 |
+
# if precision in ["GPTQ", "None"]:
|
| 153 |
# return Precision.qt_GPTQ
|
| 154 |
return Precision.Unknown
|
| 155 |
|
| 156 |
+
|
| 157 |
# Column selection
|
| 158 |
COLS = [c.name for c in fields(AutoEvalColumn) if not c.hidden]
|
| 159 |
TYPES = [c.type for c in fields(AutoEvalColumn) if not c.hidden]
|
src/envs.py
CHANGED
|
@@ -4,9 +4,9 @@ from huggingface_hub import HfApi
|
|
| 4 |
|
| 5 |
# Info to change for your repository
|
| 6 |
# ----------------------------------
|
| 7 |
-
TOKEN = os.environ.get("TOKEN")
|
| 8 |
|
| 9 |
-
OWNER = "demo-leaderboard-backend"
|
| 10 |
# ----------------------------------
|
| 11 |
|
| 12 |
REPO_ID = f"{OWNER}/leaderboard"
|
|
@@ -14,11 +14,14 @@ QUEUE_REPO = f"{OWNER}/requests"
|
|
| 14 |
RESULTS_REPO = f"{OWNER}/results"
|
| 15 |
|
| 16 |
# If you setup a cache later, just change HF_HOME
|
| 17 |
-
CACHE_PATH=os.getenv("HF_HOME", ".")
|
| 18 |
|
| 19 |
# Local caches
|
| 20 |
EVAL_REQUESTS_PATH = os.path.join(CACHE_PATH, "eval-queue")
|
| 21 |
EVAL_RESULTS_PATH = os.path.join(CACHE_PATH, "eval-results")
|
|
|
|
|
|
|
|
|
|
| 22 |
EVAL_REQUESTS_PATH_BACKEND = os.path.join(CACHE_PATH, "eval-queue-bk")
|
| 23 |
EVAL_RESULTS_PATH_BACKEND = os.path.join(CACHE_PATH, "eval-results-bk")
|
| 24 |
|
|
|
|
| 4 |
|
| 5 |
# Info to change for your repository
|
| 6 |
# ----------------------------------
|
| 7 |
+
TOKEN = os.environ.get("TOKEN") # A read/write token for your org
|
| 8 |
|
| 9 |
+
OWNER = "demo-leaderboard-backend" # Change to your org - don't forget to create a results and request dataset, with the correct format!
|
| 10 |
# ----------------------------------
|
| 11 |
|
| 12 |
REPO_ID = f"{OWNER}/leaderboard"
|
|
|
|
| 14 |
RESULTS_REPO = f"{OWNER}/results"
|
| 15 |
|
| 16 |
# If you setup a cache later, just change HF_HOME
|
| 17 |
+
CACHE_PATH = os.getenv("HF_HOME", ".")
|
| 18 |
|
| 19 |
# Local caches
|
| 20 |
EVAL_REQUESTS_PATH = os.path.join(CACHE_PATH, "eval-queue")
|
| 21 |
EVAL_RESULTS_PATH = os.path.join(CACHE_PATH, "eval-results")
|
| 22 |
+
|
| 23 |
+
CRM_RESULTS_PATH = os.path.join(CACHE_PATH, "crm-results")
|
| 24 |
+
|
| 25 |
EVAL_REQUESTS_PATH_BACKEND = os.path.join(CACHE_PATH, "eval-queue-bk")
|
| 26 |
EVAL_RESULTS_PATH_BACKEND = os.path.join(CACHE_PATH, "eval-results-bk")
|
| 27 |
|
src/leaderboard/read_evals.py
CHANGED
|
@@ -1,6 +1,5 @@
|
|
| 1 |
import glob
|
| 2 |
import json
|
| 3 |
-
import math
|
| 4 |
import os
|
| 5 |
from dataclasses import dataclass
|
| 6 |
|
|
@@ -8,28 +7,29 @@ import dateutil
|
|
| 8 |
import numpy as np
|
| 9 |
|
| 10 |
from src.display.formatting import make_clickable_model
|
| 11 |
-
from src.display.utils import AutoEvalColumn, ModelType,
|
| 12 |
-
|
|
|
|
| 13 |
|
| 14 |
|
| 15 |
@dataclass
|
| 16 |
class EvalResult:
|
| 17 |
-
"""Represents one full evaluation. Built from a combination of the result and request file for a given run.
|
| 18 |
-
|
| 19 |
-
eval_name: str
|
| 20 |
-
full_model: str
|
| 21 |
-
org: str
|
| 22 |
model: str
|
| 23 |
-
revision: str
|
| 24 |
results: dict
|
| 25 |
precision: Precision = Precision.Unknown
|
| 26 |
-
model_type: ModelType = ModelType.Unknown
|
| 27 |
-
weight_type: WeightType = WeightType.Original
|
| 28 |
-
architecture: str = "Unknown"
|
| 29 |
license: str = "?"
|
| 30 |
likes: int = 0
|
| 31 |
num_params: int = 0
|
| 32 |
-
date: str = ""
|
| 33 |
still_on_hub: bool = False
|
| 34 |
|
| 35 |
@classmethod
|
|
@@ -57,14 +57,14 @@ class EvalResult:
|
|
| 57 |
result_key = f"{org}_{model}_{precision.value.name}"
|
| 58 |
full_model = "/".join(org_and_model)
|
| 59 |
|
| 60 |
-
still_on_hub, _, model_config = is_model_on_hub(
|
| 61 |
-
|
| 62 |
-
)
|
| 63 |
architecture = "?"
|
| 64 |
-
if model_config is not None:
|
| 65 |
-
|
| 66 |
-
|
| 67 |
-
|
| 68 |
|
| 69 |
# Extract results available in this file (some results are split in several files)
|
| 70 |
results = {}
|
|
@@ -85,10 +85,10 @@ class EvalResult:
|
|
| 85 |
org=org,
|
| 86 |
model=model,
|
| 87 |
results=results,
|
| 88 |
-
precision=precision,
|
| 89 |
-
revision=
|
| 90 |
-
still_on_hub=
|
| 91 |
-
architecture=architecture
|
| 92 |
)
|
| 93 |
|
| 94 |
def update_with_request_file(self, requests_path):
|
|
@@ -105,7 +105,9 @@ class EvalResult:
|
|
| 105 |
self.num_params = request.get("params", 0)
|
| 106 |
self.date = request.get("submitted_time", "")
|
| 107 |
except Exception:
|
| 108 |
-
print(
|
|
|
|
|
|
|
| 109 |
|
| 110 |
def to_dict(self):
|
| 111 |
"""Converts the Eval Result to a dict compatible with our dataframe display"""
|
|
@@ -146,10 +148,7 @@ def get_request_file_for_model(requests_path, model_name, precision):
|
|
| 146 |
for tmp_request_file in request_files:
|
| 147 |
with open(tmp_request_file, "r") as f:
|
| 148 |
req_content = json.load(f)
|
| 149 |
-
if (
|
| 150 |
-
req_content["status"] in ["FINISHED"]
|
| 151 |
-
and req_content["precision"] == precision.split(".")[-1]
|
| 152 |
-
):
|
| 153 |
request_file = tmp_request_file
|
| 154 |
return request_file
|
| 155 |
|
|
@@ -188,7 +187,7 @@ def get_raw_eval_results(results_path: str, requests_path: str) -> list[EvalResu
|
|
| 188 |
results = []
|
| 189 |
for v in eval_results.values():
|
| 190 |
try:
|
| 191 |
-
v.to_dict()
|
| 192 |
results.append(v)
|
| 193 |
except KeyError: # not all eval values present
|
| 194 |
continue
|
|
|
|
| 1 |
import glob
|
| 2 |
import json
|
|
|
|
| 3 |
import os
|
| 4 |
from dataclasses import dataclass
|
| 5 |
|
|
|
|
| 7 |
import numpy as np
|
| 8 |
|
| 9 |
from src.display.formatting import make_clickable_model
|
| 10 |
+
from src.display.utils import AutoEvalColumn, ModelType, Precision, Tasks, WeightType
|
| 11 |
+
|
| 12 |
+
# from src.submission.check_validity import is_model_on_hub
|
| 13 |
|
| 14 |
|
| 15 |
@dataclass
|
| 16 |
class EvalResult:
|
| 17 |
+
"""Represents one full evaluation. Built from a combination of the result and request file for a given run."""
|
| 18 |
+
|
| 19 |
+
eval_name: str # org_model_precision (uid)
|
| 20 |
+
full_model: str # org/model (path on hub)
|
| 21 |
+
org: str
|
| 22 |
model: str
|
| 23 |
+
revision: str # commit hash, "" if main
|
| 24 |
results: dict
|
| 25 |
precision: Precision = Precision.Unknown
|
| 26 |
+
model_type: ModelType = ModelType.Unknown # Pretrained, fine tuned, ...
|
| 27 |
+
weight_type: WeightType = WeightType.Original # Original or Adapter
|
| 28 |
+
architecture: str = "Unknown"
|
| 29 |
license: str = "?"
|
| 30 |
likes: int = 0
|
| 31 |
num_params: int = 0
|
| 32 |
+
date: str = "" # submission date of request file
|
| 33 |
still_on_hub: bool = False
|
| 34 |
|
| 35 |
@classmethod
|
|
|
|
| 57 |
result_key = f"{org}_{model}_{precision.value.name}"
|
| 58 |
full_model = "/".join(org_and_model)
|
| 59 |
|
| 60 |
+
# still_on_hub, _, model_config = is_model_on_hub(
|
| 61 |
+
# full_model, config.get("model_sha", "main"), trust_remote_code=True, test_tokenizer=False
|
| 62 |
+
# )
|
| 63 |
architecture = "?"
|
| 64 |
+
# if model_config is not None:
|
| 65 |
+
# architectures = getattr(model_config, "architectures", None)
|
| 66 |
+
# if architectures:
|
| 67 |
+
# architecture = ";".join(architectures)
|
| 68 |
|
| 69 |
# Extract results available in this file (some results are split in several files)
|
| 70 |
results = {}
|
|
|
|
| 85 |
org=org,
|
| 86 |
model=model,
|
| 87 |
results=results,
|
| 88 |
+
precision=precision,
|
| 89 |
+
revision=config.get("model_sha", ""),
|
| 90 |
+
still_on_hub=False,
|
| 91 |
+
architecture=architecture,
|
| 92 |
)
|
| 93 |
|
| 94 |
def update_with_request_file(self, requests_path):
|
|
|
|
| 105 |
self.num_params = request.get("params", 0)
|
| 106 |
self.date = request.get("submitted_time", "")
|
| 107 |
except Exception:
|
| 108 |
+
print(
|
| 109 |
+
f"Could not find request file for {self.org}/{self.model} with precision {self.precision.value.name}"
|
| 110 |
+
)
|
| 111 |
|
| 112 |
def to_dict(self):
|
| 113 |
"""Converts the Eval Result to a dict compatible with our dataframe display"""
|
|
|
|
| 148 |
for tmp_request_file in request_files:
|
| 149 |
with open(tmp_request_file, "r") as f:
|
| 150 |
req_content = json.load(f)
|
| 151 |
+
if req_content["status"] in ["FINISHED"] and req_content["precision"] == precision.split(".")[-1]:
|
|
|
|
|
|
|
|
|
|
| 152 |
request_file = tmp_request_file
|
| 153 |
return request_file
|
| 154 |
|
|
|
|
| 187 |
results = []
|
| 188 |
for v in eval_results.values():
|
| 189 |
try:
|
| 190 |
+
v.to_dict() # we test if the dict version is complete
|
| 191 |
results.append(v)
|
| 192 |
except KeyError: # not all eval values present
|
| 193 |
continue
|
src/populate.py
CHANGED
|
@@ -8,6 +8,19 @@ from src.display.utils import AutoEvalColumn, EvalQueueColumn
|
|
| 8 |
from src.leaderboard.read_evals import get_raw_eval_results
|
| 9 |
|
| 10 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 11 |
def get_leaderboard_df(results_path: str, requests_path: str, cols: list, benchmark_cols: list) -> pd.DataFrame:
|
| 12 |
"""Creates a dataframe from all the individual experiment results"""
|
| 13 |
raw_data = get_raw_eval_results(results_path, requests_path)
|
|
|
|
| 8 |
from src.leaderboard.read_evals import get_raw_eval_results
|
| 9 |
|
| 10 |
|
| 11 |
+
def get_leaderboard_df_crm(crm_results_path: str, cols: list) -> pd.DataFrame:
|
| 12 |
+
"""Creates a dataframe from all the individual experiment results"""
|
| 13 |
+
leaderboard_accuracy_df = pd.read_csv(os.path.join(crm_results_path, "hf_leaderboard_accuracy.csv"))
|
| 14 |
+
# leaderboard_accuracy_df = leaderboard_accuracy_df.sort_values(
|
| 15 |
+
# by=[AutoEvalColumn.accuracy_metric_average.name], ascending=False
|
| 16 |
+
# )
|
| 17 |
+
# print(leaderboard_accuracy_df)
|
| 18 |
+
# print(leaderboard_accuracy_df.columns)
|
| 19 |
+
# print(leaderboard_accuracy_df["Model Name"].nunique())
|
| 20 |
+
leaderboard_accuracy_df = leaderboard_accuracy_df[cols].round(decimals=2)
|
| 21 |
+
return leaderboard_accuracy_df
|
| 22 |
+
|
| 23 |
+
|
| 24 |
def get_leaderboard_df(results_path: str, requests_path: str, cols: list, benchmark_cols: list) -> pd.DataFrame:
|
| 25 |
"""Creates a dataframe from all the individual experiment results"""
|
| 26 |
raw_data = get_raw_eval_results(results_path, requests_path)
|
src/submission/check_validity.py
DELETED
|
@@ -1,99 +0,0 @@
|
|
| 1 |
-
import json
|
| 2 |
-
import os
|
| 3 |
-
import re
|
| 4 |
-
from collections import defaultdict
|
| 5 |
-
from datetime import datetime, timedelta, timezone
|
| 6 |
-
|
| 7 |
-
import huggingface_hub
|
| 8 |
-
from huggingface_hub import ModelCard
|
| 9 |
-
from huggingface_hub.hf_api import ModelInfo
|
| 10 |
-
from transformers import AutoConfig
|
| 11 |
-
from transformers.models.auto.tokenization_auto import AutoTokenizer
|
| 12 |
-
|
| 13 |
-
def check_model_card(repo_id: str) -> tuple[bool, str]:
|
| 14 |
-
"""Checks if the model card and license exist and have been filled"""
|
| 15 |
-
try:
|
| 16 |
-
card = ModelCard.load(repo_id)
|
| 17 |
-
except huggingface_hub.utils.EntryNotFoundError:
|
| 18 |
-
return False, "Please add a model card to your model to explain how you trained/fine-tuned it."
|
| 19 |
-
|
| 20 |
-
# Enforce license metadata
|
| 21 |
-
if card.data.license is None:
|
| 22 |
-
if not ("license_name" in card.data and "license_link" in card.data):
|
| 23 |
-
return False, (
|
| 24 |
-
"License not found. Please add a license to your model card using the `license` metadata or a"
|
| 25 |
-
" `license_name`/`license_link` pair."
|
| 26 |
-
)
|
| 27 |
-
|
| 28 |
-
# Enforce card content
|
| 29 |
-
if len(card.text) < 200:
|
| 30 |
-
return False, "Please add a description to your model card, it is too short."
|
| 31 |
-
|
| 32 |
-
return True, ""
|
| 33 |
-
|
| 34 |
-
def is_model_on_hub(model_name: str, revision: str, token: str = None, trust_remote_code=False, test_tokenizer=False) -> tuple[bool, str]:
|
| 35 |
-
"""Checks if the model model_name is on the hub, and whether it (and its tokenizer) can be loaded with AutoClasses."""
|
| 36 |
-
try:
|
| 37 |
-
config = AutoConfig.from_pretrained(model_name, revision=revision, trust_remote_code=trust_remote_code, token=token)
|
| 38 |
-
if test_tokenizer:
|
| 39 |
-
try:
|
| 40 |
-
tk = AutoTokenizer.from_pretrained(model_name, revision=revision, trust_remote_code=trust_remote_code, token=token)
|
| 41 |
-
except ValueError as e:
|
| 42 |
-
return (
|
| 43 |
-
False,
|
| 44 |
-
f"uses a tokenizer which is not in a transformers release: {e}",
|
| 45 |
-
None
|
| 46 |
-
)
|
| 47 |
-
except Exception as e:
|
| 48 |
-
return (False, "'s tokenizer cannot be loaded. Is your tokenizer class in a stable transformers release, and correctly configured?", None)
|
| 49 |
-
return True, None, config
|
| 50 |
-
|
| 51 |
-
except ValueError:
|
| 52 |
-
return (
|
| 53 |
-
False,
|
| 54 |
-
"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.",
|
| 55 |
-
None
|
| 56 |
-
)
|
| 57 |
-
|
| 58 |
-
except Exception as e:
|
| 59 |
-
return False, "was not found on hub!", None
|
| 60 |
-
|
| 61 |
-
|
| 62 |
-
def get_model_size(model_info: ModelInfo, precision: str):
|
| 63 |
-
"""Gets the model size from the configuration, or the model name if the configuration does not contain the information."""
|
| 64 |
-
try:
|
| 65 |
-
model_size = round(model_info.safetensors["total"] / 1e9, 3)
|
| 66 |
-
except (AttributeError, TypeError):
|
| 67 |
-
return 0 # Unknown model sizes are indicated as 0, see NUMERIC_INTERVALS in app.py
|
| 68 |
-
|
| 69 |
-
size_factor = 8 if (precision == "GPTQ" or "gptq" in model_info.modelId.lower()) else 1
|
| 70 |
-
model_size = size_factor * model_size
|
| 71 |
-
return model_size
|
| 72 |
-
|
| 73 |
-
def get_model_arch(model_info: ModelInfo):
|
| 74 |
-
"""Gets the model architecture from the configuration"""
|
| 75 |
-
return model_info.config.get("architectures", "Unknown")
|
| 76 |
-
|
| 77 |
-
def already_submitted_models(requested_models_dir: str) -> set[str]:
|
| 78 |
-
"""Gather a list of already submitted models to avoid duplicates"""
|
| 79 |
-
depth = 1
|
| 80 |
-
file_names = []
|
| 81 |
-
users_to_submission_dates = defaultdict(list)
|
| 82 |
-
|
| 83 |
-
for root, _, files in os.walk(requested_models_dir):
|
| 84 |
-
current_depth = root.count(os.sep) - requested_models_dir.count(os.sep)
|
| 85 |
-
if current_depth == depth:
|
| 86 |
-
for file in files:
|
| 87 |
-
if not file.endswith(".json"):
|
| 88 |
-
continue
|
| 89 |
-
with open(os.path.join(root, file), "r") as f:
|
| 90 |
-
info = json.load(f)
|
| 91 |
-
file_names.append(f"{info['model']}_{info['revision']}_{info['precision']}")
|
| 92 |
-
|
| 93 |
-
# Select organisation
|
| 94 |
-
if info["model"].count("/") == 0 or "submitted_time" not in info:
|
| 95 |
-
continue
|
| 96 |
-
organisation, _ = info["model"].split("/")
|
| 97 |
-
users_to_submission_dates[organisation].append(info["submitted_time"])
|
| 98 |
-
|
| 99 |
-
return set(file_names), users_to_submission_dates
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
src/submission/submit.py
DELETED
|
@@ -1,119 +0,0 @@
|
|
| 1 |
-
import json
|
| 2 |
-
import os
|
| 3 |
-
from datetime import datetime, timezone
|
| 4 |
-
|
| 5 |
-
from src.display.formatting import styled_error, styled_message, styled_warning
|
| 6 |
-
from src.envs import API, EVAL_REQUESTS_PATH, TOKEN, QUEUE_REPO
|
| 7 |
-
from src.submission.check_validity import (
|
| 8 |
-
already_submitted_models,
|
| 9 |
-
check_model_card,
|
| 10 |
-
get_model_size,
|
| 11 |
-
is_model_on_hub,
|
| 12 |
-
)
|
| 13 |
-
|
| 14 |
-
REQUESTED_MODELS = None
|
| 15 |
-
USERS_TO_SUBMISSION_DATES = None
|
| 16 |
-
|
| 17 |
-
def add_new_eval(
|
| 18 |
-
model: str,
|
| 19 |
-
base_model: str,
|
| 20 |
-
revision: str,
|
| 21 |
-
precision: str,
|
| 22 |
-
weight_type: str,
|
| 23 |
-
model_type: str,
|
| 24 |
-
):
|
| 25 |
-
global REQUESTED_MODELS
|
| 26 |
-
global USERS_TO_SUBMISSION_DATES
|
| 27 |
-
if not REQUESTED_MODELS:
|
| 28 |
-
REQUESTED_MODELS, USERS_TO_SUBMISSION_DATES = already_submitted_models(EVAL_REQUESTS_PATH)
|
| 29 |
-
|
| 30 |
-
user_name = ""
|
| 31 |
-
model_path = model
|
| 32 |
-
if "/" in model:
|
| 33 |
-
user_name = model.split("/")[0]
|
| 34 |
-
model_path = model.split("/")[1]
|
| 35 |
-
|
| 36 |
-
precision = precision.split(" ")[0]
|
| 37 |
-
current_time = datetime.now(timezone.utc).strftime("%Y-%m-%dT%H:%M:%SZ")
|
| 38 |
-
|
| 39 |
-
if model_type is None or model_type == "":
|
| 40 |
-
return styled_error("Please select a model type.")
|
| 41 |
-
|
| 42 |
-
# Does the model actually exist?
|
| 43 |
-
if revision == "":
|
| 44 |
-
revision = "main"
|
| 45 |
-
|
| 46 |
-
# Is the model on the hub?
|
| 47 |
-
if weight_type in ["Delta", "Adapter"]:
|
| 48 |
-
base_model_on_hub, error, _ = is_model_on_hub(model_name=base_model, revision=revision, token=TOKEN, test_tokenizer=True)
|
| 49 |
-
if not base_model_on_hub:
|
| 50 |
-
return styled_error(f'Base model "{base_model}" {error}')
|
| 51 |
-
|
| 52 |
-
if not weight_type == "Adapter":
|
| 53 |
-
model_on_hub, error, _ = is_model_on_hub(model_name=model, revision=revision, token=TOKEN, test_tokenizer=True)
|
| 54 |
-
if not model_on_hub:
|
| 55 |
-
return styled_error(f'Model "{model}" {error}')
|
| 56 |
-
|
| 57 |
-
# Is the model info correctly filled?
|
| 58 |
-
try:
|
| 59 |
-
model_info = API.model_info(repo_id=model, revision=revision)
|
| 60 |
-
except Exception:
|
| 61 |
-
return styled_error("Could not get your model information. Please fill it up properly.")
|
| 62 |
-
|
| 63 |
-
model_size = get_model_size(model_info=model_info, precision=precision)
|
| 64 |
-
|
| 65 |
-
# Were the model card and license filled?
|
| 66 |
-
try:
|
| 67 |
-
license = model_info.cardData["license"]
|
| 68 |
-
except Exception:
|
| 69 |
-
return styled_error("Please select a license for your model")
|
| 70 |
-
|
| 71 |
-
modelcard_OK, error_msg = check_model_card(model)
|
| 72 |
-
if not modelcard_OK:
|
| 73 |
-
return styled_error(error_msg)
|
| 74 |
-
|
| 75 |
-
# Seems good, creating the eval
|
| 76 |
-
print("Adding new eval")
|
| 77 |
-
|
| 78 |
-
eval_entry = {
|
| 79 |
-
"model": model,
|
| 80 |
-
"base_model": base_model,
|
| 81 |
-
"revision": revision,
|
| 82 |
-
"precision": precision,
|
| 83 |
-
"weight_type": weight_type,
|
| 84 |
-
"status": "PENDING",
|
| 85 |
-
"submitted_time": current_time,
|
| 86 |
-
"model_type": model_type,
|
| 87 |
-
"likes": model_info.likes,
|
| 88 |
-
"params": model_size,
|
| 89 |
-
"license": license,
|
| 90 |
-
"private": False,
|
| 91 |
-
}
|
| 92 |
-
|
| 93 |
-
# Check for duplicate submission
|
| 94 |
-
if f"{model}_{revision}_{precision}" in REQUESTED_MODELS:
|
| 95 |
-
return styled_warning("This model has been already submitted.")
|
| 96 |
-
|
| 97 |
-
print("Creating eval file")
|
| 98 |
-
OUT_DIR = f"{EVAL_REQUESTS_PATH}/{user_name}"
|
| 99 |
-
os.makedirs(OUT_DIR, exist_ok=True)
|
| 100 |
-
out_path = f"{OUT_DIR}/{model_path}_eval_request_False_{precision}_{weight_type}.json"
|
| 101 |
-
|
| 102 |
-
with open(out_path, "w") as f:
|
| 103 |
-
f.write(json.dumps(eval_entry))
|
| 104 |
-
|
| 105 |
-
print("Uploading eval file")
|
| 106 |
-
API.upload_file(
|
| 107 |
-
path_or_fileobj=out_path,
|
| 108 |
-
path_in_repo=out_path.split("eval-queue/")[1],
|
| 109 |
-
repo_id=QUEUE_REPO,
|
| 110 |
-
repo_type="dataset",
|
| 111 |
-
commit_message=f"Add {model} to eval queue",
|
| 112 |
-
)
|
| 113 |
-
|
| 114 |
-
# Remove the local file
|
| 115 |
-
os.remove(out_path)
|
| 116 |
-
|
| 117 |
-
return styled_message(
|
| 118 |
-
"Your request has been submitted to the evaluation queue!\nPlease wait for up to an hour for the model to show in the PENDING list."
|
| 119 |
-
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|