# Model Info ## 当前默认模型与元数据 - 法条预测权重:`model/provision_predictor/groupy_legal_provision.best.pt` - 法条模型指标:`model/provision_predictor/groupy_legal_provision.best.json` - 法条标签映射:`model/provision_predictor/label_map.json` - 法条分组映射:`model/provision_predictor/label_group0.npy` - 分区模型:`model/partition_predictor/best_model.pt` - 分区词表:`model/partition_predictor/vocab.json` - 分区配置:`model/partition_predictor/model_meta.json` ## 说明 - `label_map.json` 与 `label_group0.npy` 已内置,用于去除对训练数据目录和外部文件的依赖。 - `code/pipeline/run_inference_pipeline.py` 直接读取以上文件,可独立运行。 ## 最优指标(来自 `groupy_legal_provision.best.json`) - `epoch`: 9 - `p1`: 0.8569037656903765 - `p3`: 0.7338912133891213 - `p5`: 0.5914644351464435 - `g_p1`: 0.8828451882845189 - `g_p3`: 0.7523012552301256 - `g_p5`: 0.5814225941422595 ## 指标计算方式(与训练代码一致) 以下定义对应 `LightXML_B/src/model.py` 中 `get_accuracy` 与 `one_epoch(eval)` 的实现。 ### 1) 法条层指标:`p1 / p3 / p5` 对每个样本 `i`: - 真实法条集合:`Y_i` - 模型输出 Top-k 法条集合:`Ŷ_i@k`(`k` 取 1、3、5) - 命中数:`hit_i@k = |Y_i ∩ Ŷ_i@k|` 在验证集总样本数为 `N` 时: - `acc@k = Σ_i hit_i@k` - `p@k = acc@k / (N * k)` 因此: - `p1 = acc1 / N` - `p3 = acc3 / (N * 3)` - `p5 = acc5 / (N * 5)` ### 2) 分组层指标:`g_p1 / g_p3 / g_p5` 分组头(group head)同样用 Precision@k 统计,只是标签空间从“法条”换成“分组”。 对每个样本 `i`: - 真实分组集合:`G_i` - 分组头 Top-k 预测集合:`Ĝ_i@k` - 命中数:`g_hit_i@k = |G_i ∩ Ĝ_i@k|` 在 `N` 个样本上: - `g_acc@k = Σ_i g_hit_i@k` - `g_p@k = g_acc@k / (N * k)` 因此: - `g_p1 = g_acc1 / N` - `g_p3 = g_acc3 / (N * 3)` - `g_p5 = g_acc5 / (N * 5)` ### 3) 直观解释 - `p1=0.8569`:平均看,每条样本 Top1 预测有 `85.69%` 命中真实法条。 - `p5=0.5915`:平均看,每条样本 Top5 中有 `59.15%` 是真实法条(Top5 平均命中约 `2.96` 条)。 - `g_p*`:分组预测层面的同口径指标,用于评估候选分组阶段质量。 ## 推荐调用 在项目根目录执行: ```powershell & '.\.venv\Scripts\python.exe' 'LightXML_B\Inference of LightXML\code\run_inference_pipeline.py' ` --model-path 'LightXML_B\Inference of LightXML\model\provision_predictor\groupy_legal_provision.best.pt' ` --label-map-path 'LightXML_B\Inference of LightXML\model\provision_predictor\label_map.json' ` --group-y-path 'LightXML_B\Inference of LightXML\model\provision_predictor\label_group0.npy' ` --partition-model-path 'LightXML_B\Inference of LightXML\model\partition_predictor\best_model.pt' ` --partition-vocab-path 'LightXML_B\Inference of LightXML\model\partition_predictor\vocab.json' ` --input-file 'LightXML_B\Inference of LightXML\data\input\sample_raw_input_5.jsonl' ` --output-zoned 'LightXML_B\Inference of LightXML\data\intermediate\sample_zoned_output_5.json' ` --output-pred 'LightXML_B\Inference of LightXML\results\sample_predictions_5.json' ` --max-items 5 ` --device cuda ```