abdulrehmanazizkhan commited on
Commit
2bbdc85
Β·
verified Β·
1 Parent(s): 23328f8

Update README.md

Browse files
Files changed (1) hide show
  1. README.md +126 -141
README.md CHANGED
@@ -1,199 +1,184 @@
1
  ---
2
- library_name: transformers
3
- tags: []
 
 
 
 
 
 
 
 
 
 
 
4
  ---
5
 
6
- # Model Card for Model ID
7
 
8
- <!-- Provide a quick summary of what the model is/does. -->
9
 
 
10
 
 
11
 
12
- ## Model Details
13
-
14
- ### Model Description
15
-
16
- <!-- Provide a longer summary of what this model is. -->
17
-
18
- This is the model card of a πŸ€— transformers model that has been pushed on the Hub. This model card has been automatically generated.
19
-
20
- - **Developed by:** [More Information Needed]
21
- - **Funded by [optional]:** [More Information Needed]
22
- - **Shared by [optional]:** [More Information Needed]
23
- - **Model type:** [More Information Needed]
24
- - **Language(s) (NLP):** [More Information Needed]
25
- - **License:** [More Information Needed]
26
- - **Finetuned from model [optional]:** [More Information Needed]
27
-
28
- ### Model Sources [optional]
29
-
30
- <!-- Provide the basic links for the model. -->
31
-
32
- - **Repository:** [More Information Needed]
33
- - **Paper [optional]:** [More Information Needed]
34
- - **Demo [optional]:** [More Information Needed]
35
-
36
- ## Uses
37
-
38
- <!-- Address questions around how the model is intended to be used, including the foreseeable users of the model and those affected by the model. -->
39
-
40
- ### Direct Use
41
-
42
- <!-- This section is for the model use without fine-tuning or plugging into a larger ecosystem/app. -->
43
-
44
- [More Information Needed]
45
-
46
- ### Downstream Use [optional]
47
-
48
- <!-- This section is for the model use when fine-tuned for a task, or when plugged into a larger ecosystem/app -->
49
-
50
- [More Information Needed]
51
-
52
- ### Out-of-Scope Use
53
-
54
- <!-- This section addresses misuse, malicious use, and uses that the model will not work well for. -->
55
-
56
- [More Information Needed]
57
-
58
- ## Bias, Risks, and Limitations
59
-
60
- <!-- This section is meant to convey both technical and sociotechnical limitations. -->
61
-
62
- [More Information Needed]
63
-
64
- ### Recommendations
65
-
66
- <!-- This section is meant to convey recommendations with respect to the bias, risk, and technical limitations. -->
67
-
68
- Users (both direct and downstream) should be made aware of the risks, biases and limitations of the model. More information needed for further recommendations.
69
-
70
- ## How to Get Started with the Model
71
-
72
- Use the code below to get started with the model.
73
-
74
- [More Information Needed]
75
-
76
- ## Training Details
77
-
78
- ### Training Data
79
-
80
- <!-- This should link to a Dataset Card, perhaps with a short stub of information on what the training data is all about as well as documentation related to data pre-processing or additional filtering. -->
81
-
82
- [More Information Needed]
83
-
84
- ### Training Procedure
85
-
86
- <!-- This relates heavily to the Technical Specifications. Content here should link to that section when it is relevant to the training procedure. -->
87
-
88
- #### Preprocessing [optional]
89
-
90
- [More Information Needed]
91
-
92
-
93
- #### Training Hyperparameters
94
-
95
- - **Training regime:** [More Information Needed] <!--fp32, fp16 mixed precision, bf16 mixed precision, bf16 non-mixed precision, fp16 non-mixed precision, fp8 mixed precision -->
96
 
97
- #### Speeds, Sizes, Times [optional]
98
 
99
- <!-- This section provides information about throughput, start/end time, checkpoint size if relevant, etc. -->
100
 
101
- [More Information Needed]
 
 
 
 
 
 
 
 
102
 
103
- ## Evaluation
104
 
105
- <!-- This section describes the evaluation protocols and provides the results. -->
106
 
107
- ### Testing Data, Factors & Metrics
108
 
109
- #### Testing Data
 
 
110
 
111
- <!-- This should link to a Dataset Card if possible. -->
112
 
113
- [More Information Needed]
114
 
115
- #### Factors
116
 
117
- <!-- These are the things the evaluation is disaggregating by, e.g., subpopulations or domains. -->
118
 
119
- [More Information Needed]
120
 
121
- #### Metrics
 
 
 
 
122
 
123
- <!-- These are the evaluation metrics being used, ideally with a description of why. -->
124
 
125
- [More Information Needed]
126
 
127
- ### Results
128
 
129
- [More Information Needed]
130
 
131
- #### Summary
132
 
 
133
 
 
134
 
135
- ## Model Examination [optional]
136
 
137
- <!-- Relevant interpretability work for the model goes here -->
138
 
139
- [More Information Needed]
140
 
141
- ## Environmental Impact
142
 
143
- <!-- Total emissions (in grams of CO2eq) and additional considerations, such as electricity usage, go here. Edit the suggested text below accordingly -->
144
 
145
- Carbon emissions can be estimated using the [Machine Learning Impact calculator](https://mlco2.github.io/impact#compute) presented in [Lacoste et al. (2019)](https://arxiv.org/abs/1910.09700).
 
 
 
 
146
 
147
- - **Hardware Type:** [More Information Needed]
148
- - **Hours used:** [More Information Needed]
149
- - **Cloud Provider:** [More Information Needed]
150
- - **Compute Region:** [More Information Needed]
151
- - **Carbon Emitted:** [More Information Needed]
152
 
153
- ## Technical Specifications [optional]
154
 
155
- ### Model Architecture and Objective
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
156
 
157
- [More Information Needed]
158
 
159
- ### Compute Infrastructure
160
 
161
- [More Information Needed]
162
 
163
- #### Hardware
 
 
 
 
 
164
 
165
- [More Information Needed]
166
 
167
- #### Software
168
 
169
- [More Information Needed]
170
 
171
- ## Citation [optional]
172
 
173
- <!-- If there is a paper or blog post introducing the model, the APA and Bibtex information for that should go in this section. -->
 
 
 
174
 
175
- **BibTeX:**
176
 
177
- [More Information Needed]
178
 
179
- **APA:**
180
 
181
- [More Information Needed]
182
 
183
- ## Glossary [optional]
 
 
184
 
185
- <!-- If relevant, include terms and calculations in this section that can help readers understand the model or model card. -->
186
 
187
- [More Information Needed]
188
 
189
- ## More Information [optional]
190
 
191
- [More Information Needed]
192
 
193
- ## Model Card Authors [optional]
194
 
195
- [More Information Needed]
196
 
197
- ## Model Card Contact
198
 
199
- [More Information Needed]
 
1
  ---
2
+ language:
3
+ - en
4
+ license: gemma
5
+ base_model: google/gemma-4-e2b-it
6
+ tags:
7
+ - gemma
8
+ - gemma4
9
+ - coding
10
+ - reasoning
11
+ - agentic
12
+ - software-engineering
13
+ - enigmacoder
14
+ pipeline_tag: text-generation
15
  ---
16
 
17
+ # EnigmaCoder 2B
18
 
19
+ **EnigmaCoder 2B** is the first model in the EnigmaCoder AI engineering ecosystem β€” developed to power intelligent software engineering workflows within the EnigmaCoder platform.
20
 
21
+ 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.
22
 
23
+ ---
24
 
25
+ ## Overview
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
26
 
27
+ EnigmaCoder 2B is a fine-tuned language model built on **Google Gemma-4-2B-IT**, specialized for software engineering tasks including code generation, explanation, debugging, and reasoning.
28
 
29
+ 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.
30
 
31
+ | Property | Value |
32
+ |---|---|
33
+ | **Base Model** | google/gemma-4-e2b-it |
34
+ | **Parameters** | ~5B |
35
+ | **Architecture** | Gemma-4 Transformer |
36
+ | **Precision** | Float16 |
37
+ | **Context Window** | 128K tokens |
38
+ | **Fine-tuning Method** | QLoRA (4-bit) β†’ merged to full weights |
39
+ | **License** | Gemma License |
40
 
41
+ ---
42
 
43
+ ## Our Vision
44
 
45
+ EnigmaCoder is being built around a core engineering workflow:
46
 
47
+ ```
48
+ PLAN β†’ CODE β†’ RUN β†’ DEBUG β†’ VERIFY
49
+ ```
50
 
51
+ Every stage of this workflow benefits from AI that understands software engineering deeply β€” not just syntax, but intent, structure, and consequence.
52
 
53
+ 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.
54
 
55
+ ---
56
 
57
+ ## Core Focus Areas
58
 
59
+ EnigmaCoder 2B has been trained and evaluated with a focus on:
60
 
61
+ - **Code Generation** β€” Writing correct, idiomatic Python and general-purpose code from natural language descriptions
62
+ - **Code Understanding** β€” Explaining what code does, why it works, and how it fits into larger systems
63
+ - **Debugging Assistance** β€” Identifying errors, suggesting fixes, and reasoning about failure modes
64
+ - **Software Reasoning** β€” Thinking through architectural decisions, design patterns, and engineering tradeoffs
65
+ - **Technical Q&A** β€” Answering developer questions across databases, APIs, algorithms, and system design
66
 
67
+ ---
68
 
69
+ ## Why We Are Building EnigmaCoder
70
 
71
+ Most AI-assisted development tools depend entirely on third-party model providers. EnigmaCoder is taking a different path:
72
 
73
+ **Control** β€” We own the model weights and can update, retrain, and specialize them without dependency on external APIs.
74
 
75
+ **Specialization** β€” We can fine-tune continuously on software engineering data that reflects real developer workflows, not general internet text.
76
 
77
+ **Integration** β€” A model we control can be embedded directly into EnigmaCoder IDE at every layer β€” from autocomplete to autonomous agents.
78
 
79
+ **Research** β€” Building our own model lets us experiment with reasoning, tool use, and agentic workflows in ways that closed models do not permit.
80
 
81
+ **Long-term flexibility** β€” As the platform grows, the model grows with it. We are not locked into any provider's roadmap.
82
 
83
+ EnigmaCoder 2B is not a prototype. It is the first iteration of an ongoing development program.
84
 
85
+ ---
86
 
87
+ ## Training and Development
88
 
89
+ EnigmaCoder 2B was developed through the following process:
90
 
91
+ - **Base:** Google Gemma-4-2B-IT β€” a capable instruction-tuned foundation
92
+ - **Fine-tuning method:** QLoRA with 4-bit quantization during training, merged to full Float16 weights for inference
93
+ - **Training data:** Curated conversational coding and reasoning data focused on software engineering tasks
94
+ - **LoRA configuration:** Rank 32, Alpha 64, targeting all linear layers
95
+ - **Training:** 3 epochs, learning rate 1e-4 with cosine schedule, sequence length 1024
96
 
97
+ 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.
 
 
 
 
98
 
99
+ ---
100
 
101
+ ## Quick Start
102
+
103
+ ```python
104
+ from transformers import AutoTokenizer, AutoModelForCausalLM
105
+ import torch
106
+
107
+ model_id = "enigmacoder/EnigmaCoder-2B"
108
+
109
+ tokenizer = AutoTokenizer.from_pretrained(model_id)
110
+ model = AutoModelForCausalLM.from_pretrained(
111
+ model_id,
112
+ torch_dtype=torch.float16,
113
+ device_map="auto",
114
+ )
115
+
116
+ def ask(question):
117
+ prompt = f"<start_of_turn>user\n{question}<end_of_turn>\n<start_of_turn>model\n"
118
+ inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
119
+ with torch.no_grad():
120
+ output = model.generate(
121
+ **inputs,
122
+ max_new_tokens=512,
123
+ do_sample=False,
124
+ repetition_penalty=1.2,
125
+ pad_token_id=tokenizer.eos_token_id,
126
+ )
127
+ return tokenizer.decode(output[0][inputs["input_ids"].shape[1]:], skip_special_tokens=True)
128
+
129
+ print(ask("Write a Python function that implements binary search with proper error handling."))
130
+ ```
131
 
132
+ ---
133
 
134
+ ## Intended Use Cases
135
 
136
+ EnigmaCoder 2B is designed for software engineering contexts:
137
 
138
+ - Writing and completing Python functions, classes, and modules
139
+ - Explaining existing code to developers unfamiliar with a codebase
140
+ - Suggesting fixes for bugs and logic errors
141
+ - Answering technical questions about algorithms, data structures, and system design
142
+ - Assisting with SQL queries, API design, and backend development
143
+ - Supporting developers who want a locally-runnable coding assistant
144
 
145
+ ---
146
 
147
+ ## Integration with EnigmaCoder IDE
148
 
149
+ **Current state:** EnigmaCoder 2B is available as a standalone Hugging Face model. It can be loaded and queried through the standard Transformers interface.
150
 
151
+ **Planned integration:** EnigmaCoder IDE will integrate this model directly into the development environment, enabling:
152
 
153
+ - In-editor code generation and completion
154
+ - Contextual debugging assistance with access to the active file and error output
155
+ - Agentic workflows that can read, write, and run code as part of the PLAN β†’ CODE β†’ RUN β†’ DEBUG β†’ VERIFY loop
156
+ - A local inference mode for developers who want AI assistance without sending code to external servers
157
 
158
+ These integrations are in active development. The model published here is the AI foundation that will power them.
159
 
160
+ ---
161
 
162
+ ## Responsible Use
163
 
164
+ EnigmaCoder 2B is intended for software engineering assistance. Users should:
165
 
166
+ - Review generated code before deploying it to production
167
+ - Not rely on the model for security-critical decisions without human verification
168
+ - Be aware that the model may produce incorrect code or reasoning, particularly on complex or novel problems
169
 
170
+ This model is subject to the [Gemma Terms of Use](https://ai.google.dev/gemma/terms).
171
 
172
+ ---
173
 
174
+ ## Acknowledgements and License
175
 
176
+ EnigmaCoder 2B is built on **Google Gemma-4-2B-IT** and is subject to the [Gemma License](https://ai.google.dev/gemma/terms).
177
 
178
+ Training data includes publicly available instruction-following datasets curated for software engineering relevance.
179
 
180
+ Developed by the **EnigmaCoder** team.
181
 
182
+ ---
183
 
184
+ *EnigmaCoder 2B β€” built for engineers, by engineers.*