TraceKV:下载后继续实验
下面是怎么样在TraceKV接着你给我的那个GitHub继续。
1. 下载整个文件夹
先在下载所用的 Python 环境中安装 Hugging Face CLI:
python -m pip install -U huggingface_hub
在新的工作位置执行:
mkdir -p tracekv-work
cd tracekv-work
hf download Zishan-Shao/somecheckpoints \
--include "tracekv/*" \
--local-dir ./tracekv-assets
下载后的目录为 tracekv-assets/tracekv/。实验产物约 5.9 GB,包含下面的恢复工具。
2. 自动恢复源码与产物
restore.py 只使用 Python 标准库,需要 Python 3.9 或更新版本:
python ./tracekv-assets/tracekv/restore.py --target ./TraceKV
cd TraceKV
脚本会:
- 校验下载目录中的文件大小及 SHA-256。
- 解压并逐文件核对配套源码。
- 把 artifacts、traces、outputs 放回代码使用的相对路径。
- 安装
run_from_artifacts.sh,并保留本页的本地副本HF_README.md。 - 写入
.tracekv_restore.json,记录恢复来源及备份中已有的完整原模型评测。
目标目录必须是新的目录;脚本不会覆盖已有项目。恢复过程不安装环境、不下载原始模型,也不启动 GPU 评测。下载文件之外,解压和恢复产物还需要约 6 GB 空间。
只校验下载文件而不创建工作目录时,可执行:
python ./tracekv-assets/tracekv/restore.py --verify-only
3. 接上 GitHub README 的环境安装步骤
在恢复后的 TraceKV 目录内,以下步骤对应 GitHub README 的手动环境安装流程。这里使用独立环境名,避免改动原机器正在使用的 spar-kv 环境:
conda env create -n tracekv-restored -f envs/spar-kv.yml
conda activate tracekv-restored
python -m pip install --no-deps -e .
python -m pip install --no-deps -e ./external/lmms-eval
bash scripts/install_flash_attn.sh
python scripts/check_env.py --require-cuda
hf auth login
已登录 Hugging Face 时可以跳过最后一行。使用 micromamba 时,将环境创建和激活命令中的 conda 换成 micromamba。
原 README 的 bash scripts/setup_env.sh 也能安装环境,但它会创建或更新名为 spar-kv 的环境;独立恢复可采用上面的步骤。
本包对应 Linux x86_64、Python 3.11、PyTorch 2.6 + CUDA 12.4、FlashAttention 2.7.4.post1。运行前需要兼容的 NVIDIA 驱动,以及能容纳 32B BF16 模型和推理状态的 GPU 显存。
4. 原 README 中哪些步骤可以跳过
| 原 README 的步骤 | 下载本包后的做法 |
|---|---|
| 环境安装 | 按上一节执行 |
| 选择 32B 模型 | 配套源码已经指向 Qwen3-VL-32B-Thinking |
| 生成 dense traces | 已恢复,可跳过 |
| 生成 OURS / PALU 校准文件 | 已恢复,可跳过 |
| Table 2 评测 | 从这里继续,选择所需任务或使用下面的脚本 |
不要用新的上游 lmms-eval 覆盖归档中的 external/lmms-eval,这里包含模型注册及任务修改。 |
5. 先运行一项评测
例如,先用 8 个样本检查 OURS 的低秩配置:
python scripts/run_lmms_eval.py \
--model spar_qwen3_vl \
--tasks scienceqa_img_reasoning \
--compression-artifact artifacts/table2/qwen3_vl_32b/ours.pt \
--rank-ratio 0.5 --rank-allocation importance \
--k-bits 16 --v-bits 16 \
--limit 8 --batch-size 1 --num-processes 1 --gpu 0
去掉 --limit 8 即评测该配置的全量数据。其他配置按原 README 的 Table 2 命令选择,直接使用恢复好的两份校准文件。
6. 继续这份备份之后的整套评测
先预览命令:
GPU=0 bash run_from_artifacts.sh --dry-run
确认要运行整套评测后执行:
GPU=0 bash run_from_artifacts.sh
对当前备份,默认会安排 38 轮全量评测:
- 复用已完成的原模型 ScienceQA 全量结果。
- 从原模型 MathVista、MMMU 开始。
- 随后执行 36 轮低秩与量化评测。
- 省略 trace 生成、校准及三项 smoke 检查,保持原配置的任务顺序、batch=1 和单进程设置。
如需连备份中已有的原模型全量结果也重新评测,加上
--all-dense,此时共 39 轮。 脚本调用现有的scripts/run_lmms_eval.py,后续评测会使用其逐题缓存。再次执行时,同一配置的生成缓存会按原有规则复用,但仍会加载模型并汇总结果。脚本不会自动把新结果上传回 Hugging Face。 原始run_sequential.sh作为流程记录保留;从头执行它会重复 PALU 校准和初始阶段。
原始模型、数据集与版本
两份校准文件各约 2.95 GB,只保存配套的低秩校准信息。源机器缓存的 32B 原始权重约 66.7 GB,需要另行从 Qwen/Qwen3-VL-32B-Thinking 获取。
首次评测会按需下载原始模型和相应数据集,因此此流程需要网络及 Hugging Face 认证。已缓存的文件会复用。
metadata/upstream_assets.json 记录了备份时使用的上游版本。默认入口按模型和数据集 ID 加载;若需严格固定备份时的提交版本,应按此记录配置对应的上游 revision。
文件内容与来源
artifacts/table2/qwen3_vl_32b/ours.pt:使用sensitivity协方差和重要性分数,256 条校准样本,64 层。artifacts/table2/qwen3_vl_32b/palu.pt:使用basic协方差及 PALU 重要性分数,256 条样本,64 层。第 0 层 K/V 使用 FP64 Cholesky,原始阻尼为1e-5,额外对角修正为 0。traces/scienceqa/:三份各 256 样本的轨迹;模型信息见metadata/traces.json,其中qwen3_vl对应 32B Thinking 模型。code/TraceKV-source.tar.gz:配套源码、修改过的 lmms-eval、环境、脚本及测试;包含未提交改动,不包含.git和 Python 字节码。code/FILES.json:源码归档内各文件的大小和校验和。outputs/:备份时已完成的三组 8 样本快速检查,以及 ScienceQA 的 2,017 样本全量评测。metadata/:来源、校准设置、上游版本、软件包版本和备份时的运行状态。manifest.json、SHA256SUMS、LATEST.json:文件清单、校验和及备份信息。