|
@@ -53,8 +53,8 @@ predict_analyse_file_path=""
|
|
|
# 保存模型评估的分析结果
|
|
|
old_incr_rate_avg=0
|
|
|
new_incr_rate_avg=0
|
|
|
-old_incr_rate_list=""
|
|
|
-new_incr_rate_list=""
|
|
|
+declare -A old_score_map
|
|
|
+declare -A new_score_map
|
|
|
|
|
|
# 校验命令的退出码
|
|
|
check_run_status() {
|
|
@@ -75,6 +75,20 @@ check_run_status() {
|
|
|
fi
|
|
|
}
|
|
|
|
|
|
+send_success_upload_msg(){
|
|
|
+ local msg=" 广告模型文件更新完成"
|
|
|
+ msg+="\n\t - 老模型Top10差异平均值: ${old_incr_rate_avg}"
|
|
|
+ msg+="\n\t - 新模型Top10差异平均值: ${new_incr_rate_avg}"
|
|
|
+ msg+="\n\t - 模型在HDFS中的路径: ${model_save_path}"
|
|
|
+ msg+="\n\t - 模型上传OSS中的路径: ${MODEL_OSS_PATH}/${model_name}.tar.gz"
|
|
|
+
|
|
|
+ local top10_msg="| CID | 老模型 | 新模型 | \n| ---- | -------- | -------- | "
|
|
|
+ for cid in "${!new_score_map[@]}"; do
|
|
|
+ top10_msg="${top10_msg} \n| ${cid} | ${old_score_map[$cid]} | ${new_score_map[$cid]} | "
|
|
|
+ done
|
|
|
+ /root/anaconda3/bin/python ${sh_path}/ad_monitor_util.py --level info --msg "${msg}" --start "${start_time}" --elapsed "${elapsed}" --top10 "${top10_msg}"
|
|
|
+}
|
|
|
+
|
|
|
init() {
|
|
|
|
|
|
declare -a date_keys=()
|
|
@@ -209,13 +223,9 @@ calc_model_predict() {
|
|
|
|
|
|
read -a numbers <<< "${line}"
|
|
|
|
|
|
- if [[ -z ${old_incr_rate_list} ]];then
|
|
|
- old_incr_rate_list="${numbers[6]}"
|
|
|
- new_incr_rate_list="${numbers[7]}"
|
|
|
- else
|
|
|
- old_incr_rate_list="${old_incr_rate_list};${numbers[6]}"
|
|
|
- new_incr_rate_list="${new_incr_rate_list};${numbers[7]}"
|
|
|
- fi
|
|
|
+ # 分数分别保存
|
|
|
+ old_score_map[${numbers[0]}]=${numbers[6]}
|
|
|
+ new_score_map[${numbers[0]}]=${numbers[7]}
|
|
|
|
|
|
old_total_diff=$( echo "${old_total_diff} + ${numbers[6]}" | bc -l )
|
|
|
new_total_diff=$( echo "${new_total_diff} + ${numbers[7]}" | bc -l )
|
|
@@ -235,9 +245,11 @@ calc_model_predict() {
|
|
|
check_run_status $? $step_start_time "计算新模型Top10差异"
|
|
|
|
|
|
echo "老模型Top10差异平均值: ${old_incr_rate_avg}"
|
|
|
- echo "老模型Top10差异列表: ${old_incr_rate_list}"
|
|
|
echo "新模型Top10差异平均值: ${new_incr_rate_avg}"
|
|
|
- echo "新模型Top10差异列表: ${new_incr_rate_list}"
|
|
|
+ echo "新老模型分数对比: "
|
|
|
+ for cid in "${!new_score_map[@]}"; do
|
|
|
+ echo "\t\t CID: $cid, 老模型分数: ${old_score_map[$cid]}, 新模型分数: ${new_score_map[$cid]}"
|
|
|
+ done
|
|
|
}
|
|
|
|
|
|
model_predict() {
|
|
@@ -314,8 +326,8 @@ model_upload_oss() {
|
|
|
local elapsed=$(($step_end_time - $start_time))
|
|
|
|
|
|
echo -e "$LOG_PREFIX -- 模型更新完成 -- 模型更新成功: 耗时 $elapsed"
|
|
|
- local msg="\n\t - 广告模型文件更新完成 \n\t - 前一天线上模型全天Top差异平均值: ${old_incr_rate_avg} \n\t - 前一天线上模型全天Top差异: ${old_incr_rate_list} \n\t - 前一天新模型全天Top10差异平均值: ${new_incr_rate_avg} \n\t - 前一天新模型全天Top差异: ${new_incr_rate_list} \n\t - 模型上传路径: ${MODEL_OSS_PATH}/${model_name}.tar.gz"
|
|
|
- /root/anaconda3/bin/python ${sh_path}/ad_monitor_util.py --level info --msg "${msg}" --start "${start_time}" --elapsed "${elapsed}"
|
|
|
+
|
|
|
+ send_success_upload_msg
|
|
|
}
|
|
|
|
|
|
# 主方法
|