From 7f9cab05b5d03193a0ce9eec1feafead6e6e0eb6 Mon Sep 17 00:00:00 2001 From: OwnerSunshine530 Date: Mon, 15 Jun 2026 13:45:40 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20=E9=BB=98=E8=AE=A4=20chunked=E6=B3=A8?= =?UTF-8?q?=E6=84=8F=E5=8A=9B/chunk=5Fusers=3D8=20=E2=80=94=20=E6=9C=AC?= =?UTF-8?q?=E5=9C=B014.25->7.92s(=E5=BF=AB44%)AUC=E4=B8=8D=E5=8F=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 4.8 --- 代码/code/infer.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/代码/code/infer.py b/代码/code/infer.py index 45eadb0..8397e07 100644 --- a/代码/code/infer.py +++ b/代码/code/infer.py @@ -42,9 +42,9 @@ CONFIG = { "filter_test_users": True, # 只处理含测试样本的用户(跳过会被丢弃的用户,省算力) # 实测:varlen 本地快(10.28s)但评测端慢(148s,嵌套张量构造开销随batch数放大)→已退回。 # sdpa 是评测端验证最快(89.96s/58.86)。flex/compile/小batch/varlen 在评测端都更差。 - # attn: "sdpa"(稠密mask) / "chunked"(按用户分块SDPA,降O(S²)) / "varlen"(评测慢) / "flex"(慢) - "attn": "sdpa", - "chunk_users": 16, # chunked 模式下每块的用户数(切小拼接序列以降注意力O(S²)) + # attn: "chunked"(按用户分块SDPA,降O(S²),本地14.25->7.92s) / "sdpa"(稠密mask) / 其它对照 + "attn": "chunked", + "chunk_users": 8, # chunked 每块用户数(本地 8 比 16 更快;切小拼接序列降注意力O(S²)) # 稠密MoE去掉了 model(batch) 内唯一的同步点(MoE循环的.nonzero())。若评测计时不 # synchronize,去掉同步点可能让被计时的 model(batch) 大幅缩短。本地force-sync看不出, # 须靠提交验证。AUC中性、MoE仅占2%算力故风险极低。