LucasLicht commited on
Commit
fd773be
·
verified ·
1 Parent(s): 96fa206

Update README.md

Browse files
Files changed (1) hide show
  1. README.md +153 -133
README.md CHANGED
@@ -1,199 +1,219 @@
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
  library_name: transformers
3
+ language:
4
+ - en
5
+ tags:
6
+ - bert
7
+ - domain-adaptation
8
+ - religious-text
9
+ - biblical-corpus
10
+ - masked-language-modeling
11
+ - nlp
12
+ - text-classification
13
+ - question-answering
14
+ - sentence-similarity
15
+ license: apache-2.0
16
+ base_model: bert-base-uncased
17
+ pipeline_tag: fill-mask
18
  ---
19
 
20
+ # ReligionBERT
21
 
22
+ ReligionBERT is a domain-adapted BERT model produced by continued masked language modelling (MLM) pre-training on the English Bible corpus. Starting from `bert-base-uncased`, the model was trained for 30,000 steps on 62,197 verses drawn from the King James Version and World English Bible translations. It is designed for downstream NLP tasks involving religious and biblical text, where general-purpose BERT models underperform due to archaic language, theological vocabulary, and long-range intertextual dependencies.
23
 
24
+ A companion multilingual model, [MultiReligionBERT](https://huggingface.co/LucasLicht/multi-religion-bert), covers 12 languages and supports cross-lingual zero-shot transfer for African language religious NLP.
25
 
26
+ ---
27
 
28
  ## Model Details
29
 
30
+ | Field | Details |
31
+ |---|---|
32
+ | **Model type** | BERT (encoder-only, masked language model) |
33
+ | **Base model** | `bert-base-uncased` (109M parameters) |
34
+ | **Pre-training objective** | Continued MLM (15% token masking) |
35
+ | **Pre-training corpus** | English Bible (KJV + WEB), 62,197 verses |
36
+ | **Training steps** | 30,000 |
37
+ | **Final validation loss** | 1.164 |
38
+ | **Language** | English |
39
+ | **License** | Apache 2.0 |
40
+ | **Developed by** | Lucas Licht |
41
+ | **Institution** | Koforidua Technical University, Ghana |
 
 
 
 
 
42
 
43
+ ---
 
 
 
 
 
 
 
 
44
 
45
+ ## Intended Use
46
 
47
+ ReligionBERT is intended for NLP tasks on religious and biblical text, including:
48
 
49
+ - **Semantic similarity** between Bible verses or passages
50
+ - **Book and section classification** of biblical text
51
+ - **Extractive question answering** over religious passages
52
+ - **Feature extraction** for downstream religious NLP pipelines
53
+ - **Masked language modelling** for biblical text generation and completion
54
 
55
+ It is not recommended for general-domain NLP tasks where `bert-base-uncased` is likely a stronger baseline.
56
 
57
+ ---
58
 
59
+ ## How to Get Started
60
 
61
+ ```python
62
+ from transformers import AutoTokenizer, AutoModelForMaskedLM
63
+ import torch
64
 
65
+ tokenizer = AutoTokenizer.from_pretrained("LucasLicht/religion-bert")
66
+ model = AutoModelForMaskedLM.from_pretrained("LucasLicht/religion-bert")
67
 
68
+ text = "For God so loved the [MASK] that he gave his only begotten Son."
69
+ inputs = tokenizer(text, return_tensors="pt")
70
 
71
+ with torch.no_grad():
72
+ outputs = model(**inputs)
73
 
74
+ masked_index = (inputs["input_ids"] == tokenizer.mask_token_id).nonzero(as_tuple=True)[1]
75
+ logits = outputs.logits[0, masked_index]
76
+ predicted_token = tokenizer.decode(torch.argmax(logits, dim=-1))
77
+ print(predicted_token) # "world"
78
+ ```
79
 
80
+ For sentence embeddings or downstream fine-tuning:
81
 
82
+ ```python
83
+ from transformers import AutoTokenizer, AutoModel
84
+ import torch
85
 
86
+ tokenizer = AutoTokenizer.from_pretrained("LucasLicht/religion-bert")
87
+ model = AutoModel.from_pretrained("LucasLicht/religion-bert")
88
 
89
+ inputs = tokenizer("The Lord is my shepherd; I shall not want.", return_tensors="pt")
90
+ with torch.no_grad():
91
+ outputs = model(**inputs)
92
 
93
+ # Use CLS token as sentence representation
94
+ cls_embedding = outputs.last_hidden_state[:, 0, :]
95
+ ```
96
 
97
+ ---
98
 
99
  ## Training Details
100
 
101
+ ### Pre-Training Corpus
102
 
103
+ The corpus was sourced from the [christos-c/bible-corpus](https://github.com/christos-c/bible-corpus) repository. All 66 books of the King James Version and World English Bible translations were extracted via XML parsing, yielding 62,197 verses.
 
 
104
 
105
  ### Training Procedure
106
 
107
+ | Hyperparameter | Value |
108
+ |---|---|
109
+ | Base model | `bert-base-uncased` |
110
+ | Training steps | 30,000 |
111
+ | Effective batch size | 32 (16 per device, 2 gradient accumulation steps) |
112
+ | Learning rate | 3e-5 (linear warmup, 500 steps) |
113
+ | Weight decay | 0.01 (AdamW) |
114
+ | MLM masking probability | 15% |
115
+ | Max sequence length | 128 tokens |
116
+ | Precision | FP16 mixed precision |
117
+ | Hardware | NVIDIA Tesla T4 / A100 (Google Colab) |
118
+ | Framework | HuggingFace Transformers 5.0.0 |
119
+
120
+ Training was conducted across multiple sessions with checkpoint recovery. A `PermanentDeleteCallback` retained only the two most recent checkpoints to prevent storage exhaustion. All metrics were logged to Weights and Biases.
121
+
122
+ ### Training Loss Curve
123
+
124
+ | Step | Validation Loss |
125
+ |---|---|
126
+ | 500 | 1.806 |
127
+ | 5,000 | 1.451 |
128
+ | 10,000 | 1.339 |
129
+ | 15,000 | 1.272 |
130
+ | 20,000 | 1.204 |
131
+ | 25,000 | 1.156 |
132
+ | 28,500 | **1.129** (best) |
133
+ | 30,000 | 1.164 (final) |
134
 
135
+ ---
 
 
 
 
136
 
137
  ## Evaluation
138
 
139
+ ### Perplexity on Held-out Religious Text
 
 
 
 
140
 
141
+ Perplexity was computed on 500 held-out English Bible verses not seen during pre-training.
142
 
143
+ | Model | Perplexity (lower is better) |
144
+ |---|---|
145
+ | `bert-base-uncased` | 15.48 |
146
+ | **ReligionBERT** | **3.73** |
147
 
148
+ ReligionBERT achieves a **75.9% reduction** in perplexity, confirming successful domain alignment.
149
 
150
+ ---
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
151
 
152
+ ### Downstream Task Results
153
 
154
+ Three fine-tuning tasks were evaluated using three automatically constructed datasets. All results are on held-out test sets. ReligionBERT is compared to its generic baseline (`bert-base-uncased`).
155
 
156
+ #### Semantic Similarity (21,994 verse pairs)
157
 
158
+ | Model | Pearson | Spearman |
159
+ |---|---|---|
160
+ | bert-base-uncased | 0.9569 | 0.6556 |
161
+ | **ReligionBERT** | **0.9623** | **0.6591** |
162
 
163
+ #### Book Classification (7,726 samples, 66 classes)
164
 
165
+ | Model | Accuracy | Macro F1 |
166
+ |---|---|---|
167
+ | bert-base-uncased | 0.4075 | 0.3144 |
168
+ | **ReligionBERT** | **0.4347** | **0.3381** |
169
 
170
+ #### Extractive Question Answering (1,199 LLM-assisted examples)
171
 
172
+ | Model | Exact Match (%) | Token F1 (%) |
173
+ |---|---|---|
174
+ | bert-base-uncased | 32.50 | 58.91 |
175
+ | **ReligionBERT** | **40.00** | **60.48** |
176
 
177
+ ReligionBERT outperforms `bert-base-uncased` on **5 of 6 metrics**, with the strongest gain of **+7.50 Exact Match points** on extractive QA.
178
 
179
+ ---
180
 
181
+ ## Datasets
182
 
183
+ The three fine-tuning datasets used in this study are described below. They are derived automatically from the Bible corpus without manual annotation (except for the QA human verification step).
184
 
185
+ | Dataset | Task | Size | Notes |
186
+ |---|---|---|---|
187
+ | Verse Similarity | Semantic similarity (STS) | 21,994 pairs | Cross-translation and intra-corpus pairs; balanced subset 6,392 |
188
+ | Bible Book Classification | Text classification | 7,726 samples | 66 classes (all Bible books); 80/10/10 split |
189
+ | Bible QA | Extractive QA | 1,199 examples | LLM-assisted via Llama 3.3 70B; SQuAD v2 format; 100% human-verified quality |
190
 
191
+ ---
192
 
193
+ ## Limitations
194
 
195
+ - Pre-training is limited to the English Bible (KJV and WEB translations). Performance on other religious traditions (Quran, Vedas, Buddhist sutras) has not been evaluated.
196
+ - The model inherits biases present in `bert-base-uncased` and may reflect theological perspectives embedded in the King James Version.
197
+ - The QA fine-tuning dataset is relatively small (959 training examples); downstream QA performance may benefit from larger domain-specific QA datasets.
198
+ - The model is not intended for general-domain tasks.
199
 
200
+ ---
201
 
202
+ ## Citation
203
 
204
+ If you use this model, please cite:
205
 
206
+ ```bibtex
207
+ @misc{licht2025religionbert,
208
+ title = {ReligionBERT: Domain-Adaptive Pre-Training of BERT on Biblical Corpora for Religious NLP Tasks},
209
+ author = {Licht, Lucas},
210
+ year = {2025},
211
+ note = {Koforidua Technical University, Ghana. Model available at https://huggingface.co/LucasLicht/religion-bert}
212
+ }
213
+ ```
214
 
215
+ ---
216
 
217
+ ## Contact
218
 
219
+ For questions or collaboration, reach out via HuggingFace or GitHub: [@Licht005](https://github.com/Licht005)