relik-ie commited on
Commit
821ec3a
β€’
1 Parent(s): b7e439b

Update README.md

Browse files
Files changed (1) hide show
  1. README.md +145 -161
README.md CHANGED
@@ -1,199 +1,183 @@
1
  ---
2
- library_name: transformers
3
- tags: []
4
  ---
5
 
6
- # Model Card for Model ID
 
 
 
7
 
8
- <!-- Provide a quick summary of what the model is/does. -->
 
 
9
 
 
 
 
 
 
 
 
 
 
 
10
 
11
 
12
- ## Model Details
13
 
14
- ### Model Description
15
 
16
- <!-- Provide a longer summary of what this model is. -->
17
 
18
- This is the model card of a πŸ€— transformers model that has been pushed on the Hub. This model card has been automatically generated.
 
 
19
 
20
- - **Developed by:** [More Information Needed]
21
- - **Funded by [optional]:** [More Information Needed]
22
- - **Shared by [optional]:** [More Information Needed]
23
- - **Model type:** [More Information Needed]
24
- - **Language(s) (NLP):** [More Information Needed]
25
- - **License:** [More Information Needed]
26
- - **Finetuned from model [optional]:** [More Information Needed]
27
 
28
- ### Model Sources [optional]
29
 
30
- <!-- Provide the basic links for the model. -->
31
 
32
- - **Repository:** [More Information Needed]
33
- - **Paper [optional]:** [More Information Needed]
34
- - **Demo [optional]:** [More Information Needed]
35
 
36
- ## Uses
37
 
38
- <!-- Address questions around how the model is intended to be used, including the foreseeable users of the model and those affected by the model. -->
 
 
39
 
40
- ### Direct Use
41
 
42
- <!-- This section is for the model use without fine-tuning or plugging into a larger ecosystem/app. -->
43
 
44
- [More Information Needed]
45
 
46
- ### Downstream Use [optional]
 
 
47
 
48
- <!-- This section is for the model use when fine-tuned for a task, or when plugged into a larger ecosystem/app -->
49
 
50
- [More Information Needed]
 
 
51
 
52
- ### Out-of-Scope Use
 
53
 
54
- <!-- This section addresses misuse, malicious use, and uses that the model will not work well for. -->
 
 
 
55
 
56
- [More Information Needed]
 
57
 
58
- ## Bias, Risks, and Limitations
 
59
 
60
- <!-- This section is meant to convey both technical and sociotechnical limitations. -->
 
 
61
 
62
- [More Information Needed]
63
 
64
- ### Recommendations
 
 
 
 
65
 
66
- <!-- This section is meant to convey recommendations with respect to the bias, risk, and technical limitations. -->
67
 
68
- Users (both direct and downstream) should be made aware of the risks, biases and limitations of the model. More information needed for further recommendations.
69
 
70
- ## How to Get Started with the Model
71
 
72
- Use the code below to get started with the model.
 
 
 
 
73
 
74
- [More Information Needed]
75
 
76
- ## Training Details
 
 
77
 
78
- ### Training Data
 
 
79
 
80
- <!-- This should link to a Dataset Card, perhaps with a short stub of information on what the training data is all about as well as documentation related to data pre-processing or additional filtering. -->
81
 
82
- [More Information Needed]
83
-
84
- ### Training Procedure
85
-
86
- <!-- This relates heavily to the Technical Specifications. Content here should link to that section when it is relevant to the training procedure. -->
87
-
88
- #### Preprocessing [optional]
89
-
90
- [More Information Needed]
91
-
92
-
93
- #### Training Hyperparameters
94
-
95
- - **Training regime:** [More Information Needed] <!--fp32, fp16 mixed precision, bf16 mixed precision, bf16 non-mixed precision, fp16 non-mixed precision, fp8 mixed precision -->
96
-
97
- #### Speeds, Sizes, Times [optional]
98
-
99
- <!-- This section provides information about throughput, start/end time, checkpoint size if relevant, etc. -->
100
-
101
- [More Information Needed]
102
-
103
- ## Evaluation
104
-
105
- <!-- This section describes the evaluation protocols and provides the results. -->
106
-
107
- ### Testing Data, Factors & Metrics
108
-
109
- #### Testing Data
110
-
111
- <!-- This should link to a Dataset Card if possible. -->
112
-
113
- [More Information Needed]
114
-
115
- #### Factors
116
-
117
- <!-- These are the things the evaluation is disaggregating by, e.g., subpopulations or domains. -->
118
-
119
- [More Information Needed]
120
-
121
- #### Metrics
122
-
123
- <!-- These are the evaluation metrics being used, ideally with a description of why. -->
124
-
125
- [More Information Needed]
126
-
127
- ### Results
128
-
129
- [More Information Needed]
130
-
131
- #### Summary
132
-
133
-
134
-
135
- ## Model Examination [optional]
136
-
137
- <!-- Relevant interpretability work for the model goes here -->
138
-
139
- [More Information Needed]
140
-
141
- ## Environmental Impact
142
-
143
- <!-- Total emissions (in grams of CO2eq) and additional considerations, such as electricity usage, go here. Edit the suggested text below accordingly -->
144
-
145
- Carbon emissions can be estimated using the [Machine Learning Impact calculator](https://mlco2.github.io/impact#compute) presented in [Lacoste et al. (2019)](https://arxiv.org/abs/1910.09700).
146
-
147
- - **Hardware Type:** [More Information Needed]
148
- - **Hours used:** [More Information Needed]
149
- - **Cloud Provider:** [More Information Needed]
150
- - **Compute Region:** [More Information Needed]
151
- - **Carbon Emitted:** [More Information Needed]
152
-
153
- ## Technical Specifications [optional]
154
-
155
- ### Model Architecture and Objective
156
-
157
- [More Information Needed]
158
-
159
- ### Compute Infrastructure
160
-
161
- [More Information Needed]
162
-
163
- #### Hardware
164
-
165
- [More Information Needed]
166
-
167
- #### Software
168
-
169
- [More Information Needed]
170
-
171
- ## Citation [optional]
172
-
173
- <!-- If there is a paper or blog post introducing the model, the APA and Bibtex information for that should go in this section. -->
174
-
175
- **BibTeX:**
176
-
177
- [More Information Needed]
178
-
179
- **APA:**
180
-
181
- [More Information Needed]
182
-
183
- ## Glossary [optional]
184
-
185
- <!-- If relevant, include terms and calculations in this section that can help readers understand the model or model card. -->
186
-
187
- [More Information Needed]
188
-
189
- ## More Information [optional]
190
-
191
- [More Information Needed]
192
-
193
- ## Model Card Authors [optional]
194
-
195
- [More Information Needed]
196
-
197
- ## Model Card Contact
198
-
199
- [More Information Needed]
 
1
  ---
2
+ language:
3
+ - en
4
  ---
5
 
6
+ <div align="center">
7
+ <img src="https://github.com/SapienzaNLP/relik/blob/main/relik.png?raw=true" height="150">
8
+ <img src="https://github.com/SapienzaNLP/relik/blob/main/Sapienza_Babelscape.png?raw=true" height="50">
9
+ </div>
10
 
11
+ <div align="center">
12
+ <h1>Retrieve, Read and LinK: Fast and Accurate Entity Linking and Relation Extraction on an Academic Budget</h1>
13
+ </div>
14
 
15
+ <div style="display:flex; justify-content: center; align-items: center; flex-direction: row;">
16
+ <a href="https://2024.aclweb.org/"><img src="http://img.shields.io/badge/ACL-2024-4b44ce.svg"></a> &nbsp; &nbsp;
17
+ <a href="https://aclanthology.org/"><img src="http://img.shields.io/badge/paper-ACL--anthology-B31B1B.svg"></a> &nbsp; &nbsp;
18
+ <a href="https://arxiv.org/abs/placeholder"><img src="https://img.shields.io/badge/arXiv-placeholder-b31b1b.svg"></a>
19
+ </div>
20
+ <div style="display:flex; justify-content: center; align-items: center; flex-direction: row;">
21
+ <a href="https://huggingface.co/collections/sapienzanlp/relik-retrieve-read-and-link-665d9e4a5c3ecba98c1bef19"><img src="https://img.shields.io/badge/%F0%9F%A4%97%20Hugging%20Face-Collection-FCD21D"></a> &nbsp; &nbsp;
22
+ <a href="https://github.com/SapienzaNLP/relik"><img src="https://img.shields.io/badge/GitHub-Repo-121013?logo=github&logoColor=white"></a> &nbsp; &nbsp;
23
+ <a href="https://github.com/SapienzaNLP/relik/releases"><img src="https://img.shields.io/github/v/release/SapienzaNLP/relik"></a>
24
+ </div>
25
 
26
 
27
+ A blazing fast and lightweight Information Extraction model for **Entity Linking** and **Relation Extraction**.
28
 
29
+ ## πŸ› οΈ Installation
30
 
31
+ Installation from PyPI
32
 
33
+ ```bash
34
+ pip install relik
35
+ ```
36
 
37
+ <details>
38
+ <summary>Other installation options</summary>
 
 
 
 
 
39
 
40
+ #### Install with optional dependencies
41
 
42
+ Install with all the optional dependencies.
43
 
44
+ ```bash
45
+ pip install relik[all]
46
+ ```
47
 
48
+ Install with optional dependencies for training and evaluation.
49
 
50
+ ```bash
51
+ pip install relik[train]
52
+ ```
53
 
54
+ Install with optional dependencies for [FAISS](https://github.com/facebookresearch/faiss)
55
 
56
+ FAISS PyPI package is only available for CPU. For GPU, install it from source or use the conda package.
57
 
58
+ For CPU:
59
 
60
+ ```bash
61
+ pip install relik[faiss]
62
+ ```
63
 
64
+ For GPU:
65
 
66
+ ```bash
67
+ conda create -n relik python=3.10
68
+ conda activate relik
69
 
70
+ # install pytorch
71
+ conda install -y pytorch=2.1.0 pytorch-cuda=12.1 -c pytorch -c nvidia
72
 
73
+ # GPU
74
+ conda install -y -c pytorch -c nvidia faiss-gpu=1.8.0
75
+ # or GPU with NVIDIA RAFT
76
+ conda install -y -c pytorch -c nvidia -c rapidsai -c conda-forge faiss-gpu-raft=1.8.0
77
 
78
+ pip install relik
79
+ ```
80
 
81
+ Install with optional dependencies for serving the models with
82
+ [FastAPI](https://fastapi.tiangolo.com/) and [Ray](https://docs.ray.io/en/latest/serve/quickstart.html).
83
 
84
+ ```bash
85
+ pip install relik[serve]
86
+ ```
87
 
88
+ #### Installation from source
89
 
90
+ ```bash
91
+ git clone https://github.com/SapienzaNLP/relik.git
92
+ cd relik
93
+ pip install -e .[all]
94
+ ```
95
 
96
+ </details>
97
 
98
+ ## πŸš€ Quick Start
99
 
100
+ [//]: # (Write a short description of the model and how to use it with the `from_pretrained` method.)
101
 
102
+ ReLiK is a lightweight and fast model for **Entity Linking** and **Relation Extraction**.
103
+ It is composed of two main components: a retriever and a reader.
104
+ The retriever is responsible for retrieving relevant documents from a large collection,
105
+ while the reader is responsible for extracting entities and relations from the retrieved documents.
106
+ ReLiK can be used with the `from_pretrained` method to load a pre-trained pipeline.
107
 
108
+ Here is an example of how to use ReLiK for **Relation Extraction**:
109
 
110
+ ```python
111
+ from relik import Relik
112
+ from relik.inference.data.objects import RelikOutput
113
 
114
+ relik = Relik.from_pretrained("sapienzanlp/relik-relation-extraction-nyt-large")
115
+ relik_out: RelikOutput = relik("Michael Jordan was one of the best players in the NBA.")
116
+ ```
117
 
 
118
 
119
+ RelikOutput(
120
+ text='Michael Jordan was one of the best players in the NBA.',
121
+ tokens=Michael Jordan was one of the best players in the NBA.,
122
+ id=0,
123
+ spans=[
124
+ Span(start=0, end=14, label='--NME--', text='Michael Jordan'),
125
+ Span(start=50, end=53, label='--NME--', text='NBA')
126
+ ],
127
+ triplets=[
128
+ Triplets(
129
+ subject=Span(start=0, end=14, label='--NME--', text='Michael Jordan'),
130
+ label='company',
131
+ object=Span(start=50, end=53, label='--NME--', text='NBA'),
132
+ confidence=1.0
133
+ )
134
+ ],
135
+ candidates=Candidates(
136
+ span=[],
137
+ triplet=[
138
+ [
139
+ [
140
+ {"text": "company", "id": 4, "metadata": {"definition": "company of this person"}},
141
+ {"text": "nationality", "id": 10, "metadata": {"definition": "nationality of this person or entity"}},
142
+ {"text": "child", "id": 17, "metadata": {"definition": "child of this person"}},
143
+ {"text": "founded by", "id": 0, "metadata": {"definition": "founder or co-founder of this organization, religion or place"}},
144
+ {"text": "residence", "id": 18, "metadata": {"definition": "place where this person has lived"}},
145
+ ...
146
+ ]
147
+ ]
148
+ ]
149
+ ),
150
+ )
151
+
152
+
153
+ ## πŸ“Š Performance
154
+
155
+ The following table shows the results (Micro F1) of ReLiK Large on the NYT dataset:
156
+
157
+ | Model | NYT | NYT (Pretr) | AIT (m:s) |
158
+ |------------------------------------------|------|-------|------------|
159
+ | REBEL | 93.1 | 93.4 | 01:45 |
160
+ | UiE | 93.5 | -- | -- |
161
+ | USM | 94.0 | 94.1 | -- |
162
+ | ➑️ [ReLiK<sub>Large<sub>](https://huggingface.co/sapienzanlp/relik-relation-extraction-nyt-large) | **95.0** | **94.9** | 00:30 |
163
+
164
+
165
+ ## πŸ€– Models
166
+
167
+ Models can be found on [πŸ€— Hugging Face](https://huggingface.co/collections/sapienzanlp/relik-retrieve-read-and-link-665d9e4a5c3ecba98c1bef19).
168
+
169
+ ## πŸ’½ Cite this work
170
+
171
+ If you use any part of this work, please consider citing the paper as follows:
172
+
173
+ ```bibtex
174
+ @inproceedings{orlando-etal-2024-relik,
175
+ title = "Retrieve, Read and LinK: Fast and Accurate Entity Linking and Relation Extraction on an Academic Budget",
176
+ author = "Orlando, Riccardo and Huguet Cabot, Pere-Llu{\'\i}s and Barba, Edoardo and Navigli, Roberto",
177
+ booktitle = "Findings of the Association for Computational Linguistics: ACL 2024",
178
+ month = aug,
179
+ year = "2024",
180
+ address = "Bangkok, Thailand",
181
+ publisher = "Association for Computational Linguistics",
182
+ }
183
+ ```