CoolFace
Datasetpublic

zilalzihar/mikrotik-routeros-qa-dataset

MikroTik RouterOS Q&A Dataset The first public structured Q&A dataset for MikroTik RouterOS fine-tuning. 1,672 instruction/response pairs grounded in the official MikroTik Confluence documentation, covering 215 distinct documentation pages. Built to fine-tune zilalzihar/mikrotik-routeros-v01-GGUF, and released so others can train their own RouterOS-specialized models without re-doing the grounding work. Files File Records Purpose qa-pairs.jsonl 1,672… See the full description on the dataset page: https://huggingface.co/datasets/zilalzihar/mikrotik-routeros-qa-dataset.

sourceHugging Faceapache-2.0updated 4mo agoView on Hugging Face
0likes16downloads
Dataset Card

MikroTik RouterOS Q&A Dataset

The first public structured Q&A dataset for MikroTik RouterOS fine-tuning. 1,672 instruction/response pairs grounded in the official MikroTik Confluence documentation, covering 215 distinct documentation pages.

Built to fine-tune `zilalzihar/mikrotik-routeros-v01-GGUF`, and released so others can train their own RouterOS-specialized models without re-doing the grounding work.


Files

FileRecordsPurpose
qa-pairs.jsonl1,672Full corpus
train.jsonl1,59095% split, stratified by source page
val.jsonl825% holdout, stratified
qa-pairs-pilot.jsonl50Initial pilot batch (subset of the full corpus) — useful for smoke-testing pipelines

Schema

Each record is a single JSON object on its own line (JSONL) with the following fields:

FieldTypeDescription
instructionstringThe user-facing question or directive
inputstringOptional extra context (e.g. a partial config snippet to complete). Empty string when not used.
outputstringThe reference answer, often containing RouterOS CLI blocks in fenced ``routeros`` code
sourcestringThe MikroTik Confluence page filename the pair was grounded in

The schema is Alpaca-compatible (instruction / input / output), so it slots directly into most LoRA/SFT pipelines.

Statistics

Total records1,672
Unique source pages215
Train / val split95 / 5, stratified by source
Train records1,590
Val records82
Completion-style records (non-empty input)93
Chat-style records (empty input)1,579

Source

Official MikroTik RouterOS Help (Confluence). All 215 source pages are publicly available documentation.

Generation method

Q&A pairs were generated by Anthropic Claude Opus 4.7 running inside Claude Code, with each batch grounded in a specific source page. Each pair includes a source field so the grounding can be audited end-to-end. Coverage was driven page-by-page so the resulting dataset broadly reflects the structure of the official docs rather than skewing to popular topics.

A small fraction (93 of 1,672 ≈ 5.6%) are completion-style examples where the model is given a partial config snippet in the input field and asked to complete it. The remaining 1,579 are conversational Q&A.

Use cases

  • —Fine-tuning LLMs for MikroTik domain expertise (the original use case — see the companion model).
  • —Evaluation benchmarks for networking-focused LLMs.
  • —RAG augmentation — the source field makes it straightforward to link a generated answer back to a documentation page.
  • —Pedagogical examples for anyone learning RouterOS.

Example records

Chat-style (most of the dataset):

json
{
  "instruction": "I need to stress-test a link by hammering a host with a quick burst of pings — say 1000 packets to 10.155.114.1 — and get a summary of the results. What's the RouterOS command for that?",
  "input": "",
  "output": "Use the `/tool/flood-ping` command. It sends a burst of ICMP packets to the target and prints a summary at the end:\n\n```routeros\n[admin@MikroTik] > /tool/flood-ping address=10.155.114.1 count=1000\n      sent: 1000\n  received: 1000\n   min-rtt:    0\n   avg-rtt:    0\n   max-rtt:    1\n```",
  "source": "Flood-Ping_361168915.md"
}

Completion-style (~5.6% of the dataset):

json
{
  "instruction": "Complete this LoRa NetID filter so it allows only the TTN-owned NetID 000013 and blocks everything else, then applies both filters to the EU TTN server.",
  "input": "/iot lora netid\nadd name=allow_TTN netids=000013-000013 type=whitelist",
  "output": "add name=block_all netids=000000-ffffff type=blacklist\n/iot lora disable [find]\n/iot lora servers set netid=block_all,allow_TTN [find where address~\"eu1.cloud.thethings.network\"]\n/iot lora enable [find]",
  "source": "General-Properties_16351619.md"
}

Conceptual / behavioral Q&A:

json
{
  "instruction": "When I disable the LCD with /lcd set enabled=no, do I lose anything besides the display going dark?",
  "input": "",
  "output": "Yes - statistics gathering stops and resets, and the LCD program closes. So it isn't just turning off the screen, it's also dropping the rolling stats buffers that the Stats and Interfaces screens use. If you only want the screen off but stats running, use the `backlight` function instead.",
  "source": "LCD-Touchscreen_130220194.md"
}

Loading

python
from datasets import load_dataset

ds = load_dataset("zilalzihar/mikrotik-routeros-qa-dataset", data_files={
    "train": "train.jsonl",
    "validation": "val.jsonl",
})
print(ds)

Or for the full pooled corpus:

python
ds = load_dataset("zilalzihar/mikrotik-routeros-qa-dataset", data_files="qa-pairs.jsonl")

Ethical notes

  • —All source material is publicly available official MikroTik documentation.
  • —This dataset is not affiliated with or endorsed by MikroTikls SIA. "MikroTik" and "RouterOS" are trademarks of their respective owner.
  • —Q&A pairs were machine-generated and grounded in source docs but may still contain errors. Always verify against the upstream documentation before relying on a configuration in production.

Citation

bibtex
@misc{mikrotik_routeros_qa_2026,
  title  = {MikroTik RouterOS Q\&A Dataset},
  author = {zilalzihar},
  year   = {2026},
  howpublished = {\url{https://huggingface.co/datasets/zilalzihar/mikrotik-routeros-qa-dataset}},
  note   = {1{,}672 instruction/response pairs grounded in official MikroTik Confluence documentation.}
}