Text Generation
PEFT
Safetensors
English
infrastructure-as-code
terraform
ansible
kubernetes
docker
devops
code-generation
lora
sft
trl
conversational
Instructions to use Tejas86/iac-coder-1.5b with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- PEFT
How to use Tejas86/iac-coder-1.5b with PEFT:
from peft import PeftModel from transformers import AutoModelForCausalLM base_model = AutoModelForCausalLM.from_pretrained("Qwen/Qwen2.5-Coder-0.5B") model = PeftModel.from_pretrained(base_model, "Tejas86/iac-coder-1.5b") - Notebooks
- Google Colab
- Kaggle
| """ | |
| Evaluation script for the IaC-Coder model. | |
| Tests the model on representative IaC tasks across Terraform, Ansible, Docker, K8s, and Shell. | |
| Usage: | |
| pip install transformers torch peft | |
| python eval_iac.py | |
| """ | |
| import torch | |
| from transformers import pipeline | |
| MODEL_ID = "Tejas86/iac-coder-1.5b" | |
| print(f"Loading model from {MODEL_ID}...") | |
| pipe = pipeline( | |
| "text-generation", | |
| model=MODEL_ID, | |
| torch_dtype=torch.bfloat16, | |
| device_map="auto", | |
| ) | |
| test_cases = [ | |
| { | |
| "name": "Terraform: Create an S3 bucket with versioning", | |
| "messages": [ | |
| {"role": "system", "content": "You are an expert DevOps engineer. Generate clean, production-ready Terraform HCL code."}, | |
| {"role": "user", "content": "Task: Create an AWS S3 bucket with versioning enabled and server-side encryption\n\nGenerate the Terraform HCL code."}, | |
| ], | |
| }, | |
| { | |
| "name": "Terraform: Modify VPC to add private subnet", | |
| "messages": [ | |
| {"role": "system", "content": "You are an expert DevOps engineer. Generate clean, production-ready Terraform HCL code."}, | |
| {"role": "user", "content": 'Task: Add a private subnet to the VPC\n\nModify the following Terraform HCL file:\n```\nresource "aws_vpc" "main" {\n cidr_block = "10.0.0.0/16"\n tags = {\n Name = "main-vpc"\n }\n}\n\nresource "aws_subnet" "public" {\n vpc_id = aws_vpc.main.id\n cidr_block = "10.0.1.0/24"\n tags = {\n Name = "public-subnet"\n }\n}\n```'}, | |
| ], | |
| }, | |
| { | |
| "name": "Ansible: Install and configure Nginx", | |
| "messages": [ | |
| {"role": "system", "content": "You are an expert DevOps engineer. Generate clean, production-ready YAML (Ansible/K8s) code."}, | |
| {"role": "user", "content": "Task: Write an Ansible playbook to install nginx on Ubuntu and start the service\n\nGenerate the YAML (Ansible/K8s) code."}, | |
| ], | |
| }, | |
| { | |
| "name": "Kubernetes: Redis StatefulSet with PVC", | |
| "messages": [ | |
| {"role": "system", "content": "You are an expert DevOps engineer. Generate clean, production-ready YAML (Ansible/K8s) code."}, | |
| {"role": "user", "content": "Task: Create a Kubernetes StatefulSet for Redis with persistent storage\n\nGenerate the YAML (Ansible/K8s) code."}, | |
| ], | |
| }, | |
| { | |
| "name": "Dockerfile: Multi-stage Python Flask app", | |
| "messages": [ | |
| {"role": "system", "content": "You are an expert DevOps engineer. Generate clean, production-ready Dockerfile code."}, | |
| {"role": "user", "content": "Task: Create a multi-stage Dockerfile for a Python Flask application with pip dependencies\n\nGenerate the Dockerfile code."}, | |
| ], | |
| }, | |
| { | |
| "name": "Shell: CI/CD deployment script", | |
| "messages": [ | |
| {"role": "system", "content": "You are an expert DevOps engineer. Generate clean, production-ready Shell/Bash script code."}, | |
| {"role": "user", "content": "Task: Write a bash script that builds a Docker image, runs tests, and pushes to ECR\n\nGenerate the Shell/Bash script code."}, | |
| ], | |
| }, | |
| ] | |
| print("\n" + "=" * 80) | |
| print("IaC-CODER MODEL EVALUATION") | |
| print("=" * 80) | |
| for i, test in enumerate(test_cases, 1): | |
| print(f"\n{'─' * 80}") | |
| print(f"Test {i}/{len(test_cases)}: {test['name']}") | |
| print(f"{'─' * 80}") | |
| output = pipe( | |
| test["messages"], | |
| max_new_tokens=512, | |
| temperature=0.2, | |
| do_sample=True, | |
| top_p=0.9, | |
| ) | |
| generated = output[0]["generated_text"] | |
| if isinstance(generated, list): | |
| assistant_msgs = [m for m in generated if m["role"] == "assistant"] | |
| response = assistant_msgs[-1]["content"] if assistant_msgs else str(generated) | |
| else: | |
| response = generated | |
| print(f"\nGenerated:\n{response[:1500]}") | |
| print(f"\n{'=' * 80}") | |
| print(f"Evaluation complete! Model: {MODEL_ID}") | |
| print(f"{'=' * 80}") | |