larc-iu/dmrst-xlm-roberta-base-gcdt

Model

larc-iu/dmrst-xlm-roberta-base-gcdt

0

5 commits

2 linked in READMEs

updated Oct 11, 2026

See the code

README

Dipo logo

larc-iu/dmrst-xlm-roberta-base-gcdt

A pretrained DMRST parser trained with Dipo.

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

Data

GCDT (Georgetown Chinese Discourse Treebank) (Chinese). A multi-genre Mandarin Chinese RST treebank using the GUM relation inventory. This model was trained on unspaced Chinese EDU text rebuilt from the DISRPT 2025 SpaceAfter annotations, to match raw input.

Relation labels: 32 labels:

adversative-antithesis, adversative-concession, adversative-contrast, attribution-negative, attribution-positive, causal-cause, causal-result, context-background, context-circumstance, contingency-condition, elaboration-additional, elaboration-attribute, evaluation-comment, explanation-evidence, explanation-justify, explanation-motivation, joint-disjunction, joint-list, joint-other, joint-sequence, mode-manner, mode-means, organization-heading, organization-phatic, organization-preparation, purpose-attribute, purpose-goal, restatement-partial, restatement-repetition, same-unit, topic-question, topic-solutionhood

Metrics

SplitSegE2E SpanE2E NucE2E RelE2E FullGold-EDU SpanGold-EDU NucGold-EDU RelGold-EDU Full
dev85.460.242.733.933.873.456.247.147.0
test86.458.838.229.629.471.051.942.141.9

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-gcdt \
    --text 'ιšη€η§‘ζŠ€ε’ŒεŒ»η–—ε«η”ŸδΊ‹δΈšηš„ε‘ε±•θΏ›ζ­₯οΌŒδΊΊε£θ€ιΎ„εŒ–θΏ›η¨‹εœ¨δΈ–η•ŒθŒƒε›΄ε†…ζ€₯剧发展。'

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-gcdt")
tree = parser.predict_from_text(
    "ιšη€η§‘ζŠ€ε’ŒεŒ»η–—ε«η”ŸδΊ‹δΈšηš„ε‘ε±•θΏ›ζ­₯οΌŒδΊΊε£θ€ιΎ„εŒ–θΏ›η¨‹εœ¨δΈ–η•ŒθŒƒε›΄ε†…ζ€₯剧发展。"
)
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. Chinese should be given without spaces between words.
  • 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 GCDT, whose repository is under Apache 2.0.
  • 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/gcdt_notok/train",
  "dev_dir": "data/gcdt_notok/dev",
  "test_dir": "data/gcdt_notok/test",
  "relation_types": [
    [
      "adversative-antithesis",
      "rst"
    ],
    [
      "adversative-concession",
      "rst"
    ],
    [
      "adversative-contrast",
      "multinuc"
    ],
    [
      "attribution-negative",
      "rst"
    ],
    [
      "attribution-positive",
      "rst"
    ],
    [
      "causal-cause",
      "rst"
    ],
    [
      "causal-result",
      "rst"
    ],
    [
      "context-background",
      "rst"
    ],
    [
      "context-circumstance",
      "rst"
    ],
    [
      "contingency-condition",
      "rst"
    ],
    [
      "elaboration-additional",
      "rst"
    ],
    [
      "elaboration-attribute",
      "rst"
    ],
    [
      "evaluation-comment",
      "rst"
    ],
    [
      "explanation-evidence",
      "rst"
    ],
    [
      "explanation-justify",
      "rst"
    ],
    [
      "explanation-motivation",
      "rst"
    ],
    [
      "joint-disjunction",
      "multinuc"
    ],
    [
      "joint-list",
      "multinuc"
    ],
    [
      "joint-other",
      "multinuc"
    ],
    [
      "joint-sequence",
      "multinuc"
    ],
    [
      "mode-manner",
      "rst"
    ],
    [
      "mode-means",
      "rst"
    ],
    [
      "organization-heading",
      "rst"
    ],
    [
      "organization-phatic",
      "rst"
    ],
    [
      "organization-preparation",
      "rst"
    ],
    [
      "purpose-attribute",
      "rst"
    ],
    [
      "purpose-goal",
      "rst"
    ],
    [
      "restatement-partial",
      "rst"
    ],
    [
      "restatement-repetition",
      "multinuc"
    ],
    [
      "same-unit",
      "multinuc"
    ],
    [
      "topic-question",
      "rst"
    ],
    [
      "topic-solutionhood",
      "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": true,
  "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-gcdt-full",
  "seed": 42,
  "val_metric_name": "e2e_full_f1"
}
dipo
discourse-parsing
dmrst

larc-iu/dmrst-xlm-roberta-base-gcdt

Model

larc-iu/dmrst-xlm-roberta-base-gcdt

0

5 commits

2 linked in READMEs

updated Oct 11, 2026

See the code

README

Dipo logo

larc-iu/dmrst-xlm-roberta-base-gcdt

A pretrained DMRST parser trained with Dipo.

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

Data

GCDT (Georgetown Chinese Discourse Treebank) (Chinese). A multi-genre Mandarin Chinese RST treebank using the GUM relation inventory. This model was trained on unspaced Chinese EDU text rebuilt from the DISRPT 2025 SpaceAfter annotations, to match raw input.

Relation labels: 32 labels:

adversative-antithesis, adversative-concession, adversative-contrast, attribution-negative, attribution-positive, causal-cause, causal-result, context-background, context-circumstance, contingency-condition, elaboration-additional, elaboration-attribute, evaluation-comment, explanation-evidence, explanation-justify, explanation-motivation, joint-disjunction, joint-list, joint-other, joint-sequence, mode-manner, mode-means, organization-heading, organization-phatic, organization-preparation, purpose-attribute, purpose-goal, restatement-partial, restatement-repetition, same-unit, topic-question, topic-solutionhood

Metrics

SplitSegE2E SpanE2E NucE2E RelE2E FullGold-EDU SpanGold-EDU NucGold-EDU RelGold-EDU Full
dev85.460.242.733.933.873.456.247.147.0
test86.458.838.229.629.471.051.942.141.9

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-gcdt \
    --text 'ιšη€η§‘ζŠ€ε’ŒεŒ»η–—ε«η”ŸδΊ‹δΈšηš„ε‘ε±•θΏ›ζ­₯οΌŒδΊΊε£θ€ιΎ„εŒ–θΏ›η¨‹εœ¨δΈ–η•ŒθŒƒε›΄ε†…ζ€₯剧发展。'

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-gcdt")
tree = parser.predict_from_text(
    "ιšη€η§‘ζŠ€ε’ŒεŒ»η–—ε«η”ŸδΊ‹δΈšηš„ε‘ε±•θΏ›ζ­₯οΌŒδΊΊε£θ€ιΎ„εŒ–θΏ›η¨‹εœ¨δΈ–η•ŒθŒƒε›΄ε†…ζ€₯剧发展。"
)
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. Chinese should be given without spaces between words.
  • 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 GCDT, whose repository is under Apache 2.0.
  • 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/gcdt_notok/train",
  "dev_dir": "data/gcdt_notok/dev",
  "test_dir": "data/gcdt_notok/test",
  "relation_types": [
    [
      "adversative-antithesis",
      "rst"
    ],
    [
      "adversative-concession",
      "rst"
    ],
    [
      "adversative-contrast",
      "multinuc"
    ],
    [
      "attribution-negative",
      "rst"
    ],
    [
      "attribution-positive",
      "rst"
    ],
    [
      "causal-cause",
      "rst"
    ],
    [
      "causal-result",
      "rst"
    ],
    [
      "context-background",
      "rst"
    ],
    [
      "context-circumstance",
      "rst"
    ],
    [
      "contingency-condition",
      "rst"
    ],
    [
      "elaboration-additional",
      "rst"
    ],
    [
      "elaboration-attribute",
      "rst"
    ],
    [
      "evaluation-comment",
      "rst"
    ],
    [
      "explanation-evidence",
      "rst"
    ],
    [
      "explanation-justify",
      "rst"
    ],
    [
      "explanation-motivation",
      "rst"
    ],
    [
      "joint-disjunction",
      "multinuc"
    ],
    [
      "joint-list",
      "multinuc"
    ],
    [
      "joint-other",
      "multinuc"
    ],
    [
      "joint-sequence",
      "multinuc"
    ],
    [
      "mode-manner",
      "rst"
    ],
    [
      "mode-means",
      "rst"
    ],
    [
      "organization-heading",
      "rst"
    ],
    [
      "organization-phatic",
      "rst"
    ],
    [
      "organization-preparation",
      "rst"
    ],
    [
      "purpose-attribute",
      "rst"
    ],
    [
      "purpose-goal",
      "rst"
    ],
    [
      "restatement-partial",
      "rst"
    ],
    [
      "restatement-repetition",
      "multinuc"
    ],
    [
      "same-unit",
      "multinuc"
    ],
    [
      "topic-question",
      "rst"
    ],
    [
      "topic-solutionhood",
      "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": true,
  "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-gcdt-full",
  "seed": 42,
  "val_metric_name": "e2e_full_f1"
}
dipo
discourse-parsing
dmrst