Sfoglia il codice sorgente

推荐模型自动化更新-check auc+模型数据处理

Joe 9 mesi fa
parent
commit
478dec2150
1 ha cambiato i file con 48 aggiunte e 6 eliminazioni
  1. 48 6
      qiaojialiang/check_auc.sh

+ 48 - 6
qiaojialiang/check_auc.sh

@@ -8,7 +8,8 @@ source /root/anaconda3/bin/activate py37
 # 原始数据table name
 table='alg_recsys_sample_all'
 today="$(date +%Y%m%d)"
-today_early_3="$(date -d '3 days ago' +%Y%m%d)"
+#today_early_3="$(date -d '3 days ago' +%Y%m%d)"
+today_early_3=20240703
 #table='alg_recsys_sample_all_test'
 # 处理分区配置 推荐数据间隔一天生产,所以5日0点使用3日0-23点数据生产new模型数据
 begin_early_2_Str="$(date -d '2 days ago' +%Y%m%d)"
@@ -66,11 +67,52 @@ fi
 # 1 对比auc数据判断是否更新线上模型
 if [ "$online_auc" \< "$new_auc" ]; then
     echo "新模型优于线上模型: 线上模型AUC: ${online_auc}, 新模型AUC: ${new_auc}"
-    # todo 模型格式转换
-
-    # todo 模型文件上传OSS
-
-    # todo 本地保存最新的线上使用的模型,用于下一次的AUC验证
+    # 模型格式转换
+    cat ${MODEL_PATH}/${model_name}_${today_early_3}.txt |
+    awk -F " " '{
+        if (NR == 1) {
+            print $1"\t"$2
+        } else {
+            split($0, fields, " ");
+            OFS="\t";
+            line=""
+            for (i = 1; i <= 10 && i <= length(fields); i++) {
+                line = (line ? line "\t" : "") fields[i];
+            }
+            print line
+        }
+    }' > ${MODEL_PATH}/${model_name}_${today_early_3}_change.txt
+    if [ $? -ne 0 ]; then
+       echo "新模型文件格式转换失败"
+#       /root/anaconda3/bin/python ad/ad_monitor_util.py "新模型文件格式转换失败"
+       exit 1
+    fi
+    # 模型文件上传OSS
+#    online_model_path=${OSS_PATH}/${model_name}.txt
+#    $HADOOP fs -test -e ${online_model_path}
+#    if [ $? -eq 0 ]; then
+#        echo "数据存在, 先删除。"
+#        $HADOOP fs -rm -r -skipTrash ${online_model_path}
+#    else
+#        echo "数据不存在"
+#    fi
+#
+#    $HADOOP fs -put ${MODEL_PATH}/${model_name}_${today_early_3}_change.txt ${online_model_path}
+#    if [ $? -eq 0 ]; then
+#       echo "推荐模型文件至OSS成功"
+#    else
+#       echo "推荐模型文件至OSS失败"
+##       /root/anaconda3/bin/python ad/ad_monitor_util.py "推荐模型文件至OSS失败"
+#       exit 1
+#    fi
+    # 本地保存最新的线上使用的模型,用于下一次的AUC验证
+    cp -f ${LAST_MODEL_HOME}/model_online.txt ${LAST_MODEL_HOME}/model_online_$(date +\%Y\%m\%d).txt
+    cp -f ${MODEL_PATH}/${model_name}_${today_early_3}.txt ${LAST_MODEL_HOME}/model_online.txt
+    if [ $? -ne 0 ]; then
+       echo "模型备份失败"
+       /root/anaconda3/bin/python ad/ad_monitor_util.py "模型备份失败 - 最新模型地址: ${MODEL_PATH}/${model_name}_${today_early_1}.txt"
+       exit 1
+    fi
 #    /root/anaconda3/bin/python ad/ad_monitor_util.py "新模型优于线上模型: 线上模型AUC: ${online_auc}, 新模型AUC: ${new_auc}"
 else
     echo "新模型不如线上模型: 线上模型AUC: ${online_auc}, 新模型AUC: ${new_auc}"