22< html lang ="en ">
33< head >
44 < meta charset ="UTF-8 " />
5- < title > Minimalism Leaderboard</ title >
5+ < title > Efficiency-Feasibility Leaderboard</ title >
66 < link rel ="stylesheet " href ="style.css " />
77 < style >
88 /* New inline styles for dynamic input feedback */
3030 </ style >
3131</ head >
3232< body >
33- < h1 > Minimalism Leaderboard</ h1 >
33+ < h1 > Efficiency-Feasibility Leaderboard</ h1 >
3434
3535 <!-- ===== Efficiency Section ===== -->
3636 < div class ="section-container " id ="efficiencySection ">
@@ -40,7 +40,7 @@ <h2>Efficiency Indicators</h2>
4040 < strong > Input Rules:</ strong >
4141 < ul >
4242 < li > < strong > SEM:</ strong > One or more comma‐separated values (e.g. < em > 1.2, 1.4</ em > ).</ li >
43- < li > < strong > BM :</ strong > Either a single value (e.g. < em > 1.0</ em > ) or exactly as many values as SEM (e.g. < em > 1.0, 1.0</ em > ).</ li >
43+ < li > < strong > BLM :</ strong > Either a single value (e.g. < em > 1.0</ em > ) or exactly as many values as SEM (e.g. < em > 1.0, 1.0</ em > ).</ li >
4444 < li > < strong > PIR:</ strong > If provided directly, only one value is allowed (e.g. < em > 0.95</ em > ).</ li >
4545 < li > < strong > SDF:</ strong > Must be exactly one value (e.g. < em > 0.125</ em > ).</ li >
4646 </ ul >
@@ -65,9 +65,9 @@ <h2>Efficiency Indicators</h2>
6565 < div id ="semError " class ="error "> </ div >
6666 </ div >
6767 < div >
68- < label for ="BM " > BM values:</ label >
69- < input type ="text " id ="BM " placeholder ="e.g. 1.0 or 1.0, 1.0 " />
70- < div id ="bmError " class ="error "> </ div >
68+ < label for ="BLM " > BLM values:</ label >
69+ < input type ="text " id ="BLM " placeholder ="e.g. 1.0 or 1.0, 1.0 " />
70+ < div id ="BLMError " class ="error "> </ div >
7171 </ div >
7272 <!-- New PIR input field for direct PIR value -->
7373 < div >
@@ -119,12 +119,21 @@ <h2>Feasibility Indicators</h2>
119119 < div class ="input-rules ">
120120 < strong > Input Rules:</ strong >
121121 < ul >
122- < li > < strong > LLM Count:</ strong > A numeric value (e.g. < em > 0</ em > , < em > 1</ em > , < em > 30</ em > , < em > 500</ em > ). (May include a "*" marker in exceptional cases.)</ li >
123- < li > < strong > Steps:</ strong > A string with a primary number and a bracketed number (e.g. < em > 2(1)</ em > ). Only the number before the bracket is used.</ li >
124- < li > < strong > Rep:</ strong > Select < em > true</ em > or < em > false</ em > (true means no penalty).</ li >
125- < li > < strong > Model Free, Dataset Free, ChatGPT Free:</ strong > Select < em > true</ em > (good) or < em > false</ em > (penalty applied).</ li >
126- < li > The last three columns (Simplicity, Flexibility, Feasibility) are computed automatically.</ li >
122+ < li > < strong > # Trained LLMs:</ strong > How many LLMs are trained during construction of your Data Selector.</ li >
123+ < li > < strong > Steps:</ strong > How many algorithm steps do you have for a data selection process. For counting method, please refer to paper's appendix A.5. (Only the number before the bracket is used for ranking.)</ li >
124+ < li > < strong > Rep: Whether your work has open-source codes. </ strong > Select < em > true</ em > or < em > false</ em > .</ li >
125+ < li > < strong > Model Free:</ strong > If the selector model is changed, will the performance be influenced?</ li >
126+ < li > < strong > Dataset Free:</ strong > If the candidate dataset is changed, do you need to re-train the selector?</ li >
127+ < li > < strong > ChatGPT Free</ strong > : Does your selection rely on ChatGPT/GPT-4 like proprietary models?</ li >
127128 </ ul >
129+ < strong > Ranking Algorithm:</ strong >
130+ < ul >
131+ < li > < strong > Feasibility Rank</ strong > is based on ranking of each work's < strong > Simplicity Rank + Flexibility Rank</ strong > .</ li >
132+ < li > < strong > Simplicity Rank</ strong > is based on ranking of each work's < strong > Simplicity Penalty = 2*LLMCount + 1*Steps + 1*NotReproducible.</ strong > </ li >
133+ < li > Smaller Simplicity Penalty --> Higher Simplicity Rank</ li >
134+ < li > < strong > Flexibility Rank</ strong > is based on ranking of each work's < strong > Flexibility Penalty = 3*NotModelFree + 2*NotDatasetFree + 1*NotGPTFree.</ strong > </ li >
135+ < li > Smaller Flexibility Penalty --> Higher Flexibility Rank</ li >
136+ </ ul >
128137 </ div >
129138 < div class ="row-container feasibility-row ">
130139 < div class ="table-wide ">
@@ -142,7 +151,6 @@ <h2>Feasibility Indicators</h2>
142151 < th > Dataset Free</ th >
143152 < th > ChatGPT Free</ th >
144153 < th > Flexibility Rank</ th >
145-
146154 </ tr >
147155 </ thead >
148156 < tbody > </ tbody >
@@ -241,22 +249,22 @@ <h2>Feasibility Indicators</h2>
241249 return null ;
242250 }
243251
244- // Updated getPIR: supports either a direct PIR input OR calculation from SEM/BM .
245- // Also supports two valid input cases: (a) multiple SEM with a single BM (broadcast) or (b) paired SEM and BM .
246- function getPIR ( type , SEM = null , BM = null , pir = null ) {
252+ // Updated getPIR: supports either a direct PIR input OR calculation from SEM/BLM .
253+ // Also supports two valid input cases: (a) multiple SEM with a single BLM (broadcast) or (b) paired SEM and BLM .
254+ function getPIR ( type , SEM = null , BLM = null , pir = null ) {
247255 let PIR ;
248256 if ( pir !== null ) {
249257 // Direct PIR input provided.
250258 PIR = pir ;
251- } else if ( SEM !== null && BM !== null ) {
252- if ( BM . length === 1 && SEM . length >= 1 ) {
253- let pirArray = SEM . map ( sem => sem / BM [ 0 ] ) ;
259+ } else if ( SEM !== null && BLM !== null ) {
260+ if ( BLM . length === 1 && SEM . length >= 1 ) {
261+ let pirArray = SEM . map ( sem => sem / BLM [ 0 ] ) ;
254262 pir = pirArray . reduce ( ( acc , val ) => acc + val , 0 ) / pirArray . length ;
255- } else if ( SEM . length === BM . length ) {
256- let pirArray = SEM . map ( ( sem , i ) => sem / BM [ i ] ) ;
263+ } else if ( SEM . length === BLM . length ) {
264+ let pirArray = SEM . map ( ( sem , i ) => sem / BLM [ i ] ) ;
257265 pir = pirArray . reduce ( ( acc , val ) => acc + val , 0 ) / pirArray . length ;
258266 } else {
259- return { error : "Invalid input: Provide either one BM value with one or more SEM values, or equal-length arrays of SEM and BM values." } ;
267+ return { error : "Invalid input: Provide either one BLM value with one or more SEM values, or equal-length arrays of SEM and BLM values." } ;
260268 }
261269 if ( type === "same_win_rate" ) {
262270 PIR = pir ;
@@ -272,35 +280,35 @@ <h2>Feasibility Indicators</h2>
272280 // --- Dynamic Input State Updates for Efficiency Section ---
273281 function updateEfficiencyInputStates ( ) {
274282 const semInput = document . getElementById ( "SEM" ) ;
275- const bmInput = document . getElementById ( "BM " ) ;
283+ const BLMInput = document . getElementById ( "BLM " ) ;
276284 const pirInput = document . getElementById ( "PIR" ) ;
277285
278- // If SEM or BM have input, disable PIR.
279- if ( semInput . value . trim ( ) !== "" || bmInput . value . trim ( ) !== "" ) {
286+ // If SEM or BLM have input, disable PIR.
287+ if ( semInput . value . trim ( ) !== "" || BLMInput . value . trim ( ) !== "" ) {
280288 pirInput . disabled = true ;
281289 pirInput . classList . add ( "disabled" ) ;
282290 } else {
283291 pirInput . disabled = false ;
284292 pirInput . classList . remove ( "disabled" ) ;
285293 }
286294
287- // If PIR has input, disable SEM and BM .
295+ // If PIR has input, disable SEM and BLM .
288296 if ( pirInput . value . trim ( ) !== "" ) {
289297 semInput . disabled = true ;
290- bmInput . disabled = true ;
298+ BLMInput . disabled = true ;
291299 semInput . classList . add ( "disabled" ) ;
292- bmInput . classList . add ( "disabled" ) ;
300+ BLMInput . classList . add ( "disabled" ) ;
293301 } else {
294302 semInput . disabled = false ;
295- bmInput . disabled = false ;
303+ BLMInput . disabled = false ;
296304 semInput . classList . remove ( "disabled" ) ;
297- bmInput . classList . remove ( "disabled" ) ;
305+ BLMInput . classList . remove ( "disabled" ) ;
298306 }
299307 }
300308
301309 // Add event listeners to update input states dynamically.
302310 document . getElementById ( "SEM" ) . addEventListener ( "input" , updateEfficiencyInputStates ) ;
303- document . getElementById ( "BM " ) . addEventListener ( "input" , updateEfficiencyInputStates ) ;
311+ document . getElementById ( "BLM " ) . addEventListener ( "input" , updateEfficiencyInputStates ) ;
304312 document . getElementById ( "PIR" ) . addEventListener ( "input" , updateEfficiencyInputStates ) ;
305313
306314 // --- NEW: Function to compute signed efficiency values and sort the efficiencyData array ---
@@ -395,7 +403,7 @@ <h2>Feasibility Indicators</h2>
395403 const effTbody = document . querySelector ( "#efficiencyTable tbody" ) ;
396404 // Do not clear table if error occurs.
397405 const SEMInput = document . getElementById ( "SEM" ) . value . trim ( ) ;
398- const BMInput = document . getElementById ( "BM " ) . value . trim ( ) ;
406+ const BLMInput = document . getElementById ( "BLM " ) . value . trim ( ) ;
399407 const SDFInput = document . getElementById ( "SDF" ) . value . trim ( ) ;
400408 const PIRInputVal = document . getElementById ( "PIR" ) . value . trim ( ) ;
401409
@@ -415,28 +423,28 @@ <h2>Feasibility Indicators</h2>
415423
416424 // If new efficiency input is provided, update the global efficiencyData array.
417425 if ( SDFInput !== "" ) {
418- if ( SEMInput !== "" || BMInput !== "" || PIRInputVal !== "" ) {
426+ if ( SEMInput !== "" || BLMInput !== "" || PIRInputVal !== "" ) {
419427 const methodNamesInput = document . getElementById ( "effMethodNames" ) . value . trim ( ) ;
420428 const methods = methodNamesInput ? methodNamesInput . split ( "," ) . map ( s => s . trim ( ) ) : [ ] ;
421429 const pirType = document . getElementById ( "pirType" ) . value ;
422430 const SEM = SEMInput ? SEMInput . split ( "," ) . map ( Number ) : [ ] ;
423- const BM = BMInput ? BMInput . split ( "," ) . map ( Number ) : [ ] ;
431+ const BLM = BLMInput ? BLMInput . split ( "," ) . map ( Number ) : [ ] ;
424432 const SDF = SDFInput . split ( "," ) . map ( Number ) ;
425433
426- if ( PIRInputVal === "" && ( ( SEM . length > 0 || BM . length > 0 ) && ( SEM . length !== BM . length && BM . length !== 1 ) ) ) {
427- document . getElementById ( "semError" ) . textContent = "SEM and BM must have the same number of values or BM must be a single value." ;
428- document . getElementById ( "bmError " ) . textContent = "SEM and BM must have the same number of values or BM must be a single value." ;
434+ if ( PIRInputVal === "" && ( ( SEM . length > 0 || BLM . length > 0 ) && ( SEM . length !== BLM . length && BLM . length !== 1 ) ) ) {
435+ document . getElementById ( "semError" ) . textContent = "SEM and BLM must have the same number of values or BLM must be a single value." ;
436+ document . getElementById ( "BLMError " ) . textContent = "SEM and BLM must have the same number of values or BLM must be a single value." ;
429437 return ;
430438 } else {
431439 document . getElementById ( "semError" ) . textContent = "" ;
432- document . getElementById ( "bmError " ) . textContent = "" ;
440+ document . getElementById ( "BLMError " ) . textContent = "" ;
433441 }
434442
435443 let pirValue ;
436444 if ( PIRInputVal !== "" ) {
437445 pirValue = parseFloat ( PIRInputVal ) ;
438446 } else {
439- const result = getPIR ( pirType , SEM , BM , null ) ;
447+ const result = getPIR ( pirType , SEM , BLM , null ) ;
440448 if ( result . error ) {
441449 alert ( result . error ) ;
442450 return ;
@@ -458,7 +466,7 @@ <h2>Feasibility Indicators</h2>
458466 // Clear the input fields after adding.
459467 document . getElementById ( "effMethodNames" ) . value = "" ;
460468 document . getElementById ( "SEM" ) . value = "" ;
461- document . getElementById ( "BM " ) . value = "" ;
469+ document . getElementById ( "BLM " ) . value = "" ;
462470 document . getElementById ( "SDF" ) . value = "" ;
463471 document . getElementById ( "PIR" ) . value = "" ;
464472 updateEfficiencyInputStates ( ) ;
@@ -1167,5 +1175,13 @@ <h2>Feasibility Indicators</h2>
11671175 downloadCanvas ( "feasibilityCanvas" , "feasibility_plot.png" ) ;
11681176 }
11691177 </ script >
1178+
1179+ <!-- Add this right before the closing </body> tag in index.html -->
1180+ < footer style ="margin-top: 2rem; padding: 1rem; text-align: center; color: #666; border-top: 1px solid #eee; font-size: 0.9rem; ">
1181+ < p >
1182+ Acknowledgements: Special thanks to Rui Ke for providing the core PIR calculator code.
1183+ We also appreciate the valuable suggestions and advice from the research community.
1184+ </ p >
1185+ </ footer >
11701186</ body >
11711187</ html >
0 commit comments