Instructions to use qaztech-platform/QAZTECH-Azure-Engineer-8B with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use qaztech-platform/QAZTECH-Azure-Engineer-8B with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="qaztech-platform/QAZTECH-Azure-Engineer-8B") messages = [ {"role": "user", "content": "Who are you?"}, ] pipe(messages)# pip install -U transformers accelerate # Load model directly from transformers import AutoTokenizer, AutoModelForCausalLM tokenizer = AutoTokenizer.from_pretrained("qaztech-platform/QAZTECH-Azure-Engineer-8B") model = AutoModelForCausalLM.from_pretrained("qaztech-platform/QAZTECH-Azure-Engineer-8B", device_map="auto") messages = [ {"role": "user", "content": "Who are you?"}, ] inputs = tokenizer.apply_chat_template( messages, add_generation_prompt=True, tokenize=True, return_dict=True, return_tensors="pt", ).to(model.device) outputs = model.generate(**inputs, max_new_tokens=256) print(tokenizer.decode(outputs[0][inputs["input_ids"].shape[-1]:])) - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use qaztech-platform/QAZTECH-Azure-Engineer-8B with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "qaztech-platform/QAZTECH-Azure-Engineer-8B" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "qaztech-platform/QAZTECH-Azure-Engineer-8B", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/qaztech-platform/QAZTECH-Azure-Engineer-8B
- SGLang
How to use qaztech-platform/QAZTECH-Azure-Engineer-8B with SGLang:
Install from pip and serve model
# Install SGLang from pip: pip install sglang # Start the SGLang server: python3 -m sglang.launch_server \ --model-path "qaztech-platform/QAZTECH-Azure-Engineer-8B" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "qaztech-platform/QAZTECH-Azure-Engineer-8B", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker images
docker run --gpus all \ --shm-size 32g \ -p 30000:30000 \ -v ~/.cache/huggingface:/root/.cache/huggingface \ --env "HF_TOKEN=<secret>" \ --ipc=host \ lmsysorg/sglang:latest \ python3 -m sglang.launch_server \ --model-path "qaztech-platform/QAZTECH-Azure-Engineer-8B" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "qaztech-platform/QAZTECH-Azure-Engineer-8B", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }' - Docker Model Runner
How to use qaztech-platform/QAZTECH-Azure-Engineer-8B with Docker Model Runner:
docker model run hf.co/qaztech-platform/QAZTECH-Azure-Engineer-8B
# pip install -U transformers accelerate
# Load model directly
from transformers import AutoTokenizer, AutoModelForCausalLM
tokenizer = AutoTokenizer.from_pretrained("qaztech-platform/QAZTECH-Azure-Engineer-8B")
model = AutoModelForCausalLM.from_pretrained("qaztech-platform/QAZTECH-Azure-Engineer-8B", device_map="auto")
messages = [
{"role": "user", "content": "Who are you?"},
]
inputs = tokenizer.apply_chat_template(
messages,
add_generation_prompt=True,
tokenize=True,
return_dict=True,
return_tensors="pt",
).to(model.device)
outputs = model.generate(**inputs, max_new_tokens=256)
print(tokenizer.decode(outputs[0][inputs["input_ids"].shape[-1]:]))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
ollama run qaztech-platform/azure-engineer
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
B2sinstead ofStandard_B2s) were observed. Verify every command against Microsoft Learn and runwhat-if/terraform planbefore 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.
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".
- Downloads last month
- 6
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="qaztech-platform/QAZTECH-Azure-Engineer-8B") messages = [ {"role": "user", "content": "Who are you?"}, ] pipe(messages)