Update README.md
Browse files
README.md
CHANGED
@@ -10,13 +10,121 @@ license: apache-2.0
|
|
10 |
language:
|
11 |
- en
|
12 |
---
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
13 |
|
14 |
-
|
|
|
|
|
15 |
|
16 |
-
|
17 |
-
|
18 |
-
- **Finetuned from model :** unsloth/gemma-2-9b-it-bnb-4bit
|
19 |
|
20 |
-
|
21 |
|
22 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
10 |
language:
|
11 |
- en
|
12 |
---
|
13 |
+
---
|
14 |
+
base_model: unsloth/gemma-2-2b-it
|
15 |
+
tags:
|
16 |
+
- text-generation-inference
|
17 |
+
- transformers
|
18 |
+
- unsloth
|
19 |
+
- gemma2
|
20 |
+
- trl
|
21 |
+
license: openrail
|
22 |
+
language:
|
23 |
+
- en
|
24 |
+
---
|
25 |
+
# Gemma2 νκ΅μ΄ μ μ© μ΄λν° (Gemma2 Korean Adapter)
|
26 |
+
|
27 |
+
λ³Έ λ ν¬μ§ν 리λ **unsloth/gemma-2-9b-it-bnb-4bit** λͺ¨λΈμ κΈ°λ°μΌλ‘, **νκ΅μ΄ μ§μ λΆλ₯ λ° κ²μ 쿼리 μ¬μμ±**μ μννκΈ° μν μ΄λν°(Adapter) μμμ
λλ€.
|
28 |
+
**λΉμμ
μ μ©λ**λ‘ λ°°ν¬λλ©°, μμ
μ μ¬μ©μ μ νλ©λλ€. λ³Έ λͺ¨λΈ λ° μ΄λν°μ λν μ μκΆμ μ κ°λ°μμκ² μμΌλ©°, λ¬΄λ¨ μ μ¬ λ° λ°°ν¬λ κΈμ§λ©λλ€.
|
29 |
+
|
30 |
+
---
|
31 |
+
|
32 |
+
## μ£Όμ κΈ°λ₯
|
33 |
+
|
34 |
+
1. **μ§μ λΆλ₯(Query Classification)**
|
35 |
+
- μ¬μ©μμ μ§μκ° μΈμ¬, λλ΄, κ²μΉλ λ±μ μ€μ κ²μμ΄ λΆνμν κ²½μ°, `{"search": ""}`(λΉ λ¬Έμμ΄) ννλ‘ λ°νν©λλ€.
|
36 |
+
- μ¦, κ²μμ΄ μ ν νμνμ§ μμ μν©μ μλμΌλ‘ λΆλ₯νμ¬ μΏΌλ¦¬λ₯Ό μμ±νμ§ μμ΅λλ€.
|
37 |
+
|
38 |
+
2. **κ²μ 쿼리 μμ±(Search Query Rewriting)**
|
39 |
+
- μ€μ κ²μμ΄ νμν μ§λ¬Έμ κ²½μ°, **κ³Όκ±° λν(Context)**λ₯Ό κ³ λ €νμ¬ λΆμμ ν 쿼리λ₯Ό 보μνκ±°λ, λΆνμν λΆλΆμ μ κ±°ν΄ μ΅μ νλ κ²μμ΄λ₯Ό μμ±ν©λλ€.
|
40 |
+
- μ΅μ’
μΆλ ₯μ JSON νμμΌλ‘ `{"search": "<κ²μ 쿼리>"}` ννλ₯Ό λ°λ¦
λλ€.
|
41 |
+
|
42 |
+
---
|
43 |
+
|
44 |
+
## νμ΅ λ°μ΄ν° ꡬμ±
|
45 |
+
|
46 |
+
- **λν(Context)**: μ¬μ©μμμ κ³Όκ±° λν κΈ°λ‘μ κ°ν(`\n`)μΌλ‘ ꡬλΆνμ¬ μ΄μ΄λΆμΈ ν
μ€νΈ
|
47 |
+
- **μ§μλ¬Έ(Instruction)**: λͺ¨λΈμκ² μ΄λ€ μμ
μ μνν΄μΌ νλμ§ μλ €μ£Όλ ν
μ€νΈ
|
48 |
+
- **μ
λ ₯(Input)**: μ¬μ©μκ° λ§μ§λ§μΌλ‘ μ
λ ₯ν μ€μ μ§μ
|
49 |
+
- **μλ΅(Response)**: μ΅μ’
JSON νμ(`{"search": "<κ²μμ΄>"}`)μΌλ‘ μμ±λ κ²μ 쿼리 κ²°κ³Ό
|
50 |
+
|
51 |
+
λνμ μμ²μ νλμ ν
μ€νΈλ‘ ν©μ³ νμ΅ν μ μλλ‘, Hugging Face `Dataset`μ νμ©νμ¬ μλμ κ°μ ν
νλ¦Ώμ λ§μΆ° λ³ννμμ΅λλ€.
|
52 |
+
|
53 |
+
---
|
54 |
+
|
55 |
+
## ν둬ννΈ ν
νλ¦Ώ(μμ)
|
56 |
+
|
57 |
+
λ³Έ μ΄λν°λ μλμ κ°μ ν
νλ¦Ώ ꡬ쑰λ₯Ό μ¬μ©ν©λλ€. λͺ¨λΈμ μ
λ ₯λ μ΅μ’
λ¬Έμμ΄μ λ€μκ³Ό κ°μ΅λλ€:
|
58 |
|
59 |
+
```
|
60 |
+
### Context:
|
61 |
+
{conversation}
|
62 |
|
63 |
+
### Instruction:
|
64 |
+
λ€μμ λν κΈ°λ‘(Context)μ μ¬μ©μμ μ§λ¬Έ(Input)μ
λλ€. μ¬μ©μμ μ§λ¬Έμ λ΅μ μ 곡νκΈ° μν΄ νμν λ¨μΌ λ¬Έμμ΄ κ²μ 쿼리λ₯Ό μμ±νμΈμ. λν κΈ°λ‘μ κ³ λ €νμ¬ κ²μ 쿼리λ₯Ό μμ±νμΈμ. κ²μμ΄ νμνμ§ μκ±°λ μΏΌλ¦¬κ° λΆνμν κ²½μ°(μΈμ¬λ, κ²μΉλ , λλ΄) λΉ λ¬Έμμ΄μ λ°ννμΈμ.
|
|
|
65 |
|
66 |
+
μ΅μ’
μΆλ ₯ νμμ {'search': '<κ²μ 쿼리>'}μ
λλ€.
|
67 |
|
68 |
+
### Input:
|
69 |
+
{input}
|
70 |
+
|
71 |
+
### Response:
|
72 |
+
{response}
|
73 |
+
```
|
74 |
+
|
75 |
+
- `{conversation}`: κ³Όκ±° λν νμ€ν 리λ₯Ό κ°ν(`\n`)μΌλ‘ ꡬλΆνμ¬ μ΄μ΄λΆμΈ λ¬Έμμ΄
|
76 |
+
- `{instruction}`: μ¬μ©μ μμ²μ λν μ§μΉ¨
|
77 |
+
- `{input}`: μ΅μ’
μ¬μ©μ μ§μ
|
78 |
+
- `{response}`: JSON νμ(μ: `{"search": "<κ²μμ΄>"}`)μΌλ‘ μμ±λ κ²°κ³Ό
|
79 |
+
|
80 |
+
λͺ¨λΈμ EOS ν ν°(μ: `tokenizer.eos_token`)μ μ΄μ©ν΄ λ¬Έμ₯ λ¨μλ₯Ό ꡬλΆν©λλ€.
|
81 |
+
|
82 |
+
---
|
83 |
+
|
84 |
+
## μ¬μ© μμ
|
85 |
+
|
86 |
+
1. **μΈμ¬, λλ΄, κ²μΉλ μ§λ¬Έ**
|
87 |
+
- Input: βμλ
? μ μ§λ΄?β
|
88 |
+
- λΆλ₯ κ²°κ³Ό: κ²μμ΄ λΆνμνλ€κ³ νλ¨ β `{"search": ""}`
|
89 |
+
|
90 |
+
2. **κ²μ νμν μ§λ¬Έ**
|
91 |
+
- Context: μ΄μ λνμμ βλ΄μ λ§μ§β μ΄μΌκΈ°λ₯Ό νκ³ μμμ
|
92 |
+
- Input: βκ·ΈλΌ λ΄μμμ μ μΌ μΈκΈ° μλ νλ²κ±° κ°κ² μ°Ύμμ€β
|
93 |
+
- λͺ¨λΈ μλ΅: `{"search": "λ΄μ μΈκΈ° νλ²κ±° κ°κ²"}`
|
94 |
+
- κ³Όκ±° λνλ₯Ό κ³ λ €νμ¬ ν€μλλ₯Ό μΆμΆ λ° μ¬μμ±
|
95 |
+
|
96 |
+
---
|
97 |
+
|
98 |
+
## λͺ¨λΈ ꡬ쑰
|
99 |
+
|
100 |
+
- **Base Model**: [unsloth/gemma-2-9b-it-bnb-4bit](https://huggingface.co/unsloth/gemma-2-9b-it-bnb-4bit)
|
101 |
+
- **μΈμ΄(Language)**: νκ΅μ΄μ μ΅μ νλ μ΄λν°
|
102 |
+
---
|
103 |
+
|
104 |
+
## μ¬μ© λ°©λ²
|
105 |
+
|
106 |
+
1. **λ°μ΄ν°μ
μμ±**
|
107 |
+
- `merged_dataset.json` ννλ‘ λνμ μ§μκ° ν¬ν¨λ μλ³Έ λ°μ΄ν°λ₯Ό μ€λΉν©λλ€.
|
108 |
+
- μ μμ μ€ν¬λ¦½νΈμ²λΌ, `{"search": "<κ²μμ΄>"}` ννμ μ΅μ’
`Response`λ₯Ό μμ±νλλ‘ μ μ²λ¦¬(ν ν° μ μ ν, λΆνμν λν μ κ±° λ±)λ₯Ό κ±°μΉ©λλ€.
|
109 |
+
|
110 |
+
2. **ν¬λ§· λ³ν**
|
111 |
+
- ν
νλ¦Ώ(`custom_prompt`)μ μ¬μ©ν΄ `<conversation>`, `<instruction>`, `<input>`, `<response>`λ₯Ό νλμ λ¬Έμμ΄λ‘ ν©μΉ©λλ€.
|
112 |
+
- Hugging Face `Dataset` κ°μ²΄μ 맡ν(map)νμ¬ `text` 컬λΌμ μμ±ν©λλ€.
|
113 |
+
|
114 |
+
3. **λ°μ΄ν° λΆν **
|
115 |
+
- μμ μ½λμμμ²λΌ train/val λ°μ΄ν°λ₯Ό λΆλ¦¬ν ν, μνλ λ―ΈμΈμ‘°μ λ°©λ²μΌλ‘ νμ΅ν©λλ€.
|
116 |
+
|
117 |
+
4. **μΆλ‘ (Inference)**
|
118 |
+
- νμ΅λ λͺ¨λΈ νΉμ μ΄λν°λ₯Ό λ‘λν λ€, μ¬μ©μ μ
λ ₯μ λ°μ ν
νλ¦Ώμ λ§μΆ° λͺ¨λΈμ μ λ¬ν©λλ€.
|
119 |
+
- λͺ¨λΈμ μ΅μ’
μΆλ ₯μ΄ `{"search": "<κ²μμ΄>"}` ννμΈμ§ νμΈν©λλ€.
|
120 |
+
- `search` νλκ° λΉ λ¬Έμμ΄(`""`)μ΄λΌλ©΄ κ²μμ΄ νμνμ§ μμμ μλ―Έν©λλ€.
|
121 |
+
|
122 |
+
---
|
123 |
+
|
124 |
+
## λΌμ΄μ μ€
|
125 |
+
|
126 |
+
- λ³Έ μ΄λν°λ **λΉμμ
μ μ©λ**λ‘λ§ μ¬μ© κ°λ₯ν©λλ€.
|
127 |
+
- μ¬λ°°ν¬ λ° νμ νλ‘μ νΈ μμ± μ, λ°λμ λΉμμ
μ λͺ©μ μ΄μ΄μΌ νλ©°, 2μ°¨ μ°½μ μ μμμ νκΈ°λ₯Ό μ€μν΄μΌ ν©λλ€.
|
128 |
+
- μμ
μ μ΄μ©μ΄ νμν κ²½μ° λ³λμ νμλ₯Ό ν΅ν΄ νκ°λ₯Ό λ°μμΌ ν©λλ€.
|
129 |
+
|
130 |
+
---
|