Instructions to use raulvidis/Laguna-S-2.1-ROCmFP4-STRIX-GGUF with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- llama.cpp
How to use raulvidis/Laguna-S-2.1-ROCmFP4-STRIX-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 raulvidis/Laguna-S-2.1-ROCmFP4-STRIX-GGUF:Q4_0_ROCMFP # Run inference directly in the terminal: llama cli -hf raulvidis/Laguna-S-2.1-ROCmFP4-STRIX-GGUF:Q4_0_ROCMFP
Install from WinGet (Windows)
winget install llama.cpp # Start a local OpenAI-compatible server with a web UI: llama serve -hf raulvidis/Laguna-S-2.1-ROCmFP4-STRIX-GGUF:Q4_0_ROCMFP # Run inference directly in the terminal: llama cli -hf raulvidis/Laguna-S-2.1-ROCmFP4-STRIX-GGUF:Q4_0_ROCMFP
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 raulvidis/Laguna-S-2.1-ROCmFP4-STRIX-GGUF:Q4_0_ROCMFP # Run inference directly in the terminal: ./llama-cli -hf raulvidis/Laguna-S-2.1-ROCmFP4-STRIX-GGUF:Q4_0_ROCMFP
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 raulvidis/Laguna-S-2.1-ROCmFP4-STRIX-GGUF:Q4_0_ROCMFP # Run inference directly in the terminal: ./build/bin/llama-cli -hf raulvidis/Laguna-S-2.1-ROCmFP4-STRIX-GGUF:Q4_0_ROCMFP
Use Docker
docker model run hf.co/raulvidis/Laguna-S-2.1-ROCmFP4-STRIX-GGUF:Q4_0_ROCMFP
- LM Studio
- Jan
- vLLM
How to use raulvidis/Laguna-S-2.1-ROCmFP4-STRIX-GGUF with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "raulvidis/Laguna-S-2.1-ROCmFP4-STRIX-GGUF" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "raulvidis/Laguna-S-2.1-ROCmFP4-STRIX-GGUF", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/raulvidis/Laguna-S-2.1-ROCmFP4-STRIX-GGUF:Q4_0_ROCMFP
- Ollama
How to use raulvidis/Laguna-S-2.1-ROCmFP4-STRIX-GGUF with Ollama:
ollama run hf.co/raulvidis/Laguna-S-2.1-ROCmFP4-STRIX-GGUF:Q4_0_ROCMFP
- Unsloth Studio
How to use raulvidis/Laguna-S-2.1-ROCmFP4-STRIX-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 raulvidis/Laguna-S-2.1-ROCmFP4-STRIX-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 raulvidis/Laguna-S-2.1-ROCmFP4-STRIX-GGUF to start chatting
Using HuggingFace Spaces for Unsloth
# No setup required # Open https://huggingface.co/spaces/unsloth/studio in your browser # Search for raulvidis/Laguna-S-2.1-ROCmFP4-STRIX-GGUF to start chatting
- Pi
How to use raulvidis/Laguna-S-2.1-ROCmFP4-STRIX-GGUF with Pi:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf raulvidis/Laguna-S-2.1-ROCmFP4-STRIX-GGUF:Q4_0_ROCMFP
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": "raulvidis/Laguna-S-2.1-ROCmFP4-STRIX-GGUF:Q4_0_ROCMFP" } ] } } }Run Pi
# Start Pi in your project directory: pi
- Hermes Agent new
How to use raulvidis/Laguna-S-2.1-ROCmFP4-STRIX-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 raulvidis/Laguna-S-2.1-ROCmFP4-STRIX-GGUF:Q4_0_ROCMFP
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 raulvidis/Laguna-S-2.1-ROCmFP4-STRIX-GGUF:Q4_0_ROCMFP
Run Hermes
hermes
- Atomic Chat new
- OpenClaw new
How to use raulvidis/Laguna-S-2.1-ROCmFP4-STRIX-GGUF with OpenClaw:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf raulvidis/Laguna-S-2.1-ROCmFP4-STRIX-GGUF:Q4_0_ROCMFP
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 "raulvidis/Laguna-S-2.1-ROCmFP4-STRIX-GGUF:Q4_0_ROCMFP" \ --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 raulvidis/Laguna-S-2.1-ROCmFP4-STRIX-GGUF with Docker Model Runner:
docker model run hf.co/raulvidis/Laguna-S-2.1-ROCmFP4-STRIX-GGUF:Q4_0_ROCMFP
- Lemonade
How to use raulvidis/Laguna-S-2.1-ROCmFP4-STRIX-GGUF with Lemonade:
Pull the model
# Download Lemonade from https://lemonade-server.ai/ lemonade pull raulvidis/Laguna-S-2.1-ROCmFP4-STRIX-GGUF:Q4_0_ROCMFP
Run and chat with the model
lemonade run user.Laguna-S-2.1-ROCmFP4-STRIX-GGUF-Q4_0_ROCMFP
List all available models
lemonade list
Laguna-S-2.1 β ROCmFP4_STRIX (GGUF), DFlash-ready
A 4-bit ROCmFP4_STRIX quant of poolside/Laguna-S-2.1 (118B-A8B), built and measured on an AMD Ryzen AI Max+ 395 (Strix Halo, gfx1151, 128 GB unified memory).
58.4 GiB β Laguna-S-2.1-Q4_0_ROCMFP4_STRIX.gguf β 4.27 achieved bpw
Companion to raulvidis/Laguna-S-2.1-ROCmFP4-COHERENT-GGUF. Prefer this one: identical measured quality, 3.4 GiB smaller, slightly faster.
β οΈ Requires a llama.cpp fork β stock llama.cpp cannot read this file
ROCmFP4 uses GGUF tensor types 100/101, unknown to upstream llama.cpp. You need charlie12345/ROCmFPX.
Serving (no speculation)
env HSA_OVERRIDE_GFX_VERSION=11.5.1 GGML_HIP_ENABLE_UNIFIED_MEMORY=1 \
llama-server -m Laguna-S-2.1-Q4_0_ROCMFP4_STRIX.gguf \
-ngl 999 -fa on -c 32768 -dev ROCm0 --jinja --metrics \
--chat-template-file chat_template.jinja \
--reasoning-budget 0
Use the chat template from the base repo's auxiliary files. Note yarn_attn_factor must be 1.0 (poolside's value) β unsloth-lineage Laguna GGUFs carry 1.4852, which is wrong; this build has the correct value baked in.
Serving with DFlash speculative decoding (~+25%, up to 2.0Γ at long context)
DFlash needs a separate draft model, which poolside publishes β it is not included here and should not be re-hosted:
poolside/Laguna-S-2.1-GGUF β laguna-s-2.1-DFlash-BF16.gguf (2.1 GB)
env HSA_OVERRIDE_GFX_VERSION=11.5.1 GGML_HIP_ENABLE_UNIFIED_MEMORY=1 \
LLAMA_DFLASH_TARGET_LAYER_OFFSET=-1 \
llama-server -m Laguna-S-2.1-Q4_0_ROCMFP4_STRIX.gguf \
-md laguna-s-2.1-DFlash-BF16.gguf \
--spec-type draft-dflash --spec-draft-n-max 4 \
-ngl 999 -fa on -c 32768 -dev ROCm0 --jinja --metrics \
--chat-template-file chat_template.jinja --reasoning-budget 0
β οΈ DFlash on the ROCmFPX fork needs two patches that are NOT merged yet
As of 2026-07-31, the fork loads the DFlash draft but produces useless acceptance without these:
- ROCmFPX#47 β
laguna.cppmust publisht_layer_inp, or the first request aborts onGGML_ASSERT(t_layer_inp[il] != nullptr). - ROCmFPX#48 β load and apply
enc.aux_norm(+attn_gate). Without the norm actually applied in the encoder graph, the drafter fuses six unnormalized feature blocks: output is still correct (the target verifies every token) but acceptance collapses and speculation becomes a net slowdown.
Alternatively use poolside's own fork, poolsideai/llama.cpp branch laguna, which implements DFlash properly β but it cannot read ROCmFP4 tensors, so you'd need a standard-quant GGUF instead of this one.
--spec-draft-n-max: use 4, not the 15 from the model card
Measured here (400-token greedy, two samples per arm):
--spec-draft-n-max |
decode t/s | mean acceptance length |
|---|---|---|
| none | 34.8 / 35.5 | β |
| 6 | 37.6 / 38.5 | 3.75 / 3.72 |
| 5 | 35.8 / 39.0 | 3.18 / 3.41 |
| 4 | 41.5 / 43.9 | 3.43 / 3.34 |
On COHERENT the same sweep put n-max 15 at 15.5 t/s β worse than no draft at all. This target's batch throughput is only ~2β3Γ its decode, so verifying a 16-token block costs more than sequentially decoding the ~4 tokens that get accepted. Tune n-max just above the observed mean acceptance length, and ignore the aggregate acceptance rate β at n-max 15 it reads 0.198 while position-1 acceptance is a healthy 0.716.
Speedup grows with context (measured on the COHERENT sibling, same drafter): 1.16Γ at 60 tokens, 1.59Γ at 7.2k, 2.01Γ at 21.5k (20.9 β 42.1 t/s) β DFlash largely cancels the KV-bandwidth decay. Prefill cost is β4 to β5% at depth but β32% on a 60-token prompt, since the draft pass is a fixed cost per prefill.
Measured quality
--parallel 1, greedy, thinking off (probe-verified), single runs.
| benchmark | STRIX (this) | COHERENT (sibling) |
|---|---|---|
| GSM8K (n=500, 5-shot) | 0.924 Β±0.012 | 0.924 Β±0.012 |
| HumanEval (pass@1, 164) | 0.927 | not run |
| HumanEval+ (pass@1, 164) | 0.890 | not run |
The two quant recipes are indistinguishable on quality β the choice is on size and speed, where STRIX wins. (For reference, on a different model, KAT-Coder-V2.5, the same STRIX-vs-COHERENT comparison showed a large gap; that does not generalise to Laguna.)
Caveats
- DFlash makes the lane non-deterministic. Greedy output is not bit-identical to no-draft (batch-shape-dependent FP rounding changes reduction order and can flip near-argmax ties), and repeated runs differ from each other. Measured swing of Β±3 points on HumanEval+ across identical runs. Turn DFlash off for any quality measurement; the coding numbers above were taken with it on and carry that noise.
- GSM8K/HumanEval do not measure what this model is for. Laguna is an agentic SWE model whose published strengths are repo-level, tool-using, multi-turn (Terminal-Bench, SWE-Bench, DeepSWE, Toolathlon). Single-function completion understates it; don't rank it against generalist models on these tasks.
- Thinking-off numbers only; reasoning-on was not benchmarked.
- Memory: budget on peak RSS, not file size. With the fleet quiet this loads in ~59 GB, but prompt-cache RAM and context checkpoints add several GB under concurrent load.
--cache-ram 1024 --ctx-checkpoints 4keeps it bounded.
How it was built
Quantized from a local BF16 conversion of the base model using the base model's own imatrix (poolside-aux/laguna-s-2.1.imatrix) with the fork's llama-quantize at Q4_0_ROCMFP4_STRIX. The recipe is selective, not uniform: attn_k/attn_v get the quality layout, attn_q/attn_output/ffn_*_exps get the fast layout, token_embd gets Q6_K.
Credit to poolside for the base model, the imatrix, and the DFlash drafter; and to the ROCmFPX fork for the FP4 kernels.
- Downloads last month
- 66
4-bit
Model tree for raulvidis/Laguna-S-2.1-ROCmFP4-STRIX-GGUF
Base model
poolside/Laguna-S-2.1