What it does
Table with columns: Capability, Detail| Capability | Detail |
|---|
| Terraform | Audit + refactor + generation (rightsizing, Graviton, gp2→gp3, S3 lifecycle, RDS, tags) |
| AWS CDK (TypeScript) | Audit constructs + generate cost-optimal ones (ARM64, log retention, PAY_PER_REQUEST) |
| AWS CDK (Python) | Same, Python-native (EC2 Graviton, S3 lifecycle, tags) |
| CloudFormation | YAML audit + corrected templates (EC2, S3, Lambda, RDS, ECS Fargate, SQS DLQ) |
Every recommendation follows the FinOps framework (Inform → Optimize → Operate) and outputs valid, properly-indented code.
Training
Table with columns: Parameter, Value| Parameter | Value |
|---|
| Base model | Qwen/Qwen2.5-Coder-7B-Instruct (4-bit via Unsloth) |
| Method | QLoRA (r=16, α=32, dropout=0.05) |
| Framework | Unsloth + TRL (SFTTrainer) |
| Dataset | 400 examples IaC-heavy (200 Terraform + 100 CloudFormation + 60 CDK TS + 40 CDK Python) |
| Hardware | Modal A100-80GB |
| Duration | ~3 minutes, 3 epochs, 75 steps |
| Final train loss | 0.47 |
| Cost | ~$0.30 |
The dataset was built with deterministic generators faithful to real-world IaC patterns — 100% of examples contain valid code blocks.
Usage
from transformers import AutoModelForCausalLM, AutoTokenizer model = AutoModelForCausalLM.from_pretrained("ccortezb/FinoCode-7B", device_map="auto")tok = AutoTokenizer.from_pretrained("ccortezb/FinoCode-7B") messages = [ {"role": "system", "content": "You are FinoCode-7B, the IaC specialist of the FinOptix family. Output valid code."}, {"role": "user", "content": "Generate a cost-optimal AWS CDK (TypeScript) DynamoDB table with on-demand billing and encryption."},]inputs = tok.apply_chat_template(messages, add_generation_prompt=True, return_tensors="pt").to(model.device)out = model.generate(inputs, max_new_tokens=350, do_sample=False, repetition_penalty=1.1)print(tok.decode(out[0][inputs.shape[1]:], skip_special_tokens=True))
Ollama (GGUF)
ollama run hf.co/ccortezb/FinoCode-7B-GGUF:Q4_K_M# higher fidelity:ollama run hf.co/ccortezb/FinoCode-7B-GGUF:Q6_K
Requires ~5GB RAM/VRAM (Q4_K_M) or ~7GB (Q6_K) — runs comfortably on a laptop.
Example tasks
CDK Python audit → flags a m5.4xlarge with no tags, returns corrected Python with Graviton (m6g) + Tags.of(...).
CloudFormation audit → flags missing tags + x86 instance, returns corrected YAML with Graviton (m6g.large) and a Tags block.
Generation → produces cost-optimal constructs: DynamoDB PAY_PER_REQUEST, S3 lifecycle (IA → Glacier → expire), Lambda on ARM64 with 2-week log retention, SQS with a dead-letter queue.
The FinOptix family
Table with columns: Model, Base, Specialty| Model | Base | Specialty |
|---|
| FinOptix-14B v2 | Qwen 2.5 14B | Full FinOps architect (cost, graph, dbt, incidents) |
| FinoCode-7B (this) | Qwen 2.5 Coder 7B | IaC audit + generation |
Use case: IDE copilot for IaC, PR review bot, CI pipeline IaC optimizer.
Limitations
- Trained on synthetic data modeled after real patterns — no customer data.
- Generates and audits IaC; does not deploy or call live AWS APIs.
- Cost figures are illustrative unless real metrics are provided.
- v0.1 — Terraform + CDK (TS/Py) + CloudFormation. Pulumi / Terraform CDK / multi-cloud are future work.
License
Apache-2.0. Built by Carlos Cortez — AWS Community Hero.
LinkedIn · X · GitHub