From e4318627931144a4cfcc4b0c0a8ea8e24ccee87e Mon Sep 17 00:00:00 2001 From: cbb <2625274797@qq.com> Date: Sun, 18 Oct 2026 17:16:55 +0800 Subject: [PATCH] =?UTF-8?q?feat(gen):=20=E8=A1=A5=E9=87=8F=E8=BD=AE?= =?UTF-8?q?=E6=AC=A1=E4=B8=8A=E9=99=90=204=20=E2=86=92=205=EF=BC=88?= =?UTF-8?q?=E5=BA=94=E7=94=A8=E6=88=B7=E8=A6=81=E6=B1=82=EF=BC=9A=E5=85=B1?= =?UTF-8?q?=E8=AF=86=20+=20=E9=97=B4=E9=9A=99=E4=B8=A4=E9=81=93=E8=BF=87?= =?UTF-8?q?=E6=BB=A4=E5=8F=A0=E5=8A=A0=E6=97=B6=204=20=E8=BD=AE=E4=BD=99?= =?UTF-8?q?=E9=87=8F=E5=81=8F=E7=B4=A7=EF=BC=89=EF=BC=9B=E9=A1=BA=E5=B8=A6?= =?UTF-8?q?=E6=8A=8A=E6=9C=AB=E5=B0=BE=E9=82=A3=E5=8F=A5"=E8=A1=A5=204=20?= =?UTF-8?q?=E6=AC=A1=E5=90=8E=E4=BB=8D=E4=B8=8D=E8=B6=B3"=E7=9A=84?= =?UTF-8?q?=E6=8F=90=E7=A4=BA=E5=90=8C=E6=AD=A5=E6=88=90=205=20=E6=AC=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ml/pipeline.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/ml/pipeline.sh b/ml/pipeline.sh index 418bc25..4cd2c6f 100755 --- a/ml/pipeline.sh +++ b/ml/pipeline.sh @@ -127,9 +127,9 @@ case $stage in extra=""; [ "${CONSENSUS:-0}" = "1" ] && extra="--consensus 4" run bash ml/gen/run_parallel.sh $per $NPROC 1 "$extra" # 补量:共识过滤与间隙过滤都会降低保留率,样本不足 TARGET_SAMPLES 时按实测"样本/任务"补生成。 - # 最多 4 次(第五轮由 2 改 4:两种过滤叠加时 2 次可能补不满);已写完的补量 shard 续跑时跳过。 + # 最多 5 次(第五轮由 2 改 4;2026-10-18 应用户要求 4 改 5:共识 + 间隙两道过滤叠加时余量更足);已写完的补量 shard 续跑时跳过。 s0=$((1 + NPROC)) - for k in 1 2 3 4; do + for k in 1 2 3 4 5; do need=$($PY -c "import json,math;s=json.load(open('ml/data/stats.json', encoding='utf-8'));d=$TARGET_SAMPLES-s['samplesEvery3'];print(0 if d<=0 else math.ceil(d/(s['samplesEvery3']/max(1,s['tasks']))*1.05))") [ "$need" = "0" ] && break echo "样本不足目标 $TARGET_SAMPLES,补生成 $need 条任务(第 $k 次)" @@ -141,7 +141,7 @@ case $stage in run bash ml/gen/run_parallel.sh $per2 $NPROC $s0 "$extra" s0=$((s0 + NPROC)) done - $PY -c "import json;s=json.load(open('ml/data/stats.json', encoding='utf-8'));import sys;sys.exit(0 if s['samplesEvery3']>=0.9*$TARGET_SAMPLES else 7)" || echo "警告:补 4 次后样本仍不足目标的 90%,按现有样本继续(stats.json 见 samplesEvery3)" ;; + $PY -c "import json;s=json.load(open('ml/data/stats.json', encoding='utf-8'));import sys;sys.exit(0 if s['samplesEvery3']>=0.9*$TARGET_SAMPLES else 7)" || echo "警告:补 5 次后样本仍不足目标的 90%,按现有样本继续(stats.json 见 samplesEvery3)" ;; prep) # 间隙过滤口径必须与生成时一致(审查 N-1) $PY -c "import json,sys;m=json.load(open('ml/data/stats.json', encoding='utf-8')).get('minGapFilterMm');sys.exit(0 if m is None or float(m)==float($MIN_GAP_MM) else 8)" \ || { echo "MIN_GAP_MM=$MIN_GAP_MM 与生成阶段 stats.json 的 minGapFilterMm 不一致:补量口径与训练集会分叉,请用同一值重跑 gen 或 prep"; exit 8; }