File size: 16,428 Bytes
1c6f046 0a41031 1c6f046 0a41031 1c6f046 d8c9344 4930638 1c6f046 335a8ac f6b4e2d 4930638 1c6f046 |
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 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 |
---
language:
- en
- ko
license: other
tags:
- facebook
- meta
- pytorch
- llama
- llama-3
- llama-3-ko
pipeline_tag: text-generation
license_name: llama3
license_link: LICENSE
---
## Llama-3-Open-Ko-8B-Instruct-preview
> Update @ 2024.05.01: Pre-Release [Llama-3-KoEn-8B](https://huggingface.co/beomi/Llama-3-KoEn-8B-preview) model & [Llama-3-KoEn-8B-Instruct-preview](https://huggingface.co/beomi/Llama-3-KoEn-8B-Instruct-preview)
> Update @ 2024.04.24: Release [Llama-3-Open-Ko-8B model](https://huggingface.co/beomi/Llama-3-Open-Ko-8B) & [Llama-3-Open-Ko-8B-Instruct-preview](https://huggingface.co/beomi/Llama-3-Open-Ko-8B-Instruct-preview)
## Model Details
**Llama-3-Open-Ko-8B-Instruct-preview**
Llama-3-Open-Ko-8B model is continued pretrained language model based on Llama-3-8B.
This model is trained fully with publicily available resource, with 60GB+ of deduplicated texts.
With the new Llama-3 tokenizer, the pretraining conducted with 17.7B+ tokens, which slightly more than Korean tokenizer(Llama-2-Ko tokenizer).
The train was done on TPUv5e-256, with the warm support from TRC program by Google.
With applying the idea from [Chat Vector paper](https://arxiv.org/abs/2310.04799), I released Instruction model named [Llama-3-Open-Ko-8B-Instruct-preview](https://huggingface.co/beomi/Llama-3-Open-Ko-8B-Instruct-preview).
Since it is NOT finetuned with any Korean instruction set(indeed `preview`), but it would be great starting point for creating new Chat/Instruct models.
**Sample usage**
```python
from transformers import AutoTokenizer, AutoModelForCausalLM
import torch
model_id = "beomi/Llama-3-Open-Ko-8B-Instruct-preview"
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(
model_id,
torch_dtype="auto",
device_map="auto",
)
messages = [
{"role": "system", "content": "μΉμ ν μ±λ΄μΌλ‘μ μλλ°©μ μμ²μ μ΅λν μμΈνκ³ μΉμ νκ² λ΅νμ. λͺ¨λ λλ΅μ νκ΅μ΄(Korean)μΌλ‘ λλ΅ν΄μ€."},
{"role": "user", "content": "νΌλ³΄λμΉ μμ΄μ΄ λμΌ? κ·Έλ¦¬κ³ νΌλ³΄λμΉ μμ΄μ λν΄ νμ΄μ¬ μ½λλ₯Ό μ§μ€λ³Όλ?"},
]
input_ids = tokenizer.apply_chat_template(
messages,
add_generation_prompt=True,
return_tensors="pt"
).to(model.device)
terminators = [
tokenizer.eos_token_id,
tokenizer.convert_tokens_to_ids("<|eot_id|>")
]
outputs = model.generate(
input_ids,
max_new_tokens=512,
eos_token_id=terminators,
do_sample=True,
temperature=1,
top_p=0.9,
)
response = outputs[0][input_ids.shape[-1]:]
print(tokenizer.decode(response, skip_special_tokens=True))
```
**Sample Output**
μ¬λ¬λΆκ»μλ λ¬Όλ‘ μμλμ§λΌλ μ€λͺ
μ λλ¦¬κ² μ΅λλ€! νΌλ³΄λμΉ(Piconacci) μμ΄μ λ€μκ³Ό κ°μ μμ΄μ λ§ν©λλ€: 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,.... μ΄λ κ² κ³μλκ³ μμ΅λλ€. μ΄ μμ΄μ μΌλ°μ μΌλ‘λ μνμμ 무νν μ§μλ©λλ€. κ° μλ μ΄μ μμ λ λ°°κ° λλ μμ΄μ
λλ€.
μ΄ μμ΄μ νμ΄μ¬(Python)μΌλ‘ ꡬννκ³ μ νμ λ€λ©΄ λ€μκ³Ό κ°μ μ½λλ₯Ό μμ±ν μ μμ΅λλ€.
```python
def fibonacci(n):
if n == 0:
return 0
elif n == 1:
return 1
else:
return fibonacci(n-1) + fibonacci(n-2)
```
μ΄ μ½λμμλ `n`μ΄ μ
λ ₯λ°μ μλ₯Ό λνλ΄λ λ³μλ‘, νΌλ³΄λμΉ μμ΄μ ꡬνν©λλ€. μ΄ μ½λλ₯Ό μ€νμν€λ©΄ μ
λ ₯λ°μ μμ λ°λΌ νΌλ³΄λμΉ μμ΄μ ν΄λΉ νμ λ°νν©λλ€. μλ₯Ό λ€μ΄, `fibonacci(10)` νλ©΄ 55λ₯Ό λ°νν©λλ€.
μ΄ μ½λλ μ¬κ·μ ν¨μμ΄κΈ° λλ¬Έμ λ©λͺ¨λ¦¬ μ¬μ©μ΄ μ€μ΄λ€ μ μμ΅λλ€. κ·Έλ¬λ μ¬κ·μ ν¨μλ λ©λͺ¨λ¦¬ μ¬μ©λμ΄ λ§μμ§ μ μμ΅λλ€. μ΄λ₯Ό μ€μ΄κΈ° μν΄ μ΄ν°λ μ΄ν°λΈ ν¨μλ‘ κ΅¬νν μλ μμ΅λλ€.
```python
a, b = 0, 1
for i in range(n):
a, b = b, a + b
```
μ΄ μ½λμμλ μ΄ν°λ μ΄ν°λΈ ν¨μλ‘ νΌλ³΄λμΉ μμ΄μ ꡬνν©λλ€. μ΄ μ½λλ₯Ό μ€νμν€λ©΄ μ
λ ₯λ°μ μμ λ°λΌ νΌλ³΄λμΉ μμ΄μ ν΄λΉ νμ λ°νν©λλ€. μ΄ μ½λλ λ©λͺ¨λ¦¬ μ¬μ©λμ μ€μ
λλ€. λ€λ§, μ΄ μ½λλ λ 볡μ‘ν©λλ€. μ΄ μ½λλ₯Ό λ κ°λ¨νκ² νλ €λ©΄ μ΄ν°λ μ΄ν°λΈ ν¨μλ₯Ό λ μ ꡬνν μ μμ΅λλ€.
```python
a, b = 0, 1
while True:
if n == 1:
return a
a, b = b, a + b
n -= 1
```
μ΄ μ½λμμλ μ
λ ₯λ°μ μμ λ°λΌ νΌλ³΄λμΉ μμ΄μ...
### More samples
> I used same system prompt, but you could change on your own.
```python
messages = [
{"role": "system", "content": "μΉμ ν μ±λ΄μΌλ‘μ μλλ°©μ μμ²μ μ΅λν μμΈνκ³ μΉμ νκ² λ΅νμ. λͺ¨λ λλ΅μ νκ΅μ΄(Korean)μΌλ‘ λλ΅ν΄μ€."},
{"role": "user", "content": "νκ΅μ μ ν νλ²μ λν΄μ μμΈν μ€λͺ
ν΄μ£ΌμΈμ."},
]
---
νκ΅μ μ ν νλ²μ 1948λ
7μ 17μΌμ μ μ λ λνλ―Όκ΅ νλ²μΌλ‘μ, λνλ―Όκ΅μ μ립과 νλ² μ§μλ₯Ό μ ν νλ²μΈλ°μ. μ΄ νλ²μ λνλ―Όκ΅μ κΈ°λ³ΈμμΉκ³Ό κ΅λ―Όμ κΆμ΅μ κ·μ νκ³ μμ΅λλ€. 17μ‘°λ‘ κ΅¬μ±λ νλ² 1021κ° μ‘°νμΌλ‘ ꡬμ±λμ΄ μμ΅λλ€. νλ²μ μΌκΆλΆλ¦½, κ΅λ―Όμ£ΌκΆ, κΈ°λ³ΈκΆ, μνμ λ, νμ κΆ, μ
λ²κΆ, μ¬λ²κΆ λ±μΌλ‘ ꡬμ±λμ΄ μμ΅λλ€.
μ°μ , μΌκΆλΆλ¦½μ λν΅λ Ήγκ΅νμμγλ λ²κ΄μΌλ‘ μ‘°μ§λ μΈλ―Όμ ν΅μ μ μν΄ κ΅κ° κΆνμ λλμ΄ μμνκ³ μμ΅λλ€. λν΅λ Ήμ κ΅κ°μμλ‘μ νμ κΆμ, κ΅νμμμ μ
λ²κΆμ, λλ²μμ μ¬λ²κΆμ νν μ μμ΅λλ€. μ΄μ λ°λΌ νμ λΆγμ
λ²λΆγμ¬λ²λΆμ 견μ μ κ· νμ ν΅ν΄ μ μΉμ μμ μ±μ ν보νκ³ μμ΅λλ€.
κ΅λ―Όμ£ΌκΆμ νλ² μ 1μ‘°μμ "λνλ―Όκ΅μ 민주곡νκ΅"μμ μ μΈνκ³ , λͺ¨λ κΆλ ₯μ κ΅λ―ΌμΌλ‘λΆν° λμ¨λ€λ μ리λ₯Ό κ·μ ν©λλ€. κ΅λ―ΌμΌλ°μ΄ μ΅κ³ μ μ£ΌκΆμμμ λΆλͺ
ν λ³΄μ¬ μ£Όκ³ μμ΅λλ€.
μνμ λλ μ
λ²λΆλ₯Ό ꡬμ±νλ μνμ κ·Έ κΈ°λ₯μ μ νκ³ μμ΅λλ€. μμμ κ΅λ―Όμ λνλ‘ μ μΆλκ³ , κ΅μ μ΄μμ λν κ΅μ κ°μγλΉνγκ°μ μ±
μ λ§λ ¨ν©λλ€. λν νλ²μ κ·μ λ μ무λ₯Ό μ΄νν΄μΌ ν©λλ€.
μ
λ²κΆκ³Ό μ¬λ²κΆμ νλ²μ μ γκ°μ μ κ΄μ¬νκ³ , λ²λ₯ μ μ μ γκ°νν μ μμ΅λλ€. λν μ¬λ²κΆμ νλ²μ ν΄μγμ μ©νκ³ μμ΅λλ€. μ΄μ λ°λΌ μ°λ¦¬λλΌμ λ²μΉμ£Όμ μμΉμ ꡬνν©λλ€. νλ§λλ‘ μΈλ―Όμ κΈ°λ³ΈκΆμ 보νΈνκ³ μμ΅λλ€.
μ΄λ¬ν λνλ―Όκ΅μ νλ²μ μΈκ°μ μμ μ κΆλ¦¬λ₯Ό 보μ₯νκΈ° μν΄ κ΅λ―Όμ κΈ°λ³ΈκΆμ κ·μ νκ³ μμ΅λλ€. μλ₯Ό λ€μ΄ κΈ°λ³ΈκΆμλ λͺ¨λ κ΅λ―Όμ μΈκ°μ μ‘΄μκ³Ό κ°μΉ λ° ν볡μΆκ΅¬κΆ, μΌνκ³ , μΌνλ κΆλ¦¬λ₯Ό 보μ₯ν©λλ€. λν μ§νγκ²°μ¬γννμ μμ μ μ κ±°κΆμ 보μ₯ν©λλ€. μμ μ κΈ°λ³ΈκΆμ 보μ₯ν κ²μ νλ²μ΄ μ§ν₯νλ λ―Όμ£Όμ κΈ°λ³Έμ§μ νμ±μ ꡬννλ κ²μ
λλ€. λ§μ§λ§μΌλ‘ κ΅λ―Όμ νλ²μ κ°μ νκ³ μμΌ μ μ μ ν μ μμ΅λλ€.
μ΄μ κ°μ λνλ―Όκ΅μ μ ν νλ²μ κ΅λ―Όμ κΈ°λ³ΈκΆκ³Ό νλ² μ§μλ₯Ό κ²¬κ³ νκ² νμ¬, μ μΉμ μμ μ±μ μ μ§νκ³ μμ΅λλ€. νλ²μ λ³κ²½μμλ 곡μ νκ³ κ³΅νν νκ²°μ κ±°μ³μΌ ν©λλ€.
λ°λΌμ λνλ―Όκ΅μ μ ν νλ²μ κ·Έ μλ―Έκ° λ§€μ° ν½λλ€. νλ²μ ν΅ν΄ λνλ―Όκ΅μ λ―Όμ£Όμ£Όμλ₯Ό νκ³ ν νλ κ²μ
λλ€. κ΅λ―Όμ κΆλ¦¬μ μ무λ₯Ό μ νκ³ μμ΅λλ€. μ΄νλ²μ λνλ―Όκ΅μ κΈ°λ³ΈμμΉμ΄ λμμ΅λλ€. 7γ28μ μΈκ³Ό 5γ16κ΅°μ¬νλͺ
μ ν΅ν΄ νλλμ΄ νλ²μ μ‘΄μμ±μ΄ λ€μ μ 립λμμ΅λλ€. μ΄νλ²μ λνλ―Όκ΅μ κ·Όκ°μ΄ λμμ΅λλ€.
λμμ΄ νμνμ
¨λμ? μΆκ°λ‘ μ€λͺ
ν΄ λ릴κΉμ?
```
```python
messages = [
{"role": "system", "content": "μΉμ ν μ±λ΄μΌλ‘μ μλλ°©μ μμ²μ μ΅λν μμΈνκ³ μΉμ νκ² λ΅νμ. λͺ¨λ λλ΅μ νκ΅μ΄(Korean)μΌλ‘ λλ΅ν΄μ€."},
{"role": "user", "content": "μ΄μμ μ₯κ΅°μ λν΄ μ€λͺ
ν΄μ€."},
]
---
μ΄μμ μ₯κ΅°μ μ‘°μ μλμ 무μΈμΌλ‘, λνλ―Όκ΅μ κ΅κ°μ 곡μμΈ μ°μμ 곡 μ΄μμ μ₯κ΅°μ 1545λ
9μ 28μΌ κ²½μλ¨λ μλ Ήμμ νμ΄λ¬μ΅λλ€. μ΄μμ μ₯κ΅°μ ν΅μ μ¬ μμ μ μλ λ μ‘°μ κ³Ό λͺ
λλΌ μ°ν©κ΅°μ λκ·λͺ¨ κ΅°λλ₯Ό μΌμΌμΌ λ첩μ μ±κ³΅μ μΌλ‘ μ΄λμ΄ μ μ μ¬λκ³Ό μμ§μλμ μΉλ¦¬λ‘ μ΄λ μΈλ¬Όμ
λλ€. κ·Έλ 1592λ
μ λΌμ’μμκ΄μ°°μ¬κ° λμ΄ μ λΌμ’μμμμ μμ μ 물리쳀μΌλ©°, 1597λ
μλ μμκ³Ό νμ λ°©μ΄μ μ±κ³΅μ μΌλ‘ μΉλ£νμ΅λλ€. λν λͺ
λλ첩μμ μμ κ³Ό 격μ νμ¬ μ΄μμ μ΄μμ μ₯κ΅°μ λͺ
λλ첩μμ μ‘°μ κ΄κ΅°μ μΉλ¦¬λ₯Ό μ΄λμμ΅λλ€. μ΄μμ μ₯κ΅°μ μ리λ₯Ό μ§ν€κΈ° μν΄ μ 리νμ κ³ μνλ κ²°λ¨μ λ΄λ Έμ΅λλ€. μ΄μμ μ₯κ΅°μ 1598λ
μ¬μ²μ± μ ν¬μμ ν¨μ ν ν μ μΈκ° μμ λΌ μ μΈκ° λΆλ¦¬ν΄μ§μ, λ¨ννμ¬ μ΄μμ μ₯κ΅°μ κ²°κ΅ μΆ©λ¬΄κ³΅ μ΄μμ μ μΉνΈλ₯Ό λ°μμ΅λλ€. κ·Έμ 곡μ μ λνλ―Όκ΅ μ΄μμ μ₯κ΅° κΈ°λ
κ΄μΌλ‘ λͺ
μλ₯Ό λμ΄κ³ μμ΅λλ€. μ΄μμ μ₯κ΅°λμ μ νμ μΉνΈλ‘ 1963λ
건κ΅νμ₯ μ΅κ³ νμ₯μ μμ¬λ°μμΌλ©°, λνλ―Όκ΅μ κ΅λ³΄ μ 13νΈλ‘ μ§μ λμ΅λλ€. μ΄μμ μ₯κ΅°μ μ μ€μ μΈ μΈλ¬Όλ‘ νκ΅μ μμ¬μμ ν° μ‘±μ μ λ¨κ²Όμ΅λλ€. μ΄μμ μ₯κ΅°μ΄ μλ λΉμμ μ ν¬μ₯μλ μΆ©λ¬΄κ³΅μ΄ μ λΌ μ²μμκ² λλΌλ₯Ό μν΄ μΈμ΄ κ³³μ μ΄μμ μ₯κ΅°μ λ¬κ° μμ΅λλ€. λλΌμ κ³ λμ μ§μ± μ΄μμ μ₯κ΅°λμ μμ
κ³Ό μ리λ₯Ό κΈ°λ
νλ κ³³μ
λλ€. μ΄μμ μ₯κ΅°μ νμ μ μ΄μμ μ₯κ΅° κΈ°λ
κ΄, μ΄μμ 곡μ λ±μ΄ μμ΅λλ€. μ΄μμ μ₯κ΅°μ 곡μ μ κΈ°λ
νκΈ° μν΄ λ€μν λ¬Ένμ μ°κ³Ό κΈ°λ
λ¬Όμ΄ μ‘°μ±λμ΅λλ€. μ΄μμ μ₯κ΅°μ μ μ μ λλΌλ₯Ό μν΄ μΈμ΄ μλν μ°λ¦¬μ μμ
μ
λλ€. 1552λ
12μμλ μ΄μμ μ₯κ΅°μ μ μ€μ μλ λλ€μ λ°°ν₯, νμ¬λ 좩무곡 μ΄μμ μ₯κ΅°κ»μλ μ°λ¦¬λλΌμ μμ§μ μΈλ¬Όμ΄ λμ΅λλ€. μ΄μμ μ₯κ΅°μ μ‘°μ μμ‘°μ μ€μλ₯Ό λ°κ³ μμ΅λλ€. μ΄μμ μ₯κ΅°μ μ μ‘°μκ² λ§μ λμλ₯Ό μ΄λ£¨μμ΅λλ€. μ΄μμ μ₯κ΅°μ 곡μ μ μ€λλ μ μ΄λμ΄ μ£Όλ μΈλ¬Όμ
λλ€. κ·Έλ₯Ό λͺ¨μ κ²μ μ κ΅μ μ¬λλ€μ
λλ€. μ΄μμ μ₯κ΅°λμ κ³ κ²°ν μ μ μ μ°λ¦¬λλΌκ° μ΄λ£©ν μ±κ³Όμ
λλ€. μ΄μμ μ₯κ΅°μ λλΌλ₯Ό μν΄ μΈμ΄ μλν μΈλ¬Όμ
λλ€. μ΄μμ μ₯κ΅°μ λνλ―Όκ΅μμ κ°μ₯ μλν μΈλ¬Όμ
λλ€. μ΄μμ μ₯κ΅°μ νμ μ μμν κΈ°μ΅ λκ² μ§μ.
```
```python
messages = [
{"role": "system", "content": "μΉμ ν μ±λ΄μΌλ‘μ μλλ°©μ μμ²μ μ΅λν μμΈνκ³ μΉμ νκ² λ΅νμ. λͺ¨λ λλ΅μ νκ΅μ΄(Korean)μΌλ‘ λλ΅ν΄μ€."},
{"role": "user", "content": "μΈμ’
λμμ μ§νμ λ§₯λΆ λμ§ μ¬κ±΄μ λν΄μ μκ³ μμ΄?"},
]
---
λ€, μΈμ’
λμμ μ§νμ λ§₯λΆ λμ§ μ¬κ±΄μ μ‘°μ μλ μ€κΈ°μ λ¬Ένμ λ°°κ²½κ³Ό κ΄λ ¨λ μ€μν μ¬κ±΄μ
λλ€. 1399λ
10μ 2μΌμ μΌμ΄λ μ΄ μ¬κ±΄μ μΈμ’
λμμ΄ μ μ ν γμ£Όν΄γμ λν λΉνλ¬ΈμΈ γμμ°λ‘γμ μ μ ν μ΅λ§λ¦¬μμ λ
ΌμμΌλ‘ μμλμ΅λλ€. λΉμ μΈμ’
λμμ μ§νμ νμ¬λ€μκ² λ¬ΈμλΆμ μΌμΉλ 견ν΄λ₯Ό ꡬνλ μ€μ μ΅λ§λ¦¬κ° γμμ°λ‘γμ κΈμ κ±°λ‘ νμ¬ λΉννμ, μΈμ’
λμμ΄ λ§₯λΆμ λμ‘λ€κ³ ν©λλ€. μ΄ μ¬κ±΄μ μ¬μμ μΌλ‘λ μ‘°μ μμ‘° μ΄κΈ° λ¬ΈμλΆμ νμ 체κ³μ μ μΉμ 견ν΄μ λ립μ λ
ΈμΆνλ μ¬κ±΄μ΄μ λ¬Ένμ¬μ μΈ λ¬Έμ λ‘ μ΄μ΄μ‘μ΅λλ€. μ΄ μ¬κ±΄μΌλ‘ μΈν΄ μ‘°μ μλμ λ¬ΈμλΆμ μ¬λλΆμ κ²¬ν΄ μ°¨μ΄μ μ λ
ΈμΆνλ μ€μν μ¬κ±΄μΌλ‘ κΈ°λ‘λκ³ μμ΅λλ€. μ£Όλ‘ λ
Όμ λ°°κ²½μ γμ£Όν΄γμ μ μλ λ΄μ© λΆμμ λν μ΄κ²¬κ³Ό μ§νμ νμ¬λ€μ λ¬Έμκ΄μ λν λΉνμ μ€μ¬μΌλ‘ μ΄λ€μ‘μ΅λλ€. μ΄ μ¬κ±΄μ μ‘°μ μ΄κΈ° μμ‘° λ΄λΆμ κ²¬ν΄ μ°¨μ΄μ λ°λ₯Έ νμ μ μΈ λ
ΌμμΌλ‘ μμλμ΄ μ μΉμ μΈ μμΈκΉμ§ κ²°λΆνμ¬ μ‘°μ μμ‘° μ΄κΈ° λ¬Ένμ Β·μ μΉμ λ
ΌμμΌλ‘ νμ₯λμμ΅λλ€. μ΄ μ¬κ±΄μ λΉμμ μμ‘° λ΄λΆμ κ΄λ£μ λμ μΈλ ₯μΈ΅μ κ°λ±μ 보μ¬μ£Όλ μ€μν μκ° λ©λλ€. μ΄ μ¬κ±΄μμ μ£Όλ₯ ννμ λΉνλΏ μλλΌ, μμ¬μ μ¬μ€μ μ곑μ λν λ
Όλλ μ κΈ° λ©λλ€. μ€μ λ‘ μ¬κ°ν μ¬λμ μ΄λνλ λκ·λͺ¨μ μΈ λ
ΌμμΌλ‘ νμ°λμ§ μμλ€ νλλΌλ λΉμ μ¬λλΆ λ΄λΆμ κ²¬ν΄ μ°¨μ΄λ μ μΉμ μ΅μμΌλ‘ μΈν μ¬νμ μ§κ° λ³λμ μΌμΌν€κΈ°λ νμ΅λλ€. λΉμμ λ§₯λΆ λμ§μ λ¬ΈμλΆμ 견ν΄κ° κ°λλ μ¬κ±΄μ΄λΌ ν μ μμ΅λλ€. λμ±μ΄ λΉμμ λ§₯λΆ λμ§μ μ¬νμ μ§μμΈμΈ΅μμλ μ΄κ²¬μ΄ μμ μ μλ κ²μ κΈ°λ³Έμ
λλ€. μ΄ μ¬κ±΄μΌλ‘ μ€λλ κΉμ§λ νκ΅μ μμ¬μμ μ€μν μ°κ΅¬ λμμ΄ λκ³ μμ΅λλ€. λ§₯λΆ μ΄λΌλ λ§μ μ¬κ±΄μ 주무λλΌλ μ©μ΄λ₯Ό λ§λ€μ΄ λΉμμ μ¬κ±΄μ ννν μ μμ΅λλ€. μ΄ μ¬κ±΄μ μ£Όλ‘ μ μΉΒ·νμ Β·μμ λ± μ¬νμ Β·λ¬Ένμ μΈ μ¬λ¬ λΆμΌμμ μΌμ΄λκ² λ©λλ€. μ΄ μ¬κ±΄μ μ΄λ
μ κ΄μ μ μ°¨μ΄μμ μμλμ§λ§, μ¬νμ λ립과 κ°λ±κΉμ§ μ΄λνλ μ¬κ±΄μΌλ‘ κ°μ£ΌνκΈ°λ ν©λλ€. μ΄ λ¬Έκ±΄μ λν μ¬ν΄μμ ν΅ν΄ λΉμ νκ΅ μ¬νλ₯Ό μ΄ν΄ν μ μμ΅λλ€. μ΅λ§λ¦¬λ λ¬ΈμλΆμ 견ν΄λ₯Ό λΉνν μ μλ 곡κ°μΌλ‘ 보μμ§λ§, λΉμμ λ§₯λΆμ μ μΉμ Β·λ¬Έμμ μΌλ‘λ μ¬κ°ν λ¬Έμ λ‘ μΈμνκ² λ©λλ€. μ΄ μ¬κ±΄μ λΉμμ μν©μ μ΄ν΄νλ λ° λμμ΄ λ©λλ€. μ΄λ‘ μ μ΄ μ¬νμ μ£Όλ₯ ννμ΄λ λ¬Ένμ λ°°κ²½μ μ½μ μ μλ μ€μν μ¬κ±΄μ μ¦κ±°μ
λλ€. λ°λΌμ μ΄ μ¬κ±΄μ μ€λλ κΉμ§λ λ€μν λ°©λ©΄μμ μ°κ΅¬μ λμμΌλ‘ λ¨μ μμ΅λλ€. μ΄ μ¬κ±΄μ΄ μ μ μΌλ‘ λ
Όμλ§μ΄ μλλΌλ μ μ μ£Όμν νμκ° μμ΅λλ€. μ΄μ ν¨κ» μ¬λλΆ λ΄λΆμ κ²¬ν΄ μ°¨μ΄ κ·Έλ¦¬κ³ μ§μ κ°λ±μ νλμ μλ―Έλ₯Ό μ΄ν΄νλλ° λμμ΄ λ©λλ€. μ΄ μ¬κ±΄μΌλ‘ μΈν΄, λ¬ΈμλΆμ μ μΉμ 견ν΄μ λ립μ νκ΅ μ¬νμ λ³νμ λν ν μμμ 보μ¬μ£Όλ νλμ μλ£κ° λ©λλ€. μ΄λ‘μ¨ μ°λ¦¬λ μ‘°μ μμ‘° μ΄κΈ° λ¬Ένμ λ°°κ²½κ³Ό μ κΆμ 견ν΄λ₯Ό νμΈν μ μμ΅λλ€. μ΄ μ¬κ±΄μ λΉμμ νκ΅ μ¬νμ λ¬Ένμ Β·μ μΉμ νμ κ°μ΄λ° νλμ
λλ€. μ΄μ κ°μ λ§₯λΆ λμ§ μ¬κ±΄μμ μ°λ¦¬λ λ€μν λ°©μμΌλ‘ νκ΅μ¬μ μμ¬μ μΈ λ°°κ²½μ νμΈν μ μμ΅λλ€. λ§μ§λ§μΌλ‘ λ§₯λΆ μ¬κ±΄μ μ¬κ±΄ μμ²΄κ° μλ μ¬κ±΄μ λ§₯λ½μμ νκ΅μ¬μ μΈ λ°°κ²½μ νμ
νλ κ²μ΄ μ€μν©λλ€. μ°λ¦¬λ μ΄ μ¬κ±΄μΌλ‘ λΉμμ μ¬νμμ μ΄ν΄νκ³ λ¬Ένμ λ°°κ²½μ νμ
ν μ μμ΅λλ€. μ΄μ μμ μ¬κ±΄μ λΉμ μ¬νμ μ€μμ±μ κ°μ‘°ν©λλ€. μ΄ μ¬κ±΄μ μ¬νμ¬μ μΌλ‘ μ°κ΅¬νμ¬ λΉμ μ¬νμμ μ€μμ±μ νμΈν μ μμ΅λλ€. μ΄ μ μ μμ¬μ Β·λ¬Ένμ λ°°κ²½μ μ¬ν΄μν μ μμ΅λλ€. μ΄ μ¬κ±΄μ μ‘°μ μμ‘° μ΄κΈ°μ μ£Όμ μ¬κ±΄μ΄ λ©λλ€. μ΄ μ μμ μ€μν μ¬κ±΄μΌλ‘ μΈμ ν©λλ€. λ
Όμμ μ κ°κΉμ§λ μ΄λ³΄λ€ λ 볡μ‘ν μ μμ΅λλ€. λ§₯λΆ λμ§ μ¬κ±΄
```
```python
messages = [
{"role": "system", "content": "μΉμ ν μ±λ΄μΌλ‘μ μλλ°©μ μμ²μ μ΅λν μμΈνκ³ μΉμ νκ² λ΅νμ. λͺ¨λ λλ΅μ νκ΅μ΄(Korean)μΌλ‘ λλ΅ν΄μ€."},
{"role": "user", "content": "λλ μ€λ μ¬κ³Ό 5κ°λ₯Ό κ°κ³ μμ΄. κ·Έλ¦¬κ³ μ΄μ λλ μ¬κ³Ό 2κ°λ₯Ό λ¨Ήμμ§. λ΄κ° μ§κΈ κ°μ§ μ¬κ³Όλ λͺ κ°μ§?"},
]
---
μ¬κ³Όμ μλμ νμΈνκ² μ΅λλ€. μ λ 5κ°μ μ¬κ³Όκ° μμΌμ λ°, κ·Έ μ€ 2κ°λ₯Ό μ΄λ―Έ λ¨ΉμμΌλ 3κ°μ μ¬κ³Όκ° λ¨μμμ΅λλ€! γ
γ
. κ³μν΄μ λ¨Ήμ κ³ν μμμμ? π
```
|