MaximoSLM (Phase 1, initial)

Read-only small language model for IBM Maximo. It drives the public @soumyaprasadrana/maximo-mcp-server read tools so a laptop can query live Maximo without a giant system prompt describing the whole catalog.

This is an early research preview, not a production Maximo product and not affiliated with IBM. Phase 1 can inspect metadata and query records. It cannot create, update, delete, change status, or run workflow.

Base model: Qwen/Qwen2.5-7B-Instruct (Apache-2.0). Method: QLoRA (Unsloth), attention and MLP adapters only. embed_tokens and lm_head are not trained.

What this repository contains

Path What it is
adapter_config.json, adapter_model.safetensors QLoRA adapters (primary artifact)
tokenizer / chat template files Copied from the Instruct tokenizer
SYSTEM_PROMPT.txt Frozen system prompt (train = serve)
Modelfile Ollama recipe; FROM points at the GGUF in gguf/
gguf/*.gguf Q5_K_M GGUF for Ollama (when uploaded)
TRAINING_CARD.json Hyperparameters from the training run

Not uploaded: training JSONL, Maximo credentials, merged fp16 safetensors.

Intended use

A small agent loop (this repo's orchestrator/) calls the model, parses one <tool_call> JSON object per turn, and executes only these MCP tools:

  • maximo_get_metadata
  • os_query_builder
  • ws_load
  • ws_get_records
  • ws_get_active

Typical read pipeline:

maximo_get_metadata  ->  os_query_builder  ->  ws_load (useLean true)

The agent owns the working-set id. The model chooses the object structure, filters, select list, and sort.

Load adapters (Unsloth / GPU)

hf download YOUR_USER/maximo-slm --local-dir maximo-slm-lora

Then, from the MaximoSLM git checkout:

python test/eval_in_env.py
python test/chat.py --unsloth

ADAPTER_DIR defaults to ./maximo-slm-lora. Serve with the same SYSTEM_PROMPT.txt that is in this repo. Do not LoRA embed_tokens or lm_head on top of these weights.

Load GGUF (Ollama)

hf download YOUR_USER/maximo-slm --include "gguf/*" --local-dir maximo-slm-hf
cd maximo-slm-hf
ollama create maximo-slm -f Modelfile

Chat through MCP (needs test/.env with MAXIMO_URL and an API key, never commit that file):

python test/chat.py

Ollama injects SYSTEM from the Modelfile. Do not also send a system message.

Limits (Phase 1)

  • Read-only. Write and admin MCP tools are refused by the client.
  • 7B QLoRA will mistype UUIDs and some filters. The client must bind the last working-set id and slim tool payloads.
  • Working sets expire in about 10 minutes; rebuild and continue.
  • Quote meta.totalCount for "how many", never the page length.
  • orderBy needs a + or - prefix.

Training sketch

  • Base: Qwen/Qwen2.5-7B-Instruct / Unsloth 4-bit
  • LoRA r=32, alpha=32, targets: q, k, v, o, gate, up, down
  • 1 epoch, seq 1536, assistant-only loss
  • Chat format: Hermes <think> plus <tool_call> JSON (Instruct native)

License

Adapter weights are released under Apache-2.0, same as the base model. IBM, Maximo, and related names are trademarks of their owners.

Downloads last month
-
GGUF
Model size
8B params
Architecture
qwen2
Hardware compatibility
Log In to add your hardware

5-bit

Inference Providers NEW
This model isn't deployed by any Inference Provider. ๐Ÿ™‹ Ask for provider support

Model tree for soumyaprasadrana/maximo-slm

Base model

Qwen/Qwen2.5-7B
Adapter
(2612)
this model