larc-iu/dmrst-xlm-roberta-base-pcc-2.2

Model

larc-iu/dmrst-xlm-roberta-base-pcc-2.2

0

5 commits

2 linked in READMEs

updated Oct 11, 2026

See the code

README

Dipo logo

larc-iu/dmrst-xlm-roberta-base-pcc-2.2

A pretrained DMRST parser trained with Dipo.

This model uses xlm-roberta-base as its underlying encoder.

Data

Potsdam Commentary Corpus 2.2 (German). German newspaper commentaries annotated in RST, with the DISRPT 2025 train/dev/test split. This model was trained on untokenized EDU text aligned from the corpus's primary-data layer, to match raw input.

Relation labels: 31 labels:

antithesis, background, cause, circumstance, concession, condition, conjunction, contrast, disjunction, e-elaboration, elaboration, enablement, evaluation-n, evaluation-s, evidence, interpretation, joint, justify, list, means, motivation, otherwise, preparation, purpose, reason, restatement, result, sequence, solutionhood, summary, unless

Metrics

SplitSegE2E SpanE2E NucE2E RelE2E FullGold-EDU SpanGold-EDU NucGold-EDU RelGold-EDU Full
dev94.969.244.427.726.970.545.629.028.2
test95.460.533.118.618.663.535.820.820.8

F1 x 100 under original Parseval, with trivial leaf spans excluded. E2E scores parse trees predicted from raw text, segmentation included. Gold-EDU scores them given the gold EDU segmentation. Seg is the per-token BeginSeg F1 computed during training, which can read up to about a point below the official DISRPT scorer's value. The checkpoint was selected on dev e2e_full_f1.

Usage

Install the library first with pip install dipo.

CLI

dipo dmrst predict \
    --hub-id larc-iu/dmrst-xlm-roberta-base-pcc-2.2 \
    --text 'Auf Grund der dramatischen Kassenlage hat die Landesregierung eine Vorlage Ă¼berraschend auf Eis gelegt, und die Opposition kritisiert das scharf.'

To parse a raw .txt file or a directory of them instead, use --text-file <path> --output-dir out/.

Python

from dipo.rst.parsers.dmrst.modeling_dmrst import DMRSTParser

parser = DMRSTParser.from_pretrained("larc-iu/dmrst-xlm-roberta-base-pcc-2.2")
tree = parser.predict_from_text(
    "Auf Grund der dramatischen Kassenlage hat die Landesregierung eine Vorlage Ă¼berraschend auf Eis gelegt, und die Opposition kritisiert das scharf."
)
print(tree.to_rs4_string())

Citation

If you use this model, please cite both the underlying paper:

@inproceedings{dmrst_paper,
  title = {DMRST: A Joint Framework for Document-Level Multilingual RST Discourse Segmentation and Parsing},
  author = {Zhengyuan Liu, Ke Shi, Nancy F. Chen},
  booktitle = {CODI 2021},
  url = {https://aclanthology.org/2021.codi-main.15/},
}

And the Dipo library:

@misc{gessler-dipo-2026,
  author       = {Gessler, Luke},
  title        = {{Dipo: The Discourse Parsing Omnibus}},
  year         = {2026},
  howpublished = {\url{https://github.com/larc-iu/dipo}},
}

Notes

  • Input: Raw running text. Line breaks and other whitespace are fine, so there is no need to tokenize or clean the text first.
  • Training: Trained on the training split only, with the checkpoint chosen on the dev split. Scores are from a single training run, and run-to-run variation on small test sets can be several points.
  • Line structure: The model reads text with all whitespace collapsed, so it cannot see line breaks itself. predict_from_text therefore also starts a new segment at each blank-line paragraph break and after short heading-like lines (break_at_paragraphs=False turns this off). Hard-wrapped prose is left alone.
  • License: Derived from xlm-roberta-base, so use of these weights is subject to that model's terms: MIT.
  • Data terms: Trained on the Potsdam Commentary Corpus 2.2, which is CC BY-NC-SA 4.0. Non-commercial use only.
  • Intended use: Research and analysis of text. The weights carry the terms of the base model and of the training corpus above, and the scores on this card come from this checkpoint and not from the runs reported in the accompanying paper.

Full training configuration

See below for the full training configuration this model was trained with.

{
  "train_dir": "data/pcc_notok/train",
  "dev_dir": "data/pcc_notok/dev",
  "test_dir": "data/pcc_notok/test",
  "relation_types": [
    [
      "antithesis",
      "rst"
    ],
    [
      "background",
      "rst"
    ],
    [
      "cause",
      "rst"
    ],
    [
      "circumstance",
      "rst"
    ],
    [
      "concession",
      "rst"
    ],
    [
      "condition",
      "rst"
    ],
    [
      "conjunction",
      "multinuc"
    ],
    [
      "contrast",
      "multinuc"
    ],
    [
      "disjunction",
      "multinuc"
    ],
    [
      "e-elaboration",
      "rst"
    ],
    [
      "elaboration",
      "rst"
    ],
    [
      "enablement",
      "rst"
    ],
    [
      "evaluation-n",
      "rst"
    ],
    [
      "evaluation-s",
      "rst"
    ],
    [
      "evidence",
      "rst"
    ],
    [
      "interpretation",
      "rst"
    ],
    [
      "joint",
      "multinuc"
    ],
    [
      "justify",
      "rst"
    ],
    [
      "list",
      "multinuc"
    ],
    [
      "means",
      "rst"
    ],
    [
      "motivation",
      "rst"
    ],
    [
      "otherwise",
      "rst"
    ],
    [
      "preparation",
      "rst"
    ],
    [
      "purpose",
      "rst"
    ],
    [
      "reason",
      "rst"
    ],
    [
      "restatement",
      "rst"
    ],
    [
      "result",
      "rst"
    ],
    [
      "sequence",
      "multinuc"
    ],
    [
      "solutionhood",
      "rst"
    ],
    [
      "summary",
      "rst"
    ],
    [
      "unless",
      "rst"
    ]
  ],
  "relation_map": null,
  "model_name": "xlm-roberta-base",
  "stride": 100,
  "encoder_window_size": 300,
  "attention_type": "dot_product",
  "classifier_use_bias": true,
  "num_rnn_layers": 1,
  "encoder_dropout": 0.5,
  "decoder_dropout": 0.5,
  "labeler_dropout": 0.5,
  "doc_gru_dropout": 0.2,
  "label_input_pooling": "mean",
  "freeze_embeddings": false,
  "freeze_encoder_layers": 0,
  "peft": {
    "r": 16,
    "alpha": 32,
    "dropout": 0.05,
    "target_modules": "all-linear",
    "bias": "none",
    "dora": false,
    "modules_to_save": [
      "embed_tokens"
    ],
    "train_only_new_embedding_rows": true,
    "base_dtype": "float32",
    "gradient_checkpointing": false,
    "load_in_4bit": false,
    "bnb_4bit_quant_type": "nf4",
    "bnb_4bit_use_double_quant": true,
    "bnb_4bit_compute_dtype": "bfloat16"
  },
  "curriculum": {
    "type": "simple",
    "epochs": 100
  },
  "segmentation": {
    "pos_weight": 10,
    "start_loss": false,
    "scheme": "BIE",
    "loss": "crf",
    "dropout": 0.3
  },
  "detokenizer": null,
  "split_cjk_tokens": false,
  "dlw": {
    "temperature": 2,
    "window": 30
  },
  "lr": 0.0002,
  "encoder_lr": 0.0003,
  "grad_accum": 3,
  "amp": true,
  "empty_cache_between_docs": false,
  "checkpoint_decoder": false,
  "patience": 100,
  "patience_window": 1,
  "max_grad_norm": 20,
  "weight_decay": 0.01,
  "num_warmup_steps": 100,
  "num_warmup_epochs": 5,
  "log_every": 1,
  "begin_validation_epoch": 0,
  "validate_every": 1,
  "edu_loss_weight_exponent": 0,
  "run_name": "release-dmrst-xlmr-base-pcc-full",
  "seed": 42,
  "val_metric_name": "e2e_full_f1"
}
dipo
discourse-parsing
dmrst

larc-iu/dmrst-xlm-roberta-base-pcc-2.2

Model

larc-iu/dmrst-xlm-roberta-base-pcc-2.2

0

5 commits

2 linked in READMEs

updated Oct 11, 2026

See the code

README

Dipo logo

larc-iu/dmrst-xlm-roberta-base-pcc-2.2

A pretrained DMRST parser trained with Dipo.

This model uses xlm-roberta-base as its underlying encoder.

Data

Potsdam Commentary Corpus 2.2 (German). German newspaper commentaries annotated in RST, with the DISRPT 2025 train/dev/test split. This model was trained on untokenized EDU text aligned from the corpus's primary-data layer, to match raw input.

Relation labels: 31 labels:

antithesis, background, cause, circumstance, concession, condition, conjunction, contrast, disjunction, e-elaboration, elaboration, enablement, evaluation-n, evaluation-s, evidence, interpretation, joint, justify, list, means, motivation, otherwise, preparation, purpose, reason, restatement, result, sequence, solutionhood, summary, unless

Metrics

SplitSegE2E SpanE2E NucE2E RelE2E FullGold-EDU SpanGold-EDU NucGold-EDU RelGold-EDU Full
dev94.969.244.427.726.970.545.629.028.2
test95.460.533.118.618.663.535.820.820.8

F1 x 100 under original Parseval, with trivial leaf spans excluded. E2E scores parse trees predicted from raw text, segmentation included. Gold-EDU scores them given the gold EDU segmentation. Seg is the per-token BeginSeg F1 computed during training, which can read up to about a point below the official DISRPT scorer's value. The checkpoint was selected on dev e2e_full_f1.

Usage

Install the library first with pip install dipo.

CLI

dipo dmrst predict \
    --hub-id larc-iu/dmrst-xlm-roberta-base-pcc-2.2 \
    --text 'Auf Grund der dramatischen Kassenlage hat die Landesregierung eine Vorlage Ă¼berraschend auf Eis gelegt, und die Opposition kritisiert das scharf.'

To parse a raw .txt file or a directory of them instead, use --text-file <path> --output-dir out/.

Python

from dipo.rst.parsers.dmrst.modeling_dmrst import DMRSTParser

parser = DMRSTParser.from_pretrained("larc-iu/dmrst-xlm-roberta-base-pcc-2.2")
tree = parser.predict_from_text(
    "Auf Grund der dramatischen Kassenlage hat die Landesregierung eine Vorlage Ă¼berraschend auf Eis gelegt, und die Opposition kritisiert das scharf."
)
print(tree.to_rs4_string())

Citation

If you use this model, please cite both the underlying paper:

@inproceedings{dmrst_paper,
  title = {DMRST: A Joint Framework for Document-Level Multilingual RST Discourse Segmentation and Parsing},
  author = {Zhengyuan Liu, Ke Shi, Nancy F. Chen},
  booktitle = {CODI 2021},
  url = {https://aclanthology.org/2021.codi-main.15/},
}

And the Dipo library:

@misc{gessler-dipo-2026,
  author       = {Gessler, Luke},
  title        = {{Dipo: The Discourse Parsing Omnibus}},
  year         = {2026},
  howpublished = {\url{https://github.com/larc-iu/dipo}},
}

Notes

  • Input: Raw running text. Line breaks and other whitespace are fine, so there is no need to tokenize or clean the text first.
  • Training: Trained on the training split only, with the checkpoint chosen on the dev split. Scores are from a single training run, and run-to-run variation on small test sets can be several points.
  • Line structure: The model reads text with all whitespace collapsed, so it cannot see line breaks itself. predict_from_text therefore also starts a new segment at each blank-line paragraph break and after short heading-like lines (break_at_paragraphs=False turns this off). Hard-wrapped prose is left alone.
  • License: Derived from xlm-roberta-base, so use of these weights is subject to that model's terms: MIT.
  • Data terms: Trained on the Potsdam Commentary Corpus 2.2, which is CC BY-NC-SA 4.0. Non-commercial use only.
  • Intended use: Research and analysis of text. The weights carry the terms of the base model and of the training corpus above, and the scores on this card come from this checkpoint and not from the runs reported in the accompanying paper.

Full training configuration

See below for the full training configuration this model was trained with.

{
  "train_dir": "data/pcc_notok/train",
  "dev_dir": "data/pcc_notok/dev",
  "test_dir": "data/pcc_notok/test",
  "relation_types": [
    [
      "antithesis",
      "rst"
    ],
    [
      "background",
      "rst"
    ],
    [
      "cause",
      "rst"
    ],
    [
      "circumstance",
      "rst"
    ],
    [
      "concession",
      "rst"
    ],
    [
      "condition",
      "rst"
    ],
    [
      "conjunction",
      "multinuc"
    ],
    [
      "contrast",
      "multinuc"
    ],
    [
      "disjunction",
      "multinuc"
    ],
    [
      "e-elaboration",
      "rst"
    ],
    [
      "elaboration",
      "rst"
    ],
    [
      "enablement",
      "rst"
    ],
    [
      "evaluation-n",
      "rst"
    ],
    [
      "evaluation-s",
      "rst"
    ],
    [
      "evidence",
      "rst"
    ],
    [
      "interpretation",
      "rst"
    ],
    [
      "joint",
      "multinuc"
    ],
    [
      "justify",
      "rst"
    ],
    [
      "list",
      "multinuc"
    ],
    [
      "means",
      "rst"
    ],
    [
      "motivation",
      "rst"
    ],
    [
      "otherwise",
      "rst"
    ],
    [
      "preparation",
      "rst"
    ],
    [
      "purpose",
      "rst"
    ],
    [
      "reason",
      "rst"
    ],
    [
      "restatement",
      "rst"
    ],
    [
      "result",
      "rst"
    ],
    [
      "sequence",
      "multinuc"
    ],
    [
      "solutionhood",
      "rst"
    ],
    [
      "summary",
      "rst"
    ],
    [
      "unless",
      "rst"
    ]
  ],
  "relation_map": null,
  "model_name": "xlm-roberta-base",
  "stride": 100,
  "encoder_window_size": 300,
  "attention_type": "dot_product",
  "classifier_use_bias": true,
  "num_rnn_layers": 1,
  "encoder_dropout": 0.5,
  "decoder_dropout": 0.5,
  "labeler_dropout": 0.5,
  "doc_gru_dropout": 0.2,
  "label_input_pooling": "mean",
  "freeze_embeddings": false,
  "freeze_encoder_layers": 0,
  "peft": {
    "r": 16,
    "alpha": 32,
    "dropout": 0.05,
    "target_modules": "all-linear",
    "bias": "none",
    "dora": false,
    "modules_to_save": [
      "embed_tokens"
    ],
    "train_only_new_embedding_rows": true,
    "base_dtype": "float32",
    "gradient_checkpointing": false,
    "load_in_4bit": false,
    "bnb_4bit_quant_type": "nf4",
    "bnb_4bit_use_double_quant": true,
    "bnb_4bit_compute_dtype": "bfloat16"
  },
  "curriculum": {
    "type": "simple",
    "epochs": 100
  },
  "segmentation": {
    "pos_weight": 10,
    "start_loss": false,
    "scheme": "BIE",
    "loss": "crf",
    "dropout": 0.3
  },
  "detokenizer": null,
  "split_cjk_tokens": false,
  "dlw": {
    "temperature": 2,
    "window": 30
  },
  "lr": 0.0002,
  "encoder_lr": 0.0003,
  "grad_accum": 3,
  "amp": true,
  "empty_cache_between_docs": false,
  "checkpoint_decoder": false,
  "patience": 100,
  "patience_window": 1,
  "max_grad_norm": 20,
  "weight_decay": 0.01,
  "num_warmup_steps": 100,
  "num_warmup_epochs": 5,
  "log_every": 1,
  "begin_validation_epoch": 0,
  "validate_every": 1,
  "edu_loss_weight_exponent": 0,
  "run_name": "release-dmrst-xlmr-base-pcc-full",
  "seed": 42,
  "val_metric_name": "e2e_full_f1"
}
dipo
discourse-parsing
dmrst