本项目使用独立 conda 环境 diffaudit-research。
当前环境服务于调研与原型阶段,覆盖:
- Python 数值分析:
numpy、pandas、matplotlib - PyTorch 基础:
Tensor、Autograd、训练与推理 - 扩散模型研究准备:
diffusers、transformers、accelerate - notebook、脚本与 smoke 实验
目前它还没有绑定到某一篇论文的完整执行资产。
本环境将 Research 作为本地 Python 包和 CLI 安装。它不是生产服务部署界面;Runtime 任务和 HTTP 服务属于同级 Runtime-Server/ 仓库,产品部署属于 Platform/。
当前 PyTorch 与扩散模型生态在 Python 3.11 下更稳,因此这里没有使用系统里的 3.12。
本项目采用:
conda:负责隔离 Python 运行时pip:负责大部分科研包和深度学习包
这样做的原因是该组合在本项目的 Windows 和 CI 使用路径中更稳定,也更容易处理深度学习包的版本约束。
默认情况下,请先使用团队共享的 environment.yml:
conda env create -f environment.yml
conda activate diffaudit-research
python -m ipykernel install --user --name diffaudit-research --display-name "Python (diffaudit-research)"environment.yml 会把当前仓库以 editable 方式安装进环境,所以环境创建完成后可以直接运行:
python -m diffaudit --help
diffaudit --help为了避免环境更新后 editable install 丢失,推荐紧接着执行:
python scripts/bootstrap_research_env.py --install如果是新成员第一次设置仓库,环境通过后继续执行:
python scripts/render_team_local_configs.pyenvironment.yml 仍然是 CI 和默认 setup 入口。只有在默认环境无法支持当前 GPU 时,才切换到 environment.gpu-cu128.yml。
如果你用的是较新的 NVIDIA GPU,并且在默认环境里已经出现下面这种真实 CUDA 算子错误:
RuntimeError: CUDA error: no kernel image is available for execution on the device
可以改用仓库里的可选环境文件:
conda env create -f environment.gpu-cu128.yml
conda activate diffaudit-research
python -m ipykernel install --user --name diffaudit-research --display-name "Python (diffaudit-research)"如果你已经创建过默认环境,想直接切到这套栈,改用:
conda env update -f environment.gpu-cu128.yml --prune
conda activate diffaudit-research
python scripts/bootstrap_research_env.py --install这套可选环境当前用于较新的 GPU 兼容性补充;请在自己的硬件上先运行 CUDA smoke check,再投入长任务。
有些终端线程不会自动继承你本地已经激活过的环境。这时不要直接用系统 Python 跑仓库命令,优先显式前缀:
conda run -n diffaudit-research python scripts/verify_env.py
conda run -n diffaudit-research python -m unittest如果当前 shell 没有激活 conda,也可以直接显式指定环境来运行命令:
conda run -n diffaudit-research python -m diffaudit probe-secmi-assets --config configs/attacks/secmi_plan.yaml建议先用 conda env list 确认 diffaudit-research 确实存在,再执行后续命令。
如果是新机器或新成员刚开始设置,优先按 teammate-setup.md 执行,不要直接手改共享配置。
configs/attacks/secmi_plan.yaml 是共享模板,不应该提交个人机器上的真实路径。
推荐做法:
- 先查看
configs/assets/team.local.template.yaml - 在本地复制成
configs/assets/team.local.yaml - 只在
team.local.yaml里填写你自己的真实路径 - 共享配置继续保持占位符或相对路径
- 先用各线的
probe-*命令确认资产 readiness,再跑后续命令
默认入口 / CI:
torch==2.5.1+cu121torchvision==0.20.1+cu121torchaudio==2.5.1+cu121
可选较新 GPU 栈:
torch==2.11.0+cu128torchvision==0.26.0+cu128torchaudio==2.11.0+cu128
python -c "import torch; print(torch.__version__); print(torch.cuda.is_available())"
python -c "import numpy, pandas, matplotlib, diffusers, transformers"
python scripts/verify_env.py
python -m diffaudit --help只有在某条算法方向真正确定后,才继续增加该论文专用依赖。调研期尽量保持环境稳定,不要为了单篇论文把环境改得过重。