ikuyamada commited on
Commit
afb0a79
·
verified ·
1 Parent(s): d43e5ab

Add new SentenceTransformer model

Browse files
Files changed (2) hide show
  1. README.md +102 -86
  2. entity_embeddings.npy +1 -1
README.md CHANGED
@@ -1,127 +1,143 @@
1
  ---
2
  tags:
3
- - transformers
4
  - sentence-transformers
5
- language:
6
- - en
7
- license: apache-2.0
8
- library_name: transformers
9
- base_model:
10
- - RetroMAE
11
- model_index:
12
- - name: kpr-retromae
13
- results:
14
  ---
15
 
16
- # Knowledgeable Embedding: kpr-retromae
17
 
18
- ## Introduction
19
 
20
- **Injecting dynamically updatable entity knowledge into embeddings to enhance RAG**
21
 
22
- A key limitation of large language models (LLMs) is their inability to capture less-frequent or up-to-date entity knowledge, often leading to factual inaccuracies and hallucinations. Retrieval-augmented generation (RAG), which incorporates external knowledge through retrieval, is a common approach to mitigate this issue.
 
 
 
 
 
 
 
 
23
 
24
- Although RAG typically relies on embedding-based retrieval, the embedding models themselves are also based on language models and therefore struggle with queries involving less-frequent entities, often failing to retrieve the crucial knowledge needed to overcome this limitation.
25
 
26
- **Knowledgeable Embedding** addresses this challenge by injecting real-world entity knowledge into embeddings, making them more *knowledgeable*.
 
 
27
 
28
- **The entity knowledge is pluggable and can be dynamically updated.**
29
 
30
- For further details, refer to [our paper](https://arxiv.org/abs/2507.03922) or [GitHub repository](https://github.com/knowledgeable-embedding/knowledgeable-embedding).
 
 
 
 
 
31
 
32
- ## Model List
33
 
34
- | Model | Model Size | Base Model |
35
- | --- | --- | --- |
36
- | [knowledgeable-ai/kpr-bert-base-uncased](https://huggingface.co/knowledgeable-ai/kpr-bert-base-uncased) | 112M | [bert-base-uncased](https://huggingface.co/google-bert/bert-base-uncased) |
37
- | [knowledgeable-ai/kpr-retromae](https://huggingface.co/knowledgeable-ai/kpr-retromae) | 112M | [RetroMAE](https://huggingface.co/Shitao/RetroMAE) |
38
- | [knowledgeable-ai/kpr-bge-base-en](https://huggingface.co/knowledgeable-ai/kpr-bge-base-en) | 112M | [bge-base-en](https://huggingface.co/BAAI/bge-base-en) |
39
- | [knowledgeable-ai/kpr-bge-base-en-v1.5](https://huggingface.co/knowledgeable-ai/kpr-bge-base-en-v1.5) | 112M | [bge-base-en-v1.5](https://huggingface.co/BAAI/bge-base-en-v1.5) |
40
- | [knowledgeable-ai/kpr-bge-large-en-v1.5](https://huggingface.co/knowledgeable-ai/kpr-bge-large-en-v1.5) | 340M | [bge-large-en-v1.5](https://huggingface.co/BAAI/bge-large-en-v1.5) |
41
 
42
- For practical use, we recommend `knowledgeable-ai/kpr-bge-*`, which significantly outperforms state-of-the-art models on queries involving less-frequent entities while performing comparably on other queries, as reported in [our paper](https://arxiv.org/abs/2507.03922).
43
 
44
- Regarding the model size, we do not count the entity embeddings since they are stored in CPU memory and have a negligible impact on runtime performance. See [this page](https://github.com/knowledgeable-embedding/knowledgeable-embedding/wiki/Internals-of-Knowledgeable-Embedding) for details.
 
 
45
 
46
- ## Model Details
 
 
47
 
48
- - Model Name: kpr-retromae
49
- - Base Model: [RetroMAE](https://huggingface.co/Shitao/RetroMAE)
50
- - Maximum Sequence Length: 512
51
- - Embedding Dimension: 768
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
52
 
53
- ## Usage
 
54
 
55
- This model can be used via [Hugging Face Transformers](https://github.com/huggingface/transformers) or [Sentence Transformers](https://github.com/UKPLab/sentence-transformers):
56
 
57
- ### Hugging Face Transformers
 
58
 
59
- ```python
60
- from transformers import AutoTokenizer, AutoModel
61
- import torch
62
 
63
- MODEL_NAME_OR_PATH = "knowledgeable-ai/kpr-retromae"
64
 
65
- input_texts = [
66
- "Who founded Dominican Liberation Party?",
67
- "Who owns Mompesson House?"
68
- ]
69
 
70
- # Load model and tokenizer from the Hugging Face Hub
71
- tokenizer = AutoTokenizer.from_pretrained(MODEL_NAME_OR_PATH, trust_remote_code=True)
72
- model = AutoModel.from_pretrained(MODEL_NAME_OR_PATH, trust_remote_code=True)
73
 
74
- # Preprocess the text
75
- preprocessed_inputs = tokenizer(input_texts, return_tensors="pt", padding=True)
76
 
77
- # Compute embeddings
78
- with torch.no_grad():
79
- embeddings = model.encode(**preprocessed_inputs)
80
 
81
- print("Embeddings:", embeddings)
82
- ```
83
 
84
- ### Sentence Transformers
 
85
 
86
- ```python
87
- from sentence_transformers import SentenceTransformer
88
 
89
- MODEL_NAME_OR_PATH = "knowledgeable-ai/kpr-retromae"
 
90
 
91
- input_texts = [
92
- "Who founded Dominican Liberation Party?",
93
- "Who owns Mompesson House?"
94
- ]
95
 
96
- # Load model from the Hugging Face Hub
97
- model = SentenceTransformer(MODEL_NAME_OR_PATH, trust_remote_code=True)
 
 
 
 
 
 
98
 
99
- # Compute embeddings
100
- embeddings = model.encode(input_texts)
101
 
102
- print("Embeddings:", embeddings)
103
- ```
104
 
105
- **IMPORTANT:** This code will be supported in versions of Sentence Transformers later than v5.1.0, which have not yet been released at the time of writing. Until then, please install the library directly from GitHub:
 
106
 
107
- ```bash
108
- pip install git+https://github.com/UKPLab/sentence-transformers.git
109
- ```
110
 
111
- ## License
 
112
 
113
- This model is licensed under the Apache License, Version 2.0.
 
114
 
115
- ## Citation
 
116
 
117
- If you use this model in your research, please cite the following paper:
118
- [Dynamic Injection of Entity Knowledge into Dense Retrievers](https://arxiv.org/abs/2507.03922)
119
-
120
- ```bibtex
121
- @article{yamada2025kpr,
122
- title={Dynamic Injection of Entity Knowledge into Dense Retrievers},
123
- author={Ikuya Yamada and Ryokan Ri and Takeshi Kojima and Yusuke Iwasawa and Yutaka Matsuo},
124
- journal={arXiv preprint arXiv:2507.03922},
125
- year={2025}
126
- }
127
- ```
 
1
  ---
2
  tags:
 
3
  - sentence-transformers
4
+ - sentence-similarity
5
+ - feature-extraction
6
+ - dense
7
+ pipeline_tag: sentence-similarity
8
+ library_name: sentence-transformers
 
 
 
 
9
  ---
10
 
11
+ # SentenceTransformer
12
 
13
+ This is a [sentence-transformers](https://www.SBERT.net) model trained. It maps sentences & paragraphs to a 768-dimensional dense vector space and can be used for semantic textual similarity, semantic search, paraphrase mining, text classification, clustering, and more.
14
 
15
+ ## Model Details
16
 
17
+ ### Model Description
18
+ - **Model Type:** Sentence Transformer
19
+ <!-- - **Base model:** [Unknown](https://huggingface.co/unknown) -->
20
+ - **Maximum Sequence Length:** 512 tokens
21
+ - **Output Dimensionality:** 768 dimensions
22
+ - **Similarity Function:** Dot Product
23
+ <!-- - **Training Dataset:** Unknown -->
24
+ <!-- - **Language:** Unknown -->
25
+ <!-- - **License:** Unknown -->
26
 
27
+ ### Model Sources
28
 
29
+ - **Documentation:** [Sentence Transformers Documentation](https://sbert.net)
30
+ - **Repository:** [Sentence Transformers on GitHub](https://github.com/UKPLab/sentence-transformers)
31
+ - **Hugging Face:** [Sentence Transformers on Hugging Face](https://huggingface.co/models?library=sentence-transformers)
32
 
33
+ ### Full Model Architecture
34
 
35
+ ```
36
+ SentenceTransformer(
37
+ (0): Transformer({'max_seq_length': 512, 'do_lower_case': False, 'architecture': 'KPRModelForBert'})
38
+ (1): Pooling({'word_embedding_dimension': 768, 'pooling_mode_cls_token': True, 'pooling_mode_mean_tokens': False, 'pooling_mode_max_tokens': False, 'pooling_mode_mean_sqrt_len_tokens': False, 'pooling_mode_weightedmean_tokens': False, 'pooling_mode_lasttoken': False, 'include_prompt': True})
39
+ )
40
+ ```
41
 
42
+ ## Usage
43
 
44
+ ### Direct Usage (Sentence Transformers)
 
 
 
 
 
 
45
 
46
+ First install the Sentence Transformers library:
47
 
48
+ ```bash
49
+ pip install -U sentence-transformers
50
+ ```
51
 
52
+ Then you can load this model and run inference.
53
+ ```python
54
+ from sentence_transformers import SentenceTransformer
55
 
56
+ # Download from the 🤗 Hub
57
+ model = SentenceTransformer("knowledgeable-ai/kpr-retromae")
58
+ # Run inference
59
+ sentences = [
60
+ 'The weather is lovely today.',
61
+ "It's so sunny outside!",
62
+ 'He drove to the stadium.',
63
+ ]
64
+ embeddings = model.encode(sentences)
65
+ print(embeddings.shape)
66
+ # [3, 768]
67
+
68
+ # Get the similarity scores for the embeddings
69
+ similarities = model.similarity(embeddings, embeddings)
70
+ print(similarities)
71
+ # tensor([[746.8777, 706.3154, 683.6250],
72
+ # [706.3154, 747.0701, 683.0114],
73
+ # [683.6249, 683.0115, 746.7446]])
74
+ ```
75
 
76
+ <!--
77
+ ### Direct Usage (Transformers)
78
 
79
+ <details><summary>Click to see the direct usage in Transformers</summary>
80
 
81
+ </details>
82
+ -->
83
 
84
+ <!--
85
+ ### Downstream Usage (Sentence Transformers)
 
86
 
87
+ You can finetune this model on your own dataset.
88
 
89
+ <details><summary>Click to expand</summary>
 
 
 
90
 
91
+ </details>
92
+ -->
 
93
 
94
+ <!--
95
+ ### Out-of-Scope Use
96
 
97
+ *List how the model may foreseeably be misused and address what users ought not to do with the model.*
98
+ -->
 
99
 
100
+ <!--
101
+ ## Bias, Risks and Limitations
102
 
103
+ *What are the known or foreseeable issues stemming from this model? You could also flag here known failure cases or weaknesses of the model.*
104
+ -->
105
 
106
+ <!--
107
+ ### Recommendations
108
 
109
+ *What are recommendations with respect to the foreseeable issues? For example, filtering explicit content.*
110
+ -->
111
 
112
+ ## Training Details
 
 
 
113
 
114
+ ### Framework Versions
115
+ - Python: 3.10.14
116
+ - Sentence Transformers: 5.2.0.dev0
117
+ - Transformers: 4.55.4
118
+ - PyTorch: 2.4.0+cu121
119
+ - Accelerate: 0.34.2
120
+ - Datasets: 2.16.1
121
+ - Tokenizers: 0.21.4
122
 
123
+ ## Citation
 
124
 
125
+ ### BibTeX
 
126
 
127
+ <!--
128
+ ## Glossary
129
 
130
+ *Clearly define terms in order to be accessible across audiences.*
131
+ -->
 
132
 
133
+ <!--
134
+ ## Model Card Authors
135
 
136
+ *Lists the people who create the model card, providing recognition and accountability for the detailed work that goes into its construction.*
137
+ -->
138
 
139
+ <!--
140
+ ## Model Card Contact
141
 
142
+ *Provides a way for people who have updates to the Model Card, suggestions, or questions, to contact the Model Card authors.*
143
+ -->
 
 
 
 
 
 
 
 
 
entity_embeddings.npy CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:bd83489d63bb45008620d90ba274331981546081491cfdd94be5afea9cb1cfea
3
  size 11126965376
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:42f9795063bafacae304a2f79b362e44b4b9d5b4dd93b166528cee5129be8f63
3
  size 11126965376