File size: 9,668 Bytes
c80bc5b | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 | ---
language: ar
license: apache-2.0
tags:
- arabic
- ner
- nested-ner
- wojood
- konooz
- knowledgegrapheval-2026
- arabicnlp-2026
- adaptner
- experiments
- reproducibility
---
# NAMAA β KnowledgeGraphEval 2026 AdaptNER: Development-Phase Experiments
**KnowledgeGraphEval 2026 Β· Subtask 1 (AdaptNER) Β· ArabicNLP 2026**
This is the **development-phase** experiment record of team NAMAA. It holds the training and
inference notebooks, the per-run metrics and configurations, the Konooz development-set
predictions and submissions for every candidate system, the evaluation scripts, and the
software environment.
> **How this relates to the paper.** These experiments come before the submitted systems
> described in the camera-ready paper. The submitted AdaptNER system **ranked 1st (test
> micro-F1 75.96)**. It is an exact-span majority vote over ARBERTv2 + CRF, XLM-R-large + CRF and
> ARBERTv2 + GlobalPointer. The submitted RE system **ranked 2nd (93.48)**. It is a majority
> vote over LoRA-fine-tuned Qwen3-8B, Qwen3.5-4B and Llama-3.1-8B-Instruct. Full test tables
> are in [Β§2](#2-official-test-results-camera-ready-paper).
The fine-tuned weights are in their own model repositories:
| Checkpoint | Formulation | Wojood val F1 | Wojood test F1 | Konooz dev F1 |
|---|---|---:|---:|---:|
| [`KnowledgeGraphEval-2026-AdaptNER-AraBERTv02-Nested`](https://huggingface.co/NAMAA-Space/KnowledgeGraphEval-2026-AdaptNER-AraBERTv02-Nested) | nested, multi-label | 0.9245 | **0.9284** | **0.73** |
| [`KnowledgeGraphEval-2026-AdaptNER-MARBERTv2-Nested`](https://huggingface.co/NAMAA-Space/KnowledgeGraphEval-2026-AdaptNER-MARBERTv2-Nested) | nested, multi-label | 0.9071 | 0.9092 | 0.67 |
| [`KnowledgeGraphEval-2026-AdaptNER-AraBERTv02-Flat`](https://huggingface.co/NAMAA-Space/KnowledgeGraphEval-2026-AdaptNER-AraBERTv02-Flat) | flat, single-label | 0.9003 | not recorded | 0.69 |
All scores are entity-level strict micro-F1.
---
## Repository layout
```
βββ experiments/ per-run metrics + full config (repro_bundle.json)
β βββ EXP-001_AraBERTv02_Flat/
β βββ EXP-001_AraBERTv02_Nested/
β βββ EXP-002_MARBERTv2_Flat/ weights not released; test predictions kept here
β βββ EXP-002_MARBERTv2_Nested/
βββ notebooks/
β βββ training/ Wojood fine-tuning, one notebook per run
β βββ konooz_dev_inference/ load weights from the Hub, predict Konooz dev, write submission
β βββ blind_test_inference/ blind-test inference for the ARBERTv2 (unweighted) system
β βββ eda/ Wojood + Konooz exploratory analysis
βββ konooz_dev_predictions/
β βββ namaa_wojood_runs/ EXP-001/002 predictions + submission zips
β βββ backbone_sweep/ the nested backbone comparison (paper Table 4)
β βββ ensembles_and_llm/ top-3 / top-4 voting ensembles, LLM run
βββ evaluation/ per-entity-type and per-domain scorers + results
βββ scripts/ ensemble voting, Konooz EDA, hosted-LLM baseline
βββ environment/pip_freeze.txt
```
---
## 1. Wojood experiments (in-domain)
Same recipe for all four runs, taken from `repro_bundle.json`: 8 epochs, learning rate 3e-5,
batch 32, warmup 0.1, weight decay 0.01, AdamW, bf16, max length 256, seed 42, early-stopping
patience 3. The nested runs use a 42-way sigmoid head (21 types Γ {B, I}) with a 0.5 threshold.
The flat runs use a softmax BIO head.
| Run | Encoder | Formulation | Val P | Val R | **Val F1** | Test P | Test R | **Test F1** |
|---|---|---|---:|---:|---:|---:|---:|---:|
| EXP-001 | AraBERTv02 | flat | 0.8908 | 0.9101 | 0.9003 | β | β | β |
| EXP-001 | AraBERTv02 | **nested** | 0.9178 | 0.9313 | **0.9245** | 0.9208 | 0.9362 | **0.9284** |
| EXP-002 | MARBERTv2 | flat | 0.8876 | 0.9087 | 0.8980 | 0.8979 | 0.9171 | 0.9074 |
| EXP-002 | MARBERTv2 | nested | 0.9042 | 0.9100 | 0.9071 | 0.9058 | 0.9127 | 0.9092 |
The EXP-001 flat run did not log test-split metrics. Flat and nested scores are measured on
different variants of Wojood, so compare them as indicative only.
**Per-entity-type macro-F1 on the Wojood test split** (`evaluation/pertype_results.json`):
| | AraBERTv02 nested | MARBERTv2 nested |
|---|---:|---:|
| micro-F1 | 0.9284 | 0.9092 |
| **macro-F1 (21 types)** | **0.8411** | **0.5877** |
MARBERTv2 nested makes no predictions at all for `PERCENT`, `PRODUCT`, `UNIT` and `QUANTITY`,
so their F1 is 0.0000. These types are 0.6% of mentions, which is why a 2-point micro-F1 gap
becomes a 25-point macro-F1 gap. AraBERTv02 scores higher on all 21 types and on all 13
Wojood sub-corpora. `evaluation/compute_pertype.py` and `compute_perdomain.py` regenerate these
numbers from each model's `test_predictions_conll.txt`. The recomputed precision matches the
original scorer exactly, and micro-F1 matches it to within 0.001.
---
## 2. Official test results (camera-ready paper)
Entity-level micro-averages under exact span-and-type matching, in percent.
**Subtask 1 β AdaptNER** (Konooz test). **Ranked 1st.**
| System | Recall | Precision | Micro-F1 |
|---|---:|---:|---:|
| Shared-task baseline | 63.87 | 62.30 | 63.00 |
| ARBERTv2 + CRF | 70.08 | 80.69 | 75.01 |
| XLM-R-large + CRF | 71.12 | 79.41 | 75.04 |
| ARBERTv2 + GlobalPointer | 66.17 | 84.02 | 74.03 |
| **Exact-span ensemble** | 69.44 | 83.83 | **75.96** |
**Subtask 2 β Relation Extraction** (WojoodRelations). **Ranked 2nd.**
| System | Recall | Precision | Micro-F1 |
|---|---:|---:|---:|
| Shared-task baseline | β | β | 93.09 |
| Qwen3-8B (LoRA) | 89.35 | 95.59 | 92.36 |
| Qwen3.5-4B (LoRA) | 89.58 | 96.20 | 92.77 |
| Llama-3.1-8B-Instruct (LoRA) | 89.03 | 96.21 | 92.48 |
| **Majority-vote ensemble** | 90.38 | 96.80 | **93.48** |
The checkpoints for these submitted systems are not in this repository.
## 3. Development-phase Konooz leaderboard
These are the team's scores on the Konooz **development** set (100 sentences) during
development. They are not reported in the camera-ready paper.
| System | Konooz dev F1 | Predictions in this repo |
|---|---:|---|
| Ensemble (top-3, weighted vote) | **0.74** | `ensembles_and_llm/submission_ensemble_top3.zip` |
| ARBERTv2 (unweighted) | **0.74** | `backbone_sweep/arbertv2-unweighted_*` |
| AraBERTv02, nested (EXP-001) | 0.73 | `namaa_wojood_runs/exp001_nested_konooz/` |
| ARBERTv2 (class-weighted) | 0.72 | `backbone_sweep/arbertv2-weighted_*` |
| XLM-R large | 0.71 | `backbone_sweep/xlm-roberta-large_*` |
| AraBERTv02, flat (EXP-001) | 0.69 | `namaa_wojood_runs/exp001_flat_konooz/` |
| MARBERT | 0.68 | `backbone_sweep/marbert_*` |
| mDeBERTa-v3 base | 0.67 | `backbone_sweep/mdeberta-v3-base_*` |
| MARBERTv2 (sweep run, not the released EXP-002 checkpoint) | 0.67 | `backbone_sweep/marbertv2_*` |
| ARBERTv2 + Konooz-MLM (last-3) | 0.65 | `backbone_sweep/arbertv2-konooz-adapted-last3_*` |
| AraBERTv02 baseline β | 0.61 | β |
| Qwen3-235B (zero-shot) | 0.26 | β |
β Organiser reference baseline. On the development set, the top-3 ensemble matches the best single system on
micro-F1 but raises macro-F1 from 0.49 to 0.55 (P = 0.75, R = 0.74).
`backbone_sweep/` also contains predictions for CAMeLBERT-mix and ARBERTv2 + Konooz-MLM (full).
These two runs were scored only on Wojood validation (paper Table 4) and were not submitted
to the Konooz leaderboard.
**Submission format:** one token per line, followed by 21 space-separated IOB2 columns in this
order:
```
CARDINAL CURR DATE EVENT FAC GPE LANGUAGE LAW LOC MONEY NORP
OCC ORDINAL ORG PERCENT PERS PRODUCT QUANTITY TIME UNIT WEBSITE
```
---
## 4. Reproducing
1. Get Wojood 1.1 and the Konooz development and blind-test data from
[SinaLab, Birzeit University](https://sina.birzeit.edu/knowledgegraph_sharedtask2026/).
They are not redistributed here.
2. Training: run `notebooks/training/<run>.ipynb`. They were written for Google Colab (A100 or T4).
Each run's exact configuration and library versions are in `experiments/<run>/repro_bundle.json`.
3. Konooz inference: `notebooks/konooz_dev_inference/` loads the released checkpoints from the
Hub by name.
4. Ensemble: `scripts/ensemble_predictions.py` does a weighted vote over per-system prediction files.
The notebooks read the Hub token from a Colab Secret or the `HF_TOKEN` environment variable.
No credentials are stored in this repository.
---
## Citation
```bibtex
@inproceedings{namaa-knowledgegrapheval-2026,
title = {{NAMAA} at {KnowledgeGraphEval} 2026: Entity-Span Voting and Constrained
{LLM} Ensembles for {A}rabic Knowledge Graph Construction},
author = {Fathallah, Mahmoud and Zaytoon, Mohamed and Emad Eldin, Fatimah and
A.azim, Mona and Nacar, Omer},
booktitle = {Proceedings of the Fourth Arabic Natural Language Processing Conference
(ArabicNLP 2026)},
year = {2026},
address = {Budapest, Hungary},
publisher = {Association for Computational Linguistics}
}
```
The corpus citations (Wojood, Konooz) and backbone citations are in the model cards linked
above.
## License
Apache-2.0 covers the code, notebooks and predictions in this repository. Wojood and Konooz
remain under SinaLab's original terms. Prediction files contain corpus tokens, so follow those
terms if you redistribute them.
|