Files
CTI-Inference-Opt/代码/任务提交接口说明.md
Serendipity d0bbb8f3e2 chore: 初始化 CTI 推理优化项目
- baseline infer.py + requirements.txt + build_env.sh
- GRAB / HSTU 两篇核心论文
- 比赛规则和提交接口说明
- 项目 CLAUDE.md
2026-06-03 13:49:30 +08:00

3.8 KiB
Raw Permalink Blame History

选手提交压缩包规范

本文档说明选手提交代码压缩包的格式与运行要求。不符合以下任一约束,评测将失败或总分计 0。


1. 压缩包格式

  • 允许的后缀.zip.tar.gz.tar。其他后缀评测会直接失败。
  • 目录布局:压缩包解压后,所有文件必须直接位于根目录,不得包含最外层包裹目录。

错误示例(解压后多一层目录):

submit.zip
└── my_code/
    └── infer.py

正确示例:

submit.zip
├── infer.py
├── requirements.txt    # 可选
└── build_env.sh        # 可选

2. 必需文件

2.1 infer.py(必需)

根目录必须存在可被 Python 正常 importinfer 模块(即 infer.pyinfer/__init__.py),并对外提供以下接口:

接口 签名 / 说明
load_sample_files load_sample_files(sample_files_list: List[Path]) -> (item_dict, user_seq)
CTRTestSeqDataset 类;构造参数:test_logids_ordered, item_dict, user_seq, max_feasign_per_slot, max_ctx_len;需暴露属性 max_slot_id
make_collate_fn make_collate_fn(max_slot_id) -> Callable,用作 DataLoadercollate_fn
load_model load_model(ckpt_path: Path) -> (model, device)
move_batch_to_device move_batch_to_device(batch, device) -> batch
model(batch) 前向返回 (logits, moe_loss)logits.squeeze(-1)sigmoid 应为点击概率

batch 必须包含以下键:

  • logid:样本 logid,需支持 .shape[0][pred_mask].cpu().tolist()
  • pred_mask:可转 bool 的掩码 Tensor

2.2 评测端提供、选手不得自带的文件

评测端会统一提供下列路径,选手不要在压缩包中包含同名文件/目录:

  • dataset/:测试与历史数据
  • ckpt.pt:模型权重

3. 可选文件

文件 行为 失败条件
requirements.txt 评测前安装依赖(使用阿里云 PyPI 镜像:https://mirrors.aliyun.com/pypi/simple 安装失败则评测失败
build_env.sh 在代码根目录下执行 sh build_env.sh超时 720 秒 超时或返回码非 0 则评测失败

依赖必须可通过阿里云 PyPI 镜像安装;build_env.sh 若需访问外部资源,请自行保证在 720 秒内完成。


4. 运行时与指标约束

4.1 推理延迟

  • 延迟阈值:300 秒
  • 只统计模型前向时间(逐 batch 累加 model(batch) 耗时),数据加载、模型加载不计入。
  • 延迟得分:score_latency = (300 - latency) / 300
  • latency ≥ 300score_latency = 0总分直接置 0

4.2 模型指标门槛

以下任一不满足,策略分 score_model = 0总分直接置 0

  • AUC ∈ [0.65, 1.0]
  • PCOC ∈ [0.85, 1.15],其中 PCOC = mean(predictions) / mean(labels)

4.3 总分公式

仅当 score_latency > 0score_model > 0 时:

score_all = score_latency * 70 + score_model * 30

否则 score_all = 0


5. 违规清单(评测失败或 0 分)

  1. 压缩包后缀非 .zip / .tar.gz / .tar
  2. 压缩包内含最外层包裹目录,导致根目录找不到 infer.py
  3. 缺失 infer.py,或其任一必需接口签名/返回值结构不符。
  4. requirements.txt 安装失败。
  5. build_env.sh 执行超过 720 秒或返回码非 0。
  6. 推理总耗时 ≥ 300 秒。
  7. AUC 不在 [0.65, 1.0]PCOC 不在 [0.85, 1.15]
  8. 压缩包自带 dataset/ckpt.pt,覆盖评测端提供的路径。

6. 最小可用提交示例

submit.zip
├── infer.py              # 实现第 2.1 节全部接口
└── requirements.txt      # 可选;列出 torch 等依赖