@@ -288,55 +288,54 @@ append_lm_eval_summary() {
288288 local results_dir=" ${EVAL_RESULT_DIR} "
289289 local task=" ${EVAL_TASK:- gsm8k} "
290290 local out_dir=" ${results_dir} "
291- local summary_md=" ${out_dir} /SUMMARY.md"
292291 mkdir -p " $out_dir " || true
293292
294293 # Write minimal meta for collectors that expect it
295294 local meta_json=" ${out_dir} /meta_env.json"
296295 local model_name=" ${MODEL_NAME:- $MODEL } "
297296 local dp_json=" false"
298297 if [ " ${DP_ATTENTION} " = " true" ]; then dp_json=" true" ; fi
298+
299+ # Derive framework/precision from env, fallback to parsing RESULT_FILENAME
300+ # RESULT_FILENAME format (from workflow):
301+ # <exp_name>_<precision>_<framework>_tp<...>_ep<...>_dpa_<...>_conc<...>_<runner>
302+ local fw=" ${FRAMEWORK:- } "
303+ local prec=" ${PRECISION:- } "
304+ if [[ -z " $fw " || -z " $prec " ]]; then
305+ if [[ -n " ${RESULT_FILENAME} " ]]; then
306+ # Extract the two fields immediately before "_tp"
307+ # Handles arbitrary underscores in exp_name by matching from the end
308+ local parsed
309+ parsed=$( echo " ${RESULT_FILENAME} " | sed -n ' s/.*_\([^_][^_]*\)_\([^_][^_]*\)_tp.*/\1 \2/p' )
310+ local p1=" ${parsed%% * } "
311+ local p2=" ${parsed#* } "
312+ if [[ -z " $prec " && -n " $p1 " && " $p1 " != " $parsed " ]]; then
313+ prec=" $p1 "
314+ fi
315+ if [[ -z " $fw " && -n " $p2 " && " $p2 " != " $parsed " ]]; then
316+ fw=" $p2 "
317+ fi
318+ fi
319+ fi
299320 cat > " ${meta_json} " << META
300321{
301- "framework": "${FRAMEWORK :- unknown} ",
302- "precision": "${PRECISION :- unknown} ",
322+ "framework": "${fw :- unknown} ",
323+ "precision": "${prec :- unknown} ",
303324 "tp": ${TP:- 1} ,
304325 "ep": ${EP_SIZE:- 1} ,
305326 "dp_attention": ${dp_json} ,
306327 "model": "${model_name:- } "
307328}
308329META
309330
310- PYTHONNOUSERSITE=1 PYTHONPATH=" " python3 -S utils/lm_eval_to_md.py \
311- --results-dir " $out_dir " \
312- --task " ${task} " \
313- --framework " ${FRAMEWORK} " \
314- --precision " ${PRECISION} " \
315- --tp " ${TP:- 1} " \
316- --ep " ${EP_SIZE:- 1} " \
317- --dp-attention " ${DP_ATTENTION:- false} " \
318- > " $summary_md " || true
319-
320- # If running inside a GitHub Actions step on this same machine, append there too
321- if [ -n " ${GITHUB_STEP_SUMMARY:- } " ]; then
322- local GH_SUM_DIR
323- GH_SUM_DIR=" $( dirname " $GITHUB_STEP_SUMMARY " ) "
324- if [ -d " $GH_SUM_DIR " ] && [ -w " $GH_SUM_DIR " ]; then
325- cat " $summary_md " >> " $GITHUB_STEP_SUMMARY " || true
326- fi
327- fi
328-
329331 # Move eval artifacts into PWD (no new directories in workspace)
330- if [ -f " ${summary_md} " ]; then
331- mv -f " ${summary_md} " ./ || true
332- fi
333332 if [ -f " ${meta_json} " ]; then
334333 mv -f " ${meta_json} " ./ || true
335334 fi
336335 if [ -d " ${out_dir} " ]; then
337336 while IFS= read -r -d ' ' jf; do
338337 base=$( basename " $jf " )
339- if [ " $base " != " meta_env.json" ] && [ " $base " != " SUMMARY.md " ] ; then
338+ if [ " $base " != " meta_env.json" ]; then
340339 mv -f " $jf " ./ || true
341340 fi
342341 done < <( find " ${out_dir} " -type f -name " *.json" -print0 2> /dev/null)
0 commit comments