This is the official repository for the paper "GPT-RE: In-context Learning for Relation Extraction using Large Language Models" (EMNLP 2023).
[New] The GPT-RE with Fine-Tuned representations (GPT-RE_FT) method is now available! The code has been reproduced and organized in our follow-up work. Please visit:
This repository contains the complete implementation including fine-tuned representation methods that were not included in the original release.
This repository supports the following methods from the paper:
- GPT-Random: Random demonstration selection
- GPT-SimCSE: SimCSE-based similar demonstration retrieval
- Reasoning Logic: Task-aware reasoning in demonstrations
- Entity-aware Similarity: Entity information enhanced retrieval
bash run_relation_ace.shIn the example script file run_relation_ace.sh, the following options are available:
| Option | Description | Example |
|---|---|---|
--task |
Name of the task | semeval, ace05, scierc |
--model |
GPT model name | text-davinci-003 |
--seed |
Random seed | 42 |
| Option | Description |
|---|---|
--num_test |
Number of test examples (should be smaller than test dataset size) |
--example_dataset |
File path for demonstration examples |
--test_dataset |
Path to test data (use test.json for full test set) |
| Option | Description |
|---|---|
--fixed_example |
1: Fixed demonstrations; 0: Re-retrieve for each test (use 0 for kNN) |
--fixed_test |
1: Fixed test dataset (can be ignored, use --test_dataset instead) |
--num_per_rel |
Examples per relation type for demonstrations (use 0 for kNN) |
--num_na |
NA examples for demonstrations (use 0 for w/o NA and kNN setups) |
--num_run |
Keep 1 |
| Option | Description |
|---|---|
--random_label |
1: Use random labels in demonstrations |
--reasoning |
1: Add reasoning to demonstrations |
--use_knn |
1: Use kNN for demonstration retrieval |
--k |
Top-k for kNN retrieval |
--reverse |
1: Reverse demonstration order (default 0: more similar at top) |
--entity_info |
Entity-aware sentence similarity (from our paper) |
| Option | Description |
|---|---|
--var |
Keep 0 |
--verbalize |
Keep 0 |
--structure |
Structured prompt trial, keep default |
--use_ft |
Fine-tuned representation - see GPT-RE-FT for full support |
--self_error |
Keep 0 |
--use_dev, --store_error_reason, --discriminator |
Keep 0 |
The repository includes preprocessed data for:
- SemEval 2010 Task 8
- ACE05
- SciERC
If you find this work helpful, please cite our paper:
@inproceedings{wan2023gpt,
title={GPT-RE: In-context Learning for Relation Extraction using Large Language Models},
author={Wan, Zhen and Cheng, Fei and Mao, Zhuoyuan and Liu, Qianying and Song, Haiyue and Li, Jiwei and Kurohashi, Sadao},
booktitle={Proceedings of the 2023 Conference on Empirical Methods in Natural Language Processing},
year={2023}
}Please refer to the LICENSE file for details.