종이 코드 Schema-adaptable Knowledge Graph Construction .
우리의 작업은 EMNLP2023 조사 회의에 의해 받아 들여졌습니다.
코드를 실행하려면 다음 요구 사항을 설치해야합니다.
conda create -n adakgc python=3.8
pip install torch==1.8.0+cu111 -f https://download.pytorch.org/whl/torch_stable.html
pip install -r requirements.txt
우리의 모델 Tokenizer 부분은 UIE를 사용하고 다른 모델은 T5를 사용하므로 혼합 파일입니다. 다운로드 링크는 여기에 제공됩니다.이 모델을 사용해야합니다. hf_models/믹스
데이터 세트 구성에 대한 자세한 내용은 데이터 구성을 참조하십시오.
다음 Google 드라이브 링크를 통해 데이터 세트를 찾을 수 있습니다.
데이터 세트 ACE05, NEYT, NYT
mkdir hf_models
cd hf_models
git lfs install
git clone https : // huggingface . co / google / t5 - v1_1 - base
cd ..
mkdir output # */AdaKGC/output # Current path: */AdaKGC
mode=H
data_name=Few-NERD
task=entity
device=0
ratio=0.8
bash scripts/fine_prompt.bash --model=hf_models/mix --data=data/ ${data_name} _ ${mode} /iter_1 --output=output/ ${data_name} _ ${mode} _ ${ratio} --config=config/prompt_conf/Few-NERD.ini --device= ${device} --negative_ratio= ${ratio} --record2=data/ ${data_name} _ ${mode} /iter_7/record.schema --use_prompt=True --init_prompt=True
model : 사전 예방 모델의 이름 또는 경로.
data : 데이터 세트의 경로.
output : 저장된 미세 조정 체크 포인트의 경로 및 최종 자동 생성 된 출력 경로`ADAKGC/OUTPUT/ACE05_EVENT_H_E30_LR1E-4_B14_N0.
config : config/prompt_conf 디렉토리의 기본 구성 파일은 각 작업의 구성이 다릅니다.
mode : 데이터 세트 모드 ( H , V , M 또는 R ).
device : cuda_visible_devices.
batch : 배치 크기.
(자세한 명령 줄 매개 변수는 Bash 스크립트 및 Python 파일 참조)
mode=H
data_name=NYT
task=relation
device=0
ratio=0.8
bash scripts/fine_prompt.bash --model=hf_models/mix --data=data/ ${data_name} _ ${mode} /iter_1 --output=output/ ${data_name} _ ${mode} _ ${ratio} --config=config/prompt_conf/NYT.ini --device= ${device} --negative_ratio= ${ratio} --record2=data/ ${data_name} _ ${mode} /iter_7/record.schema --use_prompt=True --init_prompt=Truemode=H
data_name=ace05_event
task=event
device=0
ratio=0.8
bash scripts/fine_prompt.bash --model=hf_models/mix --data=data/ ${data_name} _ ${mode} /iter_1 --output=output/ ${data_name} _ ${mode} _ ${ratio} --config=config/prompt_conf/ace05_event.ini --device= ${device} --negative_ratio= ${ratio} --record2=data/ ${data_name} _ ${mode} /iter_7/record.schema --use_prompt=True --init_prompt=Truedata/ace05_event_H/iter_1 ) mode=H
data_name=ace05_event
task=event
device=0
ratio=0.8
python3 inference.py --dataname=data/ ${data_name} / ${data_name} _ ${mode} /iter_2 --t5_path=hf_models/mix --model=output/ ${data_name} _ ${mode} _ ${ratio} --task= ${task} --cuda= ${device} --mode= ${mode} --use_prompt --use_ssi --prompt_len=80 --prompt_dim=512 datasetname : 예측할 데이터 세트의 경로 ( ace05_event , NYT 또는 Few-NERD ).
model : 이전 훈련 후 얻은 모델의 경로 (훈련 단계에서의 출력).
t5_path : 기본 모델 T5 (교육 단계의 모델).
task : 작업 유형 (엔티티, 관계, 이벤트).
cuda : cuda_visible_devices.
mode : 데이터 세트 모드 ( H , V , M 또는 R ).
use_ssi , use_prompt , prompt_len , prompt_dim 교육 시간과 일치해야합니다. 해당 구성 파일 CONFIG/PROMPT_CONF/ACE05_EVENT.ini에서보고 설정할 수 있습니다.
data/iter_1/ace05_event_H ~ data/iter _7/ace05_event_H ) mode=H
data_name=ace05_event
task=event
device=0
ratio=0.8
python3 inference_mul.py --dataname=data/ ${data_name} / ${data_name} _ ${mode} --t5_path=hf_models/mix --model=output/ ${data_name} _ ${mode} _ ${ratio} --task= ${task} --cuda= ${device} --mode= ${mode} --use_prompt --use_ssi --prompt_len=80 --prompt_dim=512 use_ssi , use_prompt , prompt_len , prompt_dim 교육과 일치해야합니다.
미세 조정 및 추론을 포함한 전체 프로세스 ( "Scripts/Run.bash") :
mode=H
data_name=ace05_event
task=event
device=0
ratio=0.8
bash scripts/run_prompt.bash --model=hf_models/mix --data=data/ ${data_name} _ ${mode} /iter_1 --output=output/ ${data_name} _ ${mode} _ ${ratio} --config=config/prompt_conf/ace05_event.ini --device= ${device} --negative_ratio= ${ratio} --record2=data/ ${data_name} _ ${mode} /iter_7/record.schema --use_prompt=True --init_prompt=True
python3 inference_mul.py --dataname=data/ ${data_name} / ${data_name} _ ${mode} --t5_path=hf_models/mix --model=output/ ${data_name} _ ${mode} _ ${ratio} --task= ${task} --cuda= ${device} --mode= ${mode} --use_prompt --use_ssi --prompt_len=80 --prompt_dim=512| 색인 | 정의 | F1 |
|---|---|---|
| ent- (p/r/f1) | 엔티티 마이크로 -F1 점수 (엔티티 유형, 엔터티 스팬) | Spot-F1 |
| Rel-Strict- (P/R/F1) | 엄격한 관계 모드에 대한 Micro-F1 점수 (관계 유형, Arg1 Span, Arg1 유형, Arg2 Span, Arg2 유형) | ASOC-F1은 관계에 사용되며 Spot-F1은 엔티티에 사용됩니다. |
| EVT- 트리거-(P/R/F1) | 이벤트 트리거 워드의 Micro-F1 점수 (이벤트 유형, 트리거 스팬) | Spot-F1 |
| EVT-ROLE- (P/R/F1) | 이벤트 역할에 대한 Micro-F1 점수 (이벤트 유형, Arg 역할, Arg Span) | ASOC-F1 |
전체 -F1은 SPOT-F1 및 ASOC-F1의 합을 의미하며, 이는 100을 초과 할 수 있습니다.
우리 코드의 일부는 UIE와 UnifiedSKG에서 빌려 왔습니다. 많은 감사합니다.
우리의 작업을 사용하거나 연장하는 경우 다음과 같이 논문을 인용하십시오.
@article { DBLP:journals/corr/abs-2305-08703 ,
author = { Hongbin Ye and
Honghao Gui and
Xin Xu and
Huajun Chen and
Ningyu Zhang } ,
title = { Schema-adaptable Knowledge Graph Construction } ,
journal = { CoRR } ,
volume = { abs/2305.08703 } ,
year = { 2023 } ,
url = { https://doi.org/10.48550/arXiv.2305.08703 } ,
doi = { 10.48550/arXiv.2305.08703 } ,
eprinttype = { arXiv } ,
eprint = { 2305.08703 } ,
timestamp = { Wed, 17 May 2023 15:47:36 +0200 } ,
biburl = { https://dblp.org/rec/journals/corr/abs-2305-08703.bib } ,
bibsource = { dblp computer science bibliography, https://dblp.org }
}