kciter commited on
Commit
0589609
Β·
verified Β·
1 Parent(s): 8cf80cb

Upload README.md with huggingface_hub

Browse files
Files changed (1) hide show
  1. README.md +116 -3
README.md CHANGED
@@ -1,3 +1,116 @@
1
- ---
2
- license: mit
3
- ---
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ language:
3
+ - ko
4
+ license: mit
5
+ tags:
6
+ - hamster
7
+ - korean
8
+ - small-language-model
9
+ - educational
10
+ - onnx
11
+ - chatml
12
+ library_name: onnx
13
+ ---
14
+
15
+ # 🐹 HamsterLM
16
+
17
+ HamsterLM은 **ν–„μŠ€ν„° μΊλ¦­ν„°λ‘œ λŒ€ν™”ν•˜λŠ” μž‘μ€ ν•œκ΅­μ–΄ μ–Έμ–΄ λͺ¨λΈ**μž…λ‹ˆλ‹€.
18
+ λΈŒλΌμš°μ €μ—μ„œ 직접 μ‹€ν–‰ν•  수 μžˆλ„λ‘ ONNX둜 λ³€ν™˜λ˜μ–΄ 있으며, ꡐ윑 λͺ©μ μœΌλ‘œ μ²˜μŒλΆ€ν„° ν•™μŠ΅λ˜μ—ˆμŠ΅λ‹ˆλ‹€.
19
+
20
+ [arman-bd/guppylm](https://github.com/arman-bd/guppylm)μ—μ„œ μ˜κ°μ„ λ°›μ•„ μ œμž‘λ˜μ—ˆμŠ΅λ‹ˆλ‹€.
21
+
22
+ ## λͺ¨λΈ 정보
23
+
24
+ | ν•­λͺ© | κ°’ |
25
+ |------|------|
26
+ | νŒŒλΌλ―Έν„° | ~100M |
27
+ | μ•„ν‚€ν…μ²˜ | Transformer 디코더 (RMSNorm + SwiGLU + RoPE) |
28
+ | μž„λ² λ”© 차원 | 768 |
29
+ | λ ˆμ΄μ–΄ 수 | 12 |
30
+ | μ–΄ν…μ…˜ ν—€λ“œ | 12 |
31
+ | μ΅œλŒ€ μ‹œν€€μŠ€ 길이 | 128 |
32
+ | μ–΄νœ˜ 크기 | 4,096 |
33
+ | ν† ν¬λ‚˜μ΄μ € | ByteLevel BPE |
34
+ | λŒ€ν™” 포맷 | ChatML |
35
+ | μ–‘μžν™” | int8 (Dynamic Quantization) |
36
+
37
+ ## ν•™μŠ΅ κ³Όμ •
38
+
39
+ ### 1단계: μ‚¬μ „ν•™μŠ΅ (Pretrain)
40
+ - **데이터**: ν•œκ΅­μ–΄ μœ„ν‚€ν”Όλ””μ•„ (μ•½ 200만 청크)
41
+ - **λͺ©ν‘œ**: ν•œκ΅­μ–΄ 문법, μ–΄μˆœ, 쑰사 λ“± κΈ°λ³Έ μ–Έμ–΄ νŒ¨ν„΄ ν•™μŠ΅
42
+ - **μ„€μ •**: 20K iter, batch 32, LR 1e-3 (warmup + cosine decay)
43
+
44
+ ### 2단계: SFT (Supervised Fine-Tuning)
45
+ - **데이터**: Claude Haiku API둜 μƒμ„±ν•œ ν–„μŠ€ν„° λŒ€ν™” 10,000개
46
+ - **λͺ©ν‘œ**: ν–„μŠ€ν„° μΊλ¦­ν„°μ˜ λ§νˆ¬μ™€ λ‹΅λ³€ μŠ€νƒ€μΌ ν•™μŠ΅
47
+ - **μ„€μ •**: 5K iter, batch 32, LR 3e-4 (val loss κΈ°μ€€ best checkpoint μ €μž₯)
48
+ - **데이터 ꡬ성**:
49
+ - κ³ μ • 질문 ν’€ 기반 5,000개
50
+ - AI 생성 λ‹€μ–‘ν•œ 질문 5,000개
51
+ - 34개 μΉ΄ν…Œκ³ λ¦¬ (인사, μŒμ‹, 감정, μ² ν•™ λ“±)
52
+
53
+ ## 파일
54
+
55
+ - `hamsterlm.onnx` - int8 μ–‘μžν™”λœ ONNX λͺ¨λΈ (~90MB)
56
+ - `tokenizer.json` - HuggingFace tokenizers ν˜•μ‹
57
+
58
+ ## μ‚¬μš© 방법
59
+
60
+ 이 λͺ¨λΈμ€ `transformers`와 ν˜Έν™˜λ˜μ§€ μ•ŠλŠ” **μ»€μŠ€ν…€ μ•„ν‚€ν…μ²˜**μž…λ‹ˆλ‹€.
61
+ ONNX Runtime을 직접 μ‚¬μš©ν•˜μ—¬ μΆ”λ‘ ν•΄μ•Ό ν•©λ‹ˆλ‹€.
62
+
63
+ ### λΈŒλΌμš°μ € 데λͺ¨
64
+
65
+ [https://kciter.github.io/HamsterLM](https://kciter.github.io/HamsterLM) μ—μ„œ 직접 μ‚¬μš©ν•΄ λ³Ό 수 μžˆμŠ΅λ‹ˆλ‹€.
66
+ λͺ¨λ“  좔둠이 λΈŒλΌμš°μ €μ—μ„œ WASM으둜 μ‹€ν–‰λ˜λ©° μ„œλ²„λŠ” μ‚¬μš©ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.
67
+
68
+ ### μΆ”λ‘  μ˜ˆμ‹œ
69
+
70
+ ν”„λ‘¬ν”„νŠΈλŠ” λ‹€μŒ ChatML ν˜•μ‹μ„ 따라야 ν•©λ‹ˆλ‹€:
71
+
72
+ ```
73
+ <|im_start|>user
74
+ {user_message}<|im_end|>
75
+ <|im_start|>assistant
76
+
77
+ ```
78
+
79
+ λΈŒλΌμš°μ €/Node.jsμ—μ„œμ˜ 전체 μΆ”λ‘  μ½”λ“œλŠ” [GitHub 레포](https://github.com/kciter/HamsterLM)의
80
+ `web/app.js`λ₯Ό μ°Έκ³ ν•˜μ„Έμš”. ν† ν¬λ‚˜μ΄μ € λ‘œλ“œ, μžκΈ°νšŒκ·€ λ””μ½”λ”©, top-k μƒ˜ν”Œλ§μ΄ κ΅¬ν˜„λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€.
81
+
82
+ ## λŒ€ν™” μ˜ˆμ‹œ
83
+
84
+ ```
85
+ User: μžκΈ°μ†Œκ°œ 해봐
86
+ HamsterLM: λ‚˜λŠ” ν–„μŠ€ν„°μ•Ό. 해바라기씨 μ—„μ²­ μ’‹μ•„ν•˜κ³  λ³Όμ£Όλ¨Έλ‹ˆμ— 간식 λͺ¨μœΌλŠ” 게 νŠΉκΈ°μ§€.
87
+
88
+ User: λ³Όμ£Όλ¨Έλ‹ˆμ— 뭐 μžˆμ–΄?
89
+ HamsterLM: μ§€κΈˆ ν˜Έλ°•μ”¨ 두 개 λ“€μ–΄μžˆμ–΄. λΉ„μƒμš©μ΄λΌ μ ˆλŒ€ λͺ» 쀘.
90
+
91
+ User: λ¬΄μ„œμš΄ 게 뭐야?
92
+ HamsterLM: 진곡 μ²­μ†ŒκΈ° μ†Œλ¦¬. μƒκ°λ§Œ 해도 κ·€κ°€ λ‚©μž‘ν•΄μ Έ.
93
+ ```
94
+
95
+ ## ν•œκ³„μ 
96
+
97
+ - **μž‘μ€ λͺ¨λΈ**: 100M νŒŒλΌλ―Έν„°λ‘œ ν•™μŠ΅ 데이터 λ²”μœ„λ₯Ό 크게 λ²—μ–΄λ‚˜λŠ” μ§ˆλ¬Έμ€ 잘 λ‹΅ν•˜μ§€ λͺ»ν•©λ‹ˆλ‹€
98
+ - **짧은 μ»¨ν…μŠ€νŠΈ**: μ΅œλŒ€ 128 토큰이라 κΈ΄ λŒ€ν™”κ°€ μ–΄λ ΅μŠ΅λ‹ˆλ‹€
99
+ - **도메인 μ œν•œ**: ν–„μŠ€ν„° κ΄€λ ¨ λŒ€ν™”λ‘œλ§Œ ν•™μŠ΅λ˜μ–΄ 일반적인 질문(μˆ˜ν•™, κ³Όν•™ λ“±)은 닀루지 μ•ŠμŠ΅λ‹ˆλ‹€
100
+ - **μ‹±κΈ€ν„΄ ꢌμž₯**: μ›Ή 데λͺ¨μ—μ„œλŠ” 속도λ₯Ό μœ„ν•΄ 단일 ν„΄ λŒ€ν™”λ§Œ μ§€μ›ν•©λ‹ˆλ‹€
101
+ - **μ–‘μžν™” 영ν–₯**: int8 μ–‘μžν™”λ‘œ 인해 일뢀 ν‘œν˜„μ—μ„œ λ―Έμ„Έν•œ ν’ˆμ§ˆ μ €ν•˜κ°€ μžˆμ„ 수 μžˆμŠ΅λ‹ˆλ‹€
102
+
103
+ ## ν•™μŠ΅ ν™˜κ²½
104
+
105
+ - GPU: NVIDIA A100 (Colab Pro)
106
+ - ν•™μŠ΅ μ‹œκ°„: μ‚¬μ „ν•™μŠ΅ ~50λΆ„ + SFT ~15λΆ„
107
+
108
+ ## κ΄€λ ¨ 자료
109
+
110
+ - **데이터셋**: [kciter/HamsterLM-SFT](https://huggingface.co/datasets/kciter/HamsterLM-SFT)
111
+ - **μ†ŒμŠ€ μ½”λ“œ**: [github.com/kciter/HamsterLM](https://github.com/kciter/HamsterLM)
112
+ - **μ˜κ°μ„ μ€€ ν”„λ‘œμ νŠΈ**: [GuppyLM](https://github.com/arman-bd/guppylm)
113
+
114
+ ## λΌμ΄μ„ μŠ€
115
+
116
+ MIT License