ml: 数据生成 + 可微运动学对拍 + MeanFlow/WTA 策略与闭环仿真 + APG/挖错/ONNX 导出与运行手册
- M1 数据生成器:采样/老师/距离下界认证/时间律/统计/一致性门禁;确定性老师(碰撞次数计时 + resetSession)、pos 任务冻结 J6、--consensus 邻域共识过滤、Dr 类。 - 全流程代码与运行手册:数据打包/可微运动学与对拍/MeanFlow+WTA 模型/闭环仿真/APG/挖错循环/ONNX 导出;webapp 策略运行时 ik-policy.js、?policy=1 接入、tests/policy_bench.cjs;ik-solver 增 pairList/clusterExport/criticalPairs/pairGap/leverTable。
This commit is contained in:
@@ -431,7 +431,7 @@ MeanFlow
|
||||
<tbody>
|
||||
<tr class="odd">
|
||||
<td>模型规模</td>
|
||||
<td>约 4.1M 参数编码器-解码器 Transformer,不用 VLA 大模型</td>
|
||||
<td>约 4.9M 参数编码器-解码器 Transformer,不用 VLA 大模型</td>
|
||||
<td>A</td>
|
||||
<td>IMPACT 4.67M、300 Hz;π0 3B 单次预填充 46 ms(4090)</td>
|
||||
</tr>
|
||||
@@ -997,14 +997,16 @@ a_max 为待定参数,真机型号确定后设定),dt = 20 ms。</li>
|
||||
</ul></li>
|
||||
<li>每条路径约 40–50 个样本 → 约 200 万样本(以 <code>stats.json</code>
|
||||
为准)。</li>
|
||||
<li>协变量偏移对策:关节噪声增广(σ =
|
||||
1°,噪声状态由老师离线重标);偏离状态的进一步覆盖靠 §7。</li>
|
||||
<li>协变量偏移对策:关节噪声增广(30% 样本,σ = 1°;噪声态须无干涉且间隙
|
||||
> 1 mm,标签为 8 步内线性收回老师轨迹的增量);偏离状态的进一步覆盖靠
|
||||
§7。</li>
|
||||
</ol>
|
||||
<h3 id="46-耗时与存储">4.6 耗时与存储</h3>
|
||||
<ul>
|
||||
<li>路网 A* 每条数十毫秒,耗时主要在过滤认证;按 <code>solveDyn</code>
|
||||
0.7 s/条上限估算,沙箱 2 进程不超过 5 小时。</li>
|
||||
<li>200 万样本原始约 1 GB;Parquet 约 200 MB。</li>
|
||||
<li>200 万样本以 float32 <code>.npy</code> 存放约 1.5
|
||||
GB(训练时整体载入内存)。</li>
|
||||
</ul>
|
||||
<h3 id="47-检查点">4.7 检查点</h3>
|
||||
<ul class="task-list">
|
||||
@@ -1018,8 +1020,13 @@ type="checkbox" /><code>ml/data/stats.json</code>:类别、到达率、行程
|
||||
</ul>
|
||||
<hr />
|
||||
<h2 id="5-表示与预处理">5. 表示与预处理</h2>
|
||||
<p>文件 <code>ml/prep/build_dataset.py</code> →
|
||||
<code>train/val/test.parquet</code>、<code>norm.json</code>。</p>
|
||||
<p>文件
|
||||
<code>ml/prep/build_dataset.cjs</code>(Node,特征直接调用部署运行时
|
||||
<code>webapp/js/ik-policy.js</code> 的同一份实现)→
|
||||
<code>ml/data/samples/*.{X,Y,V,SG,TID}.npy</code> +
|
||||
<code>*.tasks.jsonl</code>;按任务 5% 划为验证集。PyTorch 侧特征
|
||||
<code>ml/common/features.py</code> 与 JS 逐项对拍(闭环仿真与 APG
|
||||
使用)。</p>
|
||||
<h3 id="51-输入">5.1 输入</h3>
|
||||
<table>
|
||||
<thead>
|
||||
@@ -1123,7 +1130,7 @@ type="checkbox" /><code>ml/data/stats.json</code>:类别、到达率、行程
|
||||
</tr>
|
||||
<tr class="odd">
|
||||
<td>参数量</td>
|
||||
<td>约 4.1M</td>
|
||||
<td>约 4.9M</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
@@ -1275,10 +1282,15 @@ Hz)与 20 ms 不整除及后台节流造成的抖动。</p>
|
||||
<h3 id="83-安全层唯一的硬保证">8.3 安全层(唯一的硬保证)</h3>
|
||||
<ul>
|
||||
<li><strong>距离下界认证</strong>:对一段运动 q_a →
|
||||
q_b,若两端到障碍的最小距离之和 d(q_a) + d(q_b) > Σ_j r_j·|Δθ_j|(r_j
|
||||
为每轴实测杠杆上界,J1 约 9.0 mm/°,六轴合计最大约 24.3
|
||||
mm/°),则整段安全;否则二分,直到全部子段通过或判不安全。臂×立柱/台架用胶囊距离;自碰撞对复用
|
||||
<code>pair2d</code> 杠杆界(J3 3.24、J4 2.54 mm/°)。外加关节限位。</li>
|
||||
q_b,若两端到障碍的最小距离之和 d(q_a) + d(q_b) > Σ_j
|
||||
r_j·|Δθ_j|,则整段安全;否则二分,直到全部子段通过或判不安全。按组对分别判定:组对
|
||||
(g_A, g_B) 的间隙只受关节 g_A…g_B−1 带动组 g_B 影响,右端取
|
||||
Σ_{k=g_A}^{g_B−1} T[k][g_B]·|Δθ_k|,T 为分组杠杆表(组 g_B 胶囊端点到轴
|
||||
k 的最大距离,随机 4000 位形采样再放大 5%;末端组对 J1…J6 分别为 9.56 /
|
||||
7.37 / 4.47 / 4.48 / 2.47 / 0.69 mm/°)。间隙取全部 |Δg| ≥ 2 胶囊对的
|
||||
距离 − (r_i + r_j + margin)。外加关节限位。先用离散
|
||||
<code>collideFree</code> 剔除明显干涉的候选;运行时每条候选最多 40
|
||||
次距离查询、每次推理安全层总预算 30 ms,超出按刹停处理。</li>
|
||||
<li>离散采样检查(现有 <code>pathFine</code>,1.5° +
|
||||
半格)只作快速预筛,不作保证依据。</li>
|
||||
<li><strong>可刹停不变式</strong>:只有当"候选前 3 步 + 从第 3
|
||||
@@ -1299,8 +1311,8 @@ ms,否则放 Web Worker 与推理流水线并行。</li>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr class="odd">
|
||||
<td><code>traj_policy.onnx</code>(fp16,约 8.3 MB)+
|
||||
<code>norm.json</code></td>
|
||||
<td><code>traj_policy.onnx</code>(fp16,约 9.8 MB)+
|
||||
<code>traj_policy.meta.json</code>(指纹 / 特征版本 / TCP)</td>
|
||||
<td>PRM 路网、IK 候选大表</td>
|
||||
</tr>
|
||||
<tr class="even">
|
||||
@@ -1545,8 +1557,18 @@ rt)</td>
|
||||
例到达但路径细验不过;§4.4 的认证过滤会丢弃这类样本。</li>
|
||||
<li><code>ci27</code> 姿态根枚举漏分支(姿态偏差约 97.5°)会影响 pose
|
||||
数据;APG 姿态项可部分纠正,必要时先修老师。</li>
|
||||
<li>胶囊模型或立柱变动即需重训:数据约 5 h + 预训练 1.5–5.6 h + 后训练
|
||||
2–4 h。</li>
|
||||
<li>胶囊模型或立柱变动即需重训:数据(用户机器 16 核约 2 h)+ 预训练
|
||||
1.5–6 h + 后训练数小时。</li>
|
||||
<li>老师一致性沙箱首测 78%(100 任务、373 对邻居,门禁
|
||||
90%):不一致主要来自 J6
|
||||
冗余与时间预算造成的非确定性。已改为确定性老师(预算按碰撞判定次数计、每条前清空跨调用缓存)并在
|
||||
pos 任务冻结 J6,待在用户机器复测;仍不达标则生成时启用 4
|
||||
邻居共识过滤。</li>
|
||||
<li>安全层耗时:未训练模型(候选为噪声)在 Node
|
||||
单线程实测每次推理安全层约 20–60 ms,高于 5 ms
|
||||
目标;训练后候选平滑会下降,以 <code>policy_bench</code> 与浏览器
|
||||
<code>__POLICY.latency()</code> 实测为准,超标则把安全层移入 Web Worker
|
||||
与推理流水线并行。</li>
|
||||
</ol>
|
||||
<h3 id="103-需要用户确认">10.3 需要用户确认</h3>
|
||||
<ol type="1">
|
||||
@@ -1556,21 +1578,25 @@ a_max、插补频率与提交步数。</li>
|
||||
</ol>
|
||||
<hr />
|
||||
<h2 id="11-目录规划">11. 目录规划</h2>
|
||||
<p>运行步骤、命令与耗时见 <code>ml/README.md</code>。</p>
|
||||
<pre><code>ml/
|
||||
gen/ gen_dataset.cjs sampler.cjs run_parallel.sh
|
||||
data/ (不入库)shard_*.jsonl stats.json *.parquet norm.json
|
||||
prep/ build_dataset.py
|
||||
model/ policy_transformer.py # MeanFlow 一步头
|
||||
sim/ closed_loop.py # 闭环仿真(验证、挖错、APG 共用)
|
||||
eval/ collide_torch.py # 可微胶囊距离,与 JS 对拍
|
||||
apg/ apg_finetune.py
|
||||
mining/ mine_round.py gate.py loop.sh
|
||||
toy/ toy_bimodal.py # 2D 双模态对照实验
|
||||
configs/ base.yaml apg.yaml
|
||||
train.py export_onnx.py README.md
|
||||
webapp/js/ik-policy.js # 闭环推理 + 排序 + 安全认证 + 刹停
|
||||
webapp/models/traj_policy.onnx traj_policy.norm.json
|
||||
tests/policy_bench.cjs</code></pre>
|
||||
pipeline.sh 阶段脚本:setup / kin / gate1 / gen / prep / train / m5 / apg / mine / export / bench
|
||||
gen/ sampler / teacher(确定性 PRM A*)/ timelaw / gen_dataset / consistency / stats / run_parallel.sh
|
||||
prep/ export_kin.cjs → assets/kin.json;build_dataset.cjs → data/samples/*.npy;run_prep.sh
|
||||
data/ (不入库)shard_*.jsonl stats.json consistency.json samples/
|
||||
common/ kin_torch.py(可微运动学 + 胶囊间隙) features.py(83 维特征)
|
||||
model/ policy.py(MeanFlow 头;WTA K=8 回退头) meanflow.py
|
||||
data.py train.py 样本加载、预训练
|
||||
sim/closed_loop.py 闭环仿真(验证、挖错、门禁共用)
|
||||
apg/apg_finetune.py APG 可微微调
|
||||
mining/ tasks.py mine_round.py gate.py loop.sh
|
||||
eval/ dump_parity.cjs check_parity.py(JS ↔ PyTorch 对拍)
|
||||
configs/ base.json wta.json apg.json
|
||||
export_onnx.py serve.py README.md
|
||||
webapp/js/ik-policy.js 运行时:特征、距离下界认证、刹停、投影、精修、Runner(浏览器与 Node 共用)
|
||||
webapp/js/ik-policy-glue.js 查看器接入(?policy=1)
|
||||
webapp/models/ traj_policy.onnx traj_policy.meta.json
|
||||
tests/policy_bench.cjs 部署形态评测</code></pre>
|
||||
<h2 id="12-里程碑">12. 里程碑</h2>
|
||||
<table>
|
||||
<thead>
|
||||
@@ -1596,9 +1622,9 @@ tests/policy_bench.cjs</code></pre>
|
||||
</tr>
|
||||
<tr class="odd">
|
||||
<td>M3</td>
|
||||
<td>5 万条老师数据 → 约 200 万样本</td>
|
||||
<td>Parquet</td>
|
||||
<td>沙箱约 5 h 或用户机器</td>
|
||||
<td>5 万条老师数据 → 约 180 万样本</td>
|
||||
<td><code>samples/*.npy</code></td>
|
||||
<td>用户机器</td>
|
||||
</tr>
|
||||
<tr class="even">
|
||||
<td>M4</td>
|
||||
|
||||
+30
-23
@@ -25,7 +25,7 @@
|
||||
|
||||
| 模块 | 最终选择 | 证据等级 | 关键依据 |
|
||||
|---|---|---|---|
|
||||
| 模型规模 | 约 4.1M 参数编码器-解码器 Transformer,不用 VLA 大模型 | A | IMPACT 4.67M、300 Hz;π0 3B 单次预填充 46 ms(4090) |
|
||||
| 模型规模 | 约 4.9M 参数编码器-解码器 Transformer,不用 VLA 大模型 | A | IMPACT 4.67M、300 Hz;π0 3B 单次预填充 46 ms(4090) |
|
||||
| 数据 | 规划器离线造 5 万条任务 → 约 200 万"状态→动作块"样本 | B | MπNets、DRP、ELMP 均用规划器老师 |
|
||||
| 时间律 | 匀速巡航 + 梯形加减速,只依赖"当前速度 + 剩余路程";当前速度作输入 | B | MπNets 将老师路径重定时为匀速 |
|
||||
| 动作表示 | 16 步 × 6 轴关节增量 Δq | A | DRP;Diffusion Policy(位置式优于速度式) |
|
||||
@@ -195,12 +195,12 @@ pip install numpy pyarrow tqdm tensorboard onnx onnxruntime
|
||||
- 输入:§5.1 全部字段(含当前速度、已提交前缀)
|
||||
- 标签:未来 16 步 Δq_{t+k} = q_{t+k} − q_t(到终点后补零)
|
||||
3. 每条路径约 40–50 个样本 → 约 200 万样本(以 `stats.json` 为准)。
|
||||
4. 协变量偏移对策:关节噪声增广(σ = 1°,噪声状态由老师离线重标);偏离状态的进一步覆盖靠 §7。
|
||||
4. 协变量偏移对策:关节噪声增广(30% 样本,σ = 1°;噪声态须无干涉且间隙 > 1 mm,标签为 8 步内线性收回老师轨迹的增量);偏离状态的进一步覆盖靠 §7。
|
||||
|
||||
### 4.6 耗时与存储
|
||||
|
||||
- 路网 A* 每条数十毫秒,耗时主要在过滤认证;按 `solveDyn` 0.7 s/条上限估算,沙箱 2 进程不超过 5 小时。
|
||||
- 200 万样本原始约 1 GB;Parquet 约 200 MB。
|
||||
- 200 万样本以 float32 `.npy` 存放约 1.5 GB(训练时整体载入内存)。
|
||||
|
||||
### 4.7 检查点
|
||||
|
||||
@@ -213,7 +213,7 @@ pip install numpy pyarrow tqdm tensorboard onnx onnxruntime
|
||||
|
||||
## 5. 表示与预处理
|
||||
|
||||
文件 `ml/prep/build_dataset.py` → `train/val/test.parquet`、`norm.json`。
|
||||
文件 `ml/prep/build_dataset.cjs`(Node,特征直接调用部署运行时 `webapp/js/ik-policy.js` 的同一份实现)→ `ml/data/samples/*.{X,Y,V,SG,TID}.npy` + `*.tasks.jsonl`;按任务 5% 划为验证集。PyTorch 侧特征 `ml/common/features.py` 与 JS 逐项对拍(闭环仿真与 APG 使用)。
|
||||
|
||||
### 5.1 输入
|
||||
|
||||
@@ -262,7 +262,7 @@ J1/J3/J6 统一用 `unwrapTo` 展开后再做增量;预处理与部署共用
|
||||
|---|---|
|
||||
| d_model / 头数 / FFN | 192 / 8 / 768 |
|
||||
| encoder / decoder 层数 | 4 / 4 |
|
||||
| 参数量 | 约 4.1M |
|
||||
| 参数量 | 约 4.9M |
|
||||
|
||||
子目标触发:新目标或目标跳变 > 50 mm 时输出;到达当前子目标 < 5° 后切下一个。
|
||||
|
||||
@@ -364,7 +364,7 @@ for 每个 batch(随机采样 q0 和目标,不需要老师):
|
||||
|
||||
### 8.3 安全层(唯一的硬保证)
|
||||
|
||||
- **距离下界认证**:对一段运动 q_a → q_b,若两端到障碍的最小距离之和 d(q_a) + d(q_b) > Σ_j r_j·|Δθ_j|(r_j 为每轴实测杠杆上界,J1 约 9.0 mm/°,六轴合计最大约 24.3 mm/°),则整段安全;否则二分,直到全部子段通过或判不安全。臂×立柱/台架用胶囊距离;自碰撞对复用 `pair2d` 杠杆界(J3 3.24、J4 2.54 mm/°)。外加关节限位。
|
||||
- **距离下界认证**:对一段运动 q_a → q_b,若两端到障碍的最小距离之和 d(q_a) + d(q_b) > Σ_j r_j·|Δθ_j|,则整段安全;否则二分,直到全部子段通过或判不安全。按组对分别判定:组对 (g_A, g_B) 的间隙只受关节 g_A…g_B−1 带动组 g_B 影响,右端取 Σ_{k=g_A}^{g_B−1} T[k][g_B]·|Δθ_k|,T 为分组杠杆表(组 g_B 胶囊端点到轴 k 的最大距离,随机 4000 位形采样再放大 5%;末端组对 J1…J6 分别为 9.56 / 7.37 / 4.47 / 4.48 / 2.47 / 0.69 mm/°)。间隙取全部 |Δg| ≥ 2 胶囊对的 距离 − (r_i + r_j + margin)。外加关节限位。先用离散 `collideFree` 剔除明显干涉的候选;运行时每条候选最多 40 次距离查询、每次推理安全层总预算 30 ms,超出按刹停处理。
|
||||
- 离散采样检查(现有 `pathFine`,1.5° + 半格)只作快速预筛,不作保证依据。
|
||||
- **可刹停不变式**:只有当"候选前 3 步 + 从第 3 步末按每轴 a_max 减速到停"整段都通过认证时才提交。任何时候系统都持有一条已认证的停车路线,下一次推理即使完全失效也只会停下。
|
||||
- 耗时:每段一次距离查询覆盖整段,不通过才二分(通常 2–6 次);按排序逐个认证,第一个通过即停;包围球预筛先行。目标每次 < 5 ms,否则放 Web Worker 与推理流水线并行。
|
||||
@@ -374,7 +374,7 @@ for 每个 batch(随机采样 q0 和目标,不需要老师):
|
||||
|
||||
| 有 | 没有 |
|
||||
|---|---|
|
||||
| `traj_policy.onnx`(fp16,约 8.3 MB)+ `norm.json` | PRM 路网、IK 候选大表 |
|
||||
| `traj_policy.onnx`(fp16,约 9.8 MB)+ `traj_policy.meta.json`(指纹 / 特征版本 / TCP) | PRM 路网、IK 候选大表 |
|
||||
| 胶囊距离与认证(`collideFree`、包围球预筛、`pair2d`) | `solveDyn` / `routeRT` / RRT / A* |
|
||||
| `fk` / `orient`、局部牛顿精修 `solveTo` 单步 | 全量 IK 枚举 |
|
||||
|
||||
@@ -454,7 +454,9 @@ for 每个 batch(随机采样 q0 和目标,不需要老师):
|
||||
|
||||
1. 现有规划器(老师)在 `tests/route_bench.cjs` 上有 1/40 例到达但路径细验不过;§4.4 的认证过滤会丢弃这类样本。
|
||||
2. `ci27` 姿态根枚举漏分支(姿态偏差约 97.5°)会影响 pose 数据;APG 姿态项可部分纠正,必要时先修老师。
|
||||
3. 胶囊模型或立柱变动即需重训:数据约 5 h + 预训练 1.5–5.6 h + 后训练 2–4 h。
|
||||
3. 胶囊模型或立柱变动即需重训:数据(用户机器 16 核约 2 h)+ 预训练 1.5–6 h + 后训练数小时。
|
||||
4. 老师一致性沙箱首测 78%(100 任务、373 对邻居,门禁 90%):不一致主要来自 J6 冗余与时间预算造成的非确定性。已改为确定性老师(预算按碰撞判定次数计、每条前清空跨调用缓存)并在 pos 任务冻结 J6,待在用户机器复测;仍不达标则生成时启用 4 邻居共识过滤。
|
||||
5. 安全层耗时:未训练模型(候选为噪声)在 Node 单线程实测每次推理安全层约 20–60 ms,高于 5 ms 目标;训练后候选平滑会下降,以 `policy_bench` 与浏览器 `__POLICY.latency()` 实测为准,超标则把安全层移入 Web Worker 与推理流水线并行。
|
||||
|
||||
### 10.3 需要用户确认
|
||||
|
||||
@@ -465,22 +467,27 @@ for 每个 batch(随机采样 q0 和目标,不需要老师):
|
||||
|
||||
## 11. 目录规划
|
||||
|
||||
运行步骤、命令与耗时见 `ml/README.md`。
|
||||
|
||||
```
|
||||
ml/
|
||||
gen/ gen_dataset.cjs sampler.cjs run_parallel.sh
|
||||
data/ (不入库)shard_*.jsonl stats.json *.parquet norm.json
|
||||
prep/ build_dataset.py
|
||||
model/ policy_transformer.py # MeanFlow 一步头
|
||||
sim/ closed_loop.py # 闭环仿真(验证、挖错、APG 共用)
|
||||
eval/ collide_torch.py # 可微胶囊距离,与 JS 对拍
|
||||
apg/ apg_finetune.py
|
||||
mining/ mine_round.py gate.py loop.sh
|
||||
toy/ toy_bimodal.py # 2D 双模态对照实验
|
||||
configs/ base.yaml apg.yaml
|
||||
train.py export_onnx.py README.md
|
||||
webapp/js/ik-policy.js # 闭环推理 + 排序 + 安全认证 + 刹停
|
||||
webapp/models/traj_policy.onnx traj_policy.norm.json
|
||||
tests/policy_bench.cjs
|
||||
pipeline.sh 阶段脚本:setup / kin / gate1 / gen / prep / train / m5 / apg / mine / export / bench
|
||||
gen/ sampler / teacher(确定性 PRM A*)/ timelaw / gen_dataset / consistency / stats / run_parallel.sh
|
||||
prep/ export_kin.cjs → assets/kin.json;build_dataset.cjs → data/samples/*.npy;run_prep.sh
|
||||
data/ (不入库)shard_*.jsonl stats.json consistency.json samples/
|
||||
common/ kin_torch.py(可微运动学 + 胶囊间隙) features.py(83 维特征)
|
||||
model/ policy.py(MeanFlow 头;WTA K=8 回退头) meanflow.py
|
||||
data.py train.py 样本加载、预训练
|
||||
sim/closed_loop.py 闭环仿真(验证、挖错、门禁共用)
|
||||
apg/apg_finetune.py APG 可微微调
|
||||
mining/ tasks.py mine_round.py gate.py loop.sh
|
||||
eval/ dump_parity.cjs check_parity.py(JS ↔ PyTorch 对拍)
|
||||
configs/ base.json wta.json apg.json
|
||||
export_onnx.py serve.py README.md
|
||||
webapp/js/ik-policy.js 运行时:特征、距离下界认证、刹停、投影、精修、Runner(浏览器与 Node 共用)
|
||||
webapp/js/ik-policy-glue.js 查看器接入(?policy=1)
|
||||
webapp/models/ traj_policy.onnx traj_policy.meta.json
|
||||
tests/policy_bench.cjs 部署形态评测
|
||||
```
|
||||
|
||||
## 12. 里程碑
|
||||
@@ -489,7 +496,7 @@ tests/policy_bench.cjs
|
||||
|---|---|---|---|
|
||||
| M1 | 数据生成器 + 时间律 + 1000 条试跑;老师一致性门禁 | `ml/gen/*`、stats.json | 沙箱 |
|
||||
| M2 | 可微胶囊距离(PyTorch)与 JS 对拍;距离认证实现与 10⁵ 段审计 | `collide_torch.py`、认证模块 | 沙箱 |
|
||||
| M3 | 5 万条老师数据 → 约 200 万样本 | Parquet | 沙箱约 5 h 或用户机器 |
|
||||
| M3 | 5 万条老师数据 → 约 180 万样本 | `samples/*.npy` | 用户机器 |
|
||||
| M4 | 模型 + 训练工程 + 闭环仿真;小数据过拟合;**导出 ONNX 测浏览器延迟** | `train.py`、`closed_loop.py`、延迟报告 | 沙箱 + 浏览器 |
|
||||
| M5 | 预训练 + MeanFlow 头门禁 | checkpoint、门禁报告 | 用户 GPU |
|
||||
| M6 | APG 微调 + 挖错循环 3–6 轮 | 每轮 report.md | 用户 GPU |
|
||||
|
||||
Reference in New Issue
Block a user