micm-nlp

An NLP research toolkit for tokenization, pretraining, fine-tuning and PEFT across encoder-only, decoder-only and encoder-decoder architectures. Built on HuggingFace transformers, peft and datasets.

pip install micm-nlp

What it is

micm-nlp is a config-driven library, not an experiment runner. It wraps the HuggingFace stack in a small set of building blocks that compose into reproducible training and evaluation pipelines:

CONFIG (YAML) → tokenizer.load() → DATASET → MODEL → PEFT → TRAINER → compute_metrics

Everything above is selected from YAML — including the concrete HuggingFace classes. model.pretrained.cls, trainer.cls, data_collator.cls and training_args.cls are resolved by name at runtime, so adding a backbone or a head normally needs no code change. Experiment logic — language groups, run-tree layouts, result aggregation, cluster dispatch — lives in consumer repositories that import this package, never here.

Symbol

Role

CONFIG

Loads and validates YAML (CONFIG.from_yaml)

tokenizer.load()

AutoTokenizer factory

DATASET

Loads and preprocesses HuggingFace, CSV or TXT datasets; concatenation

MODEL

from_pretrained via model.pretrained.cls; injects num_labels for classification

PEFT

Routes to stock PEFT methods or the Cross-Prompt Encoder path

TRAINER

Builds the HuggingFace Trainer: arguments, collator, callbacks, evaluation

Scope

The core of the package is task- and research-agnostic: configuration, datasets, models, PEFT dispatch, training and evaluation carry no assumptions about any particular study.

It also ships two research modules — the Cross-Prompt Encoder and a set of Georgian tokenization utilities — because published work depends on them. Neither is required to use the core.

Provenance

micm-nlp was developed at the Muskhelishvili Institute of Computational Mathematics (MICM, Georgian Technical University), in close research collaboration with Teimuraz Saghinadze (MICM), Simon Ostermann (DFKI / CERTAIN), and Philipp Müller (Max Planck Institute for Intelligent Systems), whose joint work on the Cross-Prompt Encoder (XPE) drove much of the toolkit’s design and validation.

This work was partially supported by the European Union under Horizon Europe project “GAIN” (GA #101078950) and by the German Federal Ministry of Research, Technology and Space (BMFTR) as part of the project TRAILS (01IW24005).

The package was formerly named nlpka; that name survives only in the archived repository behind the IJCNLP–AACL paper.

Citation

If you use micm-nlp in your research, please cite the package and (if relevant to your work) the XPE paper that drove its design:

@software{micm_nlp,
  author = {Mikaberidze, Beso},
  title = {micm-nlp: NLP research toolkit for multilingual fine-tuning and PEFT},
  url = {https://github.com/bmikaberidze/micm-nlp},
  version = {0.2.1},
  year = {2026},
}

@misc{mikaberidze2025crosspromptencoderlowperforminglanguages,
  title         = {Cross-Prompt Encoder for Low-Performing Languages},
  author        = {Beso Mikaberidze and Teimuraz Saghinadze and Simon Ostermann and Philipp Muller},
  year          = {2026},
  eprint        = {2508.10352},
  archivePrefix = {arXiv},
  primaryClass  = {cs.CL},
  url           = {https://arxiv.org/abs/2508.10352},
}