|
import { MODEL_TYPE_ORDER } from "./modelTypes"; |
|
|
|
|
|
const TIME = { |
|
CACHE_DURATION: 5 * 60 * 1000, |
|
DEBOUNCE: { |
|
URL_PARAMS: 100, |
|
SEARCH: 150, |
|
RANGE_PICKER: 350, |
|
}, |
|
}; |
|
|
|
|
|
const DISPLAY = { |
|
ROW_SIZES: { |
|
normal: 45, |
|
large: 60, |
|
}, |
|
SCORE_DISPLAY_OPTIONS: [ |
|
{ value: "normalized", label: "Normalized" }, |
|
{ value: "raw", label: "Raw" }, |
|
], |
|
RANKING_MODE_OPTIONS: [ |
|
{ value: "static", label: "Static" }, |
|
{ value: "dynamic", label: "Dynamic" }, |
|
], |
|
}; |
|
|
|
|
|
const FILTERS = { |
|
PRECISIONS: ["bfloat16", "float16", "4bit"], |
|
SUBMISSION_PRECISIONS: [ |
|
{ value: "float16", label: "float16" }, |
|
{ value: "bfloat16", label: "bfloat16" }, |
|
{ value: "8bit", label: "8-bit" }, |
|
{ value: "4bit", label: "4-bit" }, |
|
{ value: "gptq", label: "GPTQ" }, |
|
], |
|
PARAMS_RANGE: [-1, 140], |
|
BOOLEAN_OPTIONS: [ |
|
{ |
|
value: "is_moe", |
|
label: "Mixture of Experts", |
|
hide: true, |
|
}, |
|
{ |
|
value: "is_merged", |
|
label: "Merged model", |
|
hide: true, |
|
}, |
|
{ |
|
value: "is_flagged", |
|
label: "Potentially contaminated model", |
|
hide: true, |
|
}, |
|
{ |
|
value: "is_not_available_on_hub", |
|
label: "Unavailable model", |
|
hide: true, |
|
}, |
|
{ |
|
value: "is_highlighted_by_maintainer", |
|
label: "Only Official Providers", |
|
hide: false, |
|
}, |
|
], |
|
HIGHLIGHT_OPTIONS: [ |
|
{ |
|
value: "is_highlighted_by_maintainer", |
|
label: "Only Official Providers", |
|
}, |
|
], |
|
}; |
|
|
|
|
|
const COLUMN_SIZES = { |
|
RANK: 65, |
|
TYPE_ICON: 65, |
|
MODEL: 400, |
|
AVERAGE_SCORE: 150, |
|
BENCHMARK: 110, |
|
CO2_COST: 140, |
|
HUB_HEARTS: 140, |
|
ARCHITECTURE: 210, |
|
PRECISION: 140, |
|
PARAMS: 160, |
|
LICENSE: 160, |
|
UPLOAD_DATE: 160, |
|
SUBMISSION_DATE: 200, |
|
GENERATION: 160, |
|
BASE_MODEL: 390, |
|
HUB_AVAILABILITY: 180, |
|
OFFICIAL_PROVIDER: 240, |
|
MOE: 200, |
|
FLAG_STATUS: 160, |
|
CHAT_TEMPLATE: 140, |
|
}; |
|
|
|
|
|
const COLUMNS = { |
|
FIXED: { |
|
rank: { |
|
group: "fixed", |
|
size: COLUMN_SIZES.RANK, |
|
defaultVisible: true, |
|
label: "Rank", |
|
}, |
|
"model.type_icon": { |
|
group: "fixed", |
|
size: COLUMN_SIZES.TYPE_ICON, |
|
defaultVisible: true, |
|
label: "Type", |
|
}, |
|
id: { |
|
group: "fixed", |
|
size: COLUMN_SIZES.MODEL, |
|
defaultVisible: true, |
|
label: "Model", |
|
}, |
|
"model.average_score": { |
|
group: "fixed", |
|
size: COLUMN_SIZES.AVERAGE_SCORE, |
|
defaultVisible: true, |
|
label: "Average Score", |
|
}, |
|
}, |
|
EVALUATION: { |
|
"evaluations.multifin.normalized_score": { |
|
group: "evaluation", |
|
size: COLUMN_SIZES.BENCHMARK, |
|
defaultVisible: true, |
|
label: "MultiFin", |
|
}, |
|
"evaluations.qa.normalized_score": { |
|
group: "evaluation", |
|
size: COLUMN_SIZES.BENCHMARK, |
|
defaultVisible: true, |
|
label: "QA", |
|
}, |
|
"evaluations.fns.normalized_score": { |
|
group: "evaluation", |
|
size: COLUMN_SIZES.BENCHMARK, |
|
defaultVisible: true, |
|
label: "FNS", |
|
}, |
|
"evaluations.finnum.normalized_score": { |
|
group: "evaluation", |
|
size: COLUMN_SIZES.BENCHMARK, |
|
defaultVisible: true, |
|
label: "FinNum", |
|
}, |
|
"evaluations.fintext.normalized_score": { |
|
group: "evaluation", |
|
size: COLUMN_SIZES.BENCHMARK, |
|
defaultVisible: true, |
|
label: "FinText", |
|
}, |
|
}, |
|
MODEL_INFO: { |
|
"metadata.co2_cost": { |
|
group: "model_info", |
|
size: COLUMN_SIZES.CO2_COST, |
|
defaultVisible: true, |
|
label: "CO₂ Cost (kg)", |
|
}, |
|
"metadata.hub_hearts": { |
|
group: "model_info", |
|
size: COLUMN_SIZES.HUB_HEARTS, |
|
defaultVisible: false, |
|
label: "Hub ❤️", |
|
}, |
|
"model.architecture": { |
|
group: "model_info", |
|
size: COLUMN_SIZES.ARCHITECTURE, |
|
defaultVisible: false, |
|
label: "Architecture", |
|
}, |
|
"model.precision": { |
|
group: "model_info", |
|
size: COLUMN_SIZES.PRECISION, |
|
defaultVisible: false, |
|
label: "Precision", |
|
}, |
|
"metadata.params_billions": { |
|
group: "model_info", |
|
size: COLUMN_SIZES.PARAMS, |
|
defaultVisible: false, |
|
label: "Parameters (B)", |
|
}, |
|
"metadata.hub_license": { |
|
group: "model_info", |
|
size: COLUMN_SIZES.LICENSE, |
|
defaultVisible: false, |
|
label: "License", |
|
}, |
|
"model.has_chat_template": { |
|
group: "model_info", |
|
size: COLUMN_SIZES.CHAT_TEMPLATE, |
|
defaultVisible: false, |
|
label: "Chat Template", |
|
}, |
|
}, |
|
ADDITIONAL_INFO: { |
|
"metadata.upload_date": { |
|
group: "additional_info", |
|
size: COLUMN_SIZES.UPLOAD_DATE, |
|
defaultVisible: false, |
|
label: "Upload Date", |
|
}, |
|
"metadata.submission_date": { |
|
group: "additional_info", |
|
size: COLUMN_SIZES.SUBMISSION_DATE, |
|
defaultVisible: false, |
|
label: "Submission Date", |
|
}, |
|
"metadata.generation": { |
|
group: "additional_info", |
|
size: COLUMN_SIZES.GENERATION, |
|
defaultVisible: false, |
|
label: "Generation", |
|
}, |
|
"metadata.base_model": { |
|
group: "additional_info", |
|
size: COLUMN_SIZES.BASE_MODEL, |
|
defaultVisible: false, |
|
label: "Base Model", |
|
}, |
|
"features.is_not_available_on_hub": { |
|
group: "additional_info", |
|
size: COLUMN_SIZES.HUB_AVAILABILITY, |
|
defaultVisible: false, |
|
label: "Hub Availability", |
|
}, |
|
"features.is_highlighted_by_maintainer": { |
|
group: "additional_info", |
|
size: COLUMN_SIZES.OFFICIAL_PROVIDER, |
|
defaultVisible: false, |
|
label: "Only Official Providers", |
|
}, |
|
"features.is_moe": { |
|
group: "additional_info", |
|
size: COLUMN_SIZES.MOE, |
|
defaultVisible: false, |
|
label: "Mixture of Experts", |
|
}, |
|
"features.is_flagged": { |
|
group: "additional_info", |
|
size: COLUMN_SIZES.FLAG_STATUS, |
|
defaultVisible: false, |
|
label: "Flag Status", |
|
}, |
|
}, |
|
}; |
|
|
|
|
|
const ALL_COLUMNS = { |
|
...COLUMNS.FIXED, |
|
...COLUMNS.EVALUATION, |
|
...COLUMNS.MODEL_INFO, |
|
...COLUMNS.ADDITIONAL_INFO, |
|
}; |
|
|
|
|
|
const COLUMN_DEFINITIONS = { |
|
ALL_COLUMNS, |
|
COLUMN_GROUPS: { |
|
"Evaluation Scores": Object.keys(COLUMNS.EVALUATION), |
|
"Model Information": Object.keys(COLUMNS.MODEL_INFO), |
|
"Additional Information": Object.keys(COLUMNS.ADDITIONAL_INFO), |
|
}, |
|
COLUMN_LABELS: Object.entries(ALL_COLUMNS).reduce((acc, [key, value]) => { |
|
acc[key] = value.label; |
|
return acc; |
|
}, {}), |
|
DEFAULT_VISIBLE: Object.entries(ALL_COLUMNS) |
|
.filter(([_, value]) => value.defaultVisible) |
|
.map(([key]) => key), |
|
|
|
|
|
get FIXED() { |
|
return Object.entries(ALL_COLUMNS) |
|
.filter(([_, def]) => def.group === "fixed") |
|
.map(([key]) => key); |
|
}, |
|
|
|
get EVALUATION() { |
|
return Object.entries(ALL_COLUMNS) |
|
.filter(([_, def]) => def.group === "evaluation") |
|
.map(([key]) => key); |
|
}, |
|
|
|
get OPTIONAL() { |
|
return Object.entries(ALL_COLUMNS) |
|
.filter(([_, def]) => def.group !== "fixed" && def.group !== "evaluation") |
|
.map(([key]) => key); |
|
}, |
|
|
|
get COLUMN_SIZES() { |
|
return Object.entries(ALL_COLUMNS).reduce( |
|
(acc, [key, def]) => ({ |
|
...acc, |
|
[key]: def.size, |
|
}), |
|
{} |
|
); |
|
}, |
|
}; |
|
|
|
|
|
export const FILTER_PRECISIONS = FILTERS.PRECISIONS; |
|
export const SUBMISSION_PRECISIONS = FILTERS.SUBMISSION_PRECISIONS; |
|
export const PARAMS_RANGE = FILTERS.PARAMS_RANGE; |
|
export const CACHE_SETTINGS = { DURATION: TIME.CACHE_DURATION }; |
|
export const PINNED_MODELS = []; |
|
export const DEBOUNCE_TIMINGS = TIME.DEBOUNCE; |
|
export const ROW_SIZES = DISPLAY.ROW_SIZES; |
|
export const SCORE_DISPLAY_OPTIONS = DISPLAY.SCORE_DISPLAY_OPTIONS; |
|
export const RANKING_MODE_OPTIONS = DISPLAY.RANKING_MODE_OPTIONS; |
|
export const BOOLEAN_FILTER_OPTIONS = FILTERS.BOOLEAN_OPTIONS; |
|
export const HIGHLIGHT_FILTER_OPTIONS = FILTERS.HIGHLIGHT_OPTIONS; |
|
export { COLUMN_DEFINITIONS }; |
|
|
|
|
|
export const TABLE_DEFAULTS = { |
|
ROW_SIZE: "normal", |
|
SCORE_DISPLAY: "normalized", |
|
AVERAGE_MODE: "all", |
|
RANKING_MODE: "static", |
|
SEARCH: { |
|
PRECISIONS: FILTERS.PRECISIONS, |
|
TYPES: MODEL_TYPE_ORDER, |
|
PARAMS_RANGE: FILTERS.PARAMS_RANGE, |
|
}, |
|
DEFAULT_SELECTED: { |
|
searchValue: "", |
|
selectedPrecisions: FILTERS.PRECISIONS, |
|
selectedTypes: MODEL_TYPE_ORDER, |
|
paramsRange: FILTERS.PARAMS_RANGE, |
|
selectedBooleanFilters: [], |
|
}, |
|
DEBOUNCE: TIME.DEBOUNCE, |
|
COLUMNS: COLUMN_DEFINITIONS, |
|
PINNED_MODELS: [], |
|
CACHE_DURATION: TIME.CACHE_DURATION, |
|
}; |
|
|
|
|
|
export const HIGHLIGHT_COLORS = [ |
|
"#1f77b4", |
|
"#ff7f0e", |
|
"#2ca02c", |
|
"#d62728", |
|
"#9467bd", |
|
"#8c564b", |
|
"#e377c2", |
|
"#7f7f7f", |
|
"#bcbd22", |
|
"#17becf", |
|
]; |
|
|
|
|
|
export const SKELETON_COLUMNS = [ |
|
40, |
|
COLUMN_SIZES.RANK, |
|
COLUMN_SIZES.TYPE_ICON, |
|
COLUMN_SIZES.MODEL, |
|
COLUMN_SIZES.AVERAGE_SCORE, |
|
COLUMN_SIZES.BENCHMARK, |
|
COLUMN_SIZES.BENCHMARK, |
|
COLUMN_SIZES.BENCHMARK, |
|
COLUMN_SIZES.BENCHMARK, |
|
COLUMN_SIZES.BENCHMARK, |
|
COLUMN_SIZES.BENCHMARK, |
|
]; |
|
|