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: 9p1: 0.8569037656903765p3: 0.7338912133891213p5: 0.5914644351464435g_p1: 0.8828451882845189g_p3: 0.7523012552301256g_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@kp@k = acc@k / (N * k)
因此:
p1 = acc1 / Np3 = 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@kg_p@k = g_acc@k / (N * k)
因此:
g_p1 = g_acc1 / Ng_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*:分组预测层面的同口径指标,用于评估候选分组阶段质量。
推荐调用
在项目根目录执行:
& '.\.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