Instructions to use NorviTech/arrmes-functiongemma-270m with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- MLX
How to use NorviTech/arrmes-functiongemma-270m 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("NorviTech/arrmes-functiongemma-270m") 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) - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- LM Studio
- Pi
How to use NorviTech/arrmes-functiongemma-270m with Pi:
Start the MLX server
# Install MLX LM: uv tool install mlx-lm # Start a local OpenAI-compatible server: mlx_lm.server --model "NorviTech/arrmes-functiongemma-270m"
Configure the model in Pi
# Install Pi: npm install -g @earendil-works/pi-coding-agent # Add to ~/.pi/agent/models.json: { "providers": { "mlx-lm": { "baseUrl": "http://localhost:8080/v1", "api": "openai-completions", "apiKey": "none", "models": [ { "id": "NorviTech/arrmes-functiongemma-270m" } ] } } }Run Pi
# Start Pi in your project directory: pi
- MLX LM
How to use NorviTech/arrmes-functiongemma-270m with MLX LM:
Generate or start a chat session
# Install MLX LM uv tool install mlx-lm # Interactive chat REPL mlx_lm.chat --model "NorviTech/arrmes-functiongemma-270m"
Run an OpenAI-compatible server
# Install MLX LM uv tool install mlx-lm # Start the server mlx_lm.server --model "NorviTech/arrmes-functiongemma-270m" # Calling the OpenAI-compatible server with curl curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "NorviTech/arrmes-functiongemma-270m", "messages": [ {"role": "user", "content": "Hello"} ] }' - Hermes Agent
How to use NorviTech/arrmes-functiongemma-270m 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 "NorviTech/arrmes-functiongemma-270m"
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 NorviTech/arrmes-functiongemma-270m
Run Hermes
hermes
- Atomic Chat
- OpenClaw
How to use NorviTech/arrmes-functiongemma-270m with OpenClaw:
Start the MLX server
# Install MLX LM: uv tool install mlx-lm # Start a local OpenAI-compatible server: mlx_lm.server --model "NorviTech/arrmes-functiongemma-270m"
Configure OpenClaw
# Install OpenClaw: npm install -g openclaw@latest # Register the local server and set it as the default model: openclaw onboard --non-interactive --mode local \ --auth-choice custom-api-key \ --custom-base-url http://127.0.0.1:8080/v1 \ --custom-model-id "NorviTech/arrmes-functiongemma-270m" \ --custom-provider-id mlx-lm \ --custom-compatibility openai \ --custom-text-input \ --accept-risk \ --skip-health
Run OpenClaw
openclaw agent --local --agent main --message "Hello from Hugging Face"
Arrmes-FunctionGemma-270M (Published MLX LoRA Baseline & v7 Adapter)
Arrmes-FunctionGemma-270M is a 270M-parameter function-calling LoRA adapter fine-tuned from google/functiongemma-270m-it for the 20-action arrmes.tools.v2 self-hosted media-operations contract (<start_function_call>call:name{...}<end_function_call>).
- Preserved Root Baseline (
adapters.safetensors): The unchanged root adapter from initial publication (96e89a722f4789f5eaceee06fe0327dfb9371ba0) contains 252 float32 LoRA tensors (7,620,457bytes / ~`7.3 MiB, SHA-256b2af9abc9027ffbc7ff5bc228de788bf37583804e10796d34fb259bb2f4c7036) for the separately downloadedgoogle/functiongemma-270m-itbf16 base (536,222,768bytes / ~511.4 MiB`). - Subdirectory
v7-lora/(v1.4.0): Contains thev7LoRA adapter trained onTrainPool-v7(5,827examples,seed=20261102,200iterations,lr=1e-4) and its provenance manifest (v7-lora/provenance.json). - Gemma Terms of Use Notice: Distribution and use of these weights are subject to the Gemma Terms of Use and include
GEMMA_TERMS_NOTICE.txtper Section 3.1.
Five generative checkpoints on the same 100 positive and 100 negative cases; raw model output and verified proposals are shown separately. This slice is separate from the full-suite neural-router results. Recorded scores.
Evaluation Results (Paired Base vs Fine-Tuned & Locked acceptance-v5)
Raw model output (raw_unverified, Track A), verifier-processed proposals (raw / verify_proposal, Track B), and controlled fixture execution (Track C) are measured and reported separately:
- Predeclared 80-Case Paired Diagnostic (Identical BF16 Base Without vs With Root
v5Adapter,docs/functiongemma-public-diagnostic.md):- Untuned
google/functiongemma-270m-itBF16 Base:12 / 80(15.0%) raw exact,23 / 80(28.8%) after verification, and11 / 35strict fixture workflows. - Root Public
v5Adapter (96e89a7...):63 / 80(78.8%) raw exact (+51calls),68 / 80(85.0%) after verification (+45calls), and29 / 35strict fixture workflows (0unexpected write proposals). One normalized template in the 80-case diagnostic overlaps training (ON1-023), so it is recorded as a known-input diagnostic rather than a template-disjoint acceptance suite.
- Untuned
- Locked
acceptance-v5Stratified 200-Case Generative Comparison (seed=7007,NorviTech/arrmes-bench-v5):- Evaluated on a stratified 200-case slice (
100positive +100hard-negative/safety) with 0 exact query overlaps and 0 entity overlaps againstTrainPool-v7(5,827rows) andacceptance-v4(1,000rows):- Public
FunctionGemma-270M v5(bf16 + root LoRA): Positive Track A68 / 100(68.0%), Track B78 / 100(78.0%); Hard-Negative Track A30 / 100, Track B87 / 100(87.0%),0unauthorized writes. - Trained
FunctionGemma-270M v7(4-bit MLXfused fromv7-lora/,175.83 MiB): Positive Track A70 / 100(70.0%), Track B91 / 100(91.0%,+13.0 ppoverv5); Hard-Negative Track A35 / 100, Track B88 / 100(88.0%,+1.0 ppoverv5),0unauthorized writes.
- Public
- Evaluated on a stratified 200-case slice (
- Historical
sealed-acceptance-v3(N = 314) Audit Note:- The 4,389-row historical training file shares 37 normalized templates with 261/314
sealed-v3rows (226non-write opportunities). UseNorviTech/arrmes-bench-v5for zero-leakage evaluation, andNorviTech/arrmes-neural-router-v3(7.52 MiB) when>=99%raw Track A accuracy andarrmes.tools.v3coverage are required.
- The 4,389-row historical training file shares 37 normalized templates with 261/314
Warm routing plus verification on Apple M4 Pro, excluding service and network time. Disk size is separate from runtime memory; sample counts and axis scales are labeled. Recorded profiles.
Measured Runtime Profile (Apple M4 Pro, v1.4.0)
FunctionGemma-270M v7(4-bit MLX,184,369,899bytes /175.83 MiBweight files on disk):- Cold load + static prompt KV cache warmup:
869.67 ms - Warm model generation (
548.3 tok/s):p50 = 43.30 ms / p95 = 46.84 ms - Warm routing +
verify_proposal:p50 = 43.54 ms / p95 = 47.07 ms - Unified memory on Apple M4 Pro: MLX Metal peak
1,060.96 MiB(active180.02 MiB), process RSS797.53 MiB(shared unified memory; do not sum).
- Cold load + static prompt KV cache warmup:
Quickstart (MLX)
from arrmes.model import LocalModel
model = LocalModel(
"models/functiongemma",
family="functiongemma",
adapter="adapters/arrmes-functiongemma-270m", # root v5 baseline or v7-lora/
contract_version="v2",
)
res = model.infer("Is anyone streaming from Plex at this moment?")
print(res["raw_unverified"]) # Track A direct model output
print(res["raw"]) # Track B verified proposal
# <start_function_call>call:now_playing{}<end_function_call>
Licence & Notice
Gemma is provided under and subject to the Gemma Terms of Use. See GEMMA_TERMS_NOTICE.txt. Part of the NorviTech Suite and Arrmes v1.4.0.
- Downloads last month
- 204
4-bit
Model tree for NorviTech/arrmes-functiongemma-270m
Base model
google/functiongemma-270m-it
