Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
from mmengine import read_base

with read_base():
from .agieval_gen_0_shot_chat_prompt import agieval_datasets

# 冒烟:仅取一个子集、小样本
agieval_datasets = agieval_datasets[:1]
agieval_datasets[0]['reader_cfg'] = dict(
agieval_datasets[0]['reader_cfg'],
test_range='[0:10]',
)
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
from mmengine import read_base

with read_base():
from .vllm_api_general_chat import models

models[0]['model'] = "qwen"
models[0]['max_out_len'] = 64
models[0]['batch_size'] = 16
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
case_type: benchmark
case_group:
- run_server_accuracy
- llm_datasets_main
- short
- refactor_success_1202
case_name: accuracy_agieval # 在整个工程的case中必须唯一
enable: y
script:
start: run.sh
end: clean.sh
timeout: 90
rank_size: 3
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
#!/bin/bash
CUR_DIR=$(dirname $(readlink -f $0))
[ -f "${CUR_DIR}/tmplog.txt" ] && rm -f "${CUR_DIR}/tmplog.txt"

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

此行命令可以简化。rm -f 命令在文件不存在时不会报错,因此前面的 [ -f ... ] 检查是多余的。

另外,这个 clean.sh 脚本与 accuracy_math 测试用例中的脚本内容完全相同。为了避免代码重复,建议将此脚本统一管理,例如创建一个公共的清理脚本供所有测试用例使用。

Suggested change
[ -f "${CUR_DIR}/tmplog.txt" ] && rm -f "${CUR_DIR}/tmplog.txt"
rm -f "${CUR_DIR}/tmplog.txt"

exit 0
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
#!/bin/bash
declare -i ret_ok=0
declare -i ret_failed=1

CUR_DIR=$(dirname $(readlink -f $0))
CASE_NAME=$(basename "$CUR_DIR")
LAST_3_DIRNAME=$(echo $CUR_DIR | rev | cut -d'/' -f1-3 | rev)
CASE_OUTPUT_PATH=${PROJECT_OUTPUT_PATH}/${LAST_3_DIRNAME}
AIS_BENCH_CODE_CONFIGS_DIR=${PROJECT_PATH}/../ais_bench/benchmark/configs
CONFIG_DATASET_NAME="agieval"
# 冒烟仅跑一个子集,输出名为该子集 abbr(agieval-gaokao-chinese)
OUTPUT_DATASET_NAME="agieval-gaokao-chinese"
CURR_API="vllm-api-general-chat"

if [ ! -d ${CASE_OUTPUT_PATH} ];then
mkdir -p ${CASE_OUTPUT_PATH}
fi
rm -rf ${CASE_OUTPUT_PATH}/*

echo "Copying config files..."
cp -r ${CUR_DIR}/ais_bench_configs/* ${AIS_BENCH_CODE_CONFIGS_DIR}/

{
echo ""
echo "models[0]['host_ip'] = '${AISBENCH_SMOKE_SERVICE_IP}'"
echo "models[0]['host_port'] = ${AISBENCH_SMOKE_SERVICE_PORT}"
echo "models[0]['path'] = '${AISBENCH_SMOKE_MODEL_PATH}'"
} >> "${AIS_BENCH_CODE_CONFIGS_DIR}/models/vllm_api/${CASE_NAME}.py"

echo -e "\033[1;32m[1/1]\033[0m Test case - ${CASE_NAME}"

set -o pipefail
ais_bench --models ${CASE_NAME} --datasets ${CASE_NAME} --work-dir ${CASE_OUTPUT_PATH} 2>&1 | tee ${CUR_DIR}/tmplog.txt
if [ $? -ne 0 ]
then
echo "Run $CASE_NAME test: Failed"
exit $ret_failed
fi
echo "Run $CASE_NAME test: Success"

WORK_DIR_INFO=$(cat ${CUR_DIR}/tmplog.txt | grep 'Current exp folder: ')
TIMESTAMP="${WORK_DIR_INFO##*/}"

CURR_OUTPUT_PATH=${CASE_OUTPUT_PATH}/${TIMESTAMP}
LOG_EVAL_OUTPUT_PATH=${CURR_OUTPUT_PATH}/logs/eval/${CURR_API}/${OUTPUT_DATASET_NAME}.out
LOG_INFER_OUTPUT_PATH=${CURR_OUTPUT_PATH}/logs/infer/${CURR_API}/${OUTPUT_DATASET_NAME}.out
PREDICTIONS_OUTPUT_PATH=${CURR_OUTPUT_PATH}/predictions/${CURR_API}/${OUTPUT_DATASET_NAME}.jsonl
RESULTS_OUTPUT_PATH=${CURR_OUTPUT_PATH}/results/${CURR_API}/${OUTPUT_DATASET_NAME}.json
SUMMARY_OUTPUT_PATH=${CURR_OUTPUT_PATH}/summary/summary_${TIMESTAMP}.csv

if [ ! -f "$LOG_EVAL_OUTPUT_PATH" ];then
echo "Can't find $LOG_EVAL_OUTPUT_PATH"
exit $ret_failed
fi
if [ ! -f "$LOG_INFER_OUTPUT_PATH" ];then
echo "Can't find $LOG_INFER_OUTPUT_PATH"
exit $ret_failed
fi
if [ ! -f "$PREDICTIONS_OUTPUT_PATH" ];then
echo "Can't find $PREDICTIONS_OUTPUT_PATH"
exit $ret_failed
fi
if [ ! -f "$RESULTS_OUTPUT_PATH" ];then
echo "Can't find $RESULTS_OUTPUT_PATH"
exit $ret_failed
fi
if [ ! -f "$SUMMARY_OUTPUT_PATH" ];then
echo "Can't find $SUMMARY_OUTPUT_PATH"
exit $ret_failed
fi
Comment on lines +51 to +70

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

这部分代码中存在大量重复的 if 语句来检查文件是否存在。为了提高代码的可读性和可维护性,建议使用一个循环来代替这些重复的检查。

Suggested change
if [ ! -f "$LOG_EVAL_OUTPUT_PATH" ];then
echo "Can't find $LOG_EVAL_OUTPUT_PATH"
exit $ret_failed
fi
if [ ! -f "$LOG_INFER_OUTPUT_PATH" ];then
echo "Can't find $LOG_INFER_OUTPUT_PATH"
exit $ret_failed
fi
if [ ! -f "$PREDICTIONS_OUTPUT_PATH" ];then
echo "Can't find $PREDICTIONS_OUTPUT_PATH"
exit $ret_failed
fi
if [ ! -f "$RESULTS_OUTPUT_PATH" ];then
echo "Can't find $RESULTS_OUTPUT_PATH"
exit $ret_failed
fi
if [ ! -f "$SUMMARY_OUTPUT_PATH" ];then
echo "Can't find $SUMMARY_OUTPUT_PATH"
exit $ret_failed
fi
for output_file in \
"$LOG_EVAL_OUTPUT_PATH" \
"$LOG_INFER_OUTPUT_PATH" \
"$PREDICTIONS_OUTPUT_PATH" \
"$RESULTS_OUTPUT_PATH" \
"$SUMMARY_OUTPUT_PATH"
do
if [ ! -f "$output_file" ]; then
echo "Can't find $output_file"
exit $ret_failed
fi
done


exit $ret_ok
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
from mmengine import read_base

with read_base():
from .math_prm800k_500_0shot_cot_gen import math_datasets

# 冒烟:小样本
math_datasets[0]['reader_cfg'] = dict(
math_datasets[0]['reader_cfg'],
test_range='[0:10]',
)
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
from mmengine import read_base

with read_base():
from .vllm_api_general_chat import models

models[0]['model'] = "qwen"
models[0]['max_out_len'] = 512
models[0]['batch_size'] = 8
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
case_type: benchmark
case_group:
- run_server_accuracy
- llm_datasets_main
- short
- refactor_success_1202
case_name: accuracy_math # 在整个工程的case中必须唯一
enable: y
script:
start: run.sh
end: clean.sh
timeout: 90
rank_size: 3
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
#!/bin/bash
CUR_DIR=$(dirname $(readlink -f $0))
[ -f "${CUR_DIR}/tmplog.txt" ] && rm -f "${CUR_DIR}/tmplog.txt"

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

此行命令可以简化。rm -f 命令在文件不存在时不会报错,因此前面的 [ -f ... ] 检查是多余的。

另外,这个 clean.sh 脚本与 accuracy_agieval 测试用例中的脚本内容完全相同。为了避免代码重复,建议将此脚本统一管理,例如创建一个公共的清理脚本供所有测试用例使用。

Suggested change
[ -f "${CUR_DIR}/tmplog.txt" ] && rm -f "${CUR_DIR}/tmplog.txt"
rm -f "${CUR_DIR}/tmplog.txt"

exit 0
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
#!/bin/bash
declare -i ret_ok=0
declare -i ret_failed=1

CUR_DIR=$(dirname $(readlink -f $0))
CASE_NAME=$(basename "$CUR_DIR")
LAST_3_DIRNAME=$(echo $CUR_DIR | rev | cut -d'/' -f1-3 | rev)
CASE_OUTPUT_PATH=${PROJECT_OUTPUT_PATH}/${LAST_3_DIRNAME}
AIS_BENCH_CODE_CONFIGS_DIR=${PROJECT_PATH}/../ais_bench/benchmark/configs
CONFIG_DATASET_NAME="math"
OUTPUT_DATASET_NAME="math_prm800k_500"
CURR_API="vllm-api-general-chat"

if [ ! -d ${CASE_OUTPUT_PATH} ];then
mkdir -p ${CASE_OUTPUT_PATH}
fi
rm -rf ${CASE_OUTPUT_PATH}/*

echo "Copying config files..."
cp -r ${CUR_DIR}/ais_bench_configs/* ${AIS_BENCH_CODE_CONFIGS_DIR}/

{
echo ""
echo "models[0]['host_ip'] = '${AISBENCH_SMOKE_SERVICE_IP}'"
echo "models[0]['host_port'] = ${AISBENCH_SMOKE_SERVICE_PORT}"
echo "models[0]['path'] = '${AISBENCH_SMOKE_MODEL_PATH}'"
} >> "${AIS_BENCH_CODE_CONFIGS_DIR}/models/vllm_api/${CASE_NAME}.py"

echo -e "\033[1;32m[1/1]\033[0m Test case - ${CASE_NAME}"

set -o pipefail
ais_bench --models ${CASE_NAME} --datasets ${CASE_NAME} --work-dir ${CASE_OUTPUT_PATH} 2>&1 | tee ${CUR_DIR}/tmplog.txt
if [ $? -ne 0 ]
then
echo "Run $CASE_NAME test: Failed"
exit $ret_failed
fi
echo "Run $CASE_NAME test: Success"

WORK_DIR_INFO=$(cat ${CUR_DIR}/tmplog.txt | grep 'Current exp folder: ')
TIMESTAMP="${WORK_DIR_INFO##*/}"

CURR_OUTPUT_PATH=${CASE_OUTPUT_PATH}/${TIMESTAMP}
LOG_EVAL_OUTPUT_PATH=${CURR_OUTPUT_PATH}/logs/eval/${CURR_API}/${OUTPUT_DATASET_NAME}.out
LOG_INFER_OUTPUT_PATH=${CURR_OUTPUT_PATH}/logs/infer/${CURR_API}/${OUTPUT_DATASET_NAME}.out
PREDICTIONS_OUTPUT_PATH=${CURR_OUTPUT_PATH}/predictions/${CURR_API}/${OUTPUT_DATASET_NAME}.jsonl
RESULTS_OUTPUT_PATH=${CURR_OUTPUT_PATH}/results/${CURR_API}/${OUTPUT_DATASET_NAME}.json
SUMMARY_OUTPUT_PATH=${CURR_OUTPUT_PATH}/summary/summary_${TIMESTAMP}.csv

if [ ! -f "$LOG_EVAL_OUTPUT_PATH" ];then
echo "Can't find $LOG_EVAL_OUTPUT_PATH"
exit $ret_failed
fi
if [ ! -f "$LOG_INFER_OUTPUT_PATH" ];then
echo "Can't find $LOG_INFER_OUTPUT_PATH"
exit $ret_failed
fi
if [ ! -f "$PREDICTIONS_OUTPUT_PATH" ];then
echo "Can't find $PREDICTIONS_OUTPUT_PATH"
exit $ret_failed
fi
if [ ! -f "$RESULTS_OUTPUT_PATH" ];then
echo "Can't find $RESULTS_OUTPUT_PATH"
exit $ret_failed
fi
if [ ! -f "$SUMMARY_OUTPUT_PATH" ];then
echo "Can't find $SUMMARY_OUTPUT_PATH"
exit $ret_failed
fi
Comment on lines +50 to +69

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

这部分代码中存在大量重复的 if 语句来检查文件是否存在。为了提高代码的可读性和可维护性,建议使用一个循环来代替这些重复的检查。这个问题在 accuracy_agieval/run.sh 中也同样存在。

Suggested change
if [ ! -f "$LOG_EVAL_OUTPUT_PATH" ];then
echo "Can't find $LOG_EVAL_OUTPUT_PATH"
exit $ret_failed
fi
if [ ! -f "$LOG_INFER_OUTPUT_PATH" ];then
echo "Can't find $LOG_INFER_OUTPUT_PATH"
exit $ret_failed
fi
if [ ! -f "$PREDICTIONS_OUTPUT_PATH" ];then
echo "Can't find $PREDICTIONS_OUTPUT_PATH"
exit $ret_failed
fi
if [ ! -f "$RESULTS_OUTPUT_PATH" ];then
echo "Can't find $RESULTS_OUTPUT_PATH"
exit $ret_failed
fi
if [ ! -f "$SUMMARY_OUTPUT_PATH" ];then
echo "Can't find $SUMMARY_OUTPUT_PATH"
exit $ret_failed
fi
for output_file in \
"$LOG_EVAL_OUTPUT_PATH" \
"$LOG_INFER_OUTPUT_PATH" \
"$PREDICTIONS_OUTPUT_PATH" \
"$RESULTS_OUTPUT_PATH" \
"$SUMMARY_OUTPUT_PATH"
do
if [ ! -f "$output_file" ]; then
echo "Can't find $output_file"
exit $ret_failed
fi
done


exit $ret_ok