Kopro AI
Two models in one generation. Kopro 4.0 Pro writes and fixes code and works as an agent. Kopro 4.0 Flash is a fast everyday assistant. Both speak English and Russian.
Kopro 4.0 is a two-model generation. Pro is fine-tuned from Qwen3-Coder-30B-A3B, a mixture-of-experts coding model. Flash is fine-tuned from Qwen3-14B with thinking turned off, so it answers right away.
Both are quantized to 4-bit (Q4_K_M) and run on a single 24 GB GPU. Pro activates only about 3.3 billion of its 30.5 billion parameters for each token, which is why the bigger model is also the faster one.
| Base model | Qwen3-Coder-30B-A3B |
| Architecture | MoE · 128 experts, 8 active |
| Parameters | 30.5B / 3.3B |
| Transformer blocks | 48 |
| Attention heads (Q / KV) | 32 / 4 |
| Native context | 262,144 |
| Tool calling | Yes |
| Quantization | Q4_K_M · 18.6 GB |
| Base model | Qwen3-14B |
| Architecture | Dense · thinking off |
| Parameters | 14.8B |
| Transformer blocks | 40 |
| Attention heads (Q / KV) | 40 / 8 |
| Native context | 32,768 |
| Tool calling | Not tuned |
| Quantization | Q4_K_M · 9.0 GB |
Each model got its own dataset, split almost evenly between English and Russian. We trained LoRA adapters (rank 16) for two epochs, with the loss on assistant turns only. Validation loss stayed flat between epochs, so neither model overfit.
| Kopro 4.0 Pro | Kopro 4.0 Flash | |
|---|---|---|
| Training conversations | 770 | 1,380 |
| English / Russian | 54% / 46% | 50% / 50% |
| Multi-turn conversations | 47 | 92 |
| Code (short + long) | 234 | 137 |
| Agent trajectories with tool calls | 30 | 0 |
| Testing and debugging | 46 | 31 |
| Everyday advice, science, tech, cooking | 119 | 510 |
| Validation loss (epoch 1 → 2) | 1.090 → 1.095 | 1.567 → 1.559 |
| Training time, 1× RTX PRO 6000 | 12 min | 3.5 min |
We ran both models through the same 14 evaluations shown on our home page: 11 auto-graded questions each, temperature 0.
Single replies from the deployed models, with only the system prompt that names the model.
from datetime import datetime
from fastapi import FastAPI
from pydantic import BaseModel
app = FastAPI()
class TimeResponse(BaseModel):
timestamp: str
@app.get("/time", response_model=TimeResponse)
async def get_time():
return TimeResponse(timestamp=datetime.utcnow().isoformat() + "Z")
def test_get_time():
from fastapi.testclient import TestClient
client = TestClient(app)
response = client.get("/time")
assert response.status_code == 200
data = response.json()
assert "timestamp" in data
assert data["timestamp"].endswith("Z")Running pytest will execute this test automatically. Do not forget to install `pytest` and `httpx` to run the test client without errors.Measured on a single 24 GB GPU slice with a warm model. Pro is faster than Flash because only about 3.3B of its parameters work on each token. Earlier Kopro models were measured on our CPU servers, so they are not on this chart.
Both models are published as GGUF files with their LoRA adapters. Run them locally with Ollama or llama.cpp.
ollama run hf.co/Kvikontent/kopro-4.0-pro-GGUF:Q4_K_M ollama run hf.co/Kvikontent/kopro-4.0-flash-GGUF:Q4_K_M