datagero's picture
Upload folder using huggingface_hub
2e7f22b verified
|
Raw History Blame Contribute Delete
3 kB
metadata
base_model: mlx-community/Qwen3.5-9B-4bit
library_name: mlx
license: other
license_name: qwen
tags:
  - lora
  - ontology-learning
  - ontology-extraction
  - text2onto
  - llms4ol-2026
  - qwen3.5

qwen3.5-9b-ontology-extraction-baseft-mlx

A LoRA adapter for Qwen/Qwen3.5-9B that extracts a primitive ontology — [subject, relation, object] triples — from a raw text document.

Built by Semantic Swingers for the LLMs4OL 2026 shared task (Task A, "flagship": text → ontology triples, scored by graph similarity). If you have not heard of the challenge, the short version: given a document, produce the taxonomy/typing triples it implies. This adapter is the fine-tuned generator behind our submission.

Which adapter is this

  • Regime: base-FT (no exemplars).

  • Use top_k = 0 at inference. base-FT was trained without exemplars, so it is best run retrieval-free. Using the wrong k understates the adapter.

  • Hardware: Apple Silicon (MLX). Runs natively on Apple Silicon via MLX.

  • Score: this is the Apple-Silicon 4-bit MLX variant, a separate artifact from the bf16 champions — its score differs and is not the reported number.

How to run it

Through our OntoLearner integration (the learner ships in the fork below):

from ontolearner.learner.text2onto import SemanticSwingersText2OntoLearner

learner = SemanticSwingersText2OntoLearner(
    adapter="datagero/qwen3.5-9b-ontology-extraction-baseft-mlx",
    base_model_id="mlx-community/Qwen3.5-9B-4bit",
    backend="mlx",
    top_k=0,
)
learner.load()
# learner.fit(train_docs, task="text2onto"); learner.predict(eval_docs, task="text2onto")

How it was made (the training code is part of the integration)

This adapter was produced by the same package that serves it — training is a first-class part of the OntoLearner integration, not a separate script:

  • Training code: semanticswingers_train.py — LoRA SFT with prompt masking (loss on completion tokens only) and, for RA-FT, leave-one-out exemplar retrieval so a training document never sees its own gold.
  • Integration + reproduction: OntoLearner fork, PR #1 and the replication notebook therein (notebooks/pipeline_ontolearner.ipynb), which runs Tasks A/B/C end-to-end.

To reproduce: learner = SemanticSwingersText2OntoLearner(train_mode="baseft", train_backend="mlx", output_dir=...) then learner.fit(train_docs, task="text2onto").

Intended use & limitations

Research replication for the LLMs4OL 2026 shared task. Domain: general ontology construction from text; the training data is the challenge's Task A split. Not intended for production ontology engineering without validation. Inherits the base model's license and limitations.