YAML Metadata Warning:empty or missing yaml metadata in repo card
Check out the documentation for more information.
上机作业 L - 关系抽取
本提交使用 R-BERT 关系分类模型,并对 5 个不同随机种子的模型预测结果做多数投票集成。
文件说明
README.md
predict_ensemble.py
dataset/
SemEval/
bert-base-uncased/ # 从 Hugging Face 下载
models/ # 从 Hugging Face 下载
rbert_lr2e-5_len192_seed1.pt
rbert_lr2e-5_len192_seed2.pt
rbert_lr2e-5_len192_seed3.pt
rbert_lr2e-5_len192_seed4.pt
rbert_lr2e-5_len192_seed5.pt
loss_curves/
rbert_lr2e-5_len192_seed1_loss.png
rbert_lr2e-5_len192_seed2_loss.png
rbert_lr2e-5_len192_seed3_loss.png
rbert_lr2e-5_len192_seed4_loss.png
rbert_lr2e-5_len192_seed5_loss.png
models/ 中是训练后的 5 个模型权重。predict_ensemble.py 是测试集预测代码,默认加载这 5 个模型,在测试集上分别预测,然后对每个样本做多数投票,输出最终预测标签。
由于模型文件较大,训练后的 R-BERT checkpoint 已上传到 Hugging Face:
https://huggingface.co/liuyanliang/rbert-relation-extraction-semeval
基础 BERT bert-base-uncased/ 也已上传到同一个 Hugging Face 仓库内。
dataset/SemEval/ 已经放在提交目录内。运行预测前需要先下载 models/ 权重和 bert-base-uncased/。
运行环境
需要安装:
pip install torch==2.12.0 numpy==2.4.4 transformers==5.9.0
预测命令
解压后进入本提交目录,先下载模型权重:
cd submission_L_relation_extraction
hf download liuyanliang/rbert-relation-extraction-semeval \
--include "models/*.pt" \
--include "bert-base-uncased/*" \
--local-dir .
然后运行预测:
python predict_ensemble.py \
--bert-model ./bert-base-uncased \
--data-root ./dataset/SemEval/ \
--vector-path ./dataset/SemEval/vector_50.txt \
--model-dir ./models \
--max-len 192 \
--batch-size 16 \
--pred-path pred_rbert_seed_ensemble_vote.txt
输出文件:
pred_rbert_seed_ensemble_vote.txt
该文件每行一个关系类别 id,对应测试集一条样本。
训练配置
5 个模型使用相同超参数,不同随机种子:
bert_model = ./bert-base-uncased
data_root = ./dataset/SemEval/
epochs = 20
batch_size = 16
learning_rate = 2e-5
dropout = 0.2
patience = 8
max_len = 192
weight_decay = 0.01
seed = 1, 2, 3, 4, 5
训练时使用验证集 dev_macroF1 作为保存最佳 checkpoint 和 early stopping 的指标。
Loss 曲线
Seed 1:
Seed 2:
Seed 3:
Seed 4:
Seed 5:
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support




