File size: 7,368 Bytes
23328f8
2bbdc85
 
 
 
 
 
 
 
 
 
 
 
 
23328f8
 
2bbdc85
23328f8
2bbdc85
23328f8
2bbdc85
23328f8
2bbdc85
23328f8
2bbdc85
23328f8
2430236
23328f8
2bbdc85
23328f8
2bbdc85
 
 
2430236
2bbdc85
 
 
 
 
23328f8
2bbdc85
23328f8
2bbdc85
23328f8
2bbdc85
23328f8
2bbdc85
 
 
23328f8
2bbdc85
23328f8
2bbdc85
23328f8
2bbdc85
23328f8
2bbdc85
23328f8
2bbdc85
23328f8
2bbdc85
 
 
 
 
23328f8
2bbdc85
23328f8
2bbdc85
23328f8
2bbdc85
23328f8
2bbdc85
23328f8
2bbdc85
23328f8
2bbdc85
23328f8
2bbdc85
23328f8
2bbdc85
23328f8
2bbdc85
23328f8
2bbdc85
23328f8
2bbdc85
23328f8
2bbdc85
23328f8
2430236
2bbdc85
 
 
 
23328f8
2bbdc85
23328f8
2bbdc85
23328f8
2bbdc85
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2430236
 
 
 
2bbdc85
 
 
23328f8
2bbdc85
23328f8
2bbdc85
23328f8
2bbdc85
23328f8
2bbdc85
 
 
 
 
 
23328f8
2bbdc85
23328f8
2bbdc85
23328f8
2bbdc85
23328f8
2bbdc85
23328f8
2bbdc85
 
 
 
23328f8
2bbdc85
23328f8
2bbdc85
23328f8
2bbdc85
23328f8
2bbdc85
23328f8
2bbdc85
 
2430236
23328f8
2bbdc85
23328f8
2bbdc85
23328f8
2bbdc85
23328f8
2430236
23328f8
2bbdc85
23328f8
2bbdc85
23328f8
2bbdc85
23328f8
2bbdc85
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
---
language:
- en
license: gemma
base_model: google/gemma-4-e2b-it
tags:
- gemma
- gemma4
- coding
- reasoning
- agentic
- software-engineering
- enigmacoder
pipeline_tag: text-generation
---

# EnigmaCoder 2B

**EnigmaCoder 2B** is the first model in the EnigmaCoder AI engineering ecosystem β€” developed to power intelligent software engineering workflows within the EnigmaCoder platform.

This model represents the beginning of a deliberate, long-term effort to build AI that understands software the way engineers do: not just generating code, but reasoning through problems, navigating codebases, and supporting the full engineering lifecycle.

---

## Overview

EnigmaCoder 2B is a fine-tuned language model built on **Google Gemma-4-E2B-IT**, specialized for software engineering tasks including code generation, explanation, debugging, and reasoning.

Rather than relying entirely on external AI providers, EnigmaCoder is developing its own model stack. EnigmaCoder 2B is the foundation of that effort β€” a model we own, control, and will continue to develop as part of our broader AI engineering architecture.

| Property | Value |
|---|---|
| **Base Model** | google/gemma-4-e2b-it |
| **Parameters** | ~2B |
| **Architecture** | Gemma-4 Transformer |
| **Precision** | Float16 |
| **Context Window** | 128K tokens |
| **Fine-tuning Method** | QLoRA (4-bit) β†’ merged to full weights |
| **License** | Gemma License |

---

## Our Vision

EnigmaCoder is being built around a core engineering workflow:

```
PLAN β†’ CODE β†’ RUN β†’ DEBUG β†’ VERIFY
```

Every stage of this workflow benefits from AI that understands software engineering deeply β€” not just syntax, but intent, structure, and consequence.

EnigmaCoder 2B is our first step toward an AI that can participate meaningfully at each stage. As the model matures and the platform evolves, it will become more deeply integrated into the EnigmaCoder IDE, eventually serving as the reasoning core behind agentic engineering workflows.

---

## Core Focus Areas

EnigmaCoder 2B has been trained and evaluated with a focus on:

- **Code Generation** β€” Writing correct, idiomatic Python and general-purpose code from natural language descriptions
- **Code Understanding** β€” Explaining what code does, why it works, and how it fits into larger systems
- **Debugging Assistance** β€” Identifying errors, suggesting fixes, and reasoning about failure modes
- **Software Reasoning** β€” Thinking through architectural decisions, design patterns, and engineering tradeoffs
- **Technical Q&A** β€” Answering developer questions across databases, APIs, algorithms, and system design

---

## Why We Are Building EnigmaCoder

Most AI-assisted development tools depend entirely on third-party model providers. EnigmaCoder is taking a different path:

**Control** β€” We own the model weights and can update, retrain, and specialize them without dependency on external APIs.

**Specialization** β€” We can fine-tune continuously on software engineering data that reflects real developer workflows, not general internet text.

**Integration** β€” A model we control can be embedded directly into EnigmaCoder IDE at every layer β€” from autocomplete to autonomous agents.

**Research** β€” Building our own model lets us experiment with reasoning, tool use, and agentic workflows in ways that closed models do not permit.

**Long-term flexibility** β€” As the platform grows, the model grows with it. We are not locked into any provider's roadmap.

EnigmaCoder 2B is not a prototype. It is the first iteration of an ongoing development program.

---

## Training and Development

EnigmaCoder 2B was developed through the following process:

- **Base:** Google Gemma-4-E2B-IT β€” a capable instruction-tuned foundation
- **Fine-tuning method:** QLoRA with 4-bit quantization during training, merged to full Float16 weights for inference
- **Training data:** Curated conversational coding and reasoning data focused on software engineering tasks
- **LoRA configuration:** Rank 32, Alpha 64, targeting all linear layers
- **Training:** 3 epochs, learning rate 1e-4 with cosine schedule, sequence length 1024

The LoRA adapter weights have been merged into the base model. The published model requires no PEFT library for inference β€” it loads as a standard Transformers model.

---

## Quick Start

```python
from transformers import AutoTokenizer, AutoModelForCausalLM
import torch

model_id = "enigmacoder/EnigmaCoder-2B"

tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(
    model_id,
    torch_dtype=torch.float16,
    device_map="auto",
)

def ask(question):
    prompt = f"<start_of_turn>user\n{question}<end_of_turn>\n<start_of_turn>model\n"
    inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
    with torch.no_grad():
        output = model.generate(
            **inputs,
            max_new_tokens=512,
            do_sample=False,
            repetition_penalty=1.2,
            pad_token_id=tokenizer.eos_token_id,
        )
    return tokenizer.decode(
        output[0][inputs["input_ids"].shape[1]:],
        skip_special_tokens=True
    )

print(ask("Write a Python function that implements binary search with proper error handling."))
```

---

## Intended Use Cases

EnigmaCoder 2B is designed for software engineering contexts:

- Writing and completing Python functions, classes, and modules
- Explaining existing code to developers unfamiliar with a codebase
- Suggesting fixes for bugs and logic errors
- Answering technical questions about algorithms, data structures, and system design
- Assisting with SQL queries, API design, and backend development
- Supporting developers who want a locally-runnable coding assistant

---

## Integration with EnigmaCoder IDE

**Current state:** EnigmaCoder 2B is available as a standalone Hugging Face model. It can be loaded and queried through the standard Transformers interface.

**Planned integration:** EnigmaCoder IDE will integrate this model directly into the development environment, enabling:

- In-editor code generation and completion
- Contextual debugging assistance with access to the active file and error output
- Agentic workflows that can read, write, and run code as part of the PLAN β†’ CODE β†’ RUN β†’ DEBUG β†’ VERIFY loop
- A local inference mode for developers who want AI assistance without sending code to external servers

These integrations are in active development. The model published here is the AI foundation that will power them.

---

## Responsible Use

EnigmaCoder 2B is intended for software engineering assistance. Users should:

- Review generated code before deploying it to production
- Not rely on the model for security-critical decisions without human verification
- Be aware that the model may produce incorrect code or reasoning on complex or novel problems

This model is subject to the [Gemma Terms of Use](https://ai.google.dev/gemma/terms).

---

## Acknowledgements and License

EnigmaCoder 2B is built on **Google Gemma-4-E2B-IT** and is subject to the [Gemma License](https://ai.google.dev/gemma/terms).

Training data includes publicly available instruction-following datasets curated for software engineering relevance.

Developed by the **EnigmaCoder** team.

---

*EnigmaCoder 2B β€” built for engineers, by engineers.*