Instructions to use FerrellSyntheticIntelligence/Vitalis_LFM2.5_Cortex.GGUF with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- llama-cpp-python
How to use FerrellSyntheticIntelligence/Vitalis_LFM2.5_Cortex.GGUF with llama-cpp-python:
# !pip install llama-cpp-python from llama_cpp import Llama llm = Llama.from_pretrained( repo_id="FerrellSyntheticIntelligence/Vitalis_LFM2.5_Cortex.GGUF", filename="LFM2.5-1.2B-Instruct-Q4_K_M.gguf", )
llm.create_chat_completion( messages = "No input example has been defined for this model task." )
- Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- llama.cpp
How to use FerrellSyntheticIntelligence/Vitalis_LFM2.5_Cortex.GGUF with llama.cpp:
Install (macOS, Linux)
curl -LsSf https://llama.app/install.sh | sh # Start a local OpenAI-compatible server with a web UI: llama serve -hf FerrellSyntheticIntelligence/Vitalis_LFM2.5_Cortex.GGUF:Q4_K_M # Run inference directly in the terminal: llama cli -hf FerrellSyntheticIntelligence/Vitalis_LFM2.5_Cortex.GGUF:Q4_K_M
Install from WinGet (Windows)
winget install llama.cpp # Start a local OpenAI-compatible server with a web UI: llama serve -hf FerrellSyntheticIntelligence/Vitalis_LFM2.5_Cortex.GGUF:Q4_K_M # Run inference directly in the terminal: llama cli -hf FerrellSyntheticIntelligence/Vitalis_LFM2.5_Cortex.GGUF:Q4_K_M
Use pre-built binary
# Download pre-built binary from: # https://github.com/ggerganov/llama.cpp/releases # Start a local OpenAI-compatible server with a web UI: ./llama-server -hf FerrellSyntheticIntelligence/Vitalis_LFM2.5_Cortex.GGUF:Q4_K_M # Run inference directly in the terminal: ./llama-cli -hf FerrellSyntheticIntelligence/Vitalis_LFM2.5_Cortex.GGUF:Q4_K_M
Build from source code
git clone https://github.com/ggerganov/llama.cpp.git cd llama.cpp cmake -B build cmake --build build -j --target llama-server llama-cli # Start a local OpenAI-compatible server with a web UI: ./build/bin/llama-server -hf FerrellSyntheticIntelligence/Vitalis_LFM2.5_Cortex.GGUF:Q4_K_M # Run inference directly in the terminal: ./build/bin/llama-cli -hf FerrellSyntheticIntelligence/Vitalis_LFM2.5_Cortex.GGUF:Q4_K_M
Use Docker
docker model run hf.co/FerrellSyntheticIntelligence/Vitalis_LFM2.5_Cortex.GGUF:Q4_K_M
- LM Studio
- Jan
- Ollama
How to use FerrellSyntheticIntelligence/Vitalis_LFM2.5_Cortex.GGUF with Ollama:
ollama run hf.co/FerrellSyntheticIntelligence/Vitalis_LFM2.5_Cortex.GGUF:Q4_K_M
- Unsloth Studio
How to use FerrellSyntheticIntelligence/Vitalis_LFM2.5_Cortex.GGUF with Unsloth Studio:
Install Unsloth Studio (macOS, Linux, WSL)
curl -fsSL https://unsloth.ai/install.sh | sh # Run unsloth studio unsloth studio -H 0.0.0.0 -p 8888 # Then open http://localhost:8888 in your browser # Search for FerrellSyntheticIntelligence/Vitalis_LFM2.5_Cortex.GGUF to start chatting
Install Unsloth Studio (Windows)
irm https://unsloth.ai/install.ps1 | iex # Run unsloth studio unsloth studio -H 0.0.0.0 -p 8888 # Then open http://localhost:8888 in your browser # Search for FerrellSyntheticIntelligence/Vitalis_LFM2.5_Cortex.GGUF to start chatting
Using HuggingFace Spaces for Unsloth
# No setup required # Open https://huggingface.co/spaces/unsloth/studio in your browser # Search for FerrellSyntheticIntelligence/Vitalis_LFM2.5_Cortex.GGUF to start chatting
- Pi
How to use FerrellSyntheticIntelligence/Vitalis_LFM2.5_Cortex.GGUF with Pi:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf FerrellSyntheticIntelligence/Vitalis_LFM2.5_Cortex.GGUF:Q4_K_M
Configure the model in Pi
# Install Pi: npm install -g @mariozechner/pi-coding-agent # Add to ~/.pi/agent/models.json: { "providers": { "llama-cpp": { "baseUrl": "http://localhost:8080/v1", "api": "openai-completions", "apiKey": "none", "models": [ { "id": "FerrellSyntheticIntelligence/Vitalis_LFM2.5_Cortex.GGUF:Q4_K_M" } ] } } }Run Pi
# Start Pi in your project directory: pi
- Hermes Agent new
How to use FerrellSyntheticIntelligence/Vitalis_LFM2.5_Cortex.GGUF with Hermes Agent:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf FerrellSyntheticIntelligence/Vitalis_LFM2.5_Cortex.GGUF:Q4_K_M
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 FerrellSyntheticIntelligence/Vitalis_LFM2.5_Cortex.GGUF:Q4_K_M
Run Hermes
hermes
- Atomic Chat new
- OpenClaw new
How to use FerrellSyntheticIntelligence/Vitalis_LFM2.5_Cortex.GGUF with OpenClaw:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf FerrellSyntheticIntelligence/Vitalis_LFM2.5_Cortex.GGUF:Q4_K_M
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 "FerrellSyntheticIntelligence/Vitalis_LFM2.5_Cortex.GGUF:Q4_K_M" \ --custom-provider-id llama-cpp \ --custom-compatibility openai \ --custom-text-input \ --accept-risk \ --skip-health
Run OpenClaw
openclaw agent --local --agent main --message "Hello from Hugging Face"
- Docker Model Runner
How to use FerrellSyntheticIntelligence/Vitalis_LFM2.5_Cortex.GGUF with Docker Model Runner:
docker model run hf.co/FerrellSyntheticIntelligence/Vitalis_LFM2.5_Cortex.GGUF:Q4_K_M
- Lemonade
How to use FerrellSyntheticIntelligence/Vitalis_LFM2.5_Cortex.GGUF with Lemonade:
Pull the model
# Download Lemonade from https://lemonade-server.ai/ lemonade pull FerrellSyntheticIntelligence/Vitalis_LFM2.5_Cortex.GGUF:Q4_K_M
Run and chat with the model
lemonade run user.Vitalis_LFM2.5_Cortex.GGUF-Q4_K_M
List all available models
lemonade list
| """ | |
| CodeGenerator — Vitalis FSI | |
| Real domain-aware code. Not stubs. | |
| """ | |
| import os, time | |
| import numpy as np | |
| from vitalis_ide.math_core.kernel import VitalisKernel | |
| from src.hippocampus import Hippocampus | |
| from src.ide_kernel.kernel import SovereignKernel | |
| from src.ide_kernel.ledger import ProjectLedger | |
| REAL_CODE = { | |
| "raft": '''\ | |
| import time, random | |
| from enum import Enum | |
| class Role(Enum): | |
| FOLLOWER = "follower" | |
| CANDIDATE = "candidate" | |
| LEADER = "leader" | |
| class RaftNode: | |
| def __init__(self, node_id: str, peers: list): | |
| self.id = node_id | |
| self.peers = peers | |
| self.role = Role.FOLLOWER | |
| self.current_term = 0 | |
| self.voted_for = None | |
| self.log = [] | |
| self.votes = set() | |
| self._timeout = random.uniform(0.15, 0.30) | |
| self._last_hb = time.time() | |
| def tick(self): | |
| if self.role == Role.FOLLOWER: | |
| if time.time() - self._last_hb > self._timeout: | |
| self._start_election() | |
| elif self.role == Role.LEADER: | |
| self._last_hb = time.time() | |
| def _start_election(self): | |
| self.current_term += 1 | |
| self.role = Role.CANDIDATE | |
| self.voted_for = self.id | |
| self.votes = {self.id} | |
| def receive_vote(self, term: int, voter: str): | |
| if term == self.current_term and self.role == Role.CANDIDATE: | |
| self.votes.add(voter) | |
| if len(self.votes) > (len(self.peers) + 1) // 2: | |
| self.role = Role.LEADER | |
| def receive_heartbeat(self, term: int): | |
| if term >= self.current_term: | |
| self.current_term = term | |
| self.role = Role.FOLLOWER | |
| self._last_hb = time.time() | |
| def append(self, entry: dict) -> bool: | |
| if self.role != Role.LEADER: | |
| return False | |
| self.log.append({"term": self.current_term, "entry": entry}) | |
| return True | |
| def state(self): | |
| return {"id": self.id, "role": self.role.value, | |
| "term": self.current_term, "log": len(self.log)} | |
| ''', | |
| "thread_pool": '''\ | |
| import threading, queue, time | |
| class Worker(threading.Thread): | |
| def __init__(self, q): | |
| super().__init__(daemon=True) | |
| self._q = q | |
| self.executed = 0 | |
| def run(self): | |
| while True: | |
| try: | |
| fn, args, kwargs, holder = self._q.get(timeout=1) | |
| try: | |
| holder["result"] = fn(*args, **kwargs) | |
| except Exception as e: | |
| holder["error"] = e | |
| finally: | |
| self._q.task_done() | |
| self.executed += 1 | |
| except queue.Empty: | |
| continue | |
| class ThreadPool: | |
| def __init__(self, size: int = 4): | |
| self._q = queue.Queue() | |
| self._workers = [Worker(self._q) for _ in range(size)] | |
| for w in self._workers: w.start() | |
| def submit(self, fn, *args, **kwargs): | |
| holder = {} | |
| self._q.put((fn, args, kwargs, holder)) | |
| return holder | |
| def wait(self): self._q.join() | |
| def stats(self): | |
| return {"workers": len(self._workers), | |
| "executed": sum(w.executed for w in self._workers), | |
| "queued": self._q.qsize()} | |
| ''', | |
| "btree": '''\ | |
| class BTreeNode: | |
| def __init__(self, t, leaf=False): | |
| self.t = t | |
| self.leaf = leaf | |
| self.keys = [] | |
| self.children = [] | |
| class BTree: | |
| def __init__(self, t=3): | |
| self.root = BTreeNode(t, leaf=True) | |
| self.t = t | |
| def search(self, key, node=None): | |
| node = node or self.root | |
| i = 0 | |
| while i < len(node.keys) and key > node.keys[i]: i += 1 | |
| if i < len(node.keys) and key == node.keys[i]: return (node, i) | |
| if node.leaf: return None | |
| return self.search(key, node.children[i]) | |
| def insert(self, key): | |
| root = self.root | |
| if len(root.keys) == 2 * self.t - 1: | |
| new = BTreeNode(self.t) | |
| new.children.append(self.root) | |
| self._split(new, 0) | |
| self.root = new | |
| self._insert_nonfull(self.root, key) | |
| def _split(self, parent, i): | |
| t = self.t | |
| full = parent.children[i] | |
| new = BTreeNode(t, leaf=full.leaf) | |
| parent.keys.insert(i, full.keys[t-1]) | |
| parent.children.insert(i+1, new) | |
| new.keys = full.keys[t:] | |
| full.keys = full.keys[:t-1] | |
| if not full.leaf: | |
| new.children = full.children[t:] | |
| full.children = full.children[:t] | |
| def _insert_nonfull(self, node, key): | |
| i = len(node.keys) - 1 | |
| if node.leaf: | |
| node.keys.append(None) | |
| while i >= 0 and key < node.keys[i]: | |
| node.keys[i+1] = node.keys[i]; i -= 1 | |
| node.keys[i+1] = key | |
| else: | |
| while i >= 0 and key < node.keys[i]: i -= 1 | |
| i += 1 | |
| if len(node.children[i].keys) == 2*self.t-1: | |
| self._split(node, i) | |
| if key > node.keys[i]: i += 1 | |
| self._insert_nonfull(node.children[i], key) | |
| ''', | |
| "cache": '''\ | |
| import time | |
| from collections import OrderedDict | |
| class LRUCache: | |
| def __init__(self, capacity=256, ttl=300.0): | |
| self.capacity = capacity | |
| self.ttl = ttl | |
| self._cache = OrderedDict() | |
| self._times = {} | |
| self.hits = self.misses = 0 | |
| def get(self, key): | |
| if key not in self._cache: | |
| self.misses += 1; return None | |
| if time.time() - self._times[key] > self.ttl: | |
| del self._cache[key]; del self._times[key] | |
| self.misses += 1; return None | |
| self._cache.move_to_end(key) | |
| self.hits += 1 | |
| return self._cache[key] | |
| def put(self, key, value): | |
| if key in self._cache: self._cache.move_to_end(key) | |
| self._cache[key] = value | |
| self._times[key] = time.time() | |
| if len(self._cache) > self.capacity: | |
| k, _ = self._cache.popitem(last=False) | |
| self._times.pop(k, None) | |
| def hit_rate(self): | |
| t = self.hits + self.misses | |
| return self.hits / t if t > 0 else 0.0 | |
| def stats(self): | |
| return {"size": len(self._cache), "hit_rate": round(self.hit_rate(), 3)} | |
| ''', | |
| "event_bus": '''\ | |
| import threading | |
| from collections import defaultdict | |
| class Event: | |
| def __init__(self, topic, payload=None): | |
| self.topic = topic | |
| self.payload = payload | |
| import time; self.ts = time.time() | |
| class EventBus: | |
| def __init__(self): | |
| self._subs = defaultdict(list) | |
| self._lock = threading.Lock() | |
| self._history = [] | |
| def subscribe(self, topic, handler): | |
| with self._lock: self._subs[topic].append(handler) | |
| def publish(self, topic, payload=None): | |
| event = Event(topic, payload) | |
| with self._lock: | |
| handlers = list(self._subs.get(topic, []) + self._subs.get("*", [])) | |
| self._history.append(event) | |
| if len(self._history) > 500: self._history.pop(0) | |
| for h in handlers: | |
| try: h(event) | |
| except Exception as e: | |
| self.publish("error", {"error": str(e)}) | |
| def stats(self): | |
| return {"topics": len(self._subs), "history": len(self._history)} | |
| ''', | |
| "scheduler": '''\ | |
| import heapq, time | |
| from dataclasses import dataclass, field | |
| @dataclass(order=True) | |
| class Task: | |
| priority: int | |
| name: str = field(compare=False) | |
| payload: object = field(compare=False, default=None) | |
| class ProcessScheduler: | |
| def __init__(self): | |
| self._queue = [] | |
| self._running = {} | |
| self._completed = [] | |
| def submit(self, name, payload=None, priority=5): | |
| t = Task(priority, name, payload) | |
| heapq.heappush(self._queue, t) | |
| return t | |
| def tick(self): | |
| if not self._queue: return None | |
| t = heapq.heappop(self._queue) | |
| self._running[t.name] = {"task": t, "started": time.time()} | |
| return t | |
| def complete(self, name): | |
| e = self._running.pop(name, None) | |
| if e: e["finished"] = time.time(); self._completed.append(e) | |
| def stats(self): | |
| return {"queued": len(self._queue), "running": len(self._running), | |
| "completed": len(self._completed)} | |
| ''', | |
| "optimizer": '''\ | |
| import numpy as np | |
| class AdamOptimizer: | |
| def __init__(self, lr=0.001, beta1=0.9, beta2=0.999, eps=1e-8): | |
| self.lr=lr; self.beta1=beta1; self.beta2=beta2; self.eps=eps | |
| self._m={}; self._v={}; self._t=0 | |
| def step(self, params, grads): | |
| self._t += 1 | |
| out = {} | |
| for k in params: | |
| if k not in self._m: | |
| self._m[k] = np.zeros_like(params[k]) | |
| self._v[k] = np.zeros_like(params[k]) | |
| self._m[k] = self.beta1*self._m[k] + (1-self.beta1)*grads[k] | |
| self._v[k] = self.beta2*self._v[k] + (1-self.beta2)*grads[k]**2 | |
| mh = self._m[k]/(1-self.beta1**self._t) | |
| vh = self._v[k]/(1-self.beta2**self._t) | |
| out[k] = params[k] - self.lr*mh/(np.sqrt(vh)+self.eps) | |
| return out | |
| ''', | |
| } | |
| def _pick_code(intent: str, name: str, cycle: int, | |
| confidence: float, mode: str) -> str: | |
| combined = (intent + " " + name).lower() | |
| for key, code in REAL_CODE.items(): | |
| if key in combined: | |
| header = (f"# Vitalis FSI — {intent}\n" | |
| f"# Mode: {mode} | Cycle: {cycle} | Confidence: {confidence:.3f}\n\n") | |
| return header + code | |
| # Generic but still real | |
| cname = "".join(w.capitalize() for w in name.split("_")[:3]) | |
| return f'''\ | |
| # Vitalis FSI — {intent} | |
| # Mode: {mode} | Cycle: {cycle} | Confidence: {confidence:.3f} | |
| import time | |
| class {cname}: | |
| """Sovereign module — {intent}""" | |
| def __init__(self): | |
| self.state = {{}} | |
| self.created = time.time() | |
| self.cycles = 0 | |
| def process(self, input_data): | |
| self.cycles += 1 | |
| if isinstance(input_data, dict): | |
| result = {{k: v for k, v in input_data.items()}} | |
| else: | |
| result = {{"input": str(input_data)[:200], "cycle": self.cycles}} | |
| self.state["last"] = result | |
| return result | |
| def report(self): | |
| return {{"cycles": self.cycles, "module": "{name}"}} | |
| ''' | |
| class CodeGenerator: | |
| def __init__(self): | |
| self.kernel = VitalisKernel() | |
| self.hipp = Hippocampus() | |
| self.sk = SovereignKernel(workspace_path=os.path.expanduser("~/.vitalis_workspace")) | |
| self.ledger = ProjectLedger(workspace_path=os.path.expanduser("~/.vitalis_workspace")) | |
| self._cycle = 0 | |
| def generate(self, decision: dict) -> dict: | |
| mode = decision.get("mode", "EXECUTION") | |
| confidence = decision.get("confidence", 0.5) | |
| intent = decision.get("intent", "module") | |
| cycle = decision.get("cycle", self._cycle) | |
| self._cycle += 1 | |
| name = "_".join(intent.split()[:3]).lower() | |
| name = "".join(c if c.isalnum() or c == "_" else "_" for c in name) | |
| code = _pick_code(intent, name, cycle, confidence, mode) | |
| result = self.sk.write_module( | |
| name=name, code=code, mode=mode, | |
| cycle=cycle, confidence=confidence) | |
| self.ledger.imprint( | |
| f"generate:{intent.split()[0] if intent else 'mod'}", | |
| {"cycle": cycle, "name": name, "confidence": confidence}) | |
| return {"name": name, "path": result.get("path",""), | |
| "lines": len(code.splitlines()), | |
| "confidence": confidence, "mode": mode} | |