119 lines
4.7 KiB
Markdown
119 lines
4.7 KiB
Markdown
|
|
---
|
|||
|
|
license: other
|
|||
|
|
license_name: "inherits-base-model-and-dataset-terms"
|
|||
|
|
base_model: "reallexi/lexi-coder-v4.3"
|
|||
|
|
library_name: transformers
|
|||
|
|
pipeline_tag: "text-generation"
|
|||
|
|
tags:
|
|||
|
|
- "ai-model-builder"
|
|||
|
|
- "fine-tuned"
|
|||
|
|
- lora
|
|||
|
|
- reallexi
|
|||
|
|
- "text-generation"
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# lexi-coder-v5.1
|
|||
|
|
|
|||
|
|
**lexi-coder-v5.1** by Reallexi LLC AI Model Builder — [llm.reallexi.io](https://llm.reallexi.io)
|
|||
|
|
|
|||
|
|
Copyright (c) 2026 Reallexi LLC. All rights reserved.
|
|||
|
|
|
|||
|
|
A standalone model of 3.86B parameters, derived from [`reallexi/lexi-coder-v4.3`](https://huggingface.co/reallexi/lexi-coder-v4.3).
|
|||
|
|
|
|||
|
|
The adapter has been merged into the base weights, so no PEFT adapter is needed at runtime.
|
|||
|
|
|
|||
|
|
|
|||
|
|
## Size and requirements
|
|||
|
|
|
|||
|
|
| | |
|
|||
|
|
|---|---|
|
|||
|
|
| Parameters | 3,859,090,432 (3.86B) |
|
|||
|
|
| Weights on disk | 7.15 GB |
|
|||
|
|
| Trained context length | 1,024 tokens |
|
|||
|
|
| Base model | `reallexi/lexi-coder-v4.3` |
|
|||
|
|
|
|||
|
|
|
|||
|
|
Approximate memory to hold the weights. Add context and runtime overhead on top.
|
|||
|
|
|
|||
|
|
| Precision | Weights |
|
|||
|
|
|---|---|
|
|||
|
|
| FP16 / BF16 | 7.19 GB |
|
|||
|
|
| 8-bit (Q8_0) | 3.59 GB |
|
|||
|
|
| 4-bit (Q4_K_M) | 1.98 GB |
|
|||
|
|
|
|||
|
|
|
|||
|
|
## Training
|
|||
|
|
|
|||
|
|
| | |
|
|||
|
|
|---|---|
|
|||
|
|
| Strategy | lora |
|
|||
|
|
| Adapter | Auto LoRA |
|
|||
|
|
| LoRA rank / alpha | 16 / 32 |
|
|||
|
|
| Dataset | `reallexi/lexi-coder-v3-datasest` |
|
|||
|
|
| Samples learned | 110,000 (through phase 28 of 258) |
|
|||
|
|
| Training steps | 15,000 |
|
|||
|
|
| Epochs | 3 |
|
|||
|
|
|
|||
|
|
|
|||
|
|
## Before / after samples
|
|||
|
|
|
|||
|
|
The same prompts, drawn from the training data, run through the base model before training and the finished model after. This shows what the run changed on representative prompts -- it is not a benchmark. Full outputs are in `SAMPLES.md` and `samples.json` alongside this file.
|
|||
|
|
|
|||
|
|
**Prompt:** def partition(p, r): i = p for j in range(p, r): if A[r][1] >= A[j][1]: A[i], A[j] = A[j], A[i]
|
|||
|
|
|
|||
|
|
- Before: i += 1 return partition(p, r) if partition(p, r) == partition(p, r): return partition(p, r) else: return partition(p, r)
|
|||
|
|
|
|||
|
|
n = int(input())
|
|||
|
|
A = [tuple(map(int, input().split())) for _ in range(n)]
|
|||
|
|
print(*partition(0, n)[1:]) for i in range(n) if partition(0,
|
|||
|
|
- After: i += 1 return i
|
|||
|
|
def quicksort(p, r): if p < r: i = partition(p, r) quicksort(p, i-1) quicksort(i, r)
|
|||
|
|
def mergeSort(p, r): if p < r: q = partition(p, r) mergeSort(p, q) mergeSort(q, r)
|
|||
|
|
def printList(): print(" ", end =
|
|||
|
|
|
|||
|
|
**Prompt:** {i : Node(None, None, None) for i in range(n)} # 情報を入れるdictをNodeクラスで作成 for _ in range(n): # 変数名を「 _ 」にすることによって、「その変数を使っていない」ことを表現している(Pythonの習慣) tmp
|
|||
|
|
|
|||
|
|
- Before: = input().split() # 変数名と値を入れる tmp[0] = tmp[0].strip() # 変数名を入れる tmp[1] = tmp[1].strip() # 値を入れる tmp[2] = tmp[2].strip() # 値を入れる tmp[3] = tmp[3].strip() #
|
|||
|
|
- After: = input().split() # 入れられた値を変数に入れる tmp[0] = int(tmp[0]) # 変数の値をintに変換 tmp[1] = int(tmp[1]) # 変数の値をintに変換 tmp[2] = int(tmp[2]) # 変数の値をintに変
|
|||
|
|
|
|||
|
|
**Prompt:** rmat(node_id), end = '') _pre_walk(self.nodes[node_id].left_child) _pre_walk(self.nodes[node_id].right_child) _pre_walk(self.root_id) print('') def inorder_walk…
|
|||
|
|
|
|||
|
|
- Before: _in_walk(self.nodes[node_id].left_child) print(str(self.nodes[node_id].value)) _in_walk(self.nodes[node_id].right_child) def _post_walk(self, node_id, end = ''): if node_id != -1: _post_walk(self.nodes[node_id].left_child) print(str(self.nodes[node_id].value)) _post_walk(self.nodes[node_id].right
|
|||
|
|
- After: print(' ', end = '') print(node_id, end = '') _in_walk(self.nodes[node_id].left_child) _in_walk(self.nodes[node_id].right_child) _in_walk(self.nodes[node_id].parent) def post_walk(self): print('Post') root_node = self.nodes[self.root_id] def _post_walk(node_id): if node_id != -1: _post_walk
|
|||
|
|
|
|||
|
|
|
|||
|
|
## Training curve
|
|||
|
|
|
|||
|
|

|
|||
|
|
|
|||
|
|
|
|||
|
|
## Usage
|
|||
|
|
|
|||
|
|
```python
|
|||
|
|
from transformers import AutoModelForCausalLM, AutoTokenizer
|
|||
|
|
|
|||
|
|
model = AutoModelForCausalLM.from_pretrained("lexi-coder-v5.1")
|
|||
|
|
tokenizer = AutoTokenizer.from_pretrained("lexi-coder-v5.1")
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
|
|||
|
|
## License and attribution
|
|||
|
|
|
|||
|
|
The effective terms are inherited from the base model and the training data, which are not necessarily the same as this project's own license. Review both before redistributing.
|
|||
|
|
|
|||
|
|
- Base model: [`reallexi/lexi-coder-v4.3`](https://huggingface.co/reallexi/lexi-coder-v4.3)
|
|||
|
|
|
|||
|
|
- Training data: `reallexi/lexi-coder-v3-datasest`
|
|||
|
|
|
|||
|
|
|
|||
|
|
Copyright (c) 2026 Reallexi LLC. All rights reserved.
|
|||
|
|
|
|||
|
|
|
|||
|
|
Produced by Reallexi LLC AI Model Builder from training job #161.
|
|||
|
|
Core: https://llm.reallexi.io
|
|||
|
|
|
|||
|
|
## Who, where, and what platform trained this?
|
|||
|
|
|
|||
|
|
Produced by Reallexi LLC on [Reallexi AI Model Builder](https://llm.reallexi.io), a local-first training platform (https://llm.reallexi.io). Hugging Face repository: [reallexi/lexi-coder-v5.1](https://huggingface.co/reallexi/lexi-coder-v5.1).
|
|||
|
|
Copyright (c) 2026 Reallexi LLC. All rights reserved.
|