This repository accompanies two related papers:
@inproceedings{bian-etal-2026-linking,
title = {Linking Rationale to Decision on Internet Standards: A Retrieval-Based Approach Using Synthetic Data},
author = {Bian, Jie and Welzl, Michael},
booktitle = {Proceedings of the Fifteenth Language Resources and Evaluation Conference (LREC 2026)},
year = {2026},
pages = {7149--7162},
doi = {10.63317/3szh4omfcsxb}
}
@inproceedings{bian2026beyond,
title={Beyond the Rules: Understanding the Design Logic of Internet Standards},
author={Bian, Jie and Welzl, Michael and Arefyev, Nikolay},
booktitle={Companion Proceedings of the ACM Web Conference 2026},
year={2026},
pages={1025--1032},
doi={10.1145/3774905.3795082}
}
This repository includes the scripts, models, and resources used throughout our studies.
The repository is organized into two main components:
ir/)See “Linking Rationale to Decision on Internet Standards: A Retrieval-Based Approach Using Synthetic Data.” Implements retrieval-based approaches to connect rationales with technical decisions:
These tasks leverage the IETF mail archives as a discussion base and RFC/Internet-Draft repositories as decision sources.
gen/)See “Beyond the Rules: Understanding the Design Logic of Internet Standards.”
Implements retrieval-based approaches to connect rationales with technical decisions:
This implementation adapts the MTEB benchmark framework (https://github.com/embeddings-benchmark/mteb), streamlined for retrieval and reranking tasks. Our evaluation scripts are compatible with any dataset following MTEB format, and we provide a generator that produces context-aware responses from retrieved documents.
For most users (local setup):
conda create -n mteb-r2gen python=3.11 -y
conda activate mteb-r2gen
pip install -e .
If you are using an HPC environment with EasyBuild modules:
module load Miniconda3/22.11.1-1
source ${EBROOTMINICONDA3}/etc/profile.d/conda.sh
conda deactivate &>/dev/null
echo "Conda environments: $(conda info --envs)"
echo "EBROOTMINICONDA3: ${EBROOTMINICONDA3}"
conda create -p path/to/conda_env python=3.11
conda activate path/to/conda_env
pip install -e .
Other packages need to be installed for RAG. Please check the package list in requirements.txt.
pip install langchain-text-splitters==1.1.0
pip install llama-index-core==0.14.8
pip install ragas==0.4.2
The synthetic training data is released:
RFC‑Align
https://huggingface.co/datasets/jiebi/RFCAlign
python download_RFCAlign.py can help you download the dataset
The models trained on synthetic data are (V: verbose; N: non-verbose; D: decision; R: rationale):
RFC‑DRAlign‑QV
https://huggingface.co/jiebi/RFC-DRAlign-QV
RFC‑DRAlign‑QL
https://huggingface.co/jiebi/RFC-DRAlign-QL
RFC‑DRAlign‑LV
https://huggingface.co/jiebi/RFC-DRAlign-LV
RFC‑DRAlign‑LN
https://huggingface.co/jiebi/RFC-DRAlign-LN
We strongly recommend that you download the base model, such as mistralai/Mistral-7B-v0.1, and place it in the base_models folder; similarly, download the peft model and place it in the peft_models folder.
https://github.com/cheop-byeon/FlagEmbedding
https://github.com/cheop-byeon/synthetic-data-kit
Run a minimal end-to-end workflow:
# 1) Install
conda create -n mteb-r2gen python=3.11 -y
conda activate mteb-r2gen
pip install -e .
# 2) Download datasets
python download_CodeConvo.py
python download_RFCAlign.py
# 3) Run evaluation (HPC)
sbatch evaluation.sh
If you are not on an HPC cluster, open evaluation.sh and run the corresponding Python command directly in your shell.
3.11 (used in the installation examples).RFCAlign_IR_mteb.py.ir/<name>/<direction>/<split> (as used in evaluation.sh and bm25.sh).evaluation.sh): 1x A100 GPU, 32G mem-per-cpu, 1 CPU task, 1 hour wall time.bm25.sh) runs without GPU directives.results/stage1/<split>/<direction>/ with per-model prediction folders (save_predictions=True).overwrite_results=True).RFCAlign_IR_mteb.py, evaluation.sh, or bm25.sh.To run evaluations on retrieval tasks:
# See evaluation.sh for comprehensive evaluation setup with all models and datasets
# The script includes all available fine-tuned models (RFC-DRAlign, CodeConvo-based)
sbatch evaluation.sh
# See bm25.sh for BM25-based retrieval evaluation
sbatch bm25.sh
Note: Before running evaluations, download the datasets using:
python download_CodeConvo.py # Download CodeConvo dataset
python download_RFCAlign.py # Download RFC-Align dataset
See DATASET_PATH_USAGE.md for detailed dataset download and path resolution instructions.
This repository is released under the Apache License 2.0. See LICENSE.
Note: Some datasets, base models, and third-party assets referenced by this repository may have their own licenses and usage terms. Please check the corresponding source pages before reuse.
Contributions are welcome.
For questions about code, datasets, or models, please open a GitHub issue in this repository.
We acknowledge the MTEB benchmark framework developed by Muennighoff et al. (2022):
@article{muennighoff2022mteb,
author = {Muennighoff, Niklas and Tazi, Nouamane and Magne, Loïc and Reimers, Nils},
title = {MTEB: Massive Text Embedding Benchmark},
publisher = {arXiv},
journal={arXiv preprint arXiv:2210.07316},
year = {2022},
url = {https://arxiv.org/abs/2210.07316},
doi = {10.48550/ARXIV.2210.07316},
}
1 commits
Python
99.4%
This repository accompanies two related papers:
@inproceedings{bian-etal-2026-linking,
title = {Linking Rationale to Decision on Internet Standards: A Retrieval-Based Approach Using Synthetic Data},
author = {Bian, Jie and Welzl, Michael},
booktitle = {Proceedings of the Fifteenth Language Resources and Evaluation Conference (LREC 2026)},
year = {2026},
pages = {7149--7162},
doi = {10.63317/3szh4omfcsxb}
}
@inproceedings{bian2026beyond,
title={Beyond the Rules: Understanding the Design Logic of Internet Standards},
author={Bian, Jie and Welzl, Michael and Arefyev, Nikolay},
booktitle={Companion Proceedings of the ACM Web Conference 2026},
year={2026},
pages={1025--1032},
doi={10.1145/3774905.3795082}
}
This repository includes the scripts, models, and resources used throughout our studies.
The repository is organized into two main components:
ir/)See “Linking Rationale to Decision on Internet Standards: A Retrieval-Based Approach Using Synthetic Data.” Implements retrieval-based approaches to connect rationales with technical decisions:
These tasks leverage the IETF mail archives as a discussion base and RFC/Internet-Draft repositories as decision sources.
gen/)See “Beyond the Rules: Understanding the Design Logic of Internet Standards.”
Implements retrieval-based approaches to connect rationales with technical decisions:
This implementation adapts the MTEB benchmark framework (https://github.com/embeddings-benchmark/mteb), streamlined for retrieval and reranking tasks. Our evaluation scripts are compatible with any dataset following MTEB format, and we provide a generator that produces context-aware responses from retrieved documents.
For most users (local setup):
conda create -n mteb-r2gen python=3.11 -y
conda activate mteb-r2gen
pip install -e .
If you are using an HPC environment with EasyBuild modules:
module load Miniconda3/22.11.1-1
source ${EBROOTMINICONDA3}/etc/profile.d/conda.sh
conda deactivate &>/dev/null
echo "Conda environments: $(conda info --envs)"
echo "EBROOTMINICONDA3: ${EBROOTMINICONDA3}"
conda create -p path/to/conda_env python=3.11
conda activate path/to/conda_env
pip install -e .
Other packages need to be installed for RAG. Please check the package list in requirements.txt.
pip install langchain-text-splitters==1.1.0
pip install llama-index-core==0.14.8
pip install ragas==0.4.2
The synthetic training data is released:
RFC‑Align
https://huggingface.co/datasets/jiebi/RFCAlign
python download_RFCAlign.py can help you download the dataset
The models trained on synthetic data are (V: verbose; N: non-verbose; D: decision; R: rationale):
RFC‑DRAlign‑QV
https://huggingface.co/jiebi/RFC-DRAlign-QV
RFC‑DRAlign‑QL
https://huggingface.co/jiebi/RFC-DRAlign-QL
RFC‑DRAlign‑LV
https://huggingface.co/jiebi/RFC-DRAlign-LV
RFC‑DRAlign‑LN
https://huggingface.co/jiebi/RFC-DRAlign-LN
We strongly recommend that you download the base model, such as mistralai/Mistral-7B-v0.1, and place it in the base_models folder; similarly, download the peft model and place it in the peft_models folder.
https://github.com/cheop-byeon/FlagEmbedding
https://github.com/cheop-byeon/synthetic-data-kit
Run a minimal end-to-end workflow:
# 1) Install
conda create -n mteb-r2gen python=3.11 -y
conda activate mteb-r2gen
pip install -e .
# 2) Download datasets
python download_CodeConvo.py
python download_RFCAlign.py
# 3) Run evaluation (HPC)
sbatch evaluation.sh
If you are not on an HPC cluster, open evaluation.sh and run the corresponding Python command directly in your shell.
3.11 (used in the installation examples).RFCAlign_IR_mteb.py.ir/<name>/<direction>/<split> (as used in evaluation.sh and bm25.sh).evaluation.sh): 1x A100 GPU, 32G mem-per-cpu, 1 CPU task, 1 hour wall time.bm25.sh) runs without GPU directives.results/stage1/<split>/<direction>/ with per-model prediction folders (save_predictions=True).overwrite_results=True).RFCAlign_IR_mteb.py, evaluation.sh, or bm25.sh.To run evaluations on retrieval tasks:
# See evaluation.sh for comprehensive evaluation setup with all models and datasets
# The script includes all available fine-tuned models (RFC-DRAlign, CodeConvo-based)
sbatch evaluation.sh
# See bm25.sh for BM25-based retrieval evaluation
sbatch bm25.sh
Note: Before running evaluations, download the datasets using:
python download_CodeConvo.py # Download CodeConvo dataset
python download_RFCAlign.py # Download RFC-Align dataset
See DATASET_PATH_USAGE.md for detailed dataset download and path resolution instructions.
This repository is released under the Apache License 2.0. See LICENSE.
Note: Some datasets, base models, and third-party assets referenced by this repository may have their own licenses and usage terms. Please check the corresponding source pages before reuse.
Contributions are welcome.
For questions about code, datasets, or models, please open a GitHub issue in this repository.
We acknowledge the MTEB benchmark framework developed by Muennighoff et al. (2022):
@article{muennighoff2022mteb,
author = {Muennighoff, Niklas and Tazi, Nouamane and Magne, Loïc and Reimers, Nils},
title = {MTEB: Massive Text Embedding Benchmark},
publisher = {arXiv},
journal={arXiv preprint arXiv:2210.07316},
year = {2022},
url = {https://arxiv.org/abs/2210.07316},
doi = {10.48550/ARXIV.2210.07316},
}
1 commits
Python
99.4%