BrainboxAI commited on
Commit
ad9ac22
ยท
verified ยท
1 Parent(s): 270e76c

Rewrite the model card in the BrainboxAI house style (Hebrew, brand name in the heading, repository id unchanged)

Browse files
Files changed (1) hide show
  1. README.md +123 -100
README.md CHANGED
@@ -24,58 +24,70 @@ tags:
24
  - text-generation
25
  - on-device
26
  - private-first
27
- pretty_name: Code-IL E4B (Local Coding Assistant)
28
  model-index:
29
  - name: code-il-E4B
30
  results: []
31
  ---
32
 
33
- # Code-IL E4B
34
 
35
- **A 4B-parameter coding assistant for Python and TypeScript โ€” runs entirely on-device, no code ever leaves your machine.**
 
 
36
 
37
  [![HF Model](https://img.shields.io/badge/%F0%9F%A4%97%20HuggingFace-Model-yellow)](https://huggingface.co/BrainboxAI/code-il-E4B)
38
  [![Dataset](https://img.shields.io/badge/%F0%9F%A4%97%20HuggingFace-Dataset-blue)](https://huggingface.co/datasets/BrainboxAI/code-training-il)
39
  [![Safetensors](https://img.shields.io/badge/Format-Safetensors-green)](https://huggingface.co/BrainboxAI/code-il-E4B-safetensors)
40
  [![License](https://img.shields.io/badge/License-Apache_2.0-lightgrey)](https://www.apache.org/licenses/LICENSE-2.0)
41
 
 
 
 
 
 
 
42
  ---
43
 
44
- ## Model overview
 
 
45
 
46
- `code-il-E4B` is a 4-billion-parameter coding assistant fine-tuned from Google's Gemma-4 E4B. It is trained on a curated set of Python and TypeScript instruction pairs โ€” filtered by test-pass rate โ€” plus a small hand-written bilingual (Hebrew / English) identity set.
47
 
48
- The entire model is 4 GB in GGUF Q4_K_M form. It runs on:
49
- - A modern laptop CPU (slower but functional)
50
- - Any consumer GPU with 6 GB+ VRAM
51
- - Apple Silicon via llama.cpp Metal
52
 
53
- No API. No telemetry. No data leaving the developer's machine.
54
 
55
- ## Why this exists
56
 
57
- Every keystroke sent to a cloud coding assistant is a potential data-leak event. For companies building proprietary systems โ€” especially in regulated industries like finance, healthcare, and defense โ€” this is not acceptable.
58
 
59
- `code-il-E4B` is the private alternative: a model small enough to run locally, tuned specifically for the two languages most companies actually write in.
60
 
61
- It is not competing with Claude Sonnet or GPT-4o on raw capability. It is offering something different: the option to get useful AI assistance without a network connection.
62
 
63
- ## Intended use
64
 
65
- **Primary use cases:**
66
- - Local code completion and review in regulated environments
67
- - On-prem deployment for companies with strict data-residency rules
68
- - Pair-programming for developers with unreliable internet
69
- - Integration into internal developer tooling that cannot call external APIs
70
- - Hebrew-speaking developer onboarding (model responds in Hebrew on request)
71
 
72
- **Out-of-scope uses:**
73
- - Replacement for frontier models on complex architecture tasks
74
- - Production code generation without human review
75
- - Languages other than Python / TypeScript (coverage is minimal)
76
- - Fine-tuning tasks requiring >4B parameters of capacity
77
 
78
- ## How to use
 
 
 
 
 
 
 
 
79
 
80
  ### Ollama
81
 
@@ -86,13 +98,15 @@ ollama run hf.co/BrainboxAI/code-il-E4B:Q4_K_M
86
 
87
  ### llama.cpp
88
 
 
 
89
  ```bash
90
- ./llama-cli -m code-il-E4B.Q4_K_M.gguf \
91
  -p "Write a Python function that parses ISO-8601 dates with timezones." \
92
  --temp 0.2 --top-p 0.95 -n 1024
93
  ```
94
 
95
- ### Python (transformers)
96
 
97
  ```python
98
  from transformers import AutoTokenizer, AutoModelForCausalLM
@@ -112,31 +126,24 @@ outputs = model.generate(inputs, max_new_tokens=1024, temperature=0.2, top_p=0.9
112
  print(tokenizer.decode(outputs[0], skip_special_tokens=True))
113
  ```
114
 
115
- ### Recommended generation parameters
116
-
117
- | Parameter | Value | Rationale |
118
- |-----------|-------|-----------|
119
- | `temperature` | 0.2 | Low creativity for deterministic code |
120
- | `top_p` | 0.95 | Slightly higher than legal model to allow idiom variety |
121
- | `max_new_tokens` | 1024 | Enough for most function-level completions |
122
- | `repetition_penalty` | 1.0 | Penalizing repetition hurts code structure |
123
-
124
 
125
- ### Recommended System Prompt: Semi-Formal Reasoning
 
 
 
 
 
126
 
127
- This 4B model produces dramatically better code when forced to think through 5 explicit steps before writing. Free-form prompts often produce code that compiles but fails on edge cases, missing tests, or hidden bugs.
128
 
129
- **Why this matters:** Small coding models tend to skip the "thinking" phase and jump straight to code. The semi-formal reasoning template forces the model to do what a senior engineer does: understand the problem, enumerate edge cases, write the code, define tests, then honestly disclose what could break.
130
 
131
- #### The 5 Reasoning Steps
132
 
133
- 1. **Problem Understanding** - restate the requirement, identify ambiguities
134
- 2. **Edge Cases and Constraints** - enumerate what could go wrong before coding
135
- 3. **Implementation** - the actual code, with inline comments only where needed
136
- 4. **Tests** - concrete test cases covering happy path + edge cases
137
- 5. **Known Limitations** - what this code does NOT handle, dependencies, assumptions
138
 
139
- #### The System Prompt (copy as-is)
140
 
141
  ```text
142
  DEFINITIONS:
@@ -215,7 +222,7 @@ VERIFICATION:
215
  - regression check: No "production-ready" claims unless edge cases match limitations.
216
  ```
217
 
218
- #### Usage Example with the System Prompt
219
 
220
  ```python
221
  from transformers import AutoTokenizer, AutoModelForCausalLM
@@ -227,7 +234,7 @@ model = AutoModelForCausalLM.from_pretrained(
227
  device_map="auto",
228
  )
229
 
230
- # Paste the full DEFINITIONS/PREMISES/REQUIREMENTS prompt above
231
  SYSTEM_PROMPT = """[paste the full prompt from the code block above]"""
232
 
233
  messages = [
@@ -240,72 +247,90 @@ outputs = model.generate(inputs, max_new_tokens=1500, temperature=0.2, top_p=0.9
240
  print(tokenizer.decode(outputs[0], skip_special_tokens=True))
241
  ```
242
 
243
- #### Customization
244
 
245
- - Want code-only output (no explanation)? Replace `OUTPUT_FORMAT` with: "Code blocks only. Comments inside code for any analysis. No prose sections."
246
- - Building a code review tool? Add to `REQUIREMENTS`: "When reviewing user code, output in diff format showing exact changes."
247
- - Need TypeScript-only output? Add to `REQUIREMENTS`: "Always respond in TypeScript. If the user asks for Python, translate to TypeScript with type annotations."
248
- - Working on a security-sensitive codebase? Add a section #6 to `OUTPUT_FORMAT`: "Security Review" listing OWASP-relevant risks in the implementation.
249
 
 
250
 
251
- ## Training details
 
 
 
 
 
 
 
 
 
252
 
253
- | Attribute | Value |
254
- |-----------|-------|
255
- | **Base model** | [unsloth/gemma-4-E4B-it](https://huggingface.co/unsloth/gemma-4-E4B-it) |
256
- | **Method** | QLoRA (4-bit quantization during training) |
257
- | **LoRA rank (r)** | 64 |
258
- | **LoRA alpha** | 128 |
259
- | **Training data size** | 40,000 curated examples |
260
- | **Train / validation split** | 95% / 5%, seed 3407 |
261
- | **Hardware** | NVIDIA RTX 5090 (RunPod) |
262
- | **Framework** | Unsloth Studio |
263
 
264
- ### Dataset composition (40,330 examples)
265
 
266
- | Source | Count | Content |
267
- |--------|-------|---------|
268
- | [OpenCodeInstruct (NVIDIA)](https://huggingface.co/datasets/nvidia/OpenCodeInstruct) | 20,000 | Python โ€” filtered to examples with test-pass rate > 50% |
269
- | [typescript-instruct (bleugreen)](https://huggingface.co/datasets/bleugreen/typescript-instruct) | 20,000 | TypeScript instruction pairs |
270
- | Hand-written identity set | 330 | Hebrew + English, BrainboxAI persona |
 
271
 
272
- The filtering pass on OpenCodeInstruct was the single biggest quality lever. Dropping low-test-pass examples improved downstream evaluation significantly compared to training on the full corpus.
273
 
274
- See the [dataset card](https://huggingface.co/datasets/BrainboxAI/code-training-il) for full details.
275
 
276
- ## Evaluation
277
 
278
- Internal evaluation on structured coding tasks:
279
 
280
- | Task | Examples | Passed | Notes |
281
- |------|----------|--------|-------|
282
- | **FizzBuzz** (via agentic loop) | 5 | 5/5 | Solved in 6 steps, zero correction rounds |
283
- | **Binary search with 11 edge cases** | 11 | 11/11 | Including leftmost-duplicate handling |
284
 
285
- Formal HumanEval / MBPP benchmarks have not yet been run publicly. Evaluation work is ongoing.
286
 
287
- ## Limitations
 
 
 
288
 
289
- - **Small model.** 4B parameters is not frontier-capability. Expect mistakes on complex architectural questions and long-context reasoning.
290
- - **Two languages.** Strong on Python and TypeScript; weak on other languages.
291
- - **No tool use out of the box.** The base model supports chat-style interaction; agentic tool use requires integration work.
292
- - **Training cutoff.** Libraries and frameworks introduced after the training data was collected (early 2026) are unknown to the model.
293
- - **Hallucination risk.** Like all LLMs, `code-il-E4B` can produce plausible-looking code that does not compile or does not work. Always test.
294
 
295
- ## Formats available
296
 
297
- - [**GGUF Q4_K_M** (~4 GB)](https://huggingface.co/BrainboxAI/code-il-E4B) โ€” for Ollama, llama.cpp, LM Studio
298
- - [**Safetensors 16-bit**](https://huggingface.co/BrainboxAI/code-il-E4B-safetensors) โ€” for further fine-tuning, HF transformers
299
 
300
- ## License
 
 
 
 
 
 
301
 
302
- Apache 2.0. Use commercially, modify, and redistribute with attribution.
303
 
304
- ## Citation
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
305
 
306
  ```bibtex
307
  @misc{elyasi2026codeil,
308
- title = {Code-IL E4B: A Small, On-Device Coding Assistant for Private Environments},
309
  author = {Elyasi, Netanel},
310
  year = {2026},
311
  publisher = {BrainboxAI},
@@ -314,12 +339,10 @@ Apache 2.0. Use commercially, modify, and redistribute with attribution.
314
  }
315
  ```
316
 
317
- ## Author
318
 
319
- Built by [**Netanel Elyasi**](https://huggingface.co/BrainboxAI), founder of [BrainboxAI](https://brainboxai.io) โ€” applied-AI studio focused on small, private, domain-specialized models.
320
 
321
- For custom coding-model fine-tuning on private company codebases, contact: **netanele@brainboxai.io**.
322
-
323
- ---
324
 
325
- *Part of the BrainboxAI family of on-device models โ€” see also [`law-il-E2B`](https://huggingface.co/BrainboxAI/law-il-E2B) (legal) and [`cyber-analyst-4B`](https://huggingface.co/BrainboxAI/cyber-analyst-4B) (security).*
 
24
  - text-generation
25
  - on-device
26
  - private-first
27
+ pretty_name: bx-code-nogah (code-il-E4B)
28
  model-index:
29
  - name: code-il-E4B
30
  results: []
31
  ---
32
 
33
+ # bx-code-nogah
34
 
35
+ ### ืžื–ื”ื” ื”ืžืื’ืจ: `BrainboxAI/code-il-E4B`
36
+
37
+ **ืขื•ื–ืจ ื›ืชื™ื‘ืช ืงื•ื“ ืœ-Python ื•ืœ-TypeScript ืฉืจืฅ ื›ื•ืœื• ืขืœ ื”ืžื—ืฉื‘ ืฉืœืš. ืฉื•ืจืช ืงื•ื“ ืœื ื™ื•ืฆืืช ื”ื—ื•ืฆื”.**
38
 
39
  [![HF Model](https://img.shields.io/badge/%F0%9F%A4%97%20HuggingFace-Model-yellow)](https://huggingface.co/BrainboxAI/code-il-E4B)
40
  [![Dataset](https://img.shields.io/badge/%F0%9F%A4%97%20HuggingFace-Dataset-blue)](https://huggingface.co/datasets/BrainboxAI/code-training-il)
41
  [![Safetensors](https://img.shields.io/badge/Format-Safetensors-green)](https://huggingface.co/BrainboxAI/code-il-E4B-safetensors)
42
  [![License](https://img.shields.io/badge/License-Apache_2.0-lightgrey)](https://www.apache.org/licenses/LICENSE-2.0)
43
 
44
+ > **ืขืœ ื”ืฉื.** `bx-code-nogah` ื”ื•ื ืฉื ื”ืžื•ื“ืœ ื‘ืžื•ืกื›ืžืช ื”ืฉืžื•ืช ืฉืœ BrainboxAI: `bx` ืœื—ื‘ืจื”, `code` ืœืชื—ื•ื, ื•-`nogah` (ื ื•ื’ื”) ืœื“ืจื’ืช ื”ื’ื•ื“ืœ ื”ืืžืฆืขื™ืช. **ืžื–ื”ื” ื”ืžืื’ืจ ื ืฉืืจ `BrainboxAI/code-il-E4B` ื•ืœื ื™ืฉืชื ื”** โ€” ื›ืœ ืงื™ืฉื•ืจ ื•ืกืงืจื™ืคื˜ ืงื™ื™ื ืžืžืฉื™ืš ืœืขื‘ื•ื“.
45
+
46
+ > **ืขืœ ื™ืฆื™ื‘ื•ืช ื”ื’ืจืกื”.** ืื™ืžื•ืŸ ื—ื“ืฉ ืขืœ ืื•ืชื” ืžืฉื™ืžื” ื ื“ื—ืฃ ืœืื•ืชื• ืžืื’ืจ ื•ืžืขื“ื›ืŸ ืืช ื”ืžืฉืงื•ืœื•ืช ื‘ืžืงื•ื. ื›ืœื•ืžืจ ืžื™ ืฉื™ื•ืจื™ื“ ื”ื™ื•ื ื•ืฉื•ื‘ ื‘ืขื•ื“ ื—ื•ื“ืฉื™ื™ื ืขืœื•ืœ ืœืงื‘ืœ ืžืฉืงื•ืœื•ืช ืฉื•ื ื•ืช ืชื—ืช ืื•ืชื• ืฉื. ืžื™ ืฉืฆืจื™ืš ื™ืฆื™ื‘ื•ืช ืžื•ื—ืœื˜ืช โ€” ื™ืฆืžื™ื“ ืืช ืขืฆืžื• ืœ-commit ืžืกื•ื™ื ื•ืœื ืœืขื ืฃ ื”ืจืืฉื™.
47
+
48
+ > **English.** `code-il-E4B` (brand name `bx-code-nogah`) is an on-device Python and TypeScript coding assistant, fine-tuned from `unsloth/gemma-4-E4B-it` on a 40,330-example test-filtered corpus. No formal benchmark (HumanEval, MBPP) has been run on it. This card is in Hebrew; identifiers, code and the recommended system prompt are in English.
49
+
50
  ---
51
 
52
+ ## ืžื” ื–ื”, ื‘ืงืฆืจื”
53
+
54
+ ืžื•ื“ืœ ืฉื›ื•ืชื‘ ื•ื‘ื•ื“ืง ืงื•ื“ ื‘-Python ื•ื‘-TypeScript, ื•ืจืฅ ืืฆืœืš ืขืœ ื”ืžื—ืฉื‘. ื”ื•ื ื‘ื ื•ื™ ืขืœ [`unsloth/gemma-4-E4B-it`](https://huggingface.co/unsloth/gemma-4-E4B-it) ืฉืœ ื’ื•ื’ืœ, ื•ืื•ืžืŸ ืžืขืœื™ื• ืขืœ 40,330 ื“ื•ื’ืžืื•ืช ืฉืกื•ื ื ื• ืœืคื™ ืงืจื™ื˜ืจื™ื•ืŸ ืื—ื“ ืคืฉื•ื˜: **ื”ืื ื”ืงื•ื“ ื‘ื“ื•ื’ืžื” ื‘ืืžืช ืขื‘ืจ ืืช ื”ื‘ื“ื™ืงื•ืช ืฉืœื•.**
55
 
56
+ ื”ื›ืœ ื ื›ื ืก ื‘ืงื•ื‘ืฅ ืื—ื“ ืฉืœ ื›-5.3 ื’'ื™ื’ื”-ื‘ื™ื™ื˜. ื”ื•ื ืจืฅ ืขืœ:
57
 
58
+ - ืžืขื‘ื“ ืฉืœ ืžื—ืฉื‘ ื ื™ื™ื“ ืžื•ื“ืจื ื™ โ€” ืื™ื˜ื™, ืื‘ืœ ืขื•ื‘ื“.
59
+ - ื›ืœ ื›ืจื˜ื™ืก ืžืกืš ื‘ื™ืชื™ ืขื 6 ื’'ื™ื’ื” ื–ื™ื›ืจื•ืŸ ื•ืžืขืœื”.
60
+ - ืžื—ืฉื‘ื™ Apple ืขื ืฉื‘ื‘ M, ื“ืจืš llama.cpp.
 
61
 
62
+ ื‘ืœื™ ื—ื™ื‘ื•ืจ ืœืื™ื ื˜ืจื ื˜, ื‘ืœื™ ื“ื™ื•ื•ื—, ื‘ืœื™ ืฉืฉื•ืจืช ืงื•ื“ ืื—ืช ื™ื•ืฆืืช ืžื”ืžื›ื•ื ื”.
63
 
64
+ ## ืœืžื” ื”ื•ื ืงื™ื™ื
65
 
66
+ ื›ืœ ืชื• ืฉื ืฉืœื— ืœืขื•ื–ืจ ืงื•ื“ ื‘ืขื ืŸ ื”ื•ื ื“ืœื™ืคื” ืคื•ื˜ื ืฆื™ืืœื™ืช. ืœื—ื‘ืจื” ืฉื‘ื•ื ื” ืžืขืจื›ืช ืงื ื™ื™ื ื™ืช โ€” ื•ื‘ืžื™ื•ื—ื“ ื‘ืคื™ื ื ืกื™ื, ื‘ืจืคื•ืื” ื•ื‘ื‘ื™ื˜ื—ื•ืŸ โ€” ื–ื” ืคืฉื•ื˜ ืœื ืขื•ื‘ืจ.
67
 
68
+ ื”ืžื•ื“ืœ ื”ื–ื” ื”ื•ื ื”ื—ืœื•ืคื” ื”ืคืจื˜ื™ืช: ืงื˜ืŸ ืžืกืคื™ืง ืœืจื•ืฅ ืžืงื•ืžื™ืช, ืžื›ื•ื•ืŸ ืœืฉืชื™ ื”ืฉืคื•ืช ืฉืจื•ื‘ ื”ื—ื‘ืจื•ืช ื‘ืืžืช ื›ื•ืชื‘ื•ืช ื‘ื”ืŸ.
69
 
70
+ **ื”ื•ื ืœื ืžืชื—ืจื” ื‘-Claude ืื• ื‘-GPT ื‘ื™ื›ื•ืœืช ื’ื•ืœืžื™ืช, ื•ื”ื•ื ืœื ืžื ืกื”.** ื”ื•ื ืžืฆื™ืข ืžืฉื”ื• ืื—ืจ: ืขื–ืจื” ืกื‘ื™ืจื”, ื‘ืœื™ ืจืฉืช, ื‘ืœื™ ืฉืืฃ ืื—ื“ ืื—ืจ ืจื•ืื” ืืช ื”ืงื•ื“.
71
 
72
+ ## ืœืžื” ื”ื•ื ืžื™ื•ืขื“
73
 
74
+ - ื”ืฉืœืžื” ื•ืกืงื™ืจื” ืฉืœ ืงื•ื“ ื‘ืกื‘ื™ื‘ื” ืžืคื•ืงื—ืช ืฉืืกื•ืจ ืœื” ืœืฆืืช ื”ื—ื•ืฆื”.
75
+ - ื”ืชืงื ื” ื‘ืชื•ืš ื—ื‘ืจื” ืฉื™ืฉ ืœื” ื›ืœืœื™ ืžืงื•ื-ืื—ืกื•ืŸ ื ื•ืงืฉื™ื.
76
+ - ืขื‘ื•ื“ื” ื‘ื–ื•ื’ ืขื ืžืคืชื— ื›ืฉื”ืื™ื ื˜ืจื ื˜ ืœื ืืžื™ืŸ ืื• ืœื ืงื™ื™ื.
77
+ - ื”ื˜ืžืขื” ื‘ืชื•ืš ื›ืœื™ ืคื™ืชื•ื— ืคื ื™ืžื™ ืฉืืกื•ืจ ืœื• ืœืงืจื•ื ืœ-API ื—ื™ืฆื•ื ื™.
78
+ - ืžืคืชื—ื™ื ื“ื•ื‘ืจื™ ืขื‘ืจื™ืช โ€” ื”ืžื•ื“ืœ ืขื•ื ื” ื‘ืขื‘ืจื™ืช ื›ืฉืคื•ื ื™ื ืืœื™ื• ื‘ืขื‘ืจื™ืช, ื•ื”ืงื•ื“ ืขืฆืžื• ื ืฉืืจ ื‘ืื ื’ืœื™ืช.
 
79
 
80
+ ## ืžื” ื”ื•ื **ืœื**, ื•ืžื” ืืกื•ืจ ืœืขืฉื•ืช ืื™ืชื•
 
 
 
 
81
 
82
+ - **ื”ื•ื ืœื ืชื—ืœื™ืฃ ืœืžื•ื“ืœ ื’ื“ื•ืœ** ื‘ืฉืืœื•ืช ืืจื›ื™ื˜ืงื˜ื•ืจื”, ื‘ืงื•ื“ ืฉืคืจื•ืก ืขืœ ื”ืจื‘ื” ืงื‘ืฆื™ื, ืื• ื‘ื›ืœ ื“ื‘ืจ ืฉื“ื•ืจืฉ ืœื”ื—ื–ื™ืง ื”ืงืฉืจ ืืจื•ืš ื‘ืจืืฉ.
83
+ - **ืืกื•ืจ ืœืฉืœื•ื— ืืช ื”ืงื•ื“ ืฉืœื• ืœื™ื™ืฆื•ืจ ื‘ืœื™ ืฉืื“ื ืงืจื ืื•ืชื•.** ื”ื•ื ืžื™ื™ืฆืจ ืงื•ื“ ืฉื ืจืื” ื ื›ื•ืŸ ื•ืœื ืจืฅ. ื–ื• ืœื ืชืงืœื” ื ื“ื™ืจื”.
84
+ - **ื”ื•ื ืžืžืฆื™ื ืžืžืฉืงื™ื ืฉืœ ืกืคืจื™ื•ืช.** ื—ืชื™ืžื•ืช ืฉืœ ืคื•ื ืงืฆื™ื•ืช ืฉืœื ืงื™ื™ืžื•ืช, ืคืจืžื˜ืจื™ื ืฉืœื ืงื™ื™ืžื™ื, ื’ืจืกืื•ืช ืฉืœื ืงื™ื™ืžื•ืช. ืชืžื™ื“ ืœื‘ื“ื•ืง ืžื•ืœ ื”ืชื™ืขื•ื“.
85
+ - **ื”ื•ื ืžื›ื™ืจ ืจืง Python ื•-TypeScript.** ื‘ื›ืœ ืฉืคื” ืื—ืจืช ื”ื›ื™ืกื•ื™ ืžื™ื ื™ืžืœื™, ื•ื”ืชื—ื‘ื™ืจ ืฉื™ืฆื ืœื ื™ื”ื™ื” ื‘ื”ื›ืจื— ื ื›ื•ืŸ ืื• ืžืงื•ื‘ืœ.
86
+ - **ื™ืฉ ืœื• ืชืืจื™ืš ื™ื“ืข.** ืกืคืจื™ื•ืช ื•ื›ืœื™ื ืฉื™ืฆืื• ืื—ืจื™ ืฉื”ื“ืื˜ื” ื ืืกืฃ, ื‘ืชื—ื™ืœืช 2026, ืคืฉื•ื˜ ืœื ืงื™ื™ืžื™ื ื‘ืฉื‘ื™ืœื•.
87
+ - **ืื™ืŸ ืœื• ื›ืœื™ื.** ื”ื•ื ืœื ืžืจื™ืฅ ืคืงื•ื“ื•ืช, ืœื ืงื•ืจื ืงื‘ืฆื™ื ื•ืœื ื‘ื•ื“ืง ืืช ืขืฆืžื•. ื‘ืฉื‘ื™ืœ ื”ืชื ื”ื’ื•ืช ืฉืœ ืกื•ื›ืŸ ืฆืจื™ืš ืœื‘ื ื•ืช ืžืกื‘ื™ื‘ื• ืชืฉืชื™ืช.
88
+ - **ืื™ืŸ ืœื• ืฆื™ื•ืŸ ืขืœ ืžื‘ื—ืŸ ืžื•ื›ืจ.** ืจืื” ืืช ืคืจืง ื”ื”ืขืจื›ื” โ€” ื”ื‘ื“ื™ืงื•ืช ืฉื›ืŸ ื ืขืฉื• ืงื˜ื ื•ืช ืžืื•ื“ ื•ืื™ื ืŸ ืžื‘ื—ืŸ.
89
+
90
+ ## ืื™ืš ืžืจื™ืฆื™ื
91
 
92
  ### Ollama
93
 
 
98
 
99
  ### llama.cpp
100
 
101
+ ืฉื ื”ืงื•ื‘ืฅ ื‘ืชื•ืš ื”ืžืื’ืจ ื”ื•ื `gemma-4-e4b-it.Q4_K_M.gguf`. ื”ืฉื ื ืฉืžืจ ืžืฉืœื‘ ื”ื‘ื ื™ื™ื” โ€” ื–ื” ื”ืงื•ื‘ืฅ ืฉืœ ื”ืžื•ื“ืœ **ื”ืžืื•ืžืŸ**, ื•ืœื ืฉืœ ืžื•ื“ืœ ื”ื‘ืกื™ืก.
102
+
103
  ```bash
104
+ ./llama-cli -m gemma-4-e4b-it.Q4_K_M.gguf \
105
  -p "Write a Python function that parses ISO-8601 dates with timezones." \
106
  --temp 0.2 --top-p 0.95 -n 1024
107
  ```
108
 
109
+ ### ืคื™ื™ืชื•ืŸ, ื“ืจืš ืžืื’ืจ ื”-safetensors
110
 
111
  ```python
112
  from transformers import AutoTokenizer, AutoModelForCausalLM
 
126
  print(tokenizer.decode(outputs[0], skip_special_tokens=True))
127
  ```
128
 
129
+ ### ืคืจืžื˜ืจื™ ื”ืจืฆื” ืžื•ืžืœืฆื™ื
 
 
 
 
 
 
 
 
130
 
131
+ | ืคืจืžื˜ืจ | ืขืจืš | ืœืžื” |
132
+ |---|---|---|
133
+ | `temperature` | 0.2 | ื™ืฆื™ืจืชื™ื•ืช ื ืžื•ื›ื”. ื‘ืงื•ื“ ืจื•ืฆื™ื ืชืฉื•ื‘ื” ืฆืคื•ื™ื”, ืœื ืžืงื•ืจื™ืช |
134
+ | `top_p` | 0.95 | ืžืขื˜ ื’ื‘ื•ื” ืžื”ืžื•ื“ืœ ื”ืžืฉืคื˜ื™, ื›ื“ื™ ืœืืคืฉืจ ื’ื™ื•ื•ืŸ ื‘ืกื’ื ื•ืŸ ื›ืชื™ื‘ื” |
135
+ | `max_new_tokens` | 1024 | ืžืกืคื™ืง ืœืจื•ื‘ ื”ืคื•ื ืงืฆื™ื•ืช |
136
+ | `repetition_penalty` | 1.0 | ืงื ืก ืขืœ ื—ื–ืจื•ืช ืคื•ื’ืข ื‘ืงื•ื“ โ€” ื”ื–ื—ื” ื•ืฉืžื•ืช ืžืฉืชื ื™ื ื—ื•ื–ืจื™ื ืขืœ ืขืฆืžื ื‘ื›ื•ื•ื ื” |
137
 
138
+ ## ืคืจื•ืžืคื˜ ื”ืžืขืจื›ืช ื”ืžื•ืžืœืฅ โ€” ื–ื” ืžื” ืฉืžืฉื ื” ื”ื›ื™ ื”ืจื‘ื”
139
 
140
+ ืžื•ื“ืœ ื‘ื’ื•ื“ืœ ื”ื–ื” ื›ื•ืชื‘ ืงื•ื“ **ื”ืจื‘ื”** ื™ื•ืชืจ ื˜ื•ื‘ ื›ืฉืžื›ืจื™ื—ื™ื ืื•ืชื• ืœื—ืฉื•ื‘ ื‘ื—ืžื™ืฉื” ืฉืœื‘ื™ื ืœืคื ื™ ืฉื”ื•ื ื›ื•ืชื‘ ืฉื•ืจื”. ื‘ืœื™ ื–ื” ื”ื•ื ืงื•ืคืฅ ื™ืฉืจ ืœืงื•ื“ โ€” ืงื•ื“ ืฉืžืชืงืžืคืœ ื•ื ื•ืคืœ ืขืœ ืžืงืจื” ืงืฆื”, ื‘ืœื™ ื‘ื“ื™ืงื•ืช ื•ื‘ืœื™ ืื–ื”ืจื”.
141
 
142
+ ื—ืžืฉืช ื”ืฉืœื‘ื™ื: ืœื”ื‘ื™ืŸ ืืช ื”ื‘ืขื™ื”, ืœืžื ื•ืช ืืช ืžืงืจื™ ื”ืงืฆื”, ืœื›ืชื•ื‘ ืืช ื”ืงื•ื“, ืœื›ืชื•ื‘ ื‘ื“ื™ืงื•ืช, ื•ืœื•ืžืจ ื‘ื›ื ื•ืช ืžื” ื”ืงื•ื“ ืœื ืžื›ืกื”.
143
 
144
+ **ื•ื–ืืช ื”ืชืจืฉืžื•ืช, ืœื ืžื“ื™ื“ื”.** ืœื ืจืฆื” ื”ืฉื•ื•ืื” ืžืกืคืจื™ืช ื‘ื™ืŸ ื”ืจืฆื” ืขื ื”ืคืจื•ืžืคื˜ ืœื”ืจืฆื” ื‘ืœืขื“ื™ื•.
 
 
 
 
145
 
146
+ ### ื”ืคืจื•ืžืคื˜ ืขืฆืžื• โ€” ื”ืขืชืง ื›ืžื• ืฉื”ื•ื
147
 
148
  ```text
149
  DEFINITIONS:
 
222
  - regression check: No "production-ready" claims unless edge cases match limitations.
223
  ```
224
 
225
+ ### ื“ื•ื’ืžืช ืฉื™ืžื•ืฉ ืขื ื”ืคืจื•ืžืคื˜
226
 
227
  ```python
228
  from transformers import AutoTokenizer, AutoModelForCausalLM
 
234
  device_map="auto",
235
  )
236
 
237
+ # ื”ื“ื‘ืง ื›ืืŸ ืืช ื”ืคืจื•ืžืคื˜ ื”ืžืœื ืžื”ื‘ืœื•ืง ืฉืœืžืขืœื”
238
  SYSTEM_PROMPT = """[paste the full prompt from the code block above]"""
239
 
240
  messages = [
 
247
  print(tokenizer.decode(outputs[0], skip_special_tokens=True))
248
  ```
249
 
250
+ ### ื”ืชืืžื•ืช ืืคืฉืจื™ื•ืช
251
 
252
+ - ืจื•ืฆื” ืจืง ืงื•ื“ ื‘ืœื™ ื”ืกื‘ืจื™ื? ื”ื—ืœืฃ ืืช `OUTPUT_FORMAT` ื‘-"Code blocks only".
253
+ - ื‘ื•ื ื” ื›ืœื™ ืœืกืงื™ืจืช ืงื•ื“? ื”ื•ืกืฃ ืœ-`REQUIREMENTS` ื“ืจื™ืฉื” ืฉื”ืคืœื˜ ื™ื”ื™ื” ื‘ืคื•ืจืžื˜ diff.
254
+ - ืฆืจื™ืš ืจืง TypeScript? ื”ื•ืกืฃ ืœ-`REQUIREMENTS` ืฉื›ืœ ืชืฉื•ื‘ื” ืชื”ื™ื” ื‘-TypeScript ืขื ื˜ื™ืคื•ืกื™ื.
255
+ - ืขื•ื‘ื“ ืขืœ ืงื•ื“ ืจื’ื™ืฉ ืื‘ื˜ื—ืชื™ืช? ื”ื•ืกืฃ ืกืขื™ืฃ ืœ-`OUTPUT_FORMAT` ื‘ืฉื "Security Review".
256
 
257
+ ## ืคืจื˜ื™ ื”ืื™ืžื•ืŸ
258
 
259
+ | ืžืืคื™ื™ืŸ | ืขืจืš |
260
+ |---|---|
261
+ | **ืžื•ื“ืœ ื‘ืกื™ืก** | [`unsloth/gemma-4-E4B-it`](https://huggingface.co/unsloth/gemma-4-E4B-it) |
262
+ | **ืฉื™ื˜ื”** | QLoRA โ€” ืžื•ื“ืœ ื”ื‘ืกื™ืก ื ื˜ืขืŸ ื‘-4 ื‘ื™ื˜ ื‘ื–ืžืŸ ื”ืื™ืžื•ืŸ |
263
+ | **ืžืกื’ืจืช** | Unsloth |
264
+ | **ื—ื•ืžืจื”** | NVIDIA RTX 5090 |
265
+ | **ืฉื•ืจื•ืช ืื™ืžื•ืŸ** | 38,314 |
266
+ | **ืฉื•ืจื•ืช ืžื‘ื—ืŸ ืฉื”ื•ื—ื–ืงื• ื‘ืฆื“** | 2,016 |
267
+ | **ื—ืœื•ืงื”** | 95% / 5%, seed 3407 |
268
+ | **ื”ื™ืคืจ-ืคืจืžื˜ืจื™ื, ื–ืžืŸ ื•ืขืœื•ืช** | ืœื ื ื›ืชื‘ื™ื ื›ืืŸ โ€” ืจืื” ื”ื”ืขืจื” ืžืชื—ืช ืœื˜ื‘ืœื” |
269
 
270
+ > **ืœืžื” ื—ืกืจื™ื ื›ืืŸ ืžืกืคืจื™ื.** ืจืฉื•ืžื•ืช ื”ืื™ืžื•ืŸ ืฉืœ ื”ืžื•ื“ืœ ื”ื–ื” ืฉืจื“ื• ื‘ืฉืชื™ ื’ืจืกืื•ืช ืฉืกื•ืชืจื•ืช ื–ื• ืืช ื–ื• ื‘ื“ื™ื•ืง ืขืœ ื“ืจื’ืช ื”-LoRA ื•ืขืœ ืฉืืจ ื”ื”ื™ืคืจ-ืคืจืžื˜ืจื™ื. ืื™ ืืคืฉืจ ืœื“ืขืช ืžื”ืžืงื•ืจื•ืช ืฉืงื™ื™ืžื™ื ืื™ื–ื• ืžื”ืŸ ืžืชืืจืช ืืช ื”ืžืฉืงื•ืœื•ืช ืฉืคื•ืจืกืžื• ื›ืืŸ, ื•ืœื›ืŸ ื”ืฉื•ืจื•ืช ื”ืืœื” ื”ื•ืกืจื• ื‘ืžืงื•ื ืœื”ื™ืฉืืจ ื•ืœื”ื™ืจืื•ืช ื›ืžื• ืขื•ื‘ื“ื”. ืžื” ืฉื›ืŸ ื ืฉืืจ โ€” ืžื•ื“ืœ ื”ื‘ืกื™ืก, ื”ื—ื•ืžืจื”, ื•ืกืคื™ืจืช ื”ืฉื•ืจื•ืช โ€” ืžื•ืคื™ืข ื‘ืื•ืคืŸ ื–ื”ื” ื‘ืฉื ื™ ื”ืžืงื•ืจื•ืช, ื•ืกืคื™ืจืช ื”ืฉื•ืจื•ืช ืืฃ ื ืงืจืื” ืžืงื•ื‘ืฅ ืกื˜ื˜ื™ืกื˜ื™ืงื” ืฉื ื•ืฆืจ ืขืœ ื™ื“ื™ ื”ืžื›ื•ื ื” ืขืฆืžื”.
 
 
 
 
 
 
 
 
 
271
 
272
+ ### ืžืžื” ืžื•ืจื›ื‘ ื”ื“ืื˜ื”
273
 
274
+ | ืž๏ฟฝ๏ฟฝื•ืจ | ื›ืžื•ืช | ืชื•ื›ืŸ |
275
+ |---|---|---|
276
+ | [`nvidia/OpenCodeInstruct`](https://huggingface.co/datasets/nvidia/OpenCodeInstruct) | 20,000 | Python โ€” ืจืง ื“ื•ื’ืžืื•ืช ืฉื”ืงื•ื“ ื‘ื”ืŸ ืขื‘ืจ ืœืคื—ื•ืช 50% ืžื”ื‘ื“ื™ืงื•ืช ืฉืœื• |
277
+ | [`bleugreen/typescript-instruct`](https://huggingface.co/datasets/bleugreen/typescript-instruct) | 20,000 | TypeScript |
278
+ | ืกื˜ ื–ื”ื•ืช ืฉื ื›ืชื‘ ื‘ื™ื“ | 330 | 165 ื–ื•ื’ื•ืช ืฉืืœื”-ืชืฉื•ื‘ื”, ื›ืœ ืื—ื“ ื ื›ืœืœ ืคืขืžื™ื™ื. ืขื‘ืจื™ืช ื•ืื ื’ืœื™ืช |
279
+ | **ืกืš ื”ื›ืœ** | **40,330** | |
280
 
281
+ **ื”ืกื™ื ื•ืŸ ื”ื•ื ื”ืขื™ืงืจ ื›ืืŸ.** ืžืงื•ืจ ื”-Python ื”ื•ื ืงื•ืจืคื•ืก ืขื ืง. ืขื‘ืจื ื• ืขืœื™ื• ื•ื—ืชื›ื ื• ืœืคื™ ืžื‘ื—ืŸ ืื—ื“: ื”ืื ื”ืงื•ื“ ื‘ื“ื•ื’ืžื” ืขื‘ืจ ืืช ื”ื‘ื“ื™ืงื•ืช ืฉื ื›ืชื‘ื• ืขื‘ื•ืจื•. ื“ื•ื’ืžืื•ืช ื‘ืœื™ ืชื•ืฆืื•ืช ื‘ื“ื™ืงื” ื ื–ืจืงื•, ื“ื•ื’ืžืื•ืช ืฉืขื‘ืจื• ืคื—ื•ืช ืžื—ืฆื™ ื ื–ืจืงื•, ื•ื›ืคื™ืœื•ื™ื•ืช ืœืคื™ ืฉืืœื” ื–ื”ื” ื ื–ืจืงื•. ื’ื ืื•ืจืš ื”ื˜ืงืกื˜ ื ื—ืชืš ื‘-6,000 ืชื•ื•ื™ื.
282
 
283
+ ื–ื• ื”ื™ื™ืชื” ื”ื”ื—ืœื˜ื” ืฉื”ืฉืคื™ืขื” ื”ื›ื™ ื”ืจื‘ื” ืขืœ ื”ืชื•ืฆืื”: ืื™ืžื•ืŸ ืขืœ ื”ืงื•ืจืคื•ืก ื”ืžืœื, ื‘ืœื™ ืกื™ื ื•ืŸ, ื™ื™ืฆืจ ืžื•ื“ืœ ืจื•ืขืฉ ื™ื•ืชืจ.
284
 
285
+ ื”ื›ืœ ืžืคื•ืจืกื ื‘ื›ืจื˜ื™ืก ื”ื“ืื˜ื” ืฉืœ [`code-training-il`](https://huggingface.co/datasets/BrainboxAI/code-training-il).
286
 
287
+ ## ื”ืขืจื›ื”
288
 
289
+ **ืœื ืจืฅ ืžื‘ื—ืŸ ืžื•ื›ืจ ืขืœ ื”ืžื•ื“ืœ ื”ื–ื”. ืื™ืŸ ืฆื™ื•ืŸ HumanEval, ืื™ืŸ MBPP, ื•ืื™ืŸ ืฉื•ื ืžืกืคืจ ืฉืืคืฉืจ ืœื”ืฉื•ื•ืช ืžื•ืœื• ืœืžื•ื“ืœ ืื—ืจ.**
 
 
 
290
 
291
+ ืžื” ืฉื›ืŸ ื ืขืฉื” โ€” ืฉืชื™ ื‘ื“ื™ืงื•ืช ื™ื“ื ื™ื•ืช, ืงื˜ื ื•ืช:
292
 
293
+ | ืžื” ื ื‘ื“ืง | ื›ืžื” ืžืงืจื™ื | ืชื•ืฆืื” |
294
+ |---|---|---|
295
+ | FizzBuzz, ื“ืจืš ืœื•ืœืืช ืกื•ื›ืŸ | 5 | 5 ืžืชื•ืš 5, ื‘-6 ืฆืขื“ื™ื, ื‘ืœื™ ืกื‘ื‘ ืชื™ืงื•ืŸ |
296
+ | ื—ื™ืคื•ืฉ ื‘ื™ื ืืจื™ ืขื 11 ืžืงืจื™ ืงืฆื” | 11 | 11 ืžืชื•ืš 11, ื›ื•ืœืœ ื˜ื™ืคื•ืœ ื‘ื›ืคื™ืœื•ืช ื”ืฉืžืืœื™ืช |
297
 
298
+ **ืื™ืš ืœืงืจื•ื ืืช ื–ื”, ื‘ื›ื ื•ืช.** ืืœื” 16 ืžืงืจื™ื ื‘ืกืš ื”ื›ืœ, ืฉืฉื ื™ ื‘ื ื™ ืื“ื ื”ืจื™ืฆื• ื‘ื™ื“. ืื™ืŸ ืงื•ื‘ืฅ ืชื•ืฆืื•ืช, ืื™ืŸ ืงื•ื“ ื‘ื“ื™ืงื” ืฉืคื•ืจืกื, ื•ืื™ ืืคืฉืจ ืœืฉื—ื–ืจ ืืช ื–ื” ืžื‘ื—ื•ืฅ. ื–ื” ืžืกืคื™ืง ื›ื“ื™ ืœื•ืžืจ "ื”ืžื•ื“ืœ ืขื•ื‘ื“ ื•ืœื ืงื•ืจืก". ื–ื” **ืœื** ืžื‘ื—ืŸ, ื•ืืกื•ืจ ืœื”ืฉื•ื•ืช ืื•ืชื• ืœืžืกืคืจื™ื ืฉืœ ืžื•ื“ืœื™ื ืื—ืจื™ื.
 
 
 
 
299
 
300
+ ืžื‘ื—ืŸ ืืžื™ืชื™ ื”ื•ื ืขื‘ื•ื“ื” ืคืชื•ื—ื”. ืื ื•ื›ืืฉืจ ื”ื•ื ื™ืจื•ืฅ, ื”ืชื•ืฆืื” ืชื•ืคื™ืข ื›ืืŸ.
301
 
302
+ ## ืžื’ื‘ืœื•ืช
 
303
 
304
+ - **ืžื•ื“ืœ ืงื˜ืŸ.** ื‘ื’ื•ื“ืœ ื”ื–ื” ื™ืฉ ื˜ืขื•ื™ื•ืช ื‘ืฉืืœื•ืช ืืจื›ื™ื˜ืงื˜ื•ืจื” ื•ื‘ื”ืงืฉืจ ืืจื•ืš. ื–ื• ื•ื“ืื•ืช, ืœื ืืคืฉืจื•ืช.
305
+ - **ืฉืชื™ ืฉืคื•ืช.** ื—ื–ืง ื‘-Python ื•ื‘-TypeScript, ื—ืœืฉ ื‘ื›ืœ ื”ืฉืืจ.
306
+ - **ืื™ืŸ ืฉื™ืžื•ืฉ ื‘ื›ืœื™ื ืžื”ืงื•ืคืกื”.** ื”ื•ื ืžื“ื‘ืจ, ื”ื•ื ืœื ืžืจื™ืฅ. ืกื•ื›ืŸ ื“ื•ืจืฉ ืขื‘ื•ื“ืช ืื™ื ื˜ื’ืจืฆื™ื”.
307
+ - **ืชืืจื™ืš ื™ื“ืข.** ืžื” ืฉื™ืฆื ืื—ืจื™ ืชื—ื™ืœืช 2026 ืœื ืงื™ื™ื ื‘ืฉื‘ื™ืœื•.
308
+ - **ื”ื•ื ืžืžืฆื™ื ืงื•ื“ ืฉื ืจืื” ื ื›ื•ืŸ.** ืชืžื™ื“ ืœื”ืจื™ืฅ ื•ืœื‘ื“ื•ืง.
309
+ - **ืื™ืŸ ืžื‘ื—ืŸ.** ืจืื” ืืช ืคืจืง ื”ื”ืขืจื›ื”.
310
+ - **ื–ื”ื• ืื™ืžื•ืŸ ืžืขืœ `unsloth/gemma-4-E4B-it`.** ื›ืœ ืžื’ื‘ืœื” ืฉืœ ืžื•ื“ืœ ื”ื‘ืกื™ืก ื ืžืฆืืช ื’ื ื›ืืŸ.
311
 
312
+ ## ื”ืงื‘ืฆื™ื ื•ื”ืžืื’ืจื™ื
313
 
314
+ | ืžืื’ืจ | ืžื” ื™ืฉ ื‘ืคื ื™ื | ืœืžื™ ื–ื” |
315
+ |---|---|---|
316
+ | [`BrainboxAI/code-il-E4B`](https://huggingface.co/BrainboxAI/code-il-E4B) | `gemma-4-e4b-it.Q4_K_M.gguf` (5.3 ื’'ื™ื’ื”) ื•ื”ื›ืจื˜ื™ืก ื”ื–ื” | Ollama, llama.cpp, LM Studio |
317
+ | [`BrainboxAI/code-il-E4B-safetensors`](https://huggingface.co/BrainboxAI/code-il-E4B-safetensors) | ืžืฉืงื•ืœื•ืช ืžืœืื•ืช ื‘-16 ื‘ื™ื˜ (16.0 ื’'ื™ื’ื”) | transformers, ื•ื”ืžืฉืš ืื™ืžื•ืŸ |
318
+
319
+ ื‘ืžืื’ืจ ื™ื•ืฉื‘ ื’ื `gemma-4-e4b-it.BF16-mmproj.gguf` (0.99 ื’'ื™ื’ื”). ื–ื”ื• ืจื›ื™ื‘ ื”ืจืื™ื™ื” ืฉืœ Gemma-4, ืฉื ื—ื•ืฅ ืจืง ืื ืจื•ืฆื™ื ืœื”ื–ื™ืŸ ืชืžื•ื ื•ืช. ืœืขื‘ื•ื“ืช ืงื•ื“ ืื™ืŸ ื‘ื• ืฆื•ืจืš.
320
+
321
+ ## ืจื™ืฉื™ื•ืŸ
322
+
323
+ Apache 2.0. ืžื•ืชืจ ืœื”ืฉืชืžืฉ, ืœืฉื ื•ืช, ืœื”ืคื™ืฅ ื•ืœืžื›ื•ืจ ื ื’ื–ืจื•ืช, ืขื ื™ื™ื—ื•ืก.
324
+
325
+ ื–ื”ื• ืื™ืžื•ืŸ ืžืขืœ [`unsloth/gemma-4-E4B-it`](https://huggingface.co/unsloth/gemma-4-E4B-it), ื•ืœื›ืŸ ื”ืชื ืื™ื ืฉืœ ืžื•ื“ืœ ื”ื‘ืกื™ืก ื—ืœื™ื ื’ื ืขืœ ื”ืžื•ื“ืœ ื”ื–ื”. ืžื•ื“ืœ ื”ื‘ืกื™ืก ืžืคื•ืจืกื ืชื—ืช Apache 2.0 ื•ืžืคื ื” ื’ื ืืœ [ืชื ืื™ ื”ืฉื™ืžื•ืฉ ืฉืœ Gemma](https://ai.google.dev/gemma/docs/gemma_4_license). ื›ื“ืื™ ืœืงืจื•ื ืื•ืชื ืœืคื ื™ ืฉื™ืžื•ืฉ ืžืกื—ืจื™.
326
+
327
+ ืœื—ื•ืžืจ ื”ืื™ืžื•ืŸ ื™ืฉ ืจื™ืฉื™ื•ื ื•ืช ืžืฉืœื•, ืฉืœ ื”ืžืงื•ืจื•ืช ืฉืžืžื ื• ื”ื•ื ื ื‘ื ื”. ืจืื” ืืช ื›ืจื˜ื™ืก ื”ื“ืื˜ื”.
328
+
329
+ ## ืฆื™ื˜ื•ื˜
330
 
331
  ```bibtex
332
  @misc{elyasi2026codeil,
333
+ title = {Code-IL E4B (bx-code-nogah): A Small, On-Device Coding Assistant for Private Environments},
334
  author = {Elyasi, Netanel},
335
  year = {2026},
336
  publisher = {BrainboxAI},
 
339
  }
340
  ```
341
 
342
+ ## ืžื™ ื‘ื ื” ืืช ื–ื”
343
 
344
+ ื ื‘ื ื” ืขืœ ื™ื“ื™ [**ื ืชื ืืœ ืืœื™ืืกื™**](https://huggingface.co/BrainboxAI), ืžื™ื™ืกื“ [BrainboxAI](https://brainboxai.io) โ€” ืกื˜ื•ื“ื™ื• ื™ืฉืจืืœื™ ืœื‘ื™ื ื” ืžืœืื›ื•ืชื™ืช ื™ื™ืฉื•ืžื™ืช, ืฉื‘ื•ื ื” ืžื•ื“ืœื™ื ืงื˜ื ื™ื, ืคืจื˜ื™ื™ื ื•ืžืชืžื—ื™ื.
345
 
346
+ ืœื›ื•ื•ื ื•ืŸ ืžื•ื“ืœ ืงื•ื“ ืขืœ ื‘ืกื™ืก ื”ืงื•ื“ ื”ืคืจื˜ื™ ืฉืœ ื”ื—ื‘ืจื” ืฉืœืš: [netanele@brainboxai.io](mailto:netanele@brainboxai.io).
 
 
347
 
348
+ *ื—ืœืง ืžืžืฉืคื—ืช ื”ืžื•ื“ืœื™ื ืฉืœ BrainboxAI ืฉืจืฆื™ื ืขืœ ื”ื—ื•ืžืจื” ืฉืœืš. ืจืื” ื’ื [`law-il-E2B`](https://huggingface.co/BrainboxAI/law-il-E2B) (ืžืฉืคื˜) ื•-[`cyber-analyst-4B`](https://huggingface.co/BrainboxAI/cyber-analyst-4B) (ืกื™ื™ื‘ืจ).*