Files

136 lines
6.6 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 阶段 0 运行环境审计与补强
审计日期:2026-09-20
最后补强:2026-09-20
审计状态:`passed`(Python、R、心理测量、复杂抽样与 CUDA 工具链均已运行验收)
工作流:`Document/research-workflow.md` v1.0
## 1. 结论
本机现已具备项目阶段 1–7 所需的主要本地软件能力:列式数据处理、常规统计、复杂抽样、SEM/EFA/IRT、PyMC Bayesian 推断、JAX/NumPyro 可选后端、本地 NLP/表格基线和 GPU 计算。所有正式分析应使用项目独立环境,而不是系统 Python。
- Python:项目内 CPython 3.12.14 与 `.venv-research`195 个包已锁定。
- R:项目内 R 4.6.1 与 `.r-library/4.6`,renv 锁定 119 个包;全安装表 134 行。
- CUDA:系统 CUDA Toolkit 13.4.2 / nvcc 13.4.92MSVC 14.44;端到端 kernel 编译和 GPU 运行通过。
- GPU PythonPyTorch 2.14.0+cu130 在 RTX 5060 Ti 上通过矩阵运算。
环境就绪不解除研究设计门槛:正式模型仍必须等待相应阶段的题库、可识别性、冻结验证方案和 Gate 判定。
## 2. 硬件与系统
| 项目 | 核验结果 | 判定 |
|---|---|---|
| 操作系统 | Microsoft Windows 10.0.26100x64 | 可用 |
| 逻辑处理器 | 28 | 可用 |
| 物理内存 | 31.82 GiB | 中等规模处理可用;大表仍须分块/列式/稀疏化 |
| GPU | NVIDIA GeForce RTX 5060 Ti16,311 MiB VRAMcompute capability 12.0 | 可用 |
| NVIDIA 驱动 | 596.36 | 可用;未被 Toolkit 安装器替换 |
| 项目盘 E: | 补强后可用约 250.48 GiB | 当前项目有余量;继续约束缓存与中间产物 |
## 3. 核心工具
| 工具 | 版本/路径 | 验收 |
|---|---|---|
| 项目 Python | CPython 3.12.14`E:\Model\.venv-research` | 通过 |
| 系统 Python | 3.13.7 | 保留,不用于正式项目环境 |
| R / Rscript | R 4.6.1 UCRT x64`E:\Model\.tools\R-4.6.1` | 通过 |
| CUDA Toolkit | 13.4.2nvcc V13.4.92 | 通过 |
| MSVC host compiler | Visual Studio 2022 CommunityMSVC 14.44.35207 | 通过 |
| Git | 2.51.0.windows.1 | 已安装;`E:\Model` 不是 Git 仓库 |
| Pandoc | 3.11 | 可用 |
## 4. Python 研究环境
### 4.1 关键版本
| 类别 | 包与版本 |
|---|---|
| 数值/表格 | numpy 2.5.3scipy 1.18.1pandas 3.0.6polars 1.44.2pyarrow 25.0.1duckdb 1.5.5 |
| 统计 | statsmodels 0.15.0scikit-learn 1.6.1xgboost 3.4.1 |
| Bayesian | PyMC 6.3.2PyTensor 3.3.2ArviZ 1.3.0nutpie 0.16.11JAX 0.11.2NumPyro 0.22.0BlackJAX 1.6.2 |
| 心理测量 | semopy 2.3.11factor-analyzer 0.5.1pingouin 0.6.1girth 0.8.0 |
| GPU/NLP | torch 2.14.0+cu130torchvision 0.29.0+cu130transformers 5.17.0sentence-transformers 6.1.0tabpfn 9.0.0 |
scikit-learn 固定在 1.6.1,以保留 factor-analyzer 0.5.1 所需的弃用兼容层。torchaudio 因项目无音频任务且官方 cu130 索引没有同代 2.14.0 Windows wheel而未纳入。
### 4.2 运行验收
`research/environment/smoke-test-result.json` 记录:
- 25 个目标模块全部导入;`pip check` 无断裂依赖。
- PyMC/nutpie 完成最小后验采样。
- semopy CFA 与 factor-analyzer 拟合通过。
- TabPFN、Transformers 与 Sentence Transformers 导入通过。
- PyTorch 在 RTX 5060 Ti 上执行 CUDA 矩阵乘法,结果有限。
50 draws 的 PyMC 测试仅证明环境可运行,不用于统计诊断或研究结论。
## 5. R 研究环境
### 5.1 关键版本
| 类别 | 包与版本 |
|---|---|
| 复杂抽样 | survey 4.5srvyr 1.3.1 |
| IRT/SEM | mirt 1.47lavaan 0.7-2semTools 0.5-9psych 2.6.5 |
| 数据交换 | arrow 25.0.1haven 2.5.5data.table 1.18.6.1readr 2.2.0 |
| 复现 | renv 1.2.4targets 1.12.0 |
### 5.2 运行验收
`research/environment/r-smoke-test-result.json` 记录:
- 19/19 顶层包导入通过。
- survey 复杂抽样加权均值返回有限估计。
- lavaan CFA 明确收敛。
- mirt 一维 2PL 在已知生成数据(500 人、8 题)上明确收敛。
- Arrow Parquet 写入/读回成功。
## 6. CUDA Toolkit 验收
- 官方网络安装器 MD5`a0810494c821437671d6e68e66f59daf`
- `nvcc --version`CUDA 13.4V13.4.92。
- `cuda-smoke-build.cmd` 在 MSVC 环境中以 `sm_120` 编译 `cuda-smoke.cu`
- 生成程序在 GPU 上执行 kernel,并输出 `cuda_smoke_result=42`
- Toolkit 与 PyTorch wheel 的 CUDA runtime 版本可以不同;项目当前 PyTorch wheel 使用 cu130,已经独立通过 GPU 回归。
## 7. 缓存、存储与数据边界
- 所有可控运行缓存定向到 `E:\Model\.cache``E:\Model\.uv-cache`,避免受限用户目录。
- `.venv-research` 约 4.39 GiB`.r-library` 约 0.23 GiB。
- `Dataset` 有 734 个文件,总计约 19.06 GiB;继续使用 Parquet/Arrow、分块和稀疏/长表策略。
- 嵌入模型权重尚未冻结;模型 ID、revision、许可、语言覆盖和缓存哈希须在阶段 5 前另行审计。
## 8. 能力门槛
| 能力 | 当前状态 | 仍需满足的研究门槛 |
|---|---|---|
| 元数据/题库整理 | `ready` | 阶段 1 来源双重核查 |
| 共现矩阵/锚定图 | `ready_with_limits` | 分块/稀疏实现与阶段 2 可识别性审计 |
| 复杂抽样描述/方差 | `ready` | 冻结 estimand、权重、分层与 PSU 处理 |
| SEM/IRT 审计 | `ready` | 二元/有序题必须用适当模型,不套连续 CFA 模板 |
| PyMC 分层模型/SBC | `ready` | 等阶段 3 冻结模拟与诊断标准 |
| 本地文本嵌入原型 | `ready_with_limits` | 先冻结模型/许可/语言覆盖,隔离测试证据 |
| CUDA 自定义扩展 | `ready` | 使用 CUDA 13.4 + MSVC 14.44;保留编译日志 |
## 9. 可复现产物
| 产物 | SHA-256 |
|---|---|
| `python-requirements.lock.txt` | `ab8b3162673357891b91fcad7c917fc51cb0a78e27c7e7b979be55c6178699d6` |
| `renv.lock` | `e953f512597b29c233ba5106420f3486e7bb59eaa68d59d3a37ce5a4e2a819f6` |
| `r-installed-packages.csv` | `6fd8ee5c4c0b86a7f1cb5ab43b998bde15e206d4759757787aa7ca91cc110fc9` |
| `r-session-info.txt` | `f091c2b80df38e485ca6907d2376d8340266c40ea6f1767aaaa6e4a67dc4739d` |
| `r-package-versions.json` | `20847cfc813f5450804ca3c67d9950a313d7813d21852671985e6a3c52e3c3f5` |
| `smoke-test-result.json` | `36fe9596221d6bcb9a4a913d6dc870afa1be41cd427d11c9a300459640d14cd7` |
| `r-smoke-test-result.json` | `164cf3587bb0b1df34b9687d09e148f2b262faddc590d9dde61478c847da6779` |
使用与恢复步骤见 `research/environment/README.md`
## 10. 输入绑定
| 输入 | SHA-256 |
|---|---|
| `Document/research-workflow.md` | `5606e8b10064c980a4a08a91ab7e8db73b04e5077d3440d4f26a40dbf90709e5` |
| `research/audit/data_manifest.csv` | `0427a19c3287a2691edbd9a4486917989fe369fcb0f729a01477ce27cd8f98f2` |