Code for "LLM-OREF: An Open Relation Extraction Framework Based on Large Language Models"
- Install Environment:
conda env create -f env.yml - Data Format:
{
"text": ...,
"head": ...,
"tail": ...,
"label": ...,
"ins_idx": ...
}- Train RP:
torchrun --nproc_per_node=${n} --master_port=${port} src/train_RP.py \
--model_name ${model_name} \
--model_path ${model_path}\
--train_path ${train_path} \
--output_path ${output_path} \
--few_shot ${few_shot} \
--train_batch_size ${train_batch_size} \
--gradient_accumulation_steps ${gradient_accumulation_steps} \
--num_train_epochs ${num_train_epochs} \
--max_grad_norm ${max_grad_norm} \
--bf16 \
--deepspeed ${config} \
--logging_steps ${logging_steps} \
--lr ${lr} \
--lora_r ${lora_r} \
--lora_alpha ${lora_alpha} \
--lora_dropout ${lora_dropout} \
- Train RD:
torchrun --nproc_per_node=${n} --master_port=${port} src/train_RD.py \
--model_name ${model_name} \
--model_path ${model_path} \
--train_path ${train_path} \
--output_path ${output_path} \
--RP_lora_path ${RP_lora_path} \
--few_shot ${few_shot} \
--temperature ${temperature} \
--alpha ${alpha} \
--train_batch_size ${train_batch_size} \
--gradient_accumulation_steps ${gradient_accumulation_steps} \
--num_train_epochs ${num_train_epochs} \
--max_grad_norm ${max_grad_norm} \
--bf16 \
--deepspeed ${config} \
--logging_steps ${logging_steps} \
--lr ${LR} \
--lora_r ${lora_r} \
--lora_alpha ${lora_alpha} \
--lora_dropout ${lora_dropout} \
- Relation Discovery:
python src/relation_discovery.py \
--model_path ${model_path} \
--train_path ${train_path} \
--test_path ${test_path} \
--unknown_r_path ${unknown_r_path} \
--discoverer_lora_path ${discoverer_lora_path} \
--output_path ${output_path} \
--K ${K} \
--few_shot ${few_shot} \
- Relation Denoising:
python src/relation_denoising.py \
--model_path ${model_path} \
--test_path ${test_path} \
--RP_lora_path ${RP_lora_path} \
--unknown_r_path ${unknown_r_path} \
--output_path ${output_path} \
--few_shot ${few_shot} \
- Relation Prediction:
python src/relation_prediction.py \
--model_path ${model_path} \
--test_path ${test_path} \
--demo_path ${demo_path} \
--unknown_r_path ${unknown_r_path} \
--RP_lora_path ${RP_lora_path} \
--output_path ${output_path} \
--few_shot ${few_shot} \