--- license: apache-2.0 base_model: Qwen/Qwen3-8B base_model_relation: finetune language: - en - ru - kk - ar - es pipeline_tag: text-generation library_name: transformers tags: - azure - infrastructure-as-code - bicep - terraform - azure-cli - powershell - kql - finops - devops - qwen3 - lora - qaztech --- # QAZTECH® Azure Engineer 8B Open multilingual assistant for Azure engineers. It writes, fixes, explains and converts infrastructure code, migrates ARM templates to Bicep or Terraform, reviews deployments for cost (FinOps tags `Environment`, `CostCenter`, `Owner`; lower-cost dev SKUs) and troubleshoots failed deployments from their error logs. Prose in English, Russian, Kazakh, Arabic and Spanish; code, commands and comments in English. Tools: Azure CLI, Azure PowerShell, Bicep, ARM JSON, Terraform (azurerm, azapi), Azure Policy and custom RBAC roles, KQL, Azure Pipelines and GitHub Actions YAML. ## Try it ```bash ollama run qaztech-platform/azure-engineer ``` ```python from transformers import AutoModelForCausalLM, AutoTokenizer m = "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`). | 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".