Dedicated Endpoints

Run this model inference on single tenant GPU with unmatched speed and reliability at scale.

Learn more

Get help setting up a custom Dedicated Endpoints.

Talk with our engineer to get a quote for reserved GPU instances with discounts.

README

License: apache-2.0

Training

keyvalue
BaseQwen/Qwen3.5-4B (chat)
Strategyfull bf16 LoRA (no quantization)
LoRA rank128
LoRA alpha256
LR1e-5 (cosine schedule)
Epochs1
Steps1275
Seq len16384 (smart-truncate ≤16K)
Eff batch8
OptimizerAdamW fused
Losschunked_nll (TRL)
KernelsLiger rms_norm + swiglu + fused_linear_cross_entropy
Tokens seen~129M train + ~102M eval
Hardware1× RTX A6000 (46 GB)
Wall clock~22 h

Eval (held-out 3% Soyuz-clean split = 631 samples)

Stepeval_losstoken_accentropy
5000.25930.93310.2613
10000.24760.93590.2492
1275 (final)0.24700.93600.2490

Smooth monotone improvement, no overfit signal.

Source mixture (Soyuz-sft / clean/*)

11 streams, kept after smart-truncate to ≤16K tokens:

  • alienkevin_glm-5
  • alienkevin_minimax-m2.5
  • deepswe_kimi-k2_2.8k + deepswe_kimi-k2_rs
  • hermes_agent_reasoning
  • ii_agent_gaia
  • ii_swebench-pro_claude-4.5 + ii_swebench-pro_gpt-5-codex
  • jetbrains_swe-bench-test + jetbrains_swesmith
  • nebius_swe-rebench

Total: 20,395 train + 631 eval after truncate.

Usage

PEFT

python

from peft import PeftModel
from transformers import AutoModelForCausalLM, AutoTokenizer
import torch
base = AutoModelForCausalLM.from_pretrained("Qwen/Qwen3.5-4B", dtype=torch.bfloat16, device_map="cuda")
model = PeftModel.from_pretrained(base, "AlexWortega/qwen35-4b-soyuz")
tok = AutoTokenizer.from_pretrained("AlexWortega/qwen35-4b-soyuz")

sglang

bash

python -m sglang.launch_server --model-path Qwen/Qwen3.5-4B \
--lora-paths soyuz=AlexWortega/qwen35-4b-soyuz \
--tool-call-parser hermes

Related

AssetLink
Merged bf16qwen35-4b-soyuz-merged
Training dataSoyuz-sft
Sibling: + ClawGym RIFTqwen35-4b-clawd-rift

W&B: https://wandb.ai/alexwortega/vae-llm-agents

GGUF quantizations are not provided: Qwen3.5 is a hybrid linear+full attention architecture (qwen3_5_text with linear_attention layers + MTP head); upstream llama.cpp does not yet support converting this model type.


Downstream evaluations

Served via sglang (base Qwen/Qwen3.5-4B + this LoRA via --lora-paths) on a single A6000.

terminal-bench-2 — 17-task solvable subset

Subset = union of all tasks ever passed by any sibling Qwen3.5-4B variant (ckpt600, clawd-100, clawd-200, clawd-rft, clawd-rift).

PassRate
soyuz (this, SFT-only)5 / 1729.4 %
clawd-rift (3-stage: SFT → ClawGym → RIFT)4 / 1723.5 %

Soyuz passes: git-leak-recovery, kv-store-grpc, modernize-scientific-stack, openssl-selfsigned-cert, sqlite-with-gcov. Of those, 3 (git-leak-recovery, kv-store-grpc, sqlite-with-gcov) are new passes vs clawd-rift on this subset.

Scaffold: Pi-style terminus_runner, T=0.4, max-turns=30, max-tokens=4096, parallel 2.

claw-eval — general split, Pass^1 (partial, in progress)

Snapshot at 30 / 162 tasks graded:

MetricValue
Pass^19 / 30 (30 %)
Mean task_score0.564

Judge: google/gemini-3-flash-preview via OpenRouter. Agent endpoint: local sglang.

Top passes include C04 image_processing, C08 personal_finance, C10 labor_law, C13 psychology_statistics, C16 hr_workforce_planning, C20 mental_health_social_work. Full 162-task results will be appended when the sweep finishes.


HermesAgent-20 (executable agent benchmark)

HermesAgent-20 — 20 real-Hermes-runtime scenarios graded by deterministic artifacts (files / memory / cron / browser traces / approval logs). Not mocked tool-call matching.

Soyuz served via sglang Qwen/Qwen3.5-4B + this LoRA --lora-paths --tool-call-parser hermes.

MetricSoyuz
Pass4 / 20
Average score (0–100)61.9

Confirmed passes:

  • HA-03 Reject Malicious Memory Injection — 100
  • HA-06 Background Process Management — 100
  • HA-09 Create A Skill From Completed Work — 100
  • HA-20 Clarify An Ambiguous Destructive Request — 100

Partial: HA-19 (35), HA-16 (30), HA-10 (30). Five scenarios (HA-11/12/13/17/18) crashed under parallel server load — true Pass count is ≥ 4.

Crucial finding: without --tool-call-parser hermes Soyuz scored 1/20 avg=17 (only the refuse scenario, since the runtime didn't see any tool calls). With Hermes parser routing <tool_call>{...}</tool_call> → OpenAI tool_calls, score jumped to 4/20 avg=61.9 (~4× more passes, 3.6× higher average).


Abliterated variants (weight-orthogonalized)

Two post-hoc model variants built from soyuz's own pass-vs-fail trajectory contrast (no training, only weight orthogonalisation):

Modeltbench-17HA20
soyuz (this)5/174/20
soyuz-abliterated-v2 (single-L, s=0.5)3/178/20 ↑↑
soyuz-abliterated-v3-multi (per-layer, s=0.5)2/176/20 ↑

v2 doubles HermesAgent-20 score by removing a single residual-stream "fail-mode" direction (L=16, AUC 0.928 over 60 PASS vs 60 Gemini-cleaned FAIL trajectories). v3 picks up disjoint memory-tooling tasks (HA-01/02). See respective repos for the recipe.

Model provider

AlexWortega

AlexWortega

Model tree

Base

Qwen/Qwen3.5-4B

Adapter

this model

Modalities

Input

Video, Text, Image

Output

Text

Pricing

Dedicated Endpoints

View details

Supported Functionality

Model APIs

Dedicated Endpoints

Container

More information

Explore FriendliAI today