QuatumTech commited on
Commit
5891866
·
verified ·
1 Parent(s): 759d613

Fix config hyperparameters for 80k architecture and tie embeddings

Browse files
Files changed (1) hide show
  1. README.md +63 -3
README.md CHANGED
@@ -1,3 +1,63 @@
1
- ---
2
- license: mit
3
- ---
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ language:
3
+ - en
4
+ license: mit
5
+ library_name: transformers
6
+ pipeline_tag: text-generation
7
+ tags:
8
+ - tiny-models
9
+ - custom-architecture
10
+ - story-generation
11
+ - experimental
12
+ ---
13
+
14
+ # Spin-80k
15
+
16
+ **Spin-80k** is a lightweight, 80k-parameter decoder-only language model built from scratch by **Quantech** to demonstrate custom Transformer architecture
17
+
18
+ ---
19
+
20
+ ## Model Specifications
21
+
22
+ * **Organization:** Quantech
23
+ * **Architecture:** Custom Decoder-only Transformer
24
+ * **Total Parameters:** ~80,112
25
+ * **Layers:** 2
26
+ * **Hidden Dimension ($d_{\text{model}}$):** 48
27
+ * **Attention Heads:** 4
28
+ * **Feed-Forward Dimension ($d_{\text{ff}}$):** 128
29
+ * **Positional Encoding:** Rotary Position Embeddings (RoPE)
30
+ * **Normalization:** RMSNorm ($\epsilon = 10^{-5}$)
31
+ * **Activation:** SwiGLU
32
+ * **Vocabulary:** 512 Byte-Pair Encoding (BPE) tokens
33
+ * **Context Length:** 256 tokens
34
+
35
+ ---
36
+
37
+ ## Quickstart
38
+
39
+ ```python
40
+ import torch
41
+ from transformers import AutoModelForCausalLM, AutoTokenizer
42
+
43
+ repo_id = "Quantech/spin-80k"
44
+
45
+ # Load Tokenizer & Model
46
+ tokenizer = AutoTokenizer.from_pretrained(repo_id, trust_remote_code=True)
47
+ model = AutoModelForCausalLM.from_pretrained(repo_id, trust_remote_code=True)
48
+ model.eval()
49
+
50
+ # ChatML Format
51
+ prompt = "<|im_start|>user\nWrite a short story about a dog.<|im_end|>\n<|im_start|>assistant\n"
52
+ inputs = tokenizer(prompt, return_tensors="pt")
53
+
54
+ with torch.no_grad():
55
+ outputs = model.generate(
56
+ **inputs,
57
+ max_new_tokens=50,
58
+ temperature=0.7,
59
+ do_sample=True,
60
+ pad_token_id=tokenizer.eos_token_id
61
+ )
62
+
63
+ print(tokenizer.decode(outputs[0]))