How to use from
Ollama
ollama run hf.co/jsantillana/vectrayx-vision:Q4_K_M
Quick Links

VectraYX Vision

VectraYX Vision is a Vision-Language Model (VLM) for technical cybersecurity in Spanish, fine-tuned from Gemma 4 E4B-it using LoRA on a 99k-example multimodal corpus.

Quick Start

Ollama

git clone https://huggingface.co/jsantillana/vectrayx-vision
cd vectrayx-vision
ollama create vectrayx-vision -f Modelfile
ollama run vectrayx-vision "¿Qué es un CVE?"

Text-only chat is verified working this way (coherent Spanish output through ollama run//api/chat). Image understanding through Ollama is not yet verified -- the multimodal projector loads (FROM used twice in the Modelfile: once for the main model, once for vectrayx-vision-mmproj-f16.gguf) and Ollama does encode attached images into extra prompt tokens, but the model responded "no puedo ver ninguna imagen" on a test image instead of reading it, most likely because this model's custom Gemma-4-style chat template places the <|image|> marker in a way Ollama's native image-attachment path doesn't reproduce correctly. For image input today, use llama.cpp directly with --jinja (see below) rather than Ollama. This will be updated once resolved.

llama.cpp / LM Studio

Download vectrayx-vision-Q4_K_M.gguf and vectrayx-vision-mmproj-f16.gguf from this repo (~5.3 GB + mmproj). Use --jinja so llama.cpp renders this model's custom chat template correctly (verified working, including image input):

llama-cli -m vectrayx-vision-Q4_K_M.gguf --mmproj vectrayx-vision-mmproj-f16.gguf \
  --jinja -p "Analyze this CVE: CVE-2024-1234" -n 512

Transformers

from transformers import AutoProcessor, AutoModelForImageTextToText
import torch

model = AutoModelForImageTextToText.from_pretrained(
    "jsantillana/vectrayx-vision",
    torch_dtype=torch.bfloat16,
    device_map="auto"
)
processor = AutoProcessor.from_pretrained("jsantillana/vectrayx-vision")

Model Details

Field Value
Base model google/gemma-4-E4B-it
Architecture Gemma4ForConditionalGeneration
Parameters ~4B
Context length 131,072 tokens
Fine-tuning LoRA r=32, alpha=64, 3 epochs
Languages Spanish (LATAM), English
Modalities Text + Vision

Training Data

99,175 training records in {messages, image_path} format:

Split Records Description
Vision QA 76,655 (synthetic PIL image, question/answer) pairs across 10 domains
Nano SFT replay 22,520 Text-only cybersec ES — prevents catastrophic forgetting

Vision QA Domains

Domain Records
offense (exploits, web, payloads) 31,521
re (reverse engineering, IDA, Ghidra) 15,788
soc (SIEM, logs, threat intel) 15,303
asm (x86/x64, NASM, kernel) 5,730
forensics (Volatility, DFIR) 2,254
arch (RISC-V, computer architecture) 1,973
icpc (Codeforces, algorithms) 1,302
latam (ES tech blogs, OWASP) 1,264
debugging (x64dbg, WinDbg) 927
crypto (applied cryptography) 593

Images are synthetic PIL renders (not real screenshots) using 19 templates: ida_disasm, ghidra_decomp, gdb_session, siem_dashboard, wireshark_packets, cve_card, terminal_ansi, and more.

Benchmarks

Evaluated with the VectraYX-Vision harness (SageMaker ml.g5.xlarge):

Benchmark Score Description
B1 CVE-QA 0.820 CVE analysis in Spanish
B2 Classification 0.420 Threat classification
B3 Commands 0.590 Technical command generation
B4 Tool-use 0.553 Native function calling
B5 Conversational ES 1.000 Spanish conversational fluency
LATAM 0.947 Regional LATAM Spanish (slang, acronyms, code-switching)

Files

File Size Description
model-0000{1-4}-of-00004.safetensors ~15 GB total Full bf16 weights
vectrayx-vision-Q4_K_M.gguf 5.3 GB Q4_K_M quantized for local inference

About VectraYX

VectraYX is an open-weights model family optimized for Latin American Spanish, focused on technical cybersecurity and threat analysis.

  • VectraYX Nano — 130M text model
  • VectraYX Vision — this model (4B, multimodal)
Downloads last month
142
Safetensors
Model size
8B params
Tensor type
BF16
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for jsantillana/vectrayx-vision

Adapter
(345)
this model