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