Text Generation
Transformers
Safetensors
MLX
English
qwen2
servicenow
itsm
csdm
itom
delivery
solution-design
user-stories
business-analysis
qwen2.5
lora
sft
conversational
Eval Results (legacy)
text-generation-inference
Instructions to use MainStack/marvy-1-14B with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use MainStack/marvy-1-14B with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="MainStack/marvy-1-14B") messages = [ {"role": "user", "content": "Who are you?"}, ] pipe(messages)# Load model directly from transformers import AutoTokenizer, AutoModelForCausalLM tokenizer = AutoTokenizer.from_pretrained("MainStack/marvy-1-14B") model = AutoModelForCausalLM.from_pretrained("MainStack/marvy-1-14B") messages = [ {"role": "user", "content": "Who are you?"}, ] inputs = tokenizer.apply_chat_template( messages, add_generation_prompt=True, tokenize=True, return_dict=True, return_tensors="pt", ).to(model.device) outputs = model.generate(**inputs, max_new_tokens=40) print(tokenizer.decode(outputs[0][inputs["input_ids"].shape[-1]:])) - MLX
How to use MainStack/marvy-1-14B with MLX:
# Make sure mlx-lm is installed # pip install --upgrade mlx-lm # Generate text with mlx-lm from mlx_lm import load, generate model, tokenizer = load("MainStack/marvy-1-14B") prompt = "Write a story about Einstein" messages = [{"role": "user", "content": prompt}] prompt = tokenizer.apply_chat_template( messages, add_generation_prompt=True ) text = generate(model, tokenizer, prompt=prompt, verbose=True) - Inference
- Notebooks
- Google Colab
- Kaggle
- Local Apps
- LM Studio
- vLLM
How to use MainStack/marvy-1-14B with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "MainStack/marvy-1-14B" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "MainStack/marvy-1-14B", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/MainStack/marvy-1-14B
- SGLang
How to use MainStack/marvy-1-14B with SGLang:
Install from pip and serve model
# Install SGLang from pip: pip install sglang # Start the SGLang server: python3 -m sglang.launch_server \ --model-path "MainStack/marvy-1-14B" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "MainStack/marvy-1-14B", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker images
docker run --gpus all \ --shm-size 32g \ -p 30000:30000 \ -v ~/.cache/huggingface:/root/.cache/huggingface \ --env "HF_TOKEN=<secret>" \ --ipc=host \ lmsysorg/sglang:latest \ python3 -m sglang.launch_server \ --model-path "MainStack/marvy-1-14B" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "MainStack/marvy-1-14B", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }' - Pi
How to use MainStack/marvy-1-14B with Pi:
Start the MLX server
# Install MLX LM: uv tool install mlx-lm # Start a local OpenAI-compatible server: mlx_lm.server --model "MainStack/marvy-1-14B"
Configure the model in Pi
# Install Pi: npm install -g @mariozechner/pi-coding-agent # Add to ~/.pi/agent/models.json: { "providers": { "mlx-lm": { "baseUrl": "http://localhost:8080/v1", "api": "openai-completions", "apiKey": "none", "models": [ { "id": "MainStack/marvy-1-14B" } ] } } }Run Pi
# Start Pi in your project directory: pi
- Hermes Agent new
How to use MainStack/marvy-1-14B with Hermes Agent:
Start the MLX server
# Install MLX LM: uv tool install mlx-lm # Start a local OpenAI-compatible server: mlx_lm.server --model "MainStack/marvy-1-14B"
Configure Hermes
# Install Hermes: curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash hermes setup # Point Hermes at the local server: hermes config set model.provider custom hermes config set model.base_url http://127.0.0.1:8080/v1 hermes config set model.default MainStack/marvy-1-14B
Run Hermes
hermes
- MLX LM
How to use MainStack/marvy-1-14B with MLX LM:
Generate or start a chat session
# Install MLX LM uv tool install mlx-lm # Interactive chat REPL mlx_lm.chat --model "MainStack/marvy-1-14B"
Run an OpenAI-compatible server
# Install MLX LM uv tool install mlx-lm # Start the server mlx_lm.server --model "MainStack/marvy-1-14B" # Calling the OpenAI-compatible server with curl curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "MainStack/marvy-1-14B", "messages": [ {"role": "user", "content": "Hello"} ] }' - Docker Model Runner
How to use MainStack/marvy-1-14B with Docker Model Runner:
docker model run hf.co/MainStack/marvy-1-14B
Upload validate.sh with huggingface_hub
Browse files- validate.sh +61 -0
validate.sh
ADDED
|
@@ -0,0 +1,61 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#!/usr/bin/env bash
|
| 2 |
+
# marvy-14B quick validation harness.
|
| 3 |
+
#
|
| 4 |
+
# Runs the task-coverage probes (Test 2 in VALIDATION.md) against any
|
| 5 |
+
# OpenAI-compatible endpoint — LM Studio, mlx_lm server, vLLM, etc. — and prints
|
| 6 |
+
# each artifact plus a lightweight heuristic PASS/FAIL on domain keywords.
|
| 7 |
+
#
|
| 8 |
+
# Usage:
|
| 9 |
+
# bash validate.sh # defaults to LM Studio
|
| 10 |
+
# BASE_URL=http://localhost:8080/v1 MODEL=marvy-14B bash validate.sh
|
| 11 |
+
# API_KEY=xxx BASE_URL=https://... MODEL=MainStack/marvy-14B bash validate.sh
|
| 12 |
+
set -uo pipefail
|
| 13 |
+
|
| 14 |
+
BASE_URL="${BASE_URL:-http://localhost:1234/v1}" # LM Studio default
|
| 15 |
+
MODEL="${MODEL:-marvy-14B}"
|
| 16 |
+
API_KEY="${API_KEY:-lm-studio}"
|
| 17 |
+
TEMP="${TEMP:-0.4}"
|
| 18 |
+
MAXTOK="${MAXTOK:-700}"
|
| 19 |
+
|
| 20 |
+
SYSTEM="You are a senior ServiceNow delivery consultant. You produce precise, implementation-grade artifacts: business analyses, requirements, solution design documents, user stories with acceptance criteria, test cases, and validation reviews. You favor out-of-the-box capabilities, cite concrete tables/plugins/sys_ids when relevant, and write in clear professional English."
|
| 21 |
+
|
| 22 |
+
# probe | expected-keyword-regex (case-insensitive) for a heuristic pass
|
| 23 |
+
PROMPTS=(
|
| 24 |
+
"Write a user story with acceptance criteria for auto-escalating P1 incidents that breach a 15-minute response SLA.|as a.*i want.*so that|acceptance|sla"
|
| 25 |
+
"Draft the Incident Management section of an SDD for a greenfield ITSM implementation. Include assignment rules and SLA design.|assignment|sla|incident"
|
| 26 |
+
"Extract structured requirements (id, category, priority, target phase, success metric) from: replace email-based access requests with a catalog item routed for manager approval.|priority|requirement|catalog"
|
| 27 |
+
"Write a test case for the story: Restrict the Assignment Group field on incidents to groups with the itil role.|pre-condition|step|expected|itil"
|
| 28 |
+
"Validate this requirement against best practice and list follow-up questions: All incidents must auto-close after 3 days.|follow-up|risk|question"
|
| 29 |
+
)
|
| 30 |
+
|
| 31 |
+
command -v jq >/dev/null 2>&1 || { echo "ERROR: jq is required (brew install jq)"; exit 1; }
|
| 32 |
+
|
| 33 |
+
echo "Endpoint: $BASE_URL Model: $MODEL Temp: $TEMP"
|
| 34 |
+
echo "============================================================"
|
| 35 |
+
pass=0; total=0
|
| 36 |
+
for entry in "${PROMPTS[@]}"; do
|
| 37 |
+
total=$((total+1))
|
| 38 |
+
prompt="${entry%%|*}"
|
| 39 |
+
rest="${entry#*|}"; regex="$rest"
|
| 40 |
+
payload=$(jq -n --arg m "$MODEL" --arg s "$SYSTEM" --arg p "$prompt" \
|
| 41 |
+
--argjson t "$TEMP" --argjson mx "$MAXTOK" \
|
| 42 |
+
'{model:$m,temperature:$t,max_tokens:$mx,messages:[{role:"system",content:$s},{role:"user",content:$p}]}')
|
| 43 |
+
resp=$(curl -s "$BASE_URL/chat/completions" -H "Content-Type: application/json" \
|
| 44 |
+
-H "Authorization: Bearer $API_KEY" -d "$payload")
|
| 45 |
+
content=$(echo "$resp" | jq -r '.choices[0].message.content // .error.message // "<<no response>>"')
|
| 46 |
+
echo ""
|
| 47 |
+
echo "### Probe $total: $prompt"
|
| 48 |
+
echo "------------------------------------------------------------"
|
| 49 |
+
echo "$content" | head -40
|
| 50 |
+
if echo "$content" | grep -iqE "$regex"; then
|
| 51 |
+
echo ">>> heuristic: PASS"
|
| 52 |
+
pass=$((pass+1))
|
| 53 |
+
else
|
| 54 |
+
echo ">>> heuristic: REVIEW (expected pattern not matched: $regex)"
|
| 55 |
+
fi
|
| 56 |
+
echo "============================================================"
|
| 57 |
+
done
|
| 58 |
+
echo ""
|
| 59 |
+
echo "Heuristic result: $pass/$total probes matched domain patterns."
|
| 60 |
+
echo "Pass threshold: >= 4/5 with implementation-grade, ServiceNow-specific content."
|
| 61 |
+
echo "Note: heuristics are a sanity check — read the outputs to judge true quality."
|