Try it
ollama run qaztech-platform/azure-engineer
from transformers import AutoModelForCausalLM, AutoTokenizerm = "qaztech-platform/QAZTECH-Azure-Engineer-8B"tok = AutoTokenizer.from_pretrained(m)model = AutoModelForCausalLM.from_pretrained(m, torch_dtype="auto", device_map="auto")msgs = [{"role": "system", "content": "You are QAZTECH Azure Engineer, an assistant for Azure engineers. Reply in the user's language; keep code, commands and code comments in English."}, {"role": "user", "content": "Migrate this ARM template to Bicep: ..."}]ids = tok.apply_chat_template(msgs, add_generation_prompt=True, enable_thinking=False, return_tensors="pt").to(model.device)print(tok.decode(model.generate(ids, max_new_tokens=1500)[0][ids.shape[1]:], skip_special_tokens=True))
Use enable_thinking=False: the model was trained without reasoning traces.
Evaluation
200 held-out examples (not used in training), same system prompt, temperature 0.3. Code blocks are checked with real tools: Azure CLI 2.89.1 (--help for every command and flag), Az PowerShell modules (cmdlets and parameters), Bicep CLI 0.48.1 (bicep build), Terraform 1.16.6 with azurerm 5.10.0 and azapi 2.13.0 (terraform validate).
Table with columns: Model, Answer in the right language, Reasoning-trace leaks, Answers with all code valid, Code blocks with errors| Model | Answer in the right language | Reasoning-trace leaks | Answers with all code valid | Code blocks with errors |
|---|
| QAZTECH Azure Engineer 8B | 99% | 0 | 76% | 21% |
| Qwen3-8B (base, same prompt) | 98% | 0 | 65% | 22% |
The held-out set comes from the same distribution as the training data, so these numbers measure in-distribution quality. Tool checks verify that commands, flags, parameters, resource types and properties exist; they do not verify values (for example VM size names).
Training
- Base: Qwen/Qwen3-8B (Apache-2.0). LoRA r=16, alpha=32, dropout 0.05, all linear layers; 3 epochs, lr 1e-4 cosine, effective batch 32, max length 3,072; 1x A100 40 GB; merged into bf16 weights.
- Held-out eval loss 0.461, token accuracy 0.865.
- Data: 4,716 synthetic examples (4,516 train, 200 held out) generated from code samples in Microsoft Learn documentation (CC BY 4.0) by teacher models Qwen3-30B-A3B-Instruct-2507 (4,118 examples, run locally) and MiniMax M3.1-Flash via Ollama Cloud (598 examples). Terraform prompts included the authoritative azurerm 5.10 resource schema.
- Every code block was checked with the tools listed above; failing examples were repaired with tool-grounded hints (913) or dropped. Language match, leak and duplicate filters applied.
- Modes: troubleshoot 951, finops 868, fix 824, write 726, explain 717, convert 353, migrate 277. Languages: ar 996, ru 995, es 987, en 939, kk 799.
Limitations
- Facts can be wrong: invented flags or parameters and wrong values (for example
B2s instead of Standard_B2s) were observed. Verify every command against Microsoft Learn and run what-if / terraform plan before applying.
- Terraform (54 examples) and Bicep (226) are less represented than Azure CLI, PowerShell and ARM.
- Kazakh and Arabic output has not been reviewed by native speakers.
- Not affiliated with or endorsed by Microsoft or HashiCorp.
Licence and attribution
Weights: Apache-2.0. Base model: Qwen3-8B by Alibaba Cloud (Apache-2.0). Teacher models: Qwen3-30B-A3B-Instruct-2507 (Apache-2.0) and MiniMax M3.1-Flash (accessed through Ollama Cloud). Source material: Microsoft Learn documentation, CC BY 4.0. Microsoft and Azure are trademarks of the Microsoft group of companies; Terraform is a trademark of HashiCorp.
Part of the synthetic training data (598 examples) was generated with MiniMax M3.1-Flash via the Ollama Cloud API during a developer trial. No MiniMax weights were used or modified.
Trademark
QAZTECH is a registered trade mark of AISC Technologies LTD in the United Kingdom (UK IPO nos. UK00004263700, UK00004317681, UK00004373195). The Apache-2.0 licence does not grant rights to use the QAZTECH name or logo (section 6). Derivative models must not use "QAZTECH" in their name; describe them as "based on QAZTECH Azure Engineer".