byminHugging commited on
Commit
57e855b
ยท
verified ยท
1 Parent(s): 882f925

Upload 3 files

Browse files

์†Œ๋Ÿ‰์˜ ๋ฐ์ดํ„ฐ๋กœ ์‹คํ˜„๊ฐ€๋Šฅ์„ฑ ๊ฒ€ํ† 

prototype/kcmii_lm_full_ft.ipynb ADDED
@@ -0,0 +1,311 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "cells": [
3
+ {
4
+ "cell_type": "markdown",
5
+ "id": "96468b93-985d-4714-b234-b56ad8f1cfe3",
6
+ "metadata": {},
7
+ "source": [
8
+ "full fine tuning ์œผ๋กœ ์ง„ํ–‰"
9
+ ]
10
+ },
11
+ {
12
+ "cell_type": "code",
13
+ "execution_count": 12,
14
+ "id": "56c6181a-2b4e-49ac-a25d-a54eb3a51110",
15
+ "metadata": {},
16
+ "outputs": [
17
+ {
18
+ "name": "stdout",
19
+ "output_type": "stream",
20
+ "text": [
21
+ "์‚ฌ์šฉ ๋””๋ฐ”์ด์Šค: mps\n"
22
+ ]
23
+ },
24
+ {
25
+ "name": "stderr",
26
+ "output_type": "stream",
27
+ "text": [
28
+ "Xet Storage is enabled for this repo, but the 'hf_xet' package is not installed. Falling back to regular HTTP download. For better performance, install the package with: `pip install huggingface_hub[hf_xet]` or `pip install hf_xet`\n"
29
+ ]
30
+ }
31
+ ],
32
+ "source": [
33
+ "import torch\n",
34
+ "from transformers import AutoTokenizer, AutoModelForCausalLM, TrainingArguments, Trainer\n",
35
+ "from datasets import load_dataset\n",
36
+ "\n",
37
+ "device = torch.device(\"mps\" if torch.backends.mps.is_available() else \"cpu\")\n",
38
+ "print(\"์‚ฌ์šฉ ๋””๋ฐ”์ด์Šค:\", device)\n",
39
+ "\n",
40
+ "model_name = \"EleutherAI/polyglot-ko-1.3b\"\n",
41
+ "tokenizer = AutoTokenizer.from_pretrained(model_name)\n",
42
+ "model = AutoModelForCausalLM.from_pretrained(model_name).to(device)\n",
43
+ "\n",
44
+ "dataset = load_dataset(\"json\", data_files=\"dataset/kcmii_major_instruction_data_summarized.jsonl\", split=\"train\")\n",
45
+ "\n",
46
+ "def tokenize(example):\n",
47
+ " prompt = f\"{example['instruction']}\\n๋‹ต๋ณ€: {example['response']}\"\n",
48
+ " print(prompt)\n",
49
+ " tokenized = tokenizer(prompt, padding=\"max_length\", truncation=True, max_length=512)\n",
50
+ " tokenized[\"labels\"] = tokenized[\"input_ids\"].copy()\n",
51
+ " return tokenized"
52
+ ]
53
+ },
54
+ {
55
+ "cell_type": "code",
56
+ "execution_count": 8,
57
+ "id": "aa3434d0-7b59-4db4-9b74-90d0da6ef6eb",
58
+ "metadata": {
59
+ "scrolled": true
60
+ },
61
+ "outputs": [
62
+ {
63
+ "name": "stderr",
64
+ "output_type": "stream",
65
+ "text": [
66
+ "Map: 100%|โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ| 50/50 [00:00<00:00, 1405.40 examples/s]"
67
+ ]
68
+ },
69
+ {
70
+ "name": "stdout",
71
+ "output_type": "stream",
72
+ "text": [
73
+ "์–ด๋ฌธํ•™์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?\n",
74
+ "๋‹ต๋ณ€: ์–ด๋ฌธํ•™ ์ „๊ณต์—์„œ๋Š” ๋™ยท์„œ์–‘ ์–ธ์–ด์˜ ์›๋ฆฌ๋ฅผ ์ฒด๊ณ„์ ์œผ๋กœ ์—ฐ๊ตฌํ•˜๊ณ , ๊ฐ ๋‚˜๋ผ์˜ ๋ฌธํ•™๊ณผ ๋ฌธํ™”๋ฅผ ์ดํ•ดํ•˜์—ฌ ์„ธ๊ณ„ํ™” ์‹œ๋Œ€์— ์š”๊ตฌ๋˜๋Š” ์ธ๋ฌธํ•™์  ๊ต์–‘๊ณผ ์–ธ์–ด ๊ด€๋ จ ์‹ค๋ฌด์  ๋Šฅ๋ ฅ์„ ๊ณ„ ๋ฐœํ•œ๋‹ค. ์–ด๋ฌธํ•™ ์ „๊ณต์€ ์–ธ์–ด์  ๊ฐ๊ฐ, ๋…ผ๋ฆฌ์  ์‚ฌ๊ณ ๋ ฅ, ๋น„ํŒ์  ๋ถ„์„ ๋Šฅ๋ ฅ์ด ํ•„์š”ํ•˜๊ณ , ์–ธ์–ด ์™€ ๋ฌธํ•™ ๊ทธ๋ฆฌ๊ณ  ๋‹ค์–‘ํ•œ ๊ตญ๊ฐ€์˜ ์‚ฌํšŒยท๋ฌธํ™”์  ํŠน์„ฑ์— ๋Œ€ํ•ด ๊ด€์‹ฌ์ด ์žˆ์–ด์•ผ ํ•œ๋‹ค.\n",
75
+ "๋ฌธํ™”ยท์ธ๋ฅ˜ยท์—ญ์‚ฌ์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?\n",
76
+ "๋‹ต๋ณ€: ๋ฌธํ™”ยท์ธ๋ฅ˜ยท์—ญ์‚ฌ ์ „๊ณต์€ ์ธ๊ฐ„์ด ์ถœํ˜„ํ•œ ์‹œ๊ธฐ๋ถ€ํ„ฐ ํ˜„์žฌ๊นŒ์ง€์˜ ๋ฌธํ™”์™€ ์‚ฌํšŒ๋ฅผ ํƒ๊ตฌํ•˜ ๊ณ , ์‹œ๋Œ€๋ณ„๋กœ ๋ฌธํ™” ๋ฐ ์‚ฌํšŒ์˜ ํŠน์„ฑ์„ ์—ฐ๊ตฌํ•˜์—ฌ ์—ญ์‚ฌ์  ์˜์˜๋ฅผ ์ดํ•ดํ•˜๋Š” ๋ถ„์•ผ์ด๋‹ค. ๋ฌธํ™”ยท ์ธ๋ฅ˜ยท์—ญ์‚ฌ ์ „๊ณต์€ ๊ณ ๋„์˜ ๊ด€์ฐฐ๋ ฅ ๋ฐ ๋ถ„์„๋ ฅ์ด ํ•„์š”ํ•˜๊ณ , ํ•œ๊ตญ์‚ฌ ๋ฐ ์„ธ๊ณ„์‚ฌ ๊ทธ๋ฆฌ๊ณ  ๋‹ค์–‘ ํ•œ ์‚ฌํšŒ์ ยท์—ญ์‚ฌ์  ํ˜„์ƒ์— ๋Œ€ํ•ด ๊ด€์‹ฌ์ด ์žˆ์–ด์•ผ ํ•œ๋‹ค.\n",
77
+ "์ฒ ํ•™์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?\n",
78
+ "๋‹ต๋ณ€: ์ฒ ํ•™ ์ „๊ณต์—์„œ๋Š” ์ž์‹ ์„ ๋‘˜๋Ÿฌ์‹ผ ์ž์—ฐ, ์šฐ์ฃผ, ์‚ฌํšŒ์— ๋Œ€ํ•œ ์˜๋ฏธ๋ฅผ ํ†ต์ฐฐํ•˜๊ณ  ์ด๋ฅผ ๋…ผ๋ฆฌ ์ ์œผ๋กœ ๋ถ„์„ํ•˜์—ฌ ์ธ๊ฐ„ ํ–‰์œ„์™€ ์„ธ๊ณ„์— ๋Œ€ํ•œ ์˜๋ฏธ๋ฅผ ํƒ์ƒ‰ํ•œ๋‹ค. ์ฒ ํ•™ ์ „๊ณต์€ ์ž์—ฐ, ์šฐ์ฃผ, ์‚ฌ ํšŒ๋ฅผ ๋…ผ๋ฆฌ์ ์œผ๋กœ ๋ถ„์„ํ•˜์—ฌ ๊ทธ๊ฒƒ์˜ ์˜๋ฏธ๋ฅผ ํƒ์ƒ‰ํ•˜๋Š” ํ†ตํ•ฉ์  ์‚ฌ๊ณ  ๋Šฅ๋ ฅ์ด ํ•„์š”ํ•˜๊ณ , ์ธ๊ฐ„ ๋ณธ์„ฑ๊ณผ ์กด์žฌ ๊ฐ€์น˜, ์‚ถ์˜ ๋ณธ์งˆ์— ๋Œ€ํ•ด ๊ด€์‹ฌ์ด ์žˆ์–ด์•ผ ํ•œ๋‹ค.\n",
79
+ "๋ฒ•ํ•™์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?\n",
80
+ "๋‹ต๋ณ€: ๋ฒ•ํ•™ ์ „๊ณต์€ ๋ฒ•๊ณผ ๊ด€๋ จ๋œ ๊ธฐ์ดˆ์ ์ธ ์ด๋ก ์—์„œ๋ถ€ํ„ฐ ์‚ฌ๋ฒ•, ๊ณต๋ฒ•, ์‚ฌํšŒ๋ฒ• ๋ฐ ๊ตญ์ œ ๊ด€๊ณ„์™€ ๊ด€๋ จ๋œ ๋‹ค์–‘ํ•œ ๋ฒ•ํ•™ ์ด๋ก ๋“ค์„ ์Šต๋“ํ•˜๊ณ  ์ด๋ฅผ ๊ตฌ์ฒด์ ์ธ ์‚ฌ๋ก€์— ์ ์šฉํ•œ๋‹ค. ๋ฒ•ํ•™ ์ „๊ณต์ž๋Š” ์‚ฌ๊ฑด๊ณผ ์ƒํ™ฉ์„ ๋ถ„์„ํ•˜์—ฌ ํƒ€๋‹นํ•œ ๊ฒฐ๋ก ์— ์ด๋ฅผ ์ˆ˜ ์žˆ๋Š” ์‚ฌ๊ณ ๋ ฅ๊ณผ ๊ณต์ •ํ•œ ํŒ๋‹จ๋ ฅ์ด ํ•„์š”ํ•˜ ๊ณ , ๋ฒ•๋ฅ ๊ณผ ๊ด€๋ จ๋œ ์‚ฌํšŒํ˜„์ƒ ๋ฐ ์‚ฌํšŒ๋ฌธ์ œ์— ๋Œ€ํ•ด ๊ด€์‹ฌ๊ณผ ํฅ๋ฏธ๊ฐ€ ์žˆ์–ด์•ผ ํ•œ๋‹ค.\n",
81
+ "์ •์น˜ยท๊ตญ์ œ๊ด€๊ณ„์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?\n",
82
+ "๋‹ต๋ณ€: ์ •์น˜ยท๊ตญ์ œ๊ด€๊ณ„ ์ „๊ณต์€ ํ•œ ๊ตญ๊ฐ€ ๋‚ด ํ˜น์€ ์—ฌ๋Ÿฌ ๊ตญ๊ฐ€ ๊ฐ„์˜ ์ •์น˜์  ํ˜„์ƒ์„ ๋ถ„์„ํ•˜๊ณ  ๋น„ํŒ ํ•˜๋ฉฐ, ๊ตญ๋‚ดยท์™ธ์˜ ์ •์น˜์  ํ˜„์ƒ๊ณผ ๊ตญ์ œ ๊ด€๊ณ„์— ๋Œ€ํ•œ ์ด๋ก ๊ณผ ์‹ค์ œ๋ฅผ ์—ฐ๊ตฌํ•œ๋‹ค. ์ •์น˜ยท๊ตญ์ œ๊ด€ ๊ณ„ ์ „๊ณต์ž๋Š” ๊ตญ์ œ์  ํ˜„์ƒ๊ณผ ๊ตญ๊ฐ€ ๊ฐ„ ๊ด€๊ณ„ยท์„ธ๋ ฅ ๋ณ€ํ™” ๋“ฑ์„ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ„์„๋ ฅ๊ณผ ๋…ผ๋ฆฌ ๋ ฅ์ด ํ•„์š”ํ•˜๊ณ , ๊ตญ๋‚ดยท์™ธ์˜ ๋‹ค์–‘ํ•œ ์ •์น˜ยท๊ฒฝ์ œยท์‚ฌํšŒ์  ์ด์Šˆ์— ๋Œ€ํ•œ ๋ฌธ์ œ์˜์‹๊ณผ ๊ด€์‹ฌ, ํฅ๋ฏธ ๊ฐ€ ์žˆ์–ด์•ผ ํ•œ๋‹ค.\n",
83
+ "ํ–‰์ •์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?\n",
84
+ "๋‹ต๋ณ€: ํ–‰์ • ์ „๊ณต์€ ๊ตญ๋ฏผ๊ณผ ์ •๋ถ€ ๊ฐ„์˜ ์ƒํ˜ธ์ž‘์šฉ, ๋‹ค์–‘ํ•œ ๊ณต๊ณต๋ถ€๋ฌธ์—์„œ์˜ ํ–‰์ • ๋ฐ ์ •์ฑ…๊ณผ ๊ด€ ๋ จ๋œ ํ˜„์ƒ์„ ๋ถ„์„ํ•จ์œผ๋กœ์จ ๊ณต๊ณต๋ถ„์•ผ ๊ด€๋ฆฌ ๋“ฑ ๏ฟฝ๏ฟฝ๊ฐ€ ์šด์˜์„ ํšจ์œจ์ ์œผ๋กœ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ ์•ˆ์„ ๋ชจ์ƒ‰ํ•œ๋‹ค. ํ–‰์ • ์ „๊ณต์ž๋Š” ์‚ฌํšŒ ๋ฌธ์ œ์— ๋Œ€ํ•œ ํ•ฉ๋ฆฌ์ ์ธ ํŒ๋‹จ ๋Šฅ๋ ฅ๊ณผ ์‚ฌํšŒ ๋ฌธ์ œ๋ฅผ ํšจ ์œจ์ ์œผ๋กœ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œํ•ด๊ฒฐ ๋Šฅ๋ ฅ์ด ํ•„์š”ํ•˜๊ณ , ๊ณต๊ณต์˜ ๋ฌธ์ œ์™€ ์ •์ฑ… ๊ทธ๋ฆฌ๊ณ  ์ •๋ถ€์™€ ๊ณต๊ณต ๊ธฐ๊ด€์˜ ์„ฑ๊ฒฉ, ์—…๋ฌด ๋“ฑ์— ๋Œ€ํ•ด ๊ด€์‹ฌ๊ณผ ํฅ๋ฏธ๊ฐ€ ์žˆ์–ด์•ผ ํ•œ๋‹ค.\n",
85
+ "์‚ฌํšŒ์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?\n",
86
+ "๋‹ต๋ณ€: ์‚ฌํšŒ ์ „๊ณต์€ ์‚ฌํšŒ์˜ ๋‹ค์–‘ํ•œ ํ˜„์ƒ๊ณผ ๋ฌธ์ œ๋ฅผ ๊ด€์ฐฐ, ๋ถ„์„ํ•˜๊ณ  ์ด๋ฅผ ํ†ตํ•ด ๊ทธ๊ฒƒ์˜ ์˜๋ฏธ๋ฅผ ํ•ด์„ํ•จ์œผ๋กœ์จ ์‚ฌํšŒ ๊ตฌ์„ฑ์›๋“ค ๊ฐ„์˜ ์ƒํ˜ธ์ž‘์šฉ ๋ฐ ์‚ฌํšŒ๊ตฌ์กฐ์— ๋Œ€ํ•˜์—ฌ ํƒ๊ตฌํ•˜๊ณ  ํ˜„๋Œ€ ์‚ฌํšŒ ์˜ ๋ฌธ์ œ๋“ค์„ ํ•ด๊ฒฐํ•œ๋‹ค. ์‚ฌํšŒ ์ „๊ณต์ž๋Š” ์‚ฌํšŒ ํ˜„์ƒ์„ ๊ฐ๊ด€์ ์œผ๋กœ ๊ด€์ฐฐํ•˜๊ณ  ๊ณผํ•™์ ์œผ๋กœ ๋ถ„ ์„ํ•  ์ˆ˜ ์žˆ๋Š” ๋Šฅ๋ ฅ์ด ํ•„์š”ํ•˜๊ณ , ๊ฐœ์ธ์ ยท์‚ฌํšŒ์  ์ˆ˜์ค€์˜ ๋‹ค์–‘ํ•œ ๋ฌธ์ œ๋ฅผ ํƒ๊ตฌํ•˜๋Š” ๊ฒƒ์— ๊ด€ ์‹ฌ๊ณผ ํฅ๋ฏธ๊ฐ€ ์žˆ์–ด์•ผ ํ•œ๋‹ค.\n",
87
+ "์‹ฌ๋ฆฌ์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?\n",
88
+ "๋‹ต๋ณ€: ์‹ฌ๋ฆฌ ์ „๊ณต์€ ์ธ๊ฐ„์˜ ํ–‰๋™๊ณผ ์ •์‹  ๊ณผ์ •, ๊ฐœ์ธ ๊ฐ„ ์ƒํ˜ธ๊ด€๊ณ„ ํ˜•์„ฑ์— ๊ด€ํ•œ ์‹ฌ์ธต์  ์—ฐ๊ตฌ๋ฅผ ํ†ตํ•ด ๊ฐœ์ธ์ด ๊ฐ€์ง„ ์‹ฌ๋ฆฌยท์ •์„œ์  ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ณ  ์กฐํ™”๋กœ์šด ์ธ๊ฒฉ ํ˜•์„ฑ๊ณผ ์ธ์„ฑ ํšŒ๋ณต์„ ์œ„ ํ•œ ๋ฐฉ์•ˆ์„ ๋ชจ์ƒ‰ํ•œ๋‹ค. ์‹ฌ๋ฆฌ ์ „๊ณต์ž๋Š” ์‹ฌ๋ฆฌ ํ˜„์ƒ์— ๋Œ€ํ•œ ์‹คํ—˜๊ณผ ์กฐ์‚ฌ๋ฅผ ๊ณผํ•™์ ์œผ๋กœ ์‹ค์‹œํ•˜ ๊ณ , ์„ธ๋ฐ€ํ•˜๊ฒŒ ๊ด€์ฐฐํ•˜๋ฉฐ, ๊ฒฐ๊ณผ๋ฅผ ๋…ผ๋ฆฌ์ ์œผ๋กœ ํ•ด์„ํ•  ์ˆ˜ ์žˆ๋Š” ๋Šฅ๋ ฅ์ด ํ•„์š”ํ•˜๊ณ , ์‚ฌ๋žŒ๋“ค์˜ ์‚ฌ๊ณ , ์„ฑ๊ฒฉ, ํ–‰๋™ ๋ฐ ๊ทธ์™€ ๊ด€๋ จ๋˜๋Š” ์‚ฌํšŒ ํ˜„์ƒ์— ๋Œ€ํ•œ ๊ด€์‹ฌ๊ณผ ํฅ๋ฏธ๊ฐ€ ์žˆ์–ด์•ผ ํ•œ๋‹ค.\n",
89
+ "์‚ฌํšŒ๋ณต์ง€์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?\n",
90
+ "๋‹ต๋ณ€: ์‚ฌํšŒ๋ณต์ง€ ์ „๊ณต์€ ๊ฐ€์กฑยท์•„๋™ยท์ฒญ์†Œ๋…„ยท๋…ธ์ธยท์—ฌ์„ฑ ๋“ฑ ์‚ฌํšŒ ๊ตฌ์„ฑ์›์˜ ์ผ์ •ํ•œ ์ƒํ™œ ์ˆ˜์ค€ ๋ฐ ๋ณด๊ฑด ์ƒํƒœ๋ฅผ ํ™•๋ณดํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌํšŒ ์ •์ฑ… ๋ฐ ์ œ๋„์™€ ๊ด€๋ จ๋œ ์ด๋ก ๊ณผ ๋ฐฉ๋ฒ•์„ ํƒ๊ตฌํ•œ๋‹ค. ์‚ฌ ํšŒ๋ณต์ง€ ์ „๊ณต์ž๋Š” ์‚ฌํšŒ ๊ตฌ์„ฑ์›์˜ ์ผ์ •ํ•œ ์ƒํ™œ ์ˆ˜์ค€ ๋ฐ ๋ณด๊ฑด ์ƒํƒœ๋ฅผ ์ง€์›ํ•˜๊ธฐ ์œ„ํ•œ ์‚ฌํšŒ ์ •์ฑ… ๋ฐ ์ œ๋„ ๋“ฑ์„ ํ•™๋ฌธ์ ์œผ๋กœ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ๋Šฅ๋ ฅ์ด ํ•„์š”ํ•˜๊ณ , ์ฃผ์œ„ ์ด์›ƒ์— ๋Œ€ํ•œ ๊ด€์‹ฌ ๊ณผ ๋ด‰์‚ฌ์ •์‹ ์ด ์žˆ์–ด์•ผ ํ•œ๋‹ค.\n",
91
+ "๋ฌธํ—Œ์ •๋ณด์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?\n",
92
+ "๋‹ต๋ณ€: ๋ฌธํ—Œ์ •๋ณด ์ „๊ณต์€ ๊ฐ์ข… ์ง€์  ํ™œ๋™์— ํ•„์š”ํ•œ ์ •๋ณด ๋ฐ ๋ฌธํ—Œ์˜ ์†์„ฑ์„ ์ดํ•ดํ•˜๊ณ , ๋‹ค์–‘ํ•œ ๋ฏธ๋””์–ด๋ฅผ ํ†ตํ•ด ์ •๋ณด๋ฅผ ํšจ์œจ์ ์œผ๋กœ ์ˆ˜์ง‘, ์ •๋ฆฌ, ๊ฐ€๊ณต, ๊ด€๋ฆฌ, ๋ฐฐํฌํ•˜๋Š” ์ง€์‹ ์ •๋ณด ๊ด€๋ฆฌ ๋Šฅ๋ ฅ ์„ ๊ณ„๋ฐœํ•œ๋‹ค. ๋ฌธํ—Œ์ •๋ณด ์ „๊ณต์ž๋Š” ์ƒํ™ฉ์— ๋”ฐ๋ฅธ ์ ํ•ฉํ•œ ๋„์„œ ๋ฐ ์ž๋ฃŒ์˜ ์ˆ˜์ง‘ยท์ •๋ฆฌยท๊ฐ€๊ณต ๋Šฅ ๋ ฅ, ๋„์„œ ๋ฐ ์ž๋ฃŒ์˜ ๊ด€๋ฆฌ ๋ฐ ํ™œ์šฉ์„ ์œ„ํ•œ ์ „์‚ฐ ์ฒ˜๋ฆฌ ๋ฐ ํ†ต๊ณ„ ์ฒ˜๋ฆฌ ๋Šฅ๋ ฅ์ด ํ•„์š”ํ•˜๊ณ , ๋‹ค์–‘ ํ•œ ๋ถ„์•ผ์˜ ๋„์„œ์™€ ์ž๋ฃŒ์— ๋Œ€ํ•œ ๊ด€์‹ฌ๊ณผ ํฅ๋ฏธ๊ฐ€ ์žˆ์–ด์•ผ ํ•œ๋‹ค.\n",
93
+ "์–ธ๋ก ยทํ™๋ณดยท๋ฏธ๋””์–ด์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?\n",
94
+ "๋‹ต๋ณ€: ์–ธ๋ก ยทํ™๋ณดยท๋ฏธ๋””์–ด ์ „๊ณต์€ ์‚ฌํšŒ์˜ ์—ฌ๋Ÿฌ ์˜์—ญ์—์„œ ์ด๋ฃจ์–ด์ง€๋Š” ๋Œ€์ค‘ ๋งค์ฒด์˜ ์†Œํ†ต ๊ณผ์ • ์„ ๋ถ„์„, ์—ฐ๊ตฌํ•˜์—ฌ ๋‹ค์–‘ํ•œ ๋ฏธ๋””์–ด ์ฝ˜ํ…์ธ  ์ œ์ž‘๊ณผ ๋ฐ”๋žŒ์งํ•œ ๋ฏธ๋””์–ดยท๋Œ€์ค‘ ๋งค์ฒด์˜ ๋ฐœ์ „ ๋ฐฉ ์•ˆ์— ๋Œ€ํ•ด ์—ฐ๊ตฌํ•œ๋‹ค. ์–ธ๋ก ยทํ™๋ณดยท๋ฏธ๋””์–ด ์ „๊ณต์ž๋Š” ์ตœ์‹  ํŠธ๋ Œ๋“œ๋ฅผ ํŒŒ์•…ํ•˜๋Š” ๋Šฅ๋ ฅ, ์ •ํ™•ํ•œ ์ •๋ณด ์ „๋‹ฌ์„ ์œ„ํ•œ ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜ ๋Šฅ๋ ฅ, ๊ทธ๋ฆฌ๊ณ  ๋งค๋ ฅ์  ์ฝ˜ํ…์ธ  ์ƒ์‚ฐ์„ ์œ„ํ•œ ์˜ˆ์ˆ ์„ฑ ๋ฐ ์ฐฝ ์˜๋ ฅ์ด ํ•„์š”ํ•˜๊ณ , ๋Œ€์ค‘ ๋งค์ฒด์™€ ๋‹ค์–‘ํ•œ ์ฝ˜ํ…์ธ , ๋‰ด๋ฏธ๋””์–ด ๋“ฑ์— ๋Œ€ํ•œ ๊ด€์‹ฌ์ด ์žˆ์–ด์•ผ ํ•œ๋‹ค.\n",
95
+ "๋„์‹œยท์ง€์—ญ์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?\n",
96
+ "๋‹ต๋ณ€: ๋„์‹œยท์ง€์—ญ ์ „๊ณต์€ ๋„์‹œ ๋ฐ ์ง€์—ญ๊ณผ ๊ด€๋ จ๋œ ๊ฐ์ข… ๋ฌธ์ œ๋ฅผ ๋ถ„์„ํ•˜๊ณ  ์ด๋ฅผ ํ•ฉ๋ฆฌ์ ์œผ๋กœ ํ•ด ๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ์•ˆ์„ ๋ชจ์ƒ‰ํ•˜์—ฌ ๊ตญํ† ๋ฅผ ๊ฒฝ์ œ์ , ์‚ฌํšŒ์ , ๋ฌธํ™”์  ์ธก๋ฉด์—์„œ ์กฐํ™”๋กญ๊ณ  ๊ท ํ˜• ์žˆ๊ฒŒ ๋ฐœ์ „ํ•˜๋Š” ๋ฐฉ์•ˆ์— ๋Œ€ํ•ด ์—ฐ๊ตฌํ•œ๋‹ค. ๋„์‹œยท์ง€์—ญ ์ „๊ณต์ž๋Š” ๋„์‹œ์˜ ๊ธฐ๋Šฅ๊ณผ ์—ญํ• , ๊ตํ†ต ์ฒด ๊ณ„, ์ง€์—ญ์  ํŠน์„ฑ์— ์ ํ•ฉํ•œ ์‚ฌํšŒ๊ธฐ๋ฐ˜์‹œ์„ค ๋“ฑ์— ๋Œ€ํ•œ ์ดํ•ด ๋Šฅ๋ ฅ๊ณผ ์ฐฝ์˜๋ ฅ, ๊ณต๊ฐ„์ง€๊ฐ๋ ฅ์ด ํ•„์š”ํ•˜๊ณ , ๊ณต๊ฐ„์— ๋Œ€ํ•œ ํ˜ธ๊ธฐ์‹ฌ์ด ์žˆ์–ด์•ผ ํ•œ๋‹ค.\n",
97
+ "๊ตฐ์‚ฌยท๊ตญ๋ฐฉยท์•ˆ๋ณด์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?\n",
98
+ "๋‹ต๋ณ€: ๊ตฐ์‚ฌยท๊ตญ๋ฐฉยท์•ˆ๋ณด ์ „๊ณต์€ ๊ตฐ์‚ฌ ์ •์ฑ… ๋ฐ ์ „๋žต์— ํ•„์š”ํ•œ ์ „๋ฌธ ์ง€์‹์„ ์Šต๋“ํ•˜๊ณ , ๋‹ค์–‘ํ•œ ์ƒํ™ฉ์—์„œ ์‹ค์งˆ์ ์œผ๋กœ ๋Œ€์ฒ˜ ๊ฐ€๋Šฅํ•œ ๊ตฐ์‚ฌ ์šด์šฉ ๋Šฅ๋ ฅ์„ ๊ณ„๋ฐœํ•˜๋ฉฐ, ํˆฌ์ฒ ํ•œ ๊ตญ๊ฐ€๊ด€์„ ํ•จ์–‘ํ•˜ ์—ฌ ๊ตญ๊ฐ€์˜ ์•ˆ๋ณด์— ๊ธฐ์—ฌํ•œ๋‹ค. ๊ตฐ์‚ฌยท๊ตญ๋ฐฉยท์•ˆ๋ณด ์ „๊ณต์ž๋Š” ๊ตฐ๋ณ‘๋ ฅ์„ ํ†ต์†”ํ•˜๋Š” ๋ฆฌ๋”์‹ญ๊ณผ ์˜ฌ ๋ฐ”๋ฅธ ๊ตญ๊ฐ€๊ด€, ํ›ˆ๋ จ ๋ฐ ์‹ค์ „์— ๋Œ€๋น„ํ•œ ๊ฐ•ํ•œ ์ฒด๋ ฅ๊ณผ ์ •์‹ ๋ ฅ, ํ†ต์ฐฐ๋ ฅ ๋ฐ ํŒ๋‹จ๋ ฅ์ด ํ•„์š”ํ•˜๊ณ , ๊ตญ๊ฐ€์˜ ์•ˆ๋ณด ํ™˜๊ฒฝ์— ๋Œ€ํ•œ ์ดํ•ด์™€ ๊ด€์‹ฌ์ด ์žˆ์–ด์•ผ ํ•œ๋‹ค.\n",
99
+ "๊ฒฝ์ฐฐยท์†Œ๋ฐฉยท์•ˆ์ „์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?\n",
100
+ "๋‹ต๋ณ€: ๊ฒฝ์ฐฐยท์†Œ๋ฐฉยท์•ˆ์ „ ์ „๊ณต์€ ๊ฐ์ข… ๋ฒ”์ฃ„ ํ˜„์ƒ์˜ ์›์ธ๊ณผ ๋Œ€์ฑ…์„ ์—ฐ๊ตฌํ•˜๊ฑฐ๋‚˜ ์•ˆ์ „ ๊ด€๋ฆฌ์— ๋Œ€ ํ•œ ์ด๋ก ์  ์ง€์‹ ๋ฐ ์‹ค๋ฌด ๋Šฅ๋ ฅ์„ ์Šต๋“ํ•จ์œผ๋กœ์จ ๋ฒ”์ฃ„, ์œ„ํ—˜ ๋ฐ ์žฌ๋‚œ์œผ๋กœ๋ถ€ํ„ฐ ๊ตญ๋ฏผ์˜ ์ƒ๋ช… ๊ณผ ์žฌ์‚ฐ์„ ๋ณดํ˜ธํ•œ๋‹ค. ๊ฒฝ์ฐฐยท์†Œ๋ฐฉยท์•ˆ์ „ ์ „๊ณต์ž๋Š” ํ˜„์žฅ์—์„œ์˜ ๋Œ๋ฐœ ์ƒํ™ฉ์„ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š” ๋ฆฌ๋”์‹ญ๊ณผ ์กฐ์ง์  ์‚ฌ๊ณ , ์ฑ…์ž„๊ฐ, ์ƒํ™ฉํŒ๋‹จ๋ ฅ์ด ๏ฟฝ๏ฟฝ๏ฟฝ์š”ํ•˜๊ณ , ์‚ฌํšŒ ๋ฌธ์ œ ๋ฐ ๋ฒ”์ฃ„ ํ•ด๊ฒฐ, ๊ฐ์ข… ์‚ฌ ๊ฑดยท์‚ฌ๊ณ ์— ๊ด€์‹ฌ๊ณผ ํฅ๋ฏธ๊ฐ€ ์žˆ์–ด์•ผ ํ•œ๋‹ค.\n",
101
+ "๊ฒฝ์˜์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?\n",
102
+ "๋‹ต๋ณ€: ๊ฒฝ์˜ ๊ด€๋ จ ์ „๊ณต์—์„œ๋Š” ๊ธฐ์—… ๊ฒฝ์˜์— ํ•„์š”ํ•œ ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์ด๋ก ๊ณผ ๊ธฐ๋ฒ•์„ ์—ฐ๊ตฌํ•˜๊ณ , ์ƒํ™œ ์— ํ•„์š”ํ•œ ๋‹ค์–‘ํ•œ ์ƒํ’ˆ ๋˜๋Š” ์„œ๋น„์Šค๋ฅผ ์ƒ์‚ฐ, ์œ ํ†ต, ํŒ๋งคํ•˜๋Š” ์ „ ๊ณผ์ •์— ๋Œ€ํ•ด ์—ฐ๊ตฌํ•œ๋‹ค. ๊ฒฝ ์˜ํ•™ ๊ด€๋ จ ์ „๊ณต์ž์—๊ฒŒ๋Š” ํšจ์œจ์ ์ธ ๊ฒฝ์˜ ํ™œ๋™์— ๋Œ€ํ•œ ๋ถ„์„ยท์‹คํ–‰ ๋Šฅ๋ ฅ๊ณผ ํ•ฉ๋ฆฌ์  ์˜์‚ฌ๊ฒฐ์ • ๋Šฅ๋ ฅ์ด ํ•„์š”ํ•˜๊ณ , ์กฐ์ง์˜ ์„ฑ๊ณผ๋ฅผ ๋†’์ด๊ธฐ ์œ„ํ•œ ๊ฒฝ์˜ ํ™œ๋™ ๋ฐ ๊ธ€๋กœ๋ฒŒ ๊ธฐ์—… ํ™˜๊ฒฝ์˜ ๋ณ€ํ™”์— ๋Œ€ํ•œ ๊ด€์‹ฌ๊ณผ ํฅ๋ฏธ๊ฐ€ ์žˆ์–ด์•ผ ํ•œ๋‹ค.\n",
103
+ "๊ฒฝ์ œยท๊ธˆ์œตยท๋ถ€๋™์‚ฐ์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?\n",
104
+ "๋‹ต๋ณ€: ๊ฒฝ์ œยท๊ธˆ์œตยท๋ถ€๋™์‚ฐ ์ „๊ณต์€ ๊ตญ๊ฐ€, ์กฐ์ง, ๊ฐœ์ธ ๋“ฑ์˜ ๊ฒฝ์ œ ์ƒํ™ฉ์„ ๋ถ„์„ยท์ง„๋‹จํ•˜์—ฌ ๊ฒฝ์ œ ๊ด€ ๋ จ ๋ฌธ์ œ์— ์ ์ ˆํžˆ ๋Œ€์‘ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์„ ์—ฐ๊ตฌํ•œ๋‹ค. ๋”ฐ๋ผ์„œ ๊ธˆ์œต์˜ ํ๋ฆ„์„ ํŒŒ์•…ํ•˜๊ธฐ ์œ„ ํ•œ ๋ถ„์„๋ ฅ๊ณผ ์ˆ˜ํ•™ ๋Šฅ๋ ฅ, ์ •๋ณด์ฒ˜๋ฆฌ ๋ฐ ํ™œ์šฉ๋Šฅ๋ ฅ์ด ํ•„์š”ํ•˜๊ณ , ๊ตญ๊ฐ€ ๋ฐ ์„ธ๊ณ„ ๊ฒฝ์ œ์˜ ํ๋ฆ„์— ๊ด€์‹ฌ์ด ์žˆ์–ด์•ผ ํ•œ๋‹ค.\n",
105
+ "๋ฌด์—ญยท๋ฌผ๋ฅ˜์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?\n",
106
+ "๋‹ต๋ณ€: ๋ฌด์—ญยท๋ฌผ๋ฅ˜ ์ „๊ณต์€ ๋ฌผํ’ˆยท์„œ๋น„์Šคยท๊ธฐ์ˆ ยท์ž์› ๋“ฑ์˜ ๊ตญ๊ฐ€ ๊ฐ„ ์ด๋™๊ณผ ๋ฌผํ’ˆ์˜ ์ƒ์‚ฐ์—์„œ ๊ณต ๊ธ‰์— ์ด๋ฅด๋Š” ์ผ๋ จ์˜ ๊ณผ์ •์„ ๊ฒฝ์ œ์ ์ด๊ณ  ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ• ๋ฐ ๊ตญ์ œ ๊ฒฝ์ œ ๊ต๋ฅ˜์™€ ๊ด€๋ จ๋œ ์‚ฌ์•ˆ์— ๋Œ€ํ•ด ์—ฐ๊ตฌํ•œ๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ ๋ฌด์—ญยท๋ฌผ๋ฅ˜ ์ „๊ณต์ž๋Š” ์„ธ๊ณ„ ์†Œ๋น„๊ฒฝํ–ฅ ๋ฐ ์ž์›์˜ ํ๋ฆ„์„ ๋ถ„์„ํ•˜๊ณ  ์ดํ•ดํ•˜๋Š” ๋Šฅ๋ ฅ๊ณผ ๊ด€๋ จ ์ •๋ณด๋ฅผ ๊ฒฝ์˜, ๊ฒฝ์ œ, ๋ฒ•, ๋ณดํ—˜, ์™ธ๊ตญ์–ด ๋“ฑ์˜ ์ธ์ ‘ ํ•™๋ฌธ๊ณผ ์—ฐ๊ณ„ํ•  ์ˆ˜ ์žˆ๋Š” ๋Šฅ๋ ฅ์ด ํ•„์š”ํ•˜๊ณ , ๊ตญ์ œ ๊ฒฝ์ œ ๊ต๋ฅ˜์— ๋Œ€ํ•ด ๊ด€์‹ฌ์ด ์žˆ์–ด์•ผ ํ•œ๋‹ค.\n",
107
+ "ํšŒ๊ณ„ยท์„ธ๋ฌด์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?\n",
108
+ "๋‹ต๋ณ€: ํšŒ๊ณ„ยท์„ธ๋ฌด ์ „๊ณต์€ ๊ธฐ์—…์˜ ํšŒ๊ณ„์ •๋ณด๋ฅผ ์ฒด๊ณ„์ ์ธ ๋ฐฉ๋ฒ•์œผ๋กœ ์‚ฐ์ถœยท๋ถ„์„ํ•˜๊ณ , ์„ธ๋ฌด์™€ ๊ด€ ๋ จ๋œ ํšจ์œจ์ ์ธ ์˜์‚ฌ๊ฒฐ์ • ๋ฐฉ์•ˆ์„ ํƒ์ƒ‰ํ•œ๋‹ค. ๋”ฐ๋ผ์„œ ์ดํ•ด๊ด€๊ณ„๋ฅผ ๋ถ„์„ํ•˜๊ณ  ์˜ˆ์ธกํ•  ์ˆ˜ ์žˆ๋Š” ์ˆ˜๋ฆฌ ๋Šฅ๋ ฅ ๋ฐ ๋…ผ๋ฆฌ๋ ฅ์ด ํ•„์š”ํ•˜๊ณ , ๊ฒฝ์ œ ๋ฐ ๊ธฐ์—… ์ž์›์˜ ํšจ์œจ์  ๋ฐฐ๋ถ„์— ๊ด€์‹ฌ์ด ์žˆ์–ด์•ผ ํ•œ๋‹ค.\n",
109
+ "๊ด€๊ด‘์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?\n",
110
+ "๋‹ต๋ณ€: ๊ด€๊ด‘ ์ „๊ณต์—์„œ๋Š” ๊ด€๊ด‘์„ ํ†ตํ•œ ์‚ถ์˜ ์งˆ ํ–ฅ์ƒ์„ ์œ„ํ•ด ๊ตญ๋‚ด์™ธ ๊ด€๊ด‘์ง€๋ฅผ ํŒŒ์•…ํ•˜๊ณ , ๊ด€๊ด‘ ํ˜„์ƒ์— ๋Œ€ํ•œ ํ•™๋ฌธ์  ๋ถ„์„๊ณผ ์‹ค๋ฌด์ ์ธ ์ •์ฑ…์„ ์ˆ˜๋ฆฝํ•œ๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ ๊ด€๊ด‘ ์ƒํ’ˆ์˜ ๊ฐœ๋ฐœ ๋ฐ ๊ธฐํš ๋Šฅ๋ ฅ, ์™ธ๊ตญ์–ด ๋Šฅ๋ ฅ, ์ธ์  ๋„คํŠธ์›Œํฌ ํ˜•์„ฑ ๋Šฅ๋ ฅ์ด ํ•„์š”ํ•˜๊ณ , ์—ฌํ–‰ ๋ฐ ๊ด€๊ด‘์— ๋Œ€ํ•œ ํฅ๋ฏธ ์™€ ๊ด€์‹ฌ์ด ์žˆ์–ด์•ผ ํ•œ๋‹ค.\n",
111
+ "๊ต์œก์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?\n",
112
+ "๋‹ต๋ณ€: ๊ต์œก ์ „๊ณต์€ ๊ต์œก ๊ธฐ๊ด€ ์•ˆํŒŽ์˜ ๊ต์œกํ™œ๋™์„ ์ด์ฒด์ ์œผ๋กœ ์ดํ•ดํ•˜๊ณ , ๊ต์œก๊ณผ ๊ด€๋ จํ•œ ๋‹ค ์–‘ํ•œ ๋ฌธ์ œ์— ๋Œ€ํ•ด ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ๋ชจ์ƒ‰ํ•œ๋‹ค. ๋”ฐ๋ผ์„œ ๊ต์œก ํ˜„์ƒ ๋ฐ ๊ต์œก ์ •์ฑ… ๋“ฑ์— ๋Œ€ํ•œ ํŒ๋‹จ ๋ ฅ๊ณผ ๊ต์œก ๋ฌธ์ œ์˜ ์›์ธ์„ ์ฒด๊ณ„์ ์œผ๋กœ ํŒŒ์•…ํ•˜๋Š” ๋ถ„์„๋ ฅ์ด ํ•„์š”ํ•˜๊ณ , ์ธ๊ฐ„๊ณผ ๊ต์œก ํ™œ๋™์— ๋Œ€ํ•œ ๊ด€์‹ฌ์ด ์žˆ์–ด์•ผ ํ•œ๋‹ค.\n",
113
+ "์œ ์•„๊ต์œก์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?\n",
114
+ "๋‹ต๋ณ€: ์œ ์•„๊ต์œก ์ „๊ณต์—์„œ๋Š” ์˜ยท์œ ์•„๊ธฐ ๋ฐœ๋‹ฌ์— ๋Œ€ํ•œ ์ฒด๊ณ„์ ์ธ ์ด๋ก ์„ ์ดํ•ดํ•˜๊ณ , ์ด๋ฅผ ํ˜„์žฅ ์— ์ ์šฉํ•ด ๋ณด๋Š” ์‹ค์Šต์„ ํ†ตํ•ด ์˜ยท์œ ์•„์˜ ์‹ ์ฒด์ , ์ •์„œ์  ๋ฐœ๋‹ฌ์— ๋”ฐ๋ฅธ ๊ต์œก ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ํ•™ ์Šตํ•œ๋‹ค. ๋”ฐ๋ผ์„œ ์•„๋™์˜ ๋ฐœ๋‹ฌ, ์‹ฌ๋ฆฌ์™€ ํ–‰๋™, ๋ถ€๋ชจ ๊ต์œก ๋“ฑ ์•„๋™์— ๋Œ€ํ•œ ์ „๋ฌธ์ ์ธ ์ง€์‹๊ณผ ์•„ ๋™์˜ ์ˆ˜์ค€์— ๋งž๋Š” ์˜์‚ฌ์†Œํ†ต ๋Šฅ๋ ฅ๊ณผ ์–ธ์–ด ๊ตฌ์‚ฌ ๋Šฅ๋ ฅ์ด ํ•„์š”ํ•˜๊ณ , ์•„๋™ ๋ณด์œก์— ๋Œ€ํ•œ ์ฑ…์ž„ ๊ฐ์ด ์žˆ์–ด์•ผ ํ•œ๋‹ค.\n",
115
+ "์ดˆ๋“ฑ๊ต์œก์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?\n",
116
+ "๋‹ต๋ณ€: ์ดˆ๋“ฑ๊ต์œก ์ „๊ณต์—์„œ๋Š” ๋งŒ 6โˆผ12์„ธ ์•„๋™์„ ๋Œ€์ƒ์œผ๋กœ, ๊ทธ๋“ค์˜ ์‹ฌ๋ฆฌ์  ํŠน์„ฑ์„ ํŒŒ์•…ํ•˜๊ณ  ๊ตญ์–ด, ์ˆ˜ํ•™, ๋ฏธ์ˆ  ๋“ฑ ๋‹ค์–‘ํ•œ ๊ต๊ณผ ์ด๋ก ์„ ์ ์šฉํ•˜์—ฌ ๊ต์œก ํ˜„์žฅ์—์„œ ๊ต์‚ฌ๋กœ์„œ ์—…๋ฌด๋ฅผ ์ˆ˜ํ–‰ ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•๋“ค์„ ํ•™์Šตํ•œ๋‹ค. ๋”ฐ๋ผ์„œ ์ดˆ๋“ฑํ•™๊ต ๊ต๊ณผ์— ๋Œ€ํ•œ ๊ธฐ์ดˆ ์ง€์‹๊ณผ ๋‹ค์–‘ํ•œ ๊ต์œก ๋ฐฉ๋ฒ•์„ ๊ณ ์•ˆํ•  ์ˆ˜ ์žˆ๋Š” ์ฐฝ์˜๋ ฅ, ์–ด๋ฆฐ์ด์˜ ๋ฐœ๋‹ฌ์— ๋Œ€ํ•œ ๋†’์€ ์ดํ•ด ๋Šฅ๋ ฅ์ด ํ•„์š”ํ•˜๊ณ , ์ดˆ๋“ฑ ๊ต์œก์— ๋Œ€ํ•œ ๊ด€์‹ฌ์ด ์žˆ์–ด์•ผ ํ•œ๋‹ค.\n",
117
+ "์ค‘๋“ฑ๊ต์œก์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?\n",
118
+ "๋‹ต๋ณ€: ์ค‘๋“ฑ๊ต์œก ์ „๊ณต์—์„œ๋Š” ๋งŒ 13โˆผ18์„ธ ์ค‘ยท๊ณ ๋“ฑํ•™๊ต ํ•™์ƒ๋“ค์„ ๋Œ€์ƒ์œผ๋กœ ๊ทธ๋“ค์„ ๊ฐ€๋ฅด์น˜ ๊ธฐ ์œ„ํ•ด ํŠน์ • ๊ต๊ณผ๋ชฉ์„ ์ „๊ณตํ•˜๊ณ , ๊ต์œก ํ˜„์žฅ์—์„œ ๊ต์‚ฌ๋กœ์„œ ์—…๋ฌด๋ฅผ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ• ๋“ค์„ ํ•™์Šตํ•œ๋‹ค. ์ด์— ์ค‘ยท๊ณ ๋“ฑํ•™๊ต ๊ต๊ณผ์— ๋Œ€ํ•œ ์ง€์‹, ํ˜„ํ–‰ ๊ต์œก๊ณผ์ • ๋ฐ ๊ต์œก์ •์ฑ…์— ๋Œ€ํ•œ ์ดํ•ด, ํ•™์ƒ ์ง€๋„ ๋Šฅ๋ ฅ, ๊ต์œก ํ˜„์ƒ์„ ์ข…ํ•ฉ์ ์œผ๋กœ ์ดํ•ดํ•˜๊ณ  ๋น„ํŒํ•  ์ˆ˜ ์žˆ๋Š” ๋Šฅ๋ ฅ์ด ํ•„์š”ํ•˜ ๊ณ , ์ค‘ยท๊ณ ๋“ฑํ•™๊ต ๊ต์œก์— ๋Œ€ํ•œ ๊ด€์‹ฌ์ด ์žˆ์–ด์•ผ ํ•œ๋‹ค.\n",
119
+ "ํŠน์ˆ˜๊ต์œก์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?\n",
120
+ "๋‹ต๋ณ€: ํŠน์ˆ˜๊ต์œก ์ „๊ณต์—์„œ๋Š” ์‹ ์ฒด์ , ์ •์‹ ์ , ์‚ฌํšŒ์  ๋ฐœ๋‹ฌ ์žฅ์• ๋ฅผ ์ง€๋‹Œ ํ•™์ƒ๋“ค์—๊ฒŒ ์ ํ•ฉํ•œ ๊ต์œก์„ ์ œ๊ณตํ•˜์—ฌ ๊ทธ๋“ค์ด ์‚ฌํšŒ ๊ตฌ์„ฑ์›์œผ๋กœ์„œ ์ƒํ™œํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ต์œกํ•˜๋Š” ํŠน์ˆ˜๊ต์œก ์ „๋ฌธ ๊ฐ€๋ฅผ ์–‘์„ฑํ•œ๋‹ค. ๋”ฐ๋ผ์„œ ํŠน์ˆ˜๊ต์œก์— ๋Œ€ํ•œ ์ „๋ฌธ์ ์ธ ์ง€์‹์„ ๋ฐ”ํƒ•์œผ๋กœ ๋‹ค์–‘ํ•œ ์ƒํ™ฉ์—์„œ์˜ ๋Œ€์ฒ˜ ๋Šฅ๋ ฅ์ด ํ•„์š”ํ•˜๊ณ , ์žฅ์• ํ•™์ƒ์— ๋Œ€ํ•œ ์‚ฌ๋ž‘, ๊ต์‚ฌ๋กœ์„œ์˜ ์†Œ๋ช… ์˜์‹๊ณผ ๋ด‰์‚ฌ ๋ฐ ํฌ์ƒ ์ • ์‹ ์ด ์žˆ์–ด์•ผ ํ•œ๋‹ค.\n",
121
+ "์ˆ˜ํ•™์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?\n",
122
+ "๋‹ต๋ณ€: ์ˆ˜ํ•™ ์ „๊ณต์—์„œ๋Š” ๋‹ค์–‘ํ•œ ๋ฌผ์ฒด๋‚˜ ๊ณต๊ฐ„, ํ˜„์ƒ์„ ๊ณ„๋Ÿ‰ํ™”ํ•˜์—ฌ ๋ถ„์„ยท์„ค๋ช…ํ•˜๊ณ , ์ˆ˜์˜ ์ฒด๊ณ„ ์™€ ์„ฑ์งˆ์„ ์—ฐ๊ตฌํ•œ๋‹ค. ์ˆ˜ํ•™ ์ „๊ณต์€ ๋…ผ๋ฆฌ์ ์ธ ์‚ฌ๊ณ ์™€ ๋ถ„์„๋ ฅ, ์ถ”๋ฆฌ๋ ฅ์ด ํ•„์š”ํ•˜๊ณ , ๋ฌธ์ œ ํ•ด ๊ฒฐ ๊ณผ์ •์„ ์ค‘์š”ํ•˜๊ฒŒ ์ƒ๊ฐํ•˜๋ฉฐ ์ˆ˜์˜ ์„ฑ์งˆ์— ๋Œ€ํ•œ ํฅ๋ฏธ๊ฐ€ ์žˆ์–ด์•ผ ํ•œ๋‹ค.\n",
123
+ "ํ†ต๊ณ„์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?\n",
124
+ "๋‹ต๋ณ€: ํ†ต๊ณ„ ์ „๊ณต์—์„œ๋Š” ์—ฐ๊ตฌ๋ชฉ์ ์— ๋ถ€ํ•ฉํ•˜๋Š” ์ž๋ฃŒ๋ฅผ ์ˆ˜์ง‘, ์š”์•ฝํ•จ์œผ๋กœ์จ ์‚ฌํšŒ ๊ฐ ๋ถ„์•ผ์˜ ๋‹ค์–‘ํ•œ ํŠน์„ฑ ๋ฐ ์ •๋ณด๋ฅผ ๋ถ„์„ํ•˜๊ณ  ํ•ด์„ํ•˜๋Š” ์ด๋ก ๊ณผ ๋ฐฉ๋ฒ•์„ ์—ฐ๊ตฌํ•œ๋‹ค. ํ†ต๊ณ„ ์ „๊ณต์€ ๋‹ค์–‘ํ•œ ํ†ต๊ณ„ ๋ฐฉ๋ฒ•๋ก ์„ ์ ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์‘์šฉ๋ ฅ๊ณผ ์ •๋ณด๋ฅผ ๋ถ„์„ํ•˜๊ณ  ์ถ”๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ๋Šฅ๋ ฅ์ด ํ•„์š”ํ•˜ ๊ณ , ์ˆ˜ํ•™์— ๋Œ€ํ•œ ํฅ๋ฏธ๊ฐ€ ์žˆ์–ด์•ผ ํ•œ๋‹ค.\n",
125
+ "๋ฌผ๋ฆฌยท์ฒœ๋ฌธ์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?\n",
126
+ "๋‹ต๋ณ€: ๋ฌผ๋ฆฌยท์ฒœ๋ฌธ ์ „๊ณต์—์„œ๋Š” ๋ชจ๋“  ์ž์—ฐํ˜„์ƒ์„ ์กด์žฌํ•˜๋Š” ํž˜์˜ ์›๋ฆฌ์™€ ์šฐ์ฃผ์—์„œ ์ผ์–ด๋‚˜๋Š” ๋‹ค์–‘ํ•œ ํ˜„์ƒ์„ ๊ด€์ธกํ•˜์—ฌ ์šฐ์ฃผ์˜ ์งˆ์„œ์™€ ๋ฒ•์น™์„ ํƒ๊ตฌํ•œ๋‹ค. ๋ฌผ๋ฆฌยท์ฒœ๋ฌธ ์ „๊ณต์€ ๋ˆˆ์— ๋ณด์ด ์ง€ ์•Š๋Š” ์ž‘์€ ์„ธ๊ณ„๋ฅผ ํฌํ•จํ•ด ์ง€๊ตฌ์™€ ์šฐ์ฃผ์— ๋Œ€ํ•œ ์ฐฝ์˜์ ์ธ ์‚ฌ๊ณ  ๋Šฅ๋ ฅ, ์ฒœ์ฒด๋‚˜ ์ง€๊ตฌ์—์„œ ์ผ์–ด๋‚˜๋Š” ํ˜„์ƒ์„ ๋ถ„์„ํ•˜๋Š” ๋…ผ๋ฆฌ์ ์ธ ์‚ฌ๊ณ  ๋Šฅ๋ ฅ์ด ํ•„์š”ํ•˜๊ณ , ๋‹ค์–‘ํ•œ ์ž์—ฐ ํ˜„์ƒ์— ๋Œ€ํ•œ ๊ด€ ์‹ฌ์ด ์žˆ์–ด์•ผ ํ•œ๋‹ค.\n",
127
+ "์ง€์งˆยท๋Œ€๊ธฐยทํ•ด์–‘์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?\n",
128
+ "๋‹ต๋ณ€: ์ง€์งˆยท๋Œ€๊ธฐยทํ•ด์–‘ ์ „๊ณต์—์„œ๋Š” ์ง€๊ตฌ๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋ฌผ์งˆ์˜ ์„ฑ๋ถ„, ๊ตฌ์กฐ, ํ˜•์„ฑ ๋ฐ ๋ณ€ํ™” ๊ณผ์ • ๋“ฑ์„ ์—ฐ๊ตฌํ•˜๊ณ  ์ง€๊ตฌ๋ฅผ ๋‘˜๋Ÿฌ์‹ผ ๋Œ€๊ธฐ์™€ ํ•ด์–‘์˜ ์ž์—ฐ ํ˜„์ƒ์— ๋Œ€ํ•ด ํƒ๊ตฌํ•œ๋‹ค. ์ง€์งˆยท๋Œ€๊ธฐยทํ•ด ์–‘ ์ „๊ณต์€ ๊ณผํ•™ ๊ต๊ณผ ์ „๋ฐ˜์— ๋Œ€ํ•œ ๊ธฐ๋ณธ ์ง€์‹ ๊ทธ๋ฆฌ๊ณ  ์ž์—ฐ ํ™˜๊ฒฝ์— ๋Œ€ํ•œ ๊ด€์ฐฐ๋ ฅ๊ณผ ํƒ๊ตฌ๋ ฅ ์ด ํ•„์š”ํ•˜๊ณ , ์ž์—ฐ, ๋Œ€๊ธฐ, ๋ฐ”๋‹ค์—์„œ ๋ฐœ์ƒํ•˜๋Š” ์ž์—ฐ ํ˜„์ƒ์— ๊ด€์‹ฌ์ด ์žˆ์–ด์•ผ ํ•œ๋‹ค.\n",
129
+ "๋†๋ฆผยท์ถ•์‚ฐยท์ˆ˜์‚ฐ์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?\n",
130
+ "๋‹ต๋ณ€: ๋†๋ฆผยท์ถ•์‚ฐยท์ˆ˜์‚ฐ ์ „๊ณต์—์„œ๋Š” ๋†ยท์ถ•ยท์ˆ˜์‚ฐ๋ฌผ์„ ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌํ•˜๊ณ  ๊ฐœ๋ฐœ, ์ƒ์‚ฐํ•˜๊ธฐ ์œ„ ํ•œ ์—ฐ๊ตฌ๋ฅผ ์ˆ˜ํ–‰ํ•˜๋ฉฐ, ๋†ยท์ถ•ยท์ˆ˜์‚ฐ ์‹ํ’ˆ์˜ ์ƒ์‚ฐ, ๊ฐ€๊ณต์ฒ˜๋ฆฌ, ์œ ํ†ต ๋“ฑ์— ๋Œ€ํ•œ ์ง€์‹์„ ์Šต๋“ํ•˜ ์—ฌ ๊ด€๋ จ๋œ ๋ฌธ์ œ๋“ค์„ ํƒ์ƒ‰ํ•˜๊ณ  ํ•ด๊ฒฐ๋ฐฉ๋ฒ•์„ ๋ชจ์ƒ‰ํ•œ๋‹ค. ๋†๋ฆผยท์ถ•์‚ฐยท์ˆ˜์‚ฐ ์ „๊ณต์€ ์ƒํ™”ํ•™์  ๊ธฐ์ดˆ์™€ ์ƒ๋ช…๊ณผํ•™ ๋ฐ ํ™”ํ•™ ์ง€์‹์ด ํ•„์š”ํ•˜๊ณ , ๋†์–ด์ดŒ ํ™˜๊ฒฝ๊ณผ ๋™ยท์‹๋ฌผ์— ๋Œ€ํ•œ ๊ด€์‹ฌ์ด ์žˆ์–ด ์•ผ ํ•œ๋‹ค.\n",
131
+ "์‹ํ’ˆ์˜์–‘์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?\n",
132
+ "๋‹ต๋ณ€: ์‹ํ’ˆ์˜์–‘ ์ „๊ณต์—์„œ๋Š” ๊ฐœ์ธ, ๊ฐ€์ •, ์ง‘๋‹จ์˜ ์Œ์‹ ์„ญ์ทจ์™€ ์‹์ƒํ™œ ๋ฌธ์ œ๋ฅผ ๋ถ„์„ํ•˜๊ณ , ๊ฑด๊ฐ• ํ•œ ์‚ถ์˜ ์œ ์ง€๋ฅผ ๋ชฉ์ ์œผ๋กœ ํ•˜๋Š” ์‹์ƒํ™œ์˜ ์งˆ์  ํ–ฅ์ƒ์„ ์œ„ํ•ด ๊ฑด๊ฐ• ๋ฐ ์˜์–‘์„ ๊ด€๋ฆฌยท์ฆ์ง„ํ•˜ ๋Š” ๋ฐฉ์•ˆ์— ๋Œ€ํ•˜์—ฌ ์—ฐ๊ตฌํ•œ๋‹ค. ์‹ํ’ˆ์˜์–‘ ์ „๊ณต์€ ์‹ํ’ˆ, ์˜์–‘์— ๋Œ€ํ•œ ์ค‘์š”์„ฑ์„ ์ดํ•ดํ•˜๊ณ  ์ œ ํ’ˆ ๊ฐœ๋ฐœ์ด๋‚˜ ์ฒจ๋‹จ๊ธฐ์ˆ  ์ ์šฉ์„ ์œ„ํ•œ ์ฐฝ์˜๋ ฅ, ์‘์šฉ๋ ฅ์ด ํ•„์š”ํ•˜๋ฉฐ, ๋‹ค์–‘ํ•œ ์‹ํ’ˆ์˜ ์„ฑ๋ถ„๊ณผ ์˜์–‘์†Œ์— ๋Œ€ํ•ด ํฅ๋ฏธ๊ฐ€ ์žˆ์–ด์•ผ ํ•œ๋‹ค.\n",
133
+ "๊ธฐ๊ณ„์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?\n",
134
+ "๋‹ต๋ณ€: ๊ธฐ๊ณ„ ์ „๊ณต์—์„œ๋Š” ๋‹ค์–‘ํ•œ ์‚ฐ์—…๋ถ„์•ผ์˜ ํ† ๋Œ€๊ฐ€ ๋˜๋Š” ๊ฐ์ข… ๊ธฐ๊ณ„์™€ ์žฅ๋น„์˜ ์„ค๊ณ„, ์ œ์ž‘, ์ด ์šฉ, ๊ด€๋ฆฌ ๋“ฑ์— ๋Œ€ํ•œ ์ด๋ก ๊ณผ ์‘์šฉ์— ๋Œ€ํ•ด ์—ฐ๊ตฌํ•œ๋‹ค. ๊ธฐ๊ณ„ ์ „๊ณต์ž์—๊ฒŒ๋Š” ์ˆ˜ํ•™, ๋ฌผ๋ฆฌ ๋“ฑ ๊ธฐ์ดˆ ๊ณผํ•™ ์ง€์‹์ด ํ•„์š”ํ•˜๊ณ , ๊ธฐ๊ณ„ ์ž‘๋™ ์›๋ฆฌ๋ฅผ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•œ ๋…ผ๋ฆฌ๋ ฅ๊ณผ ์ง€์‹ ๋ฐ ์ด๋ก ์„ ์‘์šฉ ํ•  ์ˆ˜ ์žˆ๋Š” ๋Šฅ๋ ฅ์ด ํ•„์š”ํ•˜๋ฉฐ ๊ธฐ๊ณ„, ์ž๋™์ฐจ, ์ „๊ธฐ, ์ „์ž ๋“ฑ์— ๋Œ€ํ•œ ํฅ๋ฏธ๊ฐ€ ์žˆ์–ด์•ผ ํ•œ๋‹ค.\n",
135
+ "์ „๊ธฐยท์ „์ž์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?\n",
136
+ "๋‹ต๋ณ€: ์ „๊ธฐยท์ „์ž ์ „๊ณต์—์„œ๋Š” ์ „๊ธฐ ๋ฐ ์ž๊ธฐ์˜ ํ๋ฆ„๊ณผ ๊ณ ์ฒด, ๊ธฐ์ฒด, ์ง„๊ณต ๋‚ด์—์„œ์˜ ์ „์ž ์šด๋™ ์„ ํƒ๊ตฌํ•˜๊ณ  ์ด๊ฒƒ์„ ์‹ค์ƒํ™œ์— ์‘์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์—ฐ๊ตฌํ•˜๋Š” ํ•™๋ฌธ์ด๋‹ค. ์ „๊ธฐยท์ „์ž ์ „๊ณต์ž์— ๊ฒŒ๋Š” ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์„ ์ „๊ธฐยท์ „์ž์ œํ’ˆ์œผ๋กœ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ์ฐฝ์˜๋ ฅ, ๋ถ„์„์  ์‚ฌ๊ณ ๊ฐ€ ํ•„์š”ํ•˜ ๊ณ , ์ „๊ธฐ์ „์ž ์‹œ์Šคํ…œ ์ดํ•ด๋ฅผ ์œ„ํ•œ ๋…ผ๋ฆฌ์  ์‚ฌ๊ณ ๊ฐ€ ํ•„์š”ํ•˜๋ฉฐ, ์ˆ˜ํ•™, ๋ฌผ๋ฆฌํ•™์— ๋Œ€ํ•œ ํฅ๋ฏธ๊ฐ€ ์žˆ์–ด์•ผ ํ•œ๋‹ค.\n",
137
+ "์ปดํ“จํ„ฐยท์†Œํ”„ํŠธ์›จ์–ด์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?\n",
138
+ "๋‹ต๋ณ€: ์ปดํ“จํ„ฐยท์†Œํ”„ํŠธ์›จ์–ด ์ „๊ณต์—์„œ๋Š” ์ปดํ“จํ„ฐ์˜ ํ•˜๋“œ์›จ์–ด์™€ ์†Œํ”„ํŠธ์›จ์–ด, ๋ฉ€ํ‹ฐ๋ฏธ๋””์–ด ๋“ฑ ์ปดํ“จํ„ฐ์™€ ๊ด€๋ จ๋œ ๊ธฐ์ˆ ๊ณผ ์ง€์‹์„ ์Šต๋“ํ•˜๊ณ  ์ด๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ๋‹ค์–‘ํ•œ ๋ถ„์•ผ์— ์ ์šฉํ•˜๋Š” ํ•™๋ฌธ ์ด๋‹ค. ์ปดํ“จํ„ฐยท์†Œํ”„ํŠธ์›จ์–ด ์ „๊ณต์ž์—๊ฒŒ๋Š” ์ƒˆ๋กœ์šด ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ์— ํ•„์š”ํ•œ ์ปดํ“จํ„ฐ ํ”„๋กœ ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์— ๋Œ€ํ•œ ์ง€์‹๊ณผ ๋…ผ๋ฆฌ์  ์‚ฌ๊ณ ๋Šฅ๋ ฅ ๋ฐ ์ฐฝ์˜๋ ฅ์ด ํ•„์š”ํ•˜๊ณ , ์ˆ˜ํ•™์— ๋Œ€ํ•œ ํฅ๋ฏธ์™€ ๊ด€์‹ฌ์ด ์žˆ์–ด์•ผ ํ•œ๋‹ค.\n",
139
+ "์ •๋ณดยทํ†ต์‹ ยท๋ณด์•ˆ์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?\n",
140
+ "๋‹ต๋ณ€: ์ •๋ณดยทํ†ต์‹ ยท๋ณด์•ˆ ์ „๊ณต์—์„œ๋Š” ์ปดํ“จํ„ฐ๊ณตํ•™๊ธฐ๋ฐ˜ ์ง€์‹์„ ๋ฐ”ํƒ•์œผ๋กœ ICT(์ •๋ณดํ†ต์‹ ๊ธฐ์ˆ ) ๋ฐ ๋‹ค์–‘ํ•œ ์œตํ•ฉ์‚ฐ์—…๋ถ„์•ผ์˜ ์ •๋ณดยทํ†ต์‹ ยท๋ณด์•ˆ์— ๊ด€ํ•œ ์ด๋ก ์„ ์Šต๋“ํ•˜๊ณ  ์ด๋ฅผ ์ ์šฉํ•˜๋Š” ํ•™๋ฌธ์ด ๋‹ค. ์ •๋ณดยทํ†ต์‹ ยท๋ณด์•ˆ ์ „๊ณต์ž์—๊ฒŒ๋Š” ์ˆ˜ํ•™, ํ†ต๊ณ„, ๋ฌผ๋ฆฌ ๋“ฑ์— ๋Œ€ํ•œ ๊ธฐ๋ณธ ์ง€์‹๊ณผ ์ „๊ธฐ, ์ „์ž, ์ปด ํ“จํ„ฐ์— ๋Œ€ํ•œ ๊ธฐ์ดˆ์ง€์‹, ๋…ผ๋ฆฌ์  ์‚ฌ๊ณ ๋ ฅ, ์ฐฝ์˜์ ์ด๋ฉฐ ์œ ์—ฐํ•œ ์‚ฌ๊ณ , ์ •ํ™•ํ•œ ํŒ๋‹จ๋ ฅ์ด ํ•„์š” ํ•˜๊ณ , ๋‹ค์–‘ํ•œ ์‚ฐ์—…์˜ ์ •๋ณดยทํ†ต์‹  ๋ถ„์•ผ์— ๊ด€์‹ฌ์ด ์žˆ์–ด์•ผ ํ•œ๋‹ค.\n",
141
+ "์‚ฐ์—…๊ณตํ•™์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?\n",
142
+ "๋‹ต๋ณ€: ์‚ฐ์—…๊ณตํ•™ ์ „๊ณต์—์„œ๋Š” ์ œํ’ˆ ์ƒ์‚ฐ๊ณผ ์ „๋‹ฌ์˜ ์ „ ๊ณผ์ •์— ํ•„์š”ํ•œ ๊ธฐ๊ณ„, ๊ธฐ์ˆ , ์ธ์ ์ž์› ๋“ฑ ์— ๊ด€ํ•œ ์ตœ์ ์˜ ์‹œ์Šคํ…œ์„ ์—ฐ๊ตฌํ•œ๋‹ค. ์‚ฐ์—…๊ณตํ•™ ์ „๊ณต์ž์—๊ฒŒ๋Š” ๋ฐ์ดํ„ฐ์— ๊ธฐ๋ฐ˜ํ•˜์—ฌ ์‹œ์Šคํ…œ ์˜ ํšจ์œจ์„ฑ์„ ๋†’์ผ ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œํ•ด๊ฒฐ๋Šฅ๋ ฅ๊ณผ ์‚ฌ๊ณ ๋ ฅ์ด ํ•„์š”ํ•˜๊ณ , ๊ณตํ•™๋ฟ ์•„๋‹ˆ๋ผ ๊ฒฝ์˜ํ•™ ๋“ฑ ์˜ ์‚ฌํšŒ๊ณผํ•™์— ๊ด€์‹ฌ์ด ์žˆ์–ด์•ผ ํ•œ๋‹ค.\n",
143
+ "๊ฑด์ถ•ยทํ† ๋ชฉ์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?\n",
144
+ "๋‹ต๋ณ€: ๊ฑด์ถ•ยทํ† ๋ชฉ ์ „๊ณต์—์„œ๋Š” ๊ฑด์ถ•๋ฌผ ๋ฐ ๋„๋กœ, ํ•ญ๊ตฌ, ๋Œ ๋“ฑ์˜ ์‚ฌํšŒ๊ธฐ๋ฐ˜์‹œ์„ค์„ ์„ค๊ณ„ํ•˜๊ณ  ๊ฑด์ถ• ํ•˜๊ธฐ ์œ„ํ•œ ์ด๋ก ์„ ์—ฐ๊ตฌํ•œ๋‹ค. ๊ฑด์ถ•ยทํ† ๋ชฉ ์ „๊ณต์ž์—๊ฒŒ๋Š” ์ˆ˜ํ•™, ๊ณผํ•™ ๋“ฑ ๊ธฐ์ดˆ๋ถ„์•ผ๋ฅผ ๋น„๋กฏํ•˜ ์—ฌ ์ปดํ“จํ„ฐ ํ™œ์šฉ ๋Šฅ๋ ฅ, ๊ณต๊ฐ„ ์ง€๊ฐ๋ ฅ ๋ฐ ๊ณต๊ฐ„ ์ดํ•ด๋ ฅ์ด ํ•„์š”ํ•˜๊ณ , ์•„๋ฆ„๋‹ค์šด ๊ฑด์ถ• ์„ค๊ณ„๋ฅผ ์œ„ ํ•œ ๋ฌธํ™”์ ยท๋ฏธ์  ๊ฐ๊ฐ์ด ์žˆ์–ด์•ผ ํ•œ๋‹ค.\n",
145
+ "ํ™˜๊ฒฝยท์—๋„ˆ์ง€์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?\n",
146
+ "๋‹ต๋ณ€: ํ™˜๊ฒฝยท์—๋„ˆ์ง€ ์ „๊ณต์—์„œ๋Š” ์ž์—ฐ์„ ๊ตฌ์„ฑํ•˜๋Š” ๋ฌผ, ๋Œ€๊ธฐ, ํ† ์–‘๊ณผ ์ƒํƒœ๊ณ„์—์„œ ์ผ์–ด๋‚˜๋Š” ํ™˜ ๊ฒฝ ๋ณ€ํ™”, ์—๋„ˆ์ง€์˜ ์ƒ์‚ฐ ๊ณผ์ • ๋ฐ ๋ณ€ํ™˜ ๊ณผ์ • ๋“ฑ์„ ํƒ๊ตฌํ•˜์—ฌ ์ธ๊ฐ„์˜ ์‚ถ์˜ ์งˆ ํ–ฅ์ƒ์„ ๋ชฉ์ ์œผ ๋กœ ํ•˜๋Š” ํ•™๋ฌธ์ด๋‹ค. ํ™˜๊ฒฝยท์—๋„ˆ์ง€ ์ „๊ณต์ž์—๊ฒŒ๋Š” ์‹คํ—˜ ์—ฐ๊ตฌ๋ฅผ ์œ„ํ•œ ๋ถ„์„์  ์‚ฌ๊ณ ์™€ ์ง‘์ค‘๋ ฅ, ํ™”ํ•™, ๋ฌผ๋ฆฌ, ์ˆ˜ํ•™ ๋“ฑ ๊ธฐ์ดˆ๊ณผํ•™ ๋ถ„์•ผ์— ๋Œ€ํ•œ ์ดํ•ด ๋Šฅ๋ ฅ์ด ํ•„์š”ํ•˜๊ณ , ํ™˜๊ฒฝ๋ฌธ์ œ ๋ฐ ์ž์—ฐ์— ๋Œ€ ํ•œ ๋„“์€ ์ดํ•ด์™€ ๊ด€์‹ฌ์ด ์žˆ์–ด์•ผ ํ•œ๋‹ค.\n",
147
+ "์ƒ๋ช…๊ณผํ•™ยท์ƒ๋ช…๊ณตํ•™์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?\n",
148
+ "๋‹ต๋ณ€: ์ƒ๋ช…๊ณผํ•™ยท์ƒ๋ช…๊ณตํ•™ ์ „๊ณต์—์„œ๋Š” ์ƒ๋ช…์ฒด์— ๋Œ€ํ•œ ์ง€์‹๊ณผ ์ดํ•ด๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ๋‹ค์–‘ํ•œ ์ƒ ๋ช… ํ˜„์ƒ์˜ ๊ณผ์ •์„ ํƒ๊ตฌํ•˜๋ฉฐ, ์˜๋ฃŒ, ํ™˜๊ฒฝ ๋“ฑ์˜ ์—ฐ๊ตฌ์™€ ์‚ฐ์—…์— ๊ธฐ์ดˆ๊ฐ€ ๋˜๋Š” ํ•™๋ฌธ์ด๋‹ค. ์ƒ๋ช… ๊ณผํ•™ยท์ƒ๋ช…๊ณตํ•™ ์ „๊ณต์ž์—๊ฒŒ๋Š” ์ž์—ฐ๊ณผํ•™ ๋ถ„์•ผ์— ๋Œ€ํ•œ ๊นŠ์ด ์žˆ๋Š” ์ดํ•ด์™€ ์ง€์‹ ๊ทธ๋ฆฌ๊ณ  ๊ด€์ฐฐ ๋ ฅ, ๋…ผ๋ฆฌ์  ์‚ฌ๊ณ , ๋ถ„์„๋ ฅ, ํ†ต์ฐฐ๋ ฅ์ด ํ•„์š”ํ•˜๊ณ , ๋‹ค์–‘ํ•œ ์ƒ๋ช… ํ˜„์ƒ๊ณผ ์ƒ๋ช…์ฒด์— ๊ด€์‹ฌ์ด ์žˆ์–ด ์•ผ ํ•œ๋‹ค.\n",
149
+ "ํ™”ํ•™ยทํ™”ํ•™๊ณตํ•™์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?\n",
150
+ "๋‹ต๋ณ€: ํ™”ํ•™ยทํ™”ํ•™๊ณตํ•™ ์ „๊ณต์—์„œ๋Š” ํ™”ํ•™ ๋ฐ˜์‘์˜ ์›๋ฆฌ๋ฅผ ์‹ค์ƒํ™œ์— ์‘์šฉํ•˜๋Š” ๊ธฐ์ˆ ๊ณผ ๋ฐฉ๋ฒ•์„ ์—ฐ๊ตฌํ•˜๋Š” ํ•™๋ฌธ์œผ๋กœ, ๊ณ ๋ถ„์ž, ์‹ ์—๋„ˆ์ง€, ํ™˜๊ฒฝ๊ธฐ์ˆ  ๋“ฑ ํ™”ํ•™ ๊ณต์ •์ด ํ•„์š”ํ•œ ์‚ฐ์—…์— ํ™œ์šฉ๋˜ ๋Š” ํ•™๋ฌธ์ด๋‹ค. ํ™”ํ•™ยทํ™”ํ•™๊ณตํ•™ ์ „๊ณต์ž์—๊ฒŒ๋Š” ์ˆ˜ํ•™, ๋ฌผ๋ฆฌ ๋“ฑ ๊ธฐ์ดˆ๊ณผํ•™๋ถ„์•ผ์— ๋Œ€ํ•œ ์ง€์‹๊ณผ ๋ถ„์„์ ์ธ ์‚ฌ๊ณ  ๋Šฅ๋ ฅ์ด ํ•„์š”ํ•˜๊ณ , ๊ผผ๊ผผํ•˜๊ณ  ์ฃผ์˜ ๊นŠ์€ ์„ฑ๊ฒฉ๊ณผ ๋ฌผ์งˆ ๋ณ€ํ™”์— ๋Œ€ํ•œ ๊ด€์‹ฌ์ด ์žˆ์–ด์•ผ ํ•œ๋‹ค.\n",
151
+ "์žฌ๋ฃŒยท์‹ ์†Œ์žฌ์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?\n",
152
+ "๋‹ต๋ณ€: ์žฌ๋ฃŒยท์‹ ์†Œ์žฌ ์ „๊ณต์—์„œ๋Š” ๋‹ค์–‘ํ•œ ์žฌ๋ฃŒ์˜ ๊ตฌ์กฐ์™€ ํŠน์ง•์„ ์ดํ•ดํ•˜๊ณ  ์‚ฐ์—…์— ํ•„์š”ํ•œ ์‹  ์†Œ์žฌ, ์ƒ์ฒด์žฌ๋ฃŒ, ๊ธฐ๋Šฅ์žฌ๋ฃŒ ๋“ฑ์˜ ์ฒจ๋‹จ ์žฌ๋ฃŒ์— ๋Œ€ํ•ด ์—ฐ๊ตฌํ•˜๊ณ  ๊ฐœ๋ฐœํ•˜๋Š” ํ•™๋ฌธ์ด๋‹ค. ์žฌ๋ฃŒยท์‹  ์†Œ์žฌ ์ „๊ณต์ž์—๊ฒŒ๋Š” ๋‹ค์–‘ํ•œ ์†Œ์žฌ์— ๋Œ€ํ•œ ์ดํ•ด์™€ ์ด๋ฅผ ์‹ค์ƒํ™œ์— ์ ์šฉ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋Š” ์‘์šฉ๋ ฅ, ์‹คํ—˜ยท์‹ค์Šต์„ ์œ„ํ•œ ๋ถ„์„์  ์‚ฌ๊ณ ๋ ฅ์ด ํ•„์š”ํ•˜๊ณ , ์ˆ˜ํ•™, ํ™”ํ•™, ๋ฌผ๋ฆฌ ๋“ฑ ๊ธฐ์ดˆ๊ณผํ•™์— ๊ด€์‹ฌ์ด ์žˆ ์–ด์•ผ ํ•œ๋‹ค.\n",
153
+ "์˜ํ•™์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?\n",
154
+ "๋‹ต๋ณ€: ์˜ํ•™ ์ „๊ณต์€ ์ธ์ฒด์—์„œ ๋ฐœ์ƒํ•˜๋Š” ์งˆ๋ณ‘์˜ ์˜ˆ๋ฐฉยท์ง„๋‹จยท์น˜๋ฃŒ์™€ ๊ด€๋ จ๋œ ์ง€์‹์„ ์Šต๋“ํ•˜๊ณ , ์ด๋ฅผ ํ™œ์šฉํ•˜์—ฌ ํ™˜์ž๋ฅผ ์ง„๋ฃŒํ•˜๋ฉฐ, ์˜ํ•™ ์ด๋ก ์„ ํƒ๊ตฌํ•จ์œผ๋กœ์จ ์งˆ๋ณ‘ ์˜ˆ๋ฐฉ ๋ฐ ์น˜๋ฃŒ ๋ฐฉ์•ˆ์— ๋Œ€ํ•œ ์—ฐ๊ตฌ๋ฅผ ์ˆ˜ํ–‰ํ•œ๋‹ค. ์˜ํ•™ ์ „๊ณต์ž๋Š” ํ™”ํ•™ ๋ฐ ์ƒ๋ช…๊ณผํ•™์˜ ๊ธฐ์ดˆ ์ง€์‹๊ณผ ๊ณผํ•™์  ์‚ฌ๊ณ ๋ฐฉ ์‹, ์˜ํ•™์  ์ง„๋‹จ๊ณผ ์ฒ˜์น˜๋ฅผ ์œ„ํ•œ ์ถ”๋ก ๋ ฅ์ด ํ•„์š”ํ•˜๊ณ , ํ™˜์ž์˜ ๊ณ ํ†ต์„ ์ดํ•ดํ•˜๋ฉฐ ์ƒ๋ช…์„ ๊ตฌ ํ•˜๋Š” ์ผ์— ๋ณด๋žŒ์„ ๋А๋ผ๊ณ , ์ธ์ฒด์˜ ๊ตฌ์กฐ์™€ ๊ธฐ๋Šฅ์— ๊ด€์‹ฌ์ด ์žˆ์–ด์•ผ ํ•œ๋‹ค.\n",
155
+ "์•ฝํ•™์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?\n",
156
+ "๋‹ต๋ณ€: ์•ฝํ•™ ์ „๊ณต์€ ์งˆ๋ณ‘์˜ ์˜ˆ๋ฐฉ ๋ฐ ์น˜๋ฃŒ์— ์‚ฌ์šฉ๋˜๋Š” ์˜์•ฝํ’ˆ์— ๊ด€ํ•œ ๊ธฐ์ดˆ ์ด๋ก ๊ณผ ์˜์•ฝํ’ˆ์˜ ๊ฐœ๋ฐœ, ์ƒ์‚ฐ, ์กฐ์ œ์™€ ๊ด€๋ จ๋œ ์ง€์‹์„ ์Šต๋“ํ•˜๊ณ  ์ด์— ๋Œ€ํ•ด ์—ฐ๊ตฌํ•œ๋‹ค. ์•ฝํ•™ ์ „๊ณต์ž๋Š” ์‹คํ—˜ ๋ฐ ์‹ค์Šต์—์„œ์˜ ์นจ์ฐฉํ•จ, ๊นŠ์€ ์ฃผ์˜๋ ฅ ๊ทธ๋ฆฌ๊ณ  ๋ถ„์„์ ์ธ ์‚ฌ๊ณ ๋ ฅ์ด ํ•„์š”ํ•˜๊ณ , ํ™”ํ•™, ์ƒ๋ช…๊ณผํ•™์— ๊ด€์‹ฌ์ด ์žˆ์–ด์•ผ ํ•œ๋‹ค.\n",
157
+ "๊ฐ„ํ˜ธ์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?\n",
158
+ "๋‹ต๋ณ€: ๊ฐ„ํ˜ธ ์ „๊ณต์€ ์ธ๊ฐ„์ด ๊ฑด๊ฐ•์„ ์œ ์ง€ ๋ฐ ์ฆ์ง„ํ•˜๊ณ  ์งˆ๋ณ‘์œผ๋กœ๋ถ€ํ„ฐ ํšŒ๋ณตํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ์ด๋ก ๊ณผ ์‹ค๋ฌด ๊ทธ๋ฆฌ๊ณ  ๊ฐ„ํ˜ธ ๋Œ€์ƒ์ž์˜ ๊ฐ„ํ˜ธ ๋ฌธ์ œ๋ฅผ ์ง„๋‹จ, ์ค‘์žฌ, ํ‰๊ฐ€ํ•  ์ˆ˜ ์žˆ๋Š” ๋Šฅ๋ ฅ์„ ๊ฐœ๋ฐœ ํ•˜๊ณ  ์ ์šฉํ•œ๋‹ค. ๊ฐ„ํ˜ธ ์ „๊ณต์ž๋Š” ํ™”ํ•™ ๋ฐ ์ƒ๋ช…๊ณผํ•™์— ๋Œ€ํ•œ ์ดํ•ด์™€ ํ™˜์ž ๏ฟฝ๏ฟฝํ˜ธ๋ฅผ ์œ„ํ•œ ์˜์‚ฌ ์†Œํ†ต ๋Šฅ๋ ฅ์ด ํ•„์š”ํ•˜๊ณ , ์งˆ๋ณ‘๊ณผ ํ™˜์ž์˜ ๊ณ ํ†ต์— ๊ด€์‹ฌ๊ณผ ๋ฐฐ๋ ค๊ฐ€ ์žˆ์–ด์•ผ ํ•œ๋‹ค.\n",
159
+ "๋ณด๊ฑดยท์ž„์ƒ์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?\n",
160
+ "๋‹ต๋ณ€: ๋ณด๊ฑดยท์ž„์ƒ ์ „๊ณต์€ ๊ณต์ค‘๋ณด๊ฑด, ๊ฐœ์ธ ์œ„์ƒ ๋“ฑ ๊ฑด๊ฐ•์„ ํ–ฅ์ƒ์‹œํ‚ค๊ธฐ ์œ„ํ•œ ๋ฐฉ์•ˆ์„ ํƒ์ƒ‰ํ•˜๊ณ , ์‹ ์ฒด์ ยท์ •์‹ ์  ์žฅ์• ๋ฅผ ๊ฐ€์ง„ ์‚ฌ๋žŒ๋“ค์„ ๋ณด์กฐํ•˜๋Š” ์น˜๋ฃŒ ์‹œ์„ค๊ณผ ์ฒจ๋‹จ ์˜๋ฃŒ ์žฅ๋น„๋ฅผ ๋‹ค๋ฃจ๊ณ  ๋งŒ๋“œ๋Š” ๊ธฐ์ˆ ์— ๋Œ€ํ•ด ์—ฐ๊ตฌํ•œ๋‹ค. ๋ณด๊ฑดยท์ž„์ƒ ์ „๊ณต์ž๋Š” ๊ธฐ์ดˆ๊ณผํ•™์— ๋Œ€ํ•œ ์ง€์‹์„ ๋ฐ”ํƒ•์œผ๋กœ ๊ณต์ค‘๋ณด๊ฑด๊ณผ ๊ฐœ์ธ ์œ„์ƒ์— ๋Œ€ํ•œ ์ดํ•ด ๋Šฅ๋ ฅ, ํ™˜์ž ์ƒํƒœ์— ๋”ฐ๋ผ ์ ์ ˆํ•œ ์น˜๋ฃŒ ๋ฐฉ๋ฒ•์„ ์ˆ˜ํ–‰ํ•˜ ๋Š” ์‹คํ–‰ ๋Šฅ๋ ฅ์ด ํ•„์š”ํ•˜๊ณ , ๋ณด๊ฑด์˜๋ฃŒ์ธ์œผ๋กœ์„œ์˜ ์‚ฌ๋ช…๊ฐ์ด ์žˆ์–ด์•ผ ํ•œ๋‹ค.\n",
161
+ "๋ฌด์šฉ์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?\n",
162
+ "๋‹ต๋ณ€: ๋ฌด์šฉ ์ „๊ณต์—์„œ๋Š” ๋ฌด์šฉ ์ด๋ก ๊ณผ ๊ด€๋ จ๋œ ์ „๋ฌธ ์ง€์‹์„ ์Šต๋“ํ•˜๊ณ . ์‹ค๊ธฐ ๊ต์œก์„ ํ†ตํ•ด ๊ท ํ˜• ์žˆ๋Š” ์‹ ์ฒด์˜ ์›€์ง์ž„์„ ์—ฐ๋งˆํ•˜์—ฌ ๋ฌด์šฉ ์ž‘ํ’ˆ์— ๋Œ€ํ•œ ํ•ด์„๋ ฅ๊ณผ ์˜ˆ์ˆ ์  ํ‘œํ˜„๋ ฅ ๋“ฑ์„ ํ•จ์–‘ํ•œ ๋‹ค. ๋”ฐ๋ผ์„œ ์Œ์•…๊ณผ ์ฃผ์ œ์— ๋งž์ถฐ ๋ชธ์œผ๋กœ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ๋Šฅ๋ ฅ์ด ํ•„์š”ํ•˜๊ณ , ๊ฐ•ํ•œ ์ฒด๋ ฅ๊ณผ ์œ  ์—ฐํ•œ ์‹ ์ฒด์กฐ๊ฑด์„ ๊ฐ–์ถ”๊ธฐ ์œ„ํ•œ ๋ˆ๊ธฐ์™€ ์ธ๋‚ด์‹ฌ์ด ์žˆ์–ด์•ผ ํ•œ๋‹ค.\n",
163
+ "์ฒด์œก์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?\n",
164
+ "๋‹ต๋ณ€: ์ฒด์œก ์ „๊ณต์—์„œ๋Š” ์‹ ์ฒดํ™œ๋™์„ ๋ฐ”ํƒ•์œผ๋กœ ํ•˜๋Š” ์šด๋™, ๊ฑด๊ฐ•, ์Šคํฌ์ธ  ๊ณผํ•™, ์—ฌ๊ฐ€์— ๋Œ€ํ•œ ์ด๋ก ์„ ๋ฐฐ์šฐ๊ณ  ์ด์™€ ๊ด€๋ จํ•œ ํŠน์ • ์‹ค๊ธฐ ์‹ค์Šต์„ ์ˆ˜ํ–‰ํ•˜์—ฌ ์‹ ์ฒด์  ๋Šฅ๋ ฅ์„ ๊ณ„๋ฐœํ•œ๋‹ค. ์ฒด์œก์„ ์ „๊ณตํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๊ฐ•์ธํ•œ ์ฒด๋ ฅ ๋ฐ ์ •์‹ ๋ ฅ ๊ทธ๋ฆฌ๊ณ  ๊ฒฝ๊ธฐ๋ฅผ ์ •๋‹นํ•˜๊ฒŒ ์น˜๋ฅด๊ธฐ ์œ„ํ•œ ์Šคํฌ์ธ  ๋งจ์‹ญ์ด ํ•„์š”ํ•˜๊ณ , ์šด๋™ํ•˜๊ธฐ๋ฅผ ์ข‹์•„ํ•˜๋Š” ๋งˆ์Œ๊ณผ ์Šคํฌ์ธ ์— ๊ด€์‹ฌ์ด ์žˆ์–ด์•ผ ํ•œ๋‹ค.\n",
165
+ "์—ฐ์˜ˆยท์˜ํ™”ยท์—ฐ๊ทน์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?\n",
166
+ "๋‹ต๋ณ€: ์—ฐ์˜ˆยท์˜ํ™”ยท์—ฐ๊ทน ์ „๊ณต์€ ๋‹ค์–‘ํ•œ ๋งค์ฒด๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์ƒˆ๋กœ์šด ์˜์ƒ ์–ธ์–ด๋ฅผ ์ฐฝ์ถœํ•˜๊ณ  ์˜ํ™”, ์—ฐ๊ทน ๋“ฑ์˜ ๋ถ„์•ผ์—์„œ ์ธ๊ฐ„์˜ ์ •์„œ๋ฅผ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ๋Š” ํ™œ๋™์„ ์ˆ˜ํ–‰ํ•œ๋‹ค. ๋”ฐ๋ผ์„œ ๋ฐฐ์—ญ์— ๋Œ€ ํ•œ ๋ถ„์„๋ ฅ, ์—ฐ๊ธฐ๋ ฅ, ์˜ˆ์ˆ ์  ์ง€์‹์ด ํ•„์š”ํ•˜๊ณ , ์ƒ๊ฐ์„ ๋งค์ฒด๋ฅผ ํ†ตํ•ด ํ‘œํ˜„ํ•˜๋Š” ๋Šฅ๋ ฅ์ด ํ•„์š” ํ•˜๋ฉฐ ๋ฏธ์ˆ , ์Œ์•…, ๋ฌด์šฉ, ์–ดํ•™, ์—ฐ๊ทน, ์‚ฌํšŒํ•™, ์–ธ๋ก ํ•™ ๋“ฑ ๋‹ค์–‘ํ•œ ๋ถ„์•ผ์— ๊ด€์‹ฌ์ด ์žˆ์–ด์•ผ ํ•œ๋‹ค.\n",
167
+ "์Œ์•…์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?\n",
168
+ "๋‹ต๋ณ€: ์Œ์•… ์ „๊ณต์—์„œ๋Š” ์Œ์•… ์ „๋ฐ˜์— ๊ด€ํ•œ ์ด๋ก  ํ•™์Šต๊ณผ ๋‹ค์–‘ํ•œ ์Œ์•… ๊ด€๋ จ ๊ธฐ๊ต์˜ ํ›ˆ๋ จ์„ ํ†ต ํ•ด ๊ธฐ์กด ์Œ์•…์„ ์—ฐ์ฃผํ•˜๊ฑฐ๋‚˜ ์ƒˆ๋กœ์šด ์Œ์•…์„ ์ฐฝ์ž‘ํ•˜๋ฉฐ, ์ „๋ฌธ์ ์œผ๋กœ ๊ฐ์ƒ ๋ฐ ๋น„ํ‰ํ•˜๋Š” ๋Šฅ๋ ฅ ์„ ๊ณ„๋ฐœํ•œ๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ ์ฒญ์Œ๋Šฅ๋ ฅ, ์ฐฝ์˜๋ ฅ, ์Œ์•…์„ ์†Œ๋ฆฌ๋‚˜ ์•…๊ธฐ๋กœ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ์—ฐ์ฃผ ๋Šฅ ๋ ฅ์ด ํ•„์š”ํ•˜๊ณ , ์Œ๊ฐ๊ณผ ์Œ์•…์  ๊ฐ์ˆ˜์„ฑ์ด ์žˆ์–ด์•ผ ํ•œ๋‹ค.\n",
169
+ "๋ฏธ์ˆ ยท๊ณต์˜ˆยท๋””์ž์ธ์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?\n",
170
+ "๋‹ต๋ณ€: ๋ฏธ์ˆ ยท๊ณต์˜ˆยท๋””์ž์ธ ์ „๊ณต์€ ๋ฏธ์ˆ  ์ „๋ฐ˜์— ๋Œ€ํ•œ ์ง€์‹๊ณผ ์‹ค๊ธฐ ๊ต์œก์„ ํ†ตํ•ด ๋ฏธ์ˆ ์  ์ƒ์ƒ๋ ฅ ๊ณผ ์ฐฝ์˜์„ฑ ๋ฐ ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ํ‘œํ˜„ ๋ฐฉ๋ฒ•์„ ์Šต๋“ํ•˜๊ณ , ๊ธฐ๋Šฅ์ ยท์‹ฌ๋ฏธ์  ์กฐ๊ฑด์„ ๊ณ ๋ คํ•˜์—ฌ ๊ฐ์ข… ์ƒ ํ’ˆ์˜ ๋””์ž์ธ์„ ๊ฐœ๋ฐœํ•˜๊ณ  ์—ฐ๊ตฌํ•œ๋‹ค. ๋”ฐ๋ผ์„œ ๋ฏธ์ˆ  ์ž‘ํ’ˆ์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•œ ๋…์ฐฝ์„ฑ๊ณผ ์ฐฝ์˜์„ฑ, ์ •๊ตํ•œ ๊ธฐ๋ฒ• ํ™œ์šฉ ๋Šฅ๋ ฅ์ด ํ•„์š”ํ•˜๊ณ , ์˜ˆ์ˆ  ๋ถ„์•ผ์—์„œ์˜ ๋ณ€ํ™”์™€ ์œ ํ–‰์— ๋ฏผ๊ฐํ•ด์•ผ ํ•œ๋‹ค.\n",
171
+ "๋””์ง€ํ„ธ์ฝ˜ํ…์ธ ์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?\n",
172
+ "๋‹ต๋ณ€: ๋””์ง€ํ„ธ์ฝ˜ํ…์ธ  ์ „๊ณต์—์„œ๋Š” ๋‰ด๋ฏธ๋””์–ด ๋งค์ฒด์ธ ๋””์ง€ํ„ธ ๊ฒŒ์ž„, ๋””์ง€ํ„ธ ์˜์ƒ, ์• ๋‹ˆ๋ฉ”์ด์…˜, ์ธํ„ฐ๋ž™ํ‹ฐ๋ธŒ ๋””์ž์ธ์ฝ˜ํ…์ธ  ๋“ฑ์˜ ๊ธฐํš๊ณผ ์—ฐ์ถœ์„ ์ˆ˜ํ–‰ํ•˜๊ณ , ๋‹ค์–‘ํ•œ ์‹œ๊ฐ์  ํ‘œํ˜„๊ณผ ๋””์ž์ธ ์„ ํƒ์ƒ‰ ๋ฐ ์ฐฝ์ถœํ•œ๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ ๋””์ง€ํ„ธ์ฝ˜ํ…์ธ  ์ „๊ณต์ž๊ฐ€ ๋˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋””์ง€ํ„ธ ๊ธฐ์ˆ ์— ๋Œ€ ํ•œ ์ง€์‹, ๋””์ง€ํ„ธ์ฝ˜ํ…์ธ  ์ œ์ž‘ ๋Šฅ๋ ฅ, ํŠธ๋ Œ๋“œ๋ฅผ ํŒŒ์•…ํ•˜๋Š” ๋Šฅ๋ ฅ, ์ฐฝ์˜๋ ฅ, ๊ธฐํš๋ ฅ์ด ํ•„์š”ํ•˜๊ณ , ๋‹ค์–‘ํ•œ ๋งค์ฒด์— ๋Œ€ํ•œ ๊ด€์‹ฌ์ด ์žˆ์–ด์•ผ ํ•œ๋‹ค.\n"
173
+ ]
174
+ },
175
+ {
176
+ "name": "stderr",
177
+ "output_type": "stream",
178
+ "text": [
179
+ "\n"
180
+ ]
181
+ }
182
+ ],
183
+ "source": [
184
+ "tokenized_dataset = dataset.map(tokenize)"
185
+ ]
186
+ },
187
+ {
188
+ "cell_type": "code",
189
+ "execution_count": 10,
190
+ "id": "6fda32f9-7048-446f-8fc8-818aaff3c904",
191
+ "metadata": {},
192
+ "outputs": [
193
+ {
194
+ "name": "stderr",
195
+ "output_type": "stream",
196
+ "text": [
197
+ "/opt/anaconda3/envs/report_error_detector/lib/python3.10/site-packages/torch/utils/data/dataloader.py:683: UserWarning: 'pin_memory' argument is set as true but not supported on MPS now, then device pinned memory won't be used.\n",
198
+ " warnings.warn(warn_msg)\n"
199
+ ]
200
+ },
201
+ {
202
+ "data": {
203
+ "text/html": [
204
+ "\n",
205
+ " <div>\n",
206
+ " \n",
207
+ " <progress value='5' max='250' style='width:300px; height:20px; vertical-align: middle;'></progress>\n",
208
+ " [ 5/250 07:56 < 10:48:26, 0.01 it/s, Epoch 0.08/5]\n",
209
+ " </div>\n",
210
+ " <table border=\"1\" class=\"dataframe\">\n",
211
+ " <thead>\n",
212
+ " <tr style=\"text-align: left;\">\n",
213
+ " <th>Step</th>\n",
214
+ " <th>Training Loss</th>\n",
215
+ " </tr>\n",
216
+ " </thead>\n",
217
+ " <tbody>\n",
218
+ " </tbody>\n",
219
+ "</table><p>"
220
+ ],
221
+ "text/plain": [
222
+ "<IPython.core.display.HTML object>"
223
+ ]
224
+ },
225
+ "metadata": {},
226
+ "output_type": "display_data"
227
+ },
228
+ {
229
+ "ename": "KeyboardInterrupt",
230
+ "evalue": "",
231
+ "output_type": "error",
232
+ "traceback": [
233
+ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
234
+ "\u001b[0;31mKeyboardInterrupt\u001b[0m Traceback (most recent call last)",
235
+ "Cell \u001b[0;32mIn[10], line 17\u001b[0m\n\u001b[1;32m 1\u001b[0m training_args \u001b[38;5;241m=\u001b[39m TrainingArguments(\n\u001b[1;32m 2\u001b[0m output_dir\u001b[38;5;241m=\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m./kcmii_definition_ft_mps\u001b[39m\u001b[38;5;124m\"\u001b[39m, \n\u001b[1;32m 3\u001b[0m per_device_train_batch_size\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m1\u001b[39m, \n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 8\u001b[0m use_mps_device\u001b[38;5;241m=\u001b[39m\u001b[38;5;28;01mTrue\u001b[39;00m \n\u001b[1;32m 9\u001b[0m )\n\u001b[1;32m 11\u001b[0m trainer \u001b[38;5;241m=\u001b[39m Trainer(\n\u001b[1;32m 12\u001b[0m model\u001b[38;5;241m=\u001b[39mmodel,\n\u001b[1;32m 13\u001b[0m args\u001b[38;5;241m=\u001b[39mtraining_args,\n\u001b[1;32m 14\u001b[0m train_dataset\u001b[38;5;241m=\u001b[39mtokenized_dataset\n\u001b[1;32m 15\u001b[0m )\n\u001b[0;32m---> 17\u001b[0m \u001b[43mtrainer\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mtrain\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 19\u001b[0m model\u001b[38;5;241m.\u001b[39msave_pretrained(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m./kcmii_definition_ft_mps\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[1;32m 20\u001b[0m tokenizer\u001b[38;5;241m.\u001b[39msave_pretrained(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m./kcmii_definition_ft_mps\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n",
236
+ "File \u001b[0;32m/opt/anaconda3/envs/report_error_detector/lib/python3.10/site-packages/transformers/trainer.py:2245\u001b[0m, in \u001b[0;36mTrainer.train\u001b[0;34m(self, resume_from_checkpoint, trial, ignore_keys_for_eval, **kwargs)\u001b[0m\n\u001b[1;32m 2243\u001b[0m hf_hub_utils\u001b[38;5;241m.\u001b[39menable_progress_bars()\n\u001b[1;32m 2244\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m-> 2245\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43minner_training_loop\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 2246\u001b[0m \u001b[43m \u001b[49m\u001b[43margs\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 2247\u001b[0m \u001b[43m \u001b[49m\u001b[43mresume_from_checkpoint\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mresume_from_checkpoint\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 2248\u001b[0m \u001b[43m \u001b[49m\u001b[43mtrial\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mtrial\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 2249\u001b[0m \u001b[43m \u001b[49m\u001b[43mignore_keys_for_eval\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mignore_keys_for_eval\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 2250\u001b[0m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\n",
237
+ "File \u001b[0;32m/opt/anaconda3/envs/report_error_detector/lib/python3.10/site-packages/transformers/trainer.py:2611\u001b[0m, in \u001b[0;36mTrainer._inner_training_loop\u001b[0;34m(self, batch_size, args, resume_from_checkpoint, trial, ignore_keys_for_eval)\u001b[0m\n\u001b[1;32m 2607\u001b[0m grad_norm \u001b[38;5;241m=\u001b[39m _grad_norm\n\u001b[1;32m 2609\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mcontrol \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mcallback_handler\u001b[38;5;241m.\u001b[39mon_pre_optimizer_step(args, \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mstate, \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mcontrol)\n\u001b[0;32m-> 2611\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43moptimizer\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mstep\u001b[49m\u001b[43m(\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 2613\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mcontrol \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mcallback_handler\u001b[38;5;241m.\u001b[39mon_optimizer_step(args, \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mstate, \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mcontrol)\n\u001b[1;32m 2615\u001b[0m \u001b[38;5;66;03m# get leaning rate before update\u001b[39;00m\n",
238
+ "File \u001b[0;32m/opt/anaconda3/envs/report_error_detector/lib/python3.10/site-packages/accelerate/optimizer.py:178\u001b[0m, in \u001b[0;36mAcceleratedOptimizer.step\u001b[0;34m(self, closure)\u001b[0m\n\u001b[1;32m 176\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_accelerate_step_called \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mFalse\u001b[39;00m\n\u001b[1;32m 177\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m--> 178\u001b[0m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43moptimizer\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mstep\u001b[49m\u001b[43m(\u001b[49m\u001b[43mclosure\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 179\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39maccelerator_state\u001b[38;5;241m.\u001b[39mdistributed_type \u001b[38;5;241m==\u001b[39m DistributedType\u001b[38;5;241m.\u001b[39mXLA:\n\u001b[1;32m 180\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mgradient_state\u001b[38;5;241m.\u001b[39mis_xla_gradients_synced \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mFalse\u001b[39;00m\n",
239
+ "File \u001b[0;32m/opt/anaconda3/envs/report_error_detector/lib/python3.10/site-packages/torch/optim/lr_scheduler.py:124\u001b[0m, in \u001b[0;36mLRScheduler.__init__.<locals>.patch_track_step_called.<locals>.wrap_step.<locals>.wrapper\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 122\u001b[0m opt \u001b[38;5;241m=\u001b[39m opt_ref()\n\u001b[1;32m 123\u001b[0m opt\u001b[38;5;241m.\u001b[39m_opt_called \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mTrue\u001b[39;00m \u001b[38;5;66;03m# type: ignore[union-attr]\u001b[39;00m\n\u001b[0;32m--> 124\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mfunc\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[38;5;21;43m__get__\u001b[39;49m\u001b[43m(\u001b[49m\u001b[43mopt\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mopt\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[38;5;18;43m__class__\u001b[39;49m\u001b[43m)\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n",
240
+ "File \u001b[0;32m/opt/anaconda3/envs/report_error_detector/lib/python3.10/site-packages/torch/optim/optimizer.py:485\u001b[0m, in \u001b[0;36mOptimizer.profile_hook_step.<locals>.wrapper\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 480\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 481\u001b[0m \u001b[38;5;28;01mraise\u001b[39;00m \u001b[38;5;167;01mRuntimeError\u001b[39;00m(\n\u001b[1;32m 482\u001b[0m \u001b[38;5;124mf\u001b[39m\u001b[38;5;124m\"\u001b[39m\u001b[38;5;132;01m{\u001b[39;00mfunc\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m must return None or a tuple of (new_args, new_kwargs), but got \u001b[39m\u001b[38;5;132;01m{\u001b[39;00mresult\u001b[38;5;132;01m}\u001b[39;00m\u001b[38;5;124m.\u001b[39m\u001b[38;5;124m\"\u001b[39m\n\u001b[1;32m 483\u001b[0m )\n\u001b[0;32m--> 485\u001b[0m out \u001b[38;5;241m=\u001b[39m \u001b[43mfunc\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 486\u001b[0m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_optimizer_step_code()\n\u001b[1;32m 488\u001b[0m \u001b[38;5;66;03m# call optimizer step post hooks\u001b[39;00m\n",
241
+ "File \u001b[0;32m/opt/anaconda3/envs/report_error_detector/lib/python3.10/site-packages/torch/optim/optimizer.py:79\u001b[0m, in \u001b[0;36m_use_grad_for_differentiable.<locals>._use_grad\u001b[0;34m(self, *args, **kwargs)\u001b[0m\n\u001b[1;32m 77\u001b[0m torch\u001b[38;5;241m.\u001b[39mset_grad_enabled(\u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mdefaults[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mdifferentiable\u001b[39m\u001b[38;5;124m\"\u001b[39m])\n\u001b[1;32m 78\u001b[0m torch\u001b[38;5;241m.\u001b[39m_dynamo\u001b[38;5;241m.\u001b[39mgraph_break()\n\u001b[0;32m---> 79\u001b[0m ret \u001b[38;5;241m=\u001b[39m \u001b[43mfunc\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 80\u001b[0m \u001b[38;5;28;01mfinally\u001b[39;00m:\n\u001b[1;32m 81\u001b[0m torch\u001b[38;5;241m.\u001b[39m_dynamo\u001b[38;5;241m.\u001b[39mgraph_break()\n",
242
+ "File \u001b[0;32m/opt/anaconda3/envs/report_error_detector/lib/python3.10/site-packages/torch/optim/adam.py:246\u001b[0m, in \u001b[0;36mAdam.step\u001b[0;34m(self, closure)\u001b[0m\n\u001b[1;32m 234\u001b[0m beta1, beta2 \u001b[38;5;241m=\u001b[39m group[\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mbetas\u001b[39m\u001b[38;5;124m\"\u001b[39m]\n\u001b[1;32m 236\u001b[0m has_complex \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_init_group(\n\u001b[1;32m 237\u001b[0m group,\n\u001b[1;32m 238\u001b[0m params_with_grad,\n\u001b[0;32m (...)\u001b[0m\n\u001b[1;32m 243\u001b[0m state_steps,\n\u001b[1;32m 244\u001b[0m )\n\u001b[0;32m--> 246\u001b[0m \u001b[43madam\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 247\u001b[0m \u001b[43m \u001b[49m\u001b[43mparams_with_grad\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 248\u001b[0m \u001b[43m \u001b[49m\u001b[43mgrads\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 249\u001b[0m \u001b[43m \u001b[49m\u001b[43mexp_avgs\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 250\u001b[0m \u001b[43m \u001b[49m\u001b[43mexp_avg_sqs\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 251\u001b[0m \u001b[43m \u001b[49m\u001b[43mmax_exp_avg_sqs\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 252\u001b[0m \u001b[43m \u001b[49m\u001b[43mstate_steps\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 253\u001b[0m \u001b[43m \u001b[49m\u001b[43mamsgrad\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mgroup\u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mamsgrad\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m]\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 254\u001b[0m \u001b[43m \u001b[49m\u001b[43mhas_complex\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mhas_complex\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 255\u001b[0m \u001b[43m \u001b[49m\u001b[43mbeta1\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mbeta1\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 256\u001b[0m \u001b[43m \u001b[49m\u001b[43mbeta2\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mbeta2\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 257\u001b[0m \u001b[43m \u001b[49m\u001b[43mlr\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mgroup\u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mlr\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m]\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 258\u001b[0m \u001b[43m \u001b[49m\u001b[43mweight_decay\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mgroup\u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mweight_decay\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m]\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 259\u001b[0m \u001b[43m \u001b[49m\u001b[43meps\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mgroup\u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43meps\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m]\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 260\u001b[0m \u001b[43m \u001b[49m\u001b[43mmaximize\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mgroup\u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mmaximize\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m]\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 261\u001b[0m \u001b[43m \u001b[49m\u001b[43mforeach\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mgroup\u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mforeach\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m]\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 262\u001b[0m \u001b[43m \u001b[49m\u001b[43mcapturable\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mgroup\u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mcapturable\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m]\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 263\u001b[0m \u001b[43m \u001b[49m\u001b[43mdifferentiable\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mgroup\u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mdifferentiable\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m]\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 264\u001b[0m \u001b[43m \u001b[49m\u001b[43mfused\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mgroup\u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mfused\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m]\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 265\u001b[0m \u001b[43m \u001b[49m\u001b[43mgrad_scale\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43mgetattr\u001b[39;49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mgrad_scale\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mNone\u001b[39;49;00m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 266\u001b[0m \u001b[43m \u001b[49m\u001b[43mfound_inf\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[38;5;28;43mgetattr\u001b[39;49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mfound_inf\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;28;43;01mNone\u001b[39;49;00m\u001b[43m)\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 267\u001b[0m \u001b[43m \u001b[49m\u001b[43mdecoupled_weight_decay\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mgroup\u001b[49m\u001b[43m[\u001b[49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[38;5;124;43mdecoupled_weight_decay\u001b[39;49m\u001b[38;5;124;43m\"\u001b[39;49m\u001b[43m]\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 268\u001b[0m \u001b[43m \u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m 270\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m loss\n",
243
+ "File \u001b[0;32m/opt/anaconda3/envs/report_error_detector/lib/python3.10/site-packages/torch/optim/optimizer.py:147\u001b[0m, in \u001b[0;36m_disable_dynamo_if_unsupported.<locals>.wrapper.<locals>.maybe_fallback\u001b[0;34m(*args, **kwargs)\u001b[0m\n\u001b[1;32m 145\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m disabled_func(\u001b[38;5;241m*\u001b[39margs, \u001b[38;5;241m*\u001b[39m\u001b[38;5;241m*\u001b[39mkwargs)\n\u001b[1;32m 146\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m--> 147\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[43mfunc\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43margs\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[38;5;241;43m*\u001b[39;49m\u001b[43mkwargs\u001b[49m\u001b[43m)\u001b[49m\n",
244
+ "File \u001b[0;32m/opt/anaconda3/envs/report_error_detector/lib/python3.10/site-packages/torch/optim/adam.py:933\u001b[0m, in \u001b[0;36madam\u001b[0;34m(params, grads, exp_avgs, exp_avg_sqs, max_exp_avg_sqs, state_steps, foreach, capturable, differentiable, fused, grad_scale, found_inf, has_complex, decoupled_weight_decay, amsgrad, beta1, beta2, lr, weight_decay, eps, maximize)\u001b[0m\n\u001b[1;32m 930\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[1;32m 931\u001b[0m func \u001b[38;5;241m=\u001b[39m _single_tensor_adam\n\u001b[0;32m--> 933\u001b[0m \u001b[43mfunc\u001b[49m\u001b[43m(\u001b[49m\n\u001b[1;32m 934\u001b[0m \u001b[43m \u001b[49m\u001b[43mparams\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 935\u001b[0m \u001b[43m \u001b[49m\u001b[43mgrads\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 936\u001b[0m \u001b[43m \u001b[49m\u001b[43mexp_avgs\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 937\u001b[0m \u001b[43m \u001b[49m\u001b[43mexp_avg_sqs\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 938\u001b[0m \u001b[43m \u001b[49m\u001b[43mmax_exp_avg_sqs\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 939\u001b[0m \u001b[43m \u001b[49m\u001b[43mstate_steps\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 940\u001b[0m \u001b[43m \u001b[49m\u001b[43mamsgrad\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mamsgrad\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 941\u001b[0m \u001b[43m \u001b[49m\u001b[43mhas_complex\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mhas_complex\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 942\u001b[0m \u001b[43m \u001b[49m\u001b[43mbeta1\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mbeta1\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 943\u001b[0m \u001b[43m \u001b[49m\u001b[43mbeta2\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mbeta2\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 944\u001b[0m \u001b[43m \u001b[49m\u001b[43mlr\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mlr\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 945\u001b[0m \u001b[43m \u001b[49m\u001b[43mweight_decay\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mweight_decay\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 946\u001b[0m \u001b[43m \u001b[49m\u001b[43meps\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43meps\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 947\u001b[0m \u001b[43m \u001b[49m\u001b[43mmaximize\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mmaximize\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 948\u001b[0m \u001b[43m \u001b[49m\u001b[43mcapturable\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mcapturable\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 949\u001b[0m \u001b[43m \u001b[49m\u001b[43mdifferentiable\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mdifferentiable\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 950\u001b[0m \u001b[43m \u001b[49m\u001b[43mgrad_scale\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mgrad_scale\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 951\u001b[0m \u001b[43m \u001b[49m\u001b[43mfound_inf\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mfound_inf\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 952\u001b[0m \u001b[43m \u001b[49m\u001b[43mdecoupled_weight_decay\u001b[49m\u001b[38;5;241;43m=\u001b[39;49m\u001b[43mdecoupled_weight_decay\u001b[49m\u001b[43m,\u001b[49m\n\u001b[1;32m 953\u001b[0m \u001b[43m\u001b[49m\u001b[43m)\u001b[49m\n",
245
+ "File \u001b[0;32m/opt/anaconda3/envs/report_error_detector/lib/python3.10/site-packages/torch/optim/adam.py:456\u001b[0m, in \u001b[0;36m_single_tensor_adam\u001b[0;34m(params, grads, exp_avgs, exp_avg_sqs, max_exp_avg_sqs, state_steps, grad_scale, found_inf, amsgrad, has_complex, beta1, beta2, lr, weight_decay, eps, maximize, capturable, differentiable, decoupled_weight_decay)\u001b[0m\n\u001b[1;32m 454\u001b[0m exp_avg_sq\u001b[38;5;241m.\u001b[39mmul_(beta2)\u001b[38;5;241m.\u001b[39maddcmul_(grad, grad, value\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m1\u001b[39m \u001b[38;5;241m-\u001b[39m beta2)\n\u001b[1;32m 455\u001b[0m \u001b[38;5;28;01melse\u001b[39;00m:\n\u001b[0;32m--> 456\u001b[0m \u001b[43mexp_avg_sq\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mmul_\u001b[49m\u001b[43m(\u001b[49m\u001b[43mbeta2\u001b[49m\u001b[43m)\u001b[49m\u001b[38;5;241m.\u001b[39maddcmul_(grad, grad, value\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m1\u001b[39m \u001b[38;5;241m-\u001b[39m beta2)\n\u001b[1;32m 458\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m capturable \u001b[38;5;129;01mor\u001b[39;00m differentiable:\n\u001b[1;32m 459\u001b[0m step \u001b[38;5;241m=\u001b[39m step_t\n",
246
+ "\u001b[0;31mKeyboardInterrupt\u001b[0m: "
247
+ ]
248
+ }
249
+ ],
250
+ "source": [
251
+ "training_args = TrainingArguments(\n",
252
+ " output_dir=\"./kcmii_definition_ft_mps\", \n",
253
+ " per_device_train_batch_size=1, \n",
254
+ " num_train_epochs=5,\n",
255
+ " logging_steps=10,\n",
256
+ " save_strategy=\"epoch\",\n",
257
+ " optim=\"adamw_torch\",\n",
258
+ " use_mps_device=True \n",
259
+ ")\n",
260
+ "\n",
261
+ "trainer = Trainer(\n",
262
+ " model=model,\n",
263
+ " args=training_args,\n",
264
+ " train_dataset=tokenized_dataset\n",
265
+ ")\n",
266
+ "\n",
267
+ "trainer.train()\n",
268
+ "\n",
269
+ "model.save_pretrained(\"./kcmii_definition_ft_mps\")\n",
270
+ "tokenizer.save_pretrained(\"./kcmii_definition_ft_mps\")"
271
+ ]
272
+ },
273
+ {
274
+ "cell_type": "markdown",
275
+ "id": "3771df36-b3a5-40d4-870b-3e182c6f4a36",
276
+ "metadata": {},
277
+ "source": [
278
+ "# ํ•™์Šต ์‹œ๊ฐ„์ด ๋„ˆ๋ฌด ์˜ค๋ž˜ ๊ฑธ๋ฆผ...."
279
+ ]
280
+ },
281
+ {
282
+ "cell_type": "code",
283
+ "execution_count": null,
284
+ "id": "eb74a226-d7de-47cd-965c-b60b5872353c",
285
+ "metadata": {},
286
+ "outputs": [],
287
+ "source": []
288
+ }
289
+ ],
290
+ "metadata": {
291
+ "kernelspec": {
292
+ "display_name": "Python 3 (ipykernel)",
293
+ "language": "python",
294
+ "name": "python3"
295
+ },
296
+ "language_info": {
297
+ "codemirror_mode": {
298
+ "name": "ipython",
299
+ "version": 3
300
+ },
301
+ "file_extension": ".py",
302
+ "mimetype": "text/x-python",
303
+ "name": "python",
304
+ "nbconvert_exporter": "python",
305
+ "pygments_lexer": "ipython3",
306
+ "version": "3.10.16"
307
+ }
308
+ },
309
+ "nbformat": 4,
310
+ "nbformat_minor": 5
311
+ }
prototype/kcmii_lm_rag.ipynb ADDED
@@ -0,0 +1,483 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "cells": [
3
+ {
4
+ "cell_type": "markdown",
5
+ "id": "9d6fc17a-d548-4ab6-b5d3-51e4b60960bb",
6
+ "metadata": {},
7
+ "source": [
8
+ "### full-fine-tuning ํ•˜๊ธฐ์— ํ•™์Šต ์‹œ๊ฐ„์ด ๋„ˆ๋ฌด ์˜ค๋ž˜๊ฑธ๋ฆผ\n",
9
+ "### RAG ๊ฒ€์ƒ‰ ๊ธฐ๋ฐ˜ ํ™œ์šฉํ•ด ๊ฐœ๋ฐœํ•ด๋ณด๋Š” ๊ฒƒ์œผ๋กœ ์ง„ํ–‰"
10
+ ]
11
+ },
12
+ {
13
+ "cell_type": "markdown",
14
+ "id": "33f8253d-352f-4ac6-9205-59b0e773be77",
15
+ "metadata": {},
16
+ "source": [
17
+ "### ํ‚ค์›Œ๋“œ ๊ธฐ๋ฐ˜์˜ RAG ๊ตฌ์ถ• \n",
18
+ "\n",
19
+ "### ํ๋ฆ„\n",
20
+ "[์ž…๋ ฅ: ์ „๊ณต๋ช… 3๊ฐœ] \n",
21
+ " โ†“ \n",
22
+ "[CSV ๋ฌธ์„œ์—์„œ 3๊ฐœ ์ „๊ณต ์ •๋ณด ์ถ”์ถœ] โ† (Keyword-based Retriever) \n",
23
+ " โ†“ \n",
24
+ "[์ „๊ณต ์ •๋ณด๋“ค์„ ์—ฐ๊ฒฐํ•˜์—ฌ ํ”„๋กฌํ”„ํŠธ ์ƒ์„ฑ] โ† (Prompt Composer) \n",
25
+ " โ†“ \n",
26
+ "[LLM์—๊ฒŒ ์ „๋‹ฌํ•˜์—ฌ ์ƒ๊ธฐ๋ถ€ ๋ฌธ๊ตฌ ์ƒ์„ฑ] โ† (Generator)"
27
+ ]
28
+ },
29
+ {
30
+ "cell_type": "code",
31
+ "execution_count": 4,
32
+ "id": "cbe0926d-ccec-4942-8a9e-bf5f940d1a0b",
33
+ "metadata": {},
34
+ "outputs": [
35
+ {
36
+ "data": {
37
+ "text/plain": [
38
+ "(61,\n",
39
+ " '[์ „๊ณต๋ช…: ์–ด๋ฌธํ•™]\\n์ „๊ณต์„ค๋ช…: ๋™์„œ์–‘ ์–ธ์–ด์˜ ๊ตฌ์กฐ์™€ ๋ฌธํ•™์  ํ‘œํ˜„์„ ์ฒด๊ณ„์ ์œผ๋กœ ํƒ๊ตฌํ•˜๊ณ , ๋‹ค์–‘ํ•œ ๋ฌธํ™”์  ๋งฅ๋ฝ์„ ์ดํ•ดํ•˜๋Š” ํ•™๋ฌธ์ด๋‹ค.\\n์š”๊ตฌ์—ญ๋Ÿ‰: ์–ธ์–ด์  ๊ฐ๊ฐ, ๋…ผ๋ฆฌ์  ์‚ฌ๊ณ ๋ ฅ, ๋น„ํŒ์  ๋ถ„์„ ๋Šฅ๋ ฅ\\n์ „๊ณต๊ด€์‹ฌ: ์–ธ์–ด์™€ ๋ฌธํ•™, ๋‹ค์–‘ํ•œ ๊ตญ๊ฐ€์˜ ์‚ฌํšŒยท๋ฌธํ™”์  ํŠน์„ฑ\\n๊ด€๋ จ์ง„๋กœ: ์†Œ์„ค๊ฐ€, ๋ฐฉ์†ก์ž‘๊ฐ€, ๋ฒˆ์—ญ๊ฐ€, ๋ฌธํ•™๋น„ํ‰๊ฐ€, ํ†ต์—ญ์‚ฌ, ์–ธ์–ดํ•™์ž')"
40
+ ]
41
+ },
42
+ "execution_count": 4,
43
+ "metadata": {},
44
+ "output_type": "execute_result"
45
+ }
46
+ ],
47
+ "source": [
48
+ "# ์‚ฌ์šฉ์ž๋กœ๋ถ€ํ„ฐ ์ „๊ณต๋ช… 3๊ฐœ ์ž…๋ ฅ ๋ฐ›๊ธฐ\n",
49
+ "# csv ๋ฐ์ดํ„ฐ์—์„œ ํ•ด๋‹น ์ „๊ณต 3๊ฐœ์˜ ์ •๋ณด ์ถ”์ถœ\n",
50
+ "# ์ถ”์ถœ๋œ ์ •๋ณด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ”„๋กฌํ”„ํŠธ ๊ตฌ์„ฑ\n",
51
+ "import pandas as pd\n",
52
+ "\n",
53
+ "file_path = \"dataset/kcmii_major_rag.csv\"\n",
54
+ "df = pd.read_csv(file_path)\n",
55
+ "\n",
56
+ "def make_major_prompt(df, majors : list) :\n",
57
+ " parts = []\n",
58
+ " for i, major in enumerate(major, 1) : # enumerate(major, 1) ์Šคํƒ€ํŒ… ๋„˜๋ฒ„ ์„ค์ •\n",
59
+ " row = df[df['์ „๊ณต๋ช…']==major]\n",
60
+ " if row.empty:\n",
61
+ " continue\n",
62
+ " r = row.iloc[o]\n",
63
+ " \n",
64
+ "์ „๊ณต์„ค๋ช…: {row['์ „๊ณต์„ค๋ช…']}\n",
65
+ "์š”๊ตฌ์—ญ๋Ÿ‰: {row['์š”๊ตฌ์—ญ๋Ÿ‰']}\n",
66
+ "์ „๊ณต๊ด€์‹ฌ: {row['์ „๊ณต๊ด€์‹ฌ']}\n",
67
+ "๊ด€๋ จ์ง„๋กœ: {row['๊ด€๋ จ์ง„๋กœ']}\"\"\"\n",
68
+ "\n",
69
+ "# ๋ฌธ์„œ ๋ฆฌ์ŠคํŠธ ์ƒ์„ฑ\n",
70
+ "documents = df.apply(format_row_as_document, axis=1).tolist()\n",
71
+ "\n",
72
+ "# ๋ฌธ์„œ ์ˆ˜ ํ™•์ธ ๋ฐ ์ƒ˜ํ”Œ ์ถœ๋ ฅ\n",
73
+ "len(documents), documents[0]"
74
+ ]
75
+ },
76
+ {
77
+ "cell_type": "code",
78
+ "execution_count": 35,
79
+ "id": "dbd6f8a1-aca2-44df-9d37-7377025c7126",
80
+ "metadata": {},
81
+ "outputs": [
82
+ {
83
+ "data": {
84
+ "text/plain": [
85
+ "pandas.core.series.Series"
86
+ ]
87
+ },
88
+ "execution_count": 35,
89
+ "metadata": {},
90
+ "output_type": "execute_result"
91
+ }
92
+ ],
93
+ "source": []
94
+ },
95
+ {
96
+ "cell_type": "code",
97
+ "execution_count": 5,
98
+ "id": "52fe7db0-e1e2-4f86-9eb7-55bf794ecb3d",
99
+ "metadata": {},
100
+ "outputs": [],
101
+ "source": [
102
+ "import pandas as pd\n",
103
+ "file_path = \"dataset/kcmii_major_rag.csv\"\n",
104
+ "df = pd.read_csv(file_path)\n",
105
+ "\n",
106
+ "majors = [\"์‹ฌ๋ฆฌ\", \"๊ต์œก\", \"์‚ฌํšŒ๋ณต์ง€\"]\n",
107
+ "parts = []\n",
108
+ "for i, major in enumerate(majors, 1):\n",
109
+ " row = df[df['์ „๊ณต๋ช…']==major]\n",
110
+ " r = row.iloc[0] # ์‹œ๋ฆฌ์ฆˆ ๋ณ€ํ™˜\n",
111
+ " part = f\"\"\"{i}. {major}\n",
112
+ "์ „๊ณต์„ค๋ช…: {r['์ „๊ณต์„ค๋ช…']}\n",
113
+ "์š”๊ตฌ์—ญ๋Ÿ‰: {r['์š”๊ตฌ์—ญ๋Ÿ‰']}\n",
114
+ "์ „๊ณต๊ด€์‹ฌ: {r['์ „๊ณต๊ด€์‹ฌ']}\n",
115
+ "๊ด€๋ จ์ง„๋กœ: {r['๊ด€๋ จ์ง„๋กœ']}\n",
116
+ "\"\"\"\n",
117
+ " parts.append(part)\n",
118
+ "\n",
119
+ "majors_str = \", \".join(majors)\n",
120
+ "prompt = f\"\"\"OO ํ•™์ƒ์€ ์•„๋ž˜์˜ ์„ธ ์ „๊ณต ๋ถ„์•ผ({majors_str})์— ๋Œ€ํ•ด ํฅ๋ฏธ ์ˆ˜์ค€์ด ๋†’์Šต๋‹ˆ๋‹ค.\n",
121
+ "๊ฐ ์ „๊ณต์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ, ๊ณ ๋“ฑํ•™์ƒ ์ƒํ™œ๊ธฐ๋ก๋ถ€ ๋ฌธ๊ตฌ๋ฅผ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”:\n",
122
+ "\n",
123
+ "{chr(10).join(parts)}\n",
124
+ "\"\"\""
125
+ ]
126
+ },
127
+ {
128
+ "cell_type": "code",
129
+ "execution_count": 6,
130
+ "id": "17933069-cd0d-4b15-b424-410b83063dbc",
131
+ "metadata": {},
132
+ "outputs": [
133
+ {
134
+ "data": {
135
+ "text/plain": [
136
+ "['1. ์‹ฌ๋ฆฌ\\n์ „๊ณต์„ค๋ช…: ์ธ๊ฐ„์˜ ํ–‰๋™๊ณผ ์ •์‹  ๊ณผ์ •์„ ๊ณผํ•™์ ์œผ๋กœ ํƒ๊ตฌํ•˜๋Š” ํ•™๋ฌธ์ด๋‹ค.\\n์š”๊ตฌ์—ญ๋Ÿ‰: ๊ณต๊ฐ ๋Šฅ๋ ฅ, ๋ถ„์„๋ ฅ, ๊ด€์ฐฐ๋ ฅ\\n์ „๊ณต๊ด€์‹ฌ: ์ธ๊ฐ„ ํ–‰๋™, ๊ฐ์ •, ์ธ์ง€ ๊ธฐ๋Šฅ\\n๊ด€๋ จ์ง„๋กœ: ์ž„์ƒ์‹ฌ๋ฆฌ์‚ฌ, ์ƒ๋‹ด์‚ฌ, ์กฐ์ง์‹ฌ๋ฆฌ์ „๋ฌธ๊ฐ€, ์—ฐ๊ตฌ์›, ๊ต์ˆ˜\\n',\n",
137
+ " '2. ๊ต์œก\\n์ „๊ณต์„ค๋ช…: ์ธ๊ฐ„์˜ ํ•™์Šต๊ณผ ๋ฐœ๋‹ฌ์„ ์—ฐ๊ตฌํ•˜๊ณ  ํšจ๊ณผ์ ์ธ ๊ต์ˆ˜๋ฒ•๊ณผ ๊ต์œก ์ œ๋„๋ฅผ ํƒ๊ตฌํ•˜๋Š” ํ•™๋ฌธ์ด๋‹ค.\\n์š”๊ตฌ์—ญ๋Ÿ‰: ์†Œํ†ต ๋Šฅ๋ ฅ, ์ธ๋‚ด์‹ฌ, ๊ด€์ฐฐ๋ ฅ\\n์ „๊ณต๊ด€์‹ฌ: ๊ต์œก๊ณผ์ •, ์•„๋™ ๋ฐœ๋‹ฌ, ๊ต์ˆ˜ ํ•™์Šต ๋ฐฉ๋ฒ•\\n๊ด€๋ จ์ง„๋กœ: ๊ต์‚ฌ, ๊ต์œกํ–‰์ •๊ฐ€, ๊ต์œก์—ฐ๊ตฌ์›, ๊ต์ˆ˜, ๊ต์œก์ปจ์„คํ„ดํŠธ\\n',\n",
138
+ " '3. ์‚ฌํšŒ๋ณต์ง€\\n์ „๊ณต์„ค๋ช…: ์‚ฌํšŒ๋ณต์ง€๋Š” ๋‹ค์–‘ํ•œ ์‚ฌํšŒ ๊ตฌ์„ฑ์›์˜ ๋ณต์ง€์™€ ์‚ถ์˜ ์งˆ ํ–ฅ์ƒ์„ ์œ„ํ•œ ์ œ๋„์™€ ์‹ค์ฒœ ๋ฐฉ๋ฒ•์„ ์—ฐ๊ตฌํ•˜๋Š” ํ•™๋ฌธ์ด๋‹ค.\\n์š”๊ตฌ์—ญ๋Ÿ‰: ๊ณต๊ฐ ๋Šฅ๋ ฅ, ๋Œ€์ธ๊ด€๊ณ„๋Šฅ๋ ฅ, ๋ฌธ์ œ ํ•ด๊ฒฐ๋ ฅ\\n์ „๊ณต๊ด€์‹ฌ: ์‚ฌํšŒ์  ์•ฝ์ž ์ง€์›, ๋ณต์ง€ ์ •์ฑ…, ์ธ๊ฐ„ ์กด์—„์„ฑ\\n๊ด€๋ จ์ง„๋กœ: ์‚ฌํšŒ๋ณต์ง€์‚ฌ, ์ฒญ์†Œ๋…„์ง€๋„์‚ฌ, ๋ณต์ง€ํ–‰์ •๊ฐ€, ๊ฐ€์กฑ์ƒ๋‹ด์‚ฌ, ๋‹ค๋ฌธํ™”์ „๋ฌธ๊ฐ€\\n']"
139
+ ]
140
+ },
141
+ "execution_count": 6,
142
+ "metadata": {},
143
+ "output_type": "execute_result"
144
+ }
145
+ ],
146
+ "source": [
147
+ "parts"
148
+ ]
149
+ },
150
+ {
151
+ "cell_type": "code",
152
+ "execution_count": 7,
153
+ "id": "09768d88-b7a6-4ef6-bd3d-e58f23f8e82b",
154
+ "metadata": {},
155
+ "outputs": [
156
+ {
157
+ "data": {
158
+ "text/plain": [
159
+ "'OO ํ•™์ƒ์€ ์•„๋ž˜์˜ ์„ธ ์ „๊ณต ๋ถ„์•ผ(์‹ฌ๋ฆฌ, ๊ต์œก, ์‚ฌํšŒ๋ณต์ง€)์— ๋Œ€ํ•ด ํฅ๋ฏธ ์ˆ˜์ค€์ด ๋†’์Šต๋‹ˆ๋‹ค.\\n๊ฐ ์ „๊ณต์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ, ๊ณ ๋“ฑํ•™์ƒ ์ƒํ™œ๊ธฐ๋ก๋ถ€ ๋ฌธ๊ตฌ๋ฅผ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”:\\n\\n1. ์‹ฌ๋ฆฌ\\n์ „๊ณต์„ค๋ช…: ์ธ๊ฐ„์˜ ํ–‰๋™๊ณผ ์ •์‹  ๊ณผ์ •์„ ๊ณผํ•™์ ์œผ๋กœ ํƒ๊ตฌํ•˜๋Š” ํ•™๋ฌธ์ด๋‹ค.\\n์š”๊ตฌ์—ญ๋Ÿ‰: ๊ณต๊ฐ ๋Šฅ๋ ฅ, ๋ถ„์„๋ ฅ, ๊ด€์ฐฐ๋ ฅ\\n์ „๊ณต๊ด€์‹ฌ: ์ธ๊ฐ„ ํ–‰๋™, ๊ฐ์ •, ์ธ์ง€ ๊ธฐ๋Šฅ\\n๊ด€๋ จ์ง„๋กœ: ์ž„์ƒ์‹ฌ๋ฆฌ์‚ฌ, ์ƒ๋‹ด์‚ฌ, ์กฐ์ง์‹ฌ๋ฆฌ์ „๋ฌธ๊ฐ€, ์—ฐ๊ตฌ์›, ๊ต์ˆ˜\\n\\n2. ๊ต์œก\\n์ „๊ณต์„ค๋ช…: ์ธ๊ฐ„์˜ ํ•™์Šต๊ณผ ๋ฐœ๋‹ฌ์„ ์—ฐ๊ตฌํ•˜๊ณ  ํšจ๊ณผ์ ์ธ ๊ต์ˆ˜๋ฒ•๊ณผ ๊ต์œก ์ œ๋„๋ฅผ ํƒ๊ตฌํ•˜๋Š” ํ•™๋ฌธ์ด๋‹ค.\\n์š”๊ตฌ์—ญ๋Ÿ‰: ์†Œํ†ต ๋Šฅ๋ ฅ, ์ธ๋‚ด์‹ฌ, ๊ด€์ฐฐ๋ ฅ\\n์ „๊ณต๊ด€์‹ฌ: ๊ต์œก๊ณผ์ •, ์•„๋™ ๋ฐœ๋‹ฌ, ๊ต์ˆ˜ ํ•™์Šต ๋ฐฉ๋ฒ•\\n๊ด€๋ จ์ง„๋กœ: ๊ต์‚ฌ, ๊ต์œกํ–‰์ •๊ฐ€, ๊ต์œก์—ฐ๊ตฌ์›, ๊ต์ˆ˜, ๊ต์œก์ปจ์„คํ„ดํŠธ\\n\\n3. ์‚ฌํšŒ๋ณต์ง€\\n์ „๊ณต์„ค๋ช…: ์‚ฌํšŒ๋ณต์ง€๋Š” ๋‹ค์–‘ํ•œ ์‚ฌํšŒ ๊ตฌ์„ฑ์›์˜ ๋ณต์ง€์™€ ์‚ถ์˜ ์งˆ ํ–ฅ์ƒ์„ ์œ„ํ•œ ์ œ๋„์™€ ์‹ค์ฒœ ๋ฐฉ๋ฒ•์„ ์—ฐ๊ตฌํ•˜๋Š” ํ•™๋ฌธ์ด๋‹ค.\\n์š”๊ตฌ์—ญ๋Ÿ‰: ๊ณต๊ฐ ๋Šฅ๋ ฅ, ๋Œ€์ธ๊ด€๊ณ„๋Šฅ๋ ฅ, ๋ฌธ์ œ ํ•ด๊ฒฐ๋ ฅ\\n์ „๊ณต๊ด€์‹ฌ: ์‚ฌํšŒ์  ์•ฝ์ž ์ง€์›, ๋ณต์ง€ ์ •์ฑ…, ์ธ๊ฐ„ ์กด์—„์„ฑ\\n๊ด€๋ จ์ง„๋กœ: ์‚ฌํšŒ๋ณต์ง€์‚ฌ, ์ฒญ์†Œ๋…„์ง€๋„์‚ฌ, ๋ณต์ง€ํ–‰์ •๊ฐ€, ๊ฐ€์กฑ์ƒ๋‹ด์‚ฌ, ๋‹ค๋ฌธํ™”์ „๋ฌธ๊ฐ€\\n\\n'"
160
+ ]
161
+ },
162
+ "execution_count": 7,
163
+ "metadata": {},
164
+ "output_type": "execute_result"
165
+ }
166
+ ],
167
+ "source": [
168
+ "prompt\n",
169
+ "# ๋„ˆ๋ฌด ๊ธธ๊ฒŒ๋‚˜์™€์„œ ํ•™์Šต์‹œํ‚ฌ๋•Œ ๋ถˆ์•ˆํ•จ..."
170
+ ]
171
+ },
172
+ {
173
+ "cell_type": "code",
174
+ "execution_count": 17,
175
+ "id": "b178159f-cf48-4989-be66-85af3e7ec510",
176
+ "metadata": {},
177
+ "outputs": [],
178
+ "source": [
179
+ "# ์„ ํ˜ธ ์ „๊ณต 3๊ฐœ์˜ ๊ฐ„๋žตํ•œ ์ •๋ณด๋งŒ ์ถ”์ถœํ•ด ๋‚˜์˜ค๋Š” ํ”„๋กฌํ”„ํŠธ๋กœ ์ˆ˜์ •\n",
180
+ "file_path = \"dataset/kcmii_major_rag_summarized.csv\"\n",
181
+ "df = pd.read_csv(file_path)\n",
182
+ "\n",
183
+ "import pandas as pd\n",
184
+ "\n",
185
+ "def make_major_prompt(df, majors: list) -> str:\n",
186
+ " parts = []\n",
187
+ " for i, major in enumerate(majors, 1):\n",
188
+ " row = df[df['์ „๊ณต๋ช…'] == major]\n",
189
+ " if row.empty:\n",
190
+ " continue\n",
191
+ " summary = row.iloc[0]['์š”์•ฝ']\n",
192
+ " parts.append(f\"{i}. {major}: {summary}\")\n",
193
+ "\n",
194
+ " majors_str = \", \".join(majors)\n",
195
+ " prompt = f\"\"\"OO ํ•™์ƒ์€ ์•„๋ž˜์˜ ์„ธ ์ „๊ณต ๋ถ„์•ผ({majors_str})์— ํฅ๋ฏธ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.\n",
196
+ "์ด ์ „๊ณต๋“ค์— ๋Œ€ํ•œ ์š”์•ฝ ์ •๋ณด๋ฅผ ์ฐธ๊ณ ํ•˜์—ฌ, ํ•™์ƒ์˜ ํ™œ๋™ ์†์—์„œ ๋“œ๋Ÿฌ๋‚œ ๊ด€์‹ฌ๊ณผ ์—ญ๋Ÿ‰ ๋˜๋Š” ์œตํ•ฉ ๊ฐ€๋Šฅ์„ฑ์„ ๊ณ ๋ คํ•˜์—ฌ ๊ณ ๋“ฑํ•™์ƒ ์ƒํ™œ๊ธฐ๋ก๋ถ€ ๋ฌธ๊ตฌ๋ฅผ ์„œ์ˆ ํ˜•์œผ๋กœ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”:\n",
197
+ "\n",
198
+ "{chr(10).join(parts)}\n",
199
+ "\"\"\"\n",
200
+ " return prompt"
201
+ ]
202
+ },
203
+ {
204
+ "cell_type": "code",
205
+ "execution_count": 18,
206
+ "id": "6c24ded3-2a88-47ad-89c3-40b5e7c0dc01",
207
+ "metadata": {},
208
+ "outputs": [
209
+ {
210
+ "name": "stdout",
211
+ "output_type": "stream",
212
+ "text": [
213
+ "OO ํ•™์ƒ์€ ์•„๋ž˜์˜ ์„ธ ์ „๊ณต ๋ถ„์•ผ(์‹ฌ๋ฆฌ, ๊ต์œก, ์‚ฌํšŒ๋ณต์ง€)์— ํฅ๋ฏธ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.\n",
214
+ "์ด ์ „๊ณต๋“ค์— ๋Œ€ํ•œ ์š”์•ฝ ์ •๋ณด๋ฅผ ์ฐธ๊ณ ํ•˜์—ฌ, ํ•™์ƒ์˜ ํ™œ๋™ ์†์—์„œ ๋“œ๋Ÿฌ๋‚œ ๊ด€์‹ฌ๊ณผ ์—ญ๋Ÿ‰ ๋˜๋Š” ์œตํ•ฉ ๊ฐ€๋Šฅ์„ฑ์„ ๊ณ ๋ คํ•˜์—ฌ ๊ณ ๋“ฑํ•™์ƒ ์ƒํ™œ๊ธฐ๋ก๋ถ€ ๋ฌธ๊ตฌ๋ฅผ ์„œ์ˆ ํ˜•์œผ๋กœ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”:\n",
215
+ "\n",
216
+ "1. ์‹ฌ๋ฆฌ: ์ธ๊ฐ„์˜ ํ–‰๋™๊ณผ ์ •์‹  ๊ณผ์ •์„ ๊ณผํ•™์ ์œผ๋กœ ํƒ๊ตฌํ•˜๋Š” ํ•™๋ฌธ์ด๋‹ค. (์ฃผ์š” ์—ญ๋Ÿ‰: ๊ณต๊ฐ ๋Šฅ๋ ฅ, ๊ด€์‹ฌ ๋ถ„์•ผ: ์ธ๊ฐ„ ํ–‰๋™)\n",
217
+ "2. ๊ต์œก: ์ธ๊ฐ„์˜ ํ•™์Šต๊ณผ ๋ฐœ๋‹ฌ์„ ์—ฐ๊ตฌํ•˜๊ณ  ํšจ๊ณผ์ ์ธ ๊ต์ˆ˜๋ฒ•๊ณผ ๊ต์œก ์ œ๋„๋ฅผ ํƒ๊ตฌํ•˜๋Š” ํ•™๋ฌธ์ด๋‹ค. (์ฃผ์š” ์—ญ๋Ÿ‰: ์†Œํ†ต ๋Šฅ๋ ฅ, ๊ด€์‹ฌ ๋ถ„์•ผ: ๊ต์œก๊ณผ์ •)\n",
218
+ "3. ์‚ฌํšŒ๋ณต์ง€: ์‚ฌํšŒ๋ณต์ง€๋Š” ๋‹ค์–‘ํ•œ ์‚ฌํšŒ ๊ตฌ์„ฑ์›์˜ ๋ณต์ง€์™€ ์‚ถ์˜ ์งˆ ํ–ฅ์ƒ์„ ์œ„ํ•œ ์ œ๋„์™€ ์‹ค์ฒœ ๋ฐฉ๋ฒ•์„ ์—ฐ๊ตฌํ•˜๋Š” ํ•™๋ฌธ์ด๋‹ค. (์ฃผ์š” ์—ญ๋Ÿ‰: ๊ณต๊ฐ ๋Šฅ๋ ฅ, ๊ด€์‹ฌ ๋ถ„์•ผ: ์‚ฌํšŒ์  ์•ฝ์ž ์ง€์›)\n",
219
+ "\n"
220
+ ]
221
+ }
222
+ ],
223
+ "source": [
224
+ "example_majors = [\"์‹ฌ๋ฆฌ\", \"๊ต์œก\", \"์‚ฌํšŒ๋ณต์ง€\"]\n",
225
+ "prompt = make_major_prompt(df, example_majors)\n",
226
+ "print(prompt)"
227
+ ]
228
+ },
229
+ {
230
+ "cell_type": "markdown",
231
+ "id": "6467b751-3228-4948-9042-de65f1a3f118",
232
+ "metadata": {},
233
+ "source": [
234
+ "### 50๊ฐœ ์ „๊ณต์€ ๋„ˆ๋ฌด ๋งŽ์œผ๋‹ˆ ๊ณตํ†ต์ ์œผ๋กœ ๋ฌถ์ด๋Š” ์ „๊ณต(์œ ์‚ฌ๋ถ„์•ผ) ์ผ€์ด์Šค 10๊ฐœ๋งŒ ๋ถ„๋ฆฌํ•ด ํ•™์Šต๋ฐ์ดํ„ฐ ์ƒ์„ฑ\n",
235
+ "### LoRA ๊ฒฝ๋žต ํ•™์Šต์œผ๋กœ ๋จผ์ € ํ…Œ์ŠคํŠธ"
236
+ ]
237
+ },
238
+ {
239
+ "cell_type": "code",
240
+ "execution_count": 24,
241
+ "id": "bc8b0f50-c6e4-49fe-98a4-3ee8d8ef4b83",
242
+ "metadata": {},
243
+ "outputs": [
244
+ {
245
+ "name": "stdout",
246
+ "output_type": "stream",
247
+ "text": [
248
+ "์‚ฌ์šฉ ์ค‘์ธ ๋””๋ฐ”์ด์Šค: mps\n"
249
+ ]
250
+ },
251
+ {
252
+ "name": "stdin",
253
+ "output_type": "stream",
254
+ "text": [
255
+ "The repository for LGAI-EXAONE/EXAONE-3.5-2.4B-Instruct contains custom code which must be executed to correctly load the model. You can inspect the repository content at https://hf.co/LGAI-EXAONE/EXAONE-3.5-2.4B-Instruct.\n",
256
+ "You can avoid this prompt in future by passing the argument `trust_remote_code=True`.\n",
257
+ "\n",
258
+ "Do you wish to run the custom code? [y/N] y\n"
259
+ ]
260
+ },
261
+ {
262
+ "name": "stderr",
263
+ "output_type": "stream",
264
+ "text": [
265
+ "A new version of the following files was downloaded from https://huggingface.co/LGAI-EXAONE/EXAONE-3.5-2.4B-Instruct:\n",
266
+ "- configuration_exaone.py\n",
267
+ ". Make sure to double-check they do not contain any added malicious code. To avoid downloading new versions of the code file, you can pin a revision.\n"
268
+ ]
269
+ },
270
+ {
271
+ "name": "stdin",
272
+ "output_type": "stream",
273
+ "text": [
274
+ "The repository for LGAI-EXAONE/EXAONE-3.5-2.4B-Instruct contains custom code which must be executed to correctly load the model. You can inspect the repository content at https://hf.co/LGAI-EXAONE/EXAONE-3.5-2.4B-Instruct.\n",
275
+ "You can avoid this prompt in future by passing the argument `trust_remote_code=True`.\n",
276
+ "\n",
277
+ "Do you wish to run the custom code? [y/N] y\n"
278
+ ]
279
+ },
280
+ {
281
+ "name": "stderr",
282
+ "output_type": "stream",
283
+ "text": [
284
+ "A new version of the following files was downloaded from https://huggingface.co/LGAI-EXAONE/EXAONE-3.5-2.4B-Instruct:\n",
285
+ "- modeling_exaone.py\n",
286
+ ". Make sure to double-check they do not contain any added malicious code. To avoid downloading new versions of the code file, you can pin a revision.\n",
287
+ "Fetching 2 files: 100%|โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ| 2/2 [02:39<00:00, 79.72s/it] \n",
288
+ "Loading checkpoint shards: 100%|โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ| 2/2 [00:00<00:00, 37.62it/s]\n"
289
+ ]
290
+ },
291
+ {
292
+ "name": "stdout",
293
+ "output_type": "stream",
294
+ "text": [
295
+ "\n",
296
+ "๐Ÿ“„ ์ƒ์„ฑ๋œ ๋ฌธ์žฅ:\n",
297
+ "\n",
298
+ "### ๋ช…๋ น:\n",
299
+ "๋‹ค์Œ ์ „๊ณต ์ •๋ณด๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ํ•™์ƒ์˜ ํฅ๋ฏธ์™€ ํ™œ๋™์„ ๋ฐ˜์˜ํ•œ ์ƒ๊ธฐ๋ถ€ ๋ฌธ๊ตฌ๋ฅผ ์ž‘์„ฑํ•˜์„ธ์š”.\n",
300
+ "\n",
301
+ "### ์ž…๋ ฅ:\n",
302
+ "1. ์‹ฌ๋ฆฌ: ์ธ๊ฐ„์˜ ํ–‰๋™๊ณผ ์ •์‹  ๊ณผ์ •์„ ๊ณผํ•™์ ์œผ๋กœ ํƒ๊ตฌํ•˜๋Š” ํ•™๋ฌธ์ด๋‹ค. (์ฃผ์š” ์—ญ๋Ÿ‰: ๊ณต๊ฐ๋Šฅ๋ ฅ, ๊ด€์‹ฌ ๋ถ„์•ผ: ๊ฐ์ •)\n",
303
+ "2. ๊ต์œก: ์ธ๊ฐ„์˜ ํ•™์Šต๊ณผ ๋ฐœ๋‹ฌ์„ ์—ฐ๊ตฌํ•˜๊ณ  ํšจ๊ณผ์ ์ธ ๊ต์ˆ˜๋ฒ•์„ ํƒ์ƒ‰ํ•˜๋Š” ํ•™๋ฌธ์ด๋‹ค. (์ฃผ์š” ์—ญ๋Ÿ‰: ์†Œํ†ต๋Šฅ๋ ฅ, ๊ด€์‹ฌ ๋ถ„์•ผ: ์•„๋™ ๋ฐœ๋‹ฌ)\n",
304
+ "3. ์‚ฌํšŒ๋ณต์ง€: ๋‹ค์–‘ํ•œ ์‚ฌํšŒ ๊ตฌ์„ฑ์›์˜ ์‚ถ์˜ ์งˆ ํ–ฅ์ƒ์„ ์œ„ํ•œ ์ œ๋„์™€ ์‹ค์ฒœ ๋ฐฉ๋ฒ•์„ ์—ฐ๊ตฌํ•˜๋Š” ํ•™๋ฌธ์ด๋‹ค. (์ฃผ์š” ์—ญ๋Ÿ‰: ๋Œ€์ธ๊ด€๊ณ„๋Šฅ๋ ฅ, ๊ด€์‹ฌ ๋ถ„์•ผ: ์‚ฌํšŒ์  ์•ฝ์ž ์ง€์›)\n",
305
+ "\n",
306
+ "### ์ถœ๋ ฅ:\n",
307
+ "\"์‹ฌ๋ฆฌํ•™์˜ ๋”ฐ๋œปํ•จ ์†์—์„œ ๊นŠ์ด ์žˆ๊ฒŒ ๊ฐ์ •์— ๊ท€ ๊ธฐ์šธ์ด๋ฉฐ, ๊ต์œก ํ˜„์žฅ์—์„œ๋Š” ์•„์ด๋“ค์˜ ์„ฑ์žฅ์„ ์ด๋„๋Š” ์ง€ํ˜œ๋กœ์šด ๋ฉ˜ํ† ๊ฐ€ ๋˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ, ์‚ฌํšŒ์  ์•ฝ์ž๋“ค์—๊ฒŒ ํฌ๋ง์˜ ๋น›์„ ์ „ํ•ด์ฃผ๊ธฐ ์œ„ํ•ด ๋…ธ๋ ฅํ•˜๋Š” ๋”ฐ๋œปํ•œ ์‚ฌํšŒ๋ณต์ง€์‚ฌ๊ฐ€ ๋˜์–ด, ๋ชจ๋“  ์‚ฌ๋žŒ์ด ์กด์ค‘๋ฐ›๊ณ  ํ–‰๋ณตํ•  ์ˆ˜ ์žˆ๋„๋ก ๋•๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.\"\n"
308
+ ]
309
+ }
310
+ ],
311
+ "source": [
312
+ "# ํ—ˆ๊น…ํŽ˜์ด์Šค์— ์žˆ๋Š” ๋ชจ๋ธ์„ ์ž„ํฌํŠธ ๋ฐ ํ† ํฌ๋‚˜์ด์ € ๋กœ๋”ฉ์šฉ ๋„๊ตฌ ๋ถˆ๋Ÿฌ์„œ ํ…Œ์ŠคํŠธ\n",
313
+ "import torch\n",
314
+ "from transformers import AutoTokenizer, AutoModelForCausalLM\n",
315
+ "\n",
316
+ "device = torch.device(\"mps\" if torch.backends.mps.is_available() else \"cpu\")\n",
317
+ "print(\"์‚ฌ์šฉ ์ค‘์ธ ๋””๋ฐ”์ด์Šค:\", device)\n",
318
+ "\n",
319
+ "# ๋ชจ๋ธ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ\n",
320
+ "model_name = \"LGAI-EXAONE/EXAONE-3.5-2.4B-Instruct\"\n",
321
+ "tokenizer = AutoTokenizer.from_pretrained(model_name)\n",
322
+ "model = AutoModelForCausalLM.from_pretrained(model_name).to(device)\n",
323
+ "\n",
324
+ "# ์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•  ํ…์ŠคํŠธ ๋˜๋Š” ์ž…๋ ฅ๊ฐ’\n",
325
+ "prompt = \"\"\"### ๋ช…๋ น:\n",
326
+ "๋‹ค์Œ ์ „๊ณต ์ •๋ณด๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ํ•™์ƒ์˜ ํฅ๋ฏธ์™€ ํ™œ๋™์„ ๋ฐ˜์˜ํ•œ ์ƒ๊ธฐ๋ถ€ ๋ฌธ๊ตฌ๋ฅผ ์ž‘์„ฑํ•˜์„ธ์š”.\n",
327
+ "\n",
328
+ "### ์ž…๋ ฅ:\n",
329
+ "1. ์‹ฌ๋ฆฌ: ์ธ๊ฐ„์˜ ํ–‰๋™๊ณผ ์ •์‹  ๊ณผ์ •์„ ๊ณผํ•™์ ์œผ๋กœ ํƒ๊ตฌํ•˜๋Š” ํ•™๋ฌธ์ด๋‹ค. (์ฃผ์š” ์—ญ๋Ÿ‰: ๊ณต๊ฐ๋Šฅ๋ ฅ, ๊ด€์‹ฌ ๋ถ„์•ผ: ๊ฐ์ •)\n",
330
+ "2. ๊ต์œก: ์ธ๊ฐ„์˜ ํ•™์Šต๊ณผ ๋ฐœ๋‹ฌ์„ ์—ฐ๊ตฌํ•˜๊ณ  ํšจ๊ณผ์ ์ธ ๊ต์ˆ˜๋ฒ•์„ ํƒ์ƒ‰ํ•˜๋Š” ํ•™๋ฌธ์ด๋‹ค. (์ฃผ์š” ์—ญ๋Ÿ‰: ์†Œํ†ต๋Šฅ๋ ฅ, ๊ด€์‹ฌ ๋ถ„์•ผ: ์•„๋™ ๋ฐœ๋‹ฌ)\n",
331
+ "3. ์‚ฌํšŒ๋ณต๏ฟฝ๏ฟฝ: ๋‹ค์–‘ํ•œ ์‚ฌํšŒ ๊ตฌ์„ฑ์›์˜ ์‚ถ์˜ ์งˆ ํ–ฅ์ƒ์„ ์œ„ํ•œ ์ œ๋„์™€ ์‹ค์ฒœ ๋ฐฉ๋ฒ•์„ ์—ฐ๊ตฌํ•˜๋Š” ํ•™๋ฌธ์ด๋‹ค. (์ฃผ์š” ์—ญ๋Ÿ‰: ๋Œ€์ธ๊ด€๊ณ„๋Šฅ๋ ฅ, ๊ด€์‹ฌ ๋ถ„์•ผ: ์‚ฌํšŒ์  ์•ฝ์ž ์ง€์›)\n",
332
+ "\n",
333
+ "### ์ถœ๋ ฅ:\n",
334
+ "\"\"\"\n",
335
+ "\n",
336
+ "# ์ž…๋ ฅ๊ฐ’์„ ํ† ํฌ๋‚˜์ด์ €๋ฅผ ํ†ตํ•ด ์ˆซ์ž ํ† ํฐ์œผ๋กœ ๋ณ€ํ™˜\n",
337
+ "# return_tensors=\"pt\" ์ž…๋ ฅ๊ฐ’์„ ์ˆซ์ž ํ† ํฐํ™”ํ•˜์—ฌ ํŒŒ์ดํ† ์ง€ ํ…์„œ ํ˜•ํƒœ๋กœ ๋ฆฌํ„ด\n",
338
+ "inputs = tokenizer(prompt, return_tensors=\"pt\").to(device)\n",
339
+ "\n",
340
+ "# gpt๋Š” ์ž…๋ ฅ ์ž์ฒด๊ฐ€ ํ•ญ์ƒ ํ•˜๋‚˜์˜ ์—ฐ์†๋œ ๋ฌธ์žฅ ์Šคํ€€์Šค์ด๊ธฐ ๋•Œ๋ฌธ์— ๋ฌธ์žฅ ๊ตฌ๋ถ„์ด ํ•„์š”์—†์Œ\n",
341
+ "if 'token_type_ids' in inputs:\n",
342
+ " inputs.pop('token_type_ids')\n",
343
+ "\n",
344
+ "# torch.no_grad() ์ถ”๋ก  ์‹œ์—๋Š” ๊ธฐ์šธ๊ธฐ ๊ฒŒ์‚ฐํ•˜์ง€ ์•Š๊ฒŒํ•˜์—ฌ ์†๋„/๋ฉ”๋ชจ๋ฆฌ ์ ˆ์•ฝ -> ์™œ ์ด๋ ‡๊ฒŒ ํ•ด์•ผํ•˜๋‚˜?\n",
345
+ "with torch.no_grad():\n",
346
+ " # model.generate() ์ฃผ์–ด์ง„ ์ž…๋ ฅ์— ๋Œ€ํ•ด ํ…์ŠคํŠธ๋ฅผ ์ƒ์„ฑํ•จ\n",
347
+ " ## ์ž์„ธํ•œ ๋‚ด์šฉ๊ณผ ์ดํ•ด๋Š” ๋…ธ์…˜ ์ฐธ๊ณ \n",
348
+ " outputs = model.generate(\n",
349
+ " **inputs,\n",
350
+ " # ์ตœ๋Œ€ 80๊ฐœ์˜ ์ƒˆ๋กœ์šด ํ† ํฐ ์ƒ์„ฑ\n",
351
+ " ## ๋ชจ๋ธ์ด ์ƒˆ๋กœ ์ƒ์„ฑํ•  ์ตœ๋Œ€ ํ† ํฐ์˜ ๊ฐœ์ˆ˜\n",
352
+ " max_new_tokens=150,\n",
353
+ " # ํ™•๋ฅ  ๊ธฐ๋ฐ˜ ์ƒ˜ํ”Œ๋ง ํ™œ์„ฑํ™”\n",
354
+ " ## ๋ชจ๋ธ์ด ๋‹ค์Œ ํ† ํฐ์„ ์„ ํƒํ•  ๋•Œ ๊ฐ€์žฅ ํ™•๋ฅ  ๋†’์€ ๋‹จ์–ด๋ฅผ ๋ฌด์กฐ๊ฑด ๊ณ ๋ฅด๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ํ™•๋ฅ  ๋ถ„ํฌ์—์„œ ๋ฌด์ž‘์œ„๋กœ ํ•˜๋‚˜ ์ƒ˜ํ”Œ๋ง\n",
355
+ " do_sample=True,\n",
356
+ " # ํ™•๋ฅ  ๋†’์€ ์ƒ์œ„ 50๊ฐœ ์ค‘์—์„œ ์„ ํƒ\n",
357
+ " ## ์ƒ˜ํ”Œ๋งํ•  ๋•Œ ์ƒ์œ„ k๊ฐœ์˜ ๋‹จ์–ด๋งŒ์œผ๋กœ ํ›„๋ณด๋ฅผ ์ œํ•œ\n",
358
+ " top_k=50,\n",
359
+ " # ๋ˆ„์  ํ™•๋ฅ  95%๊นŒ์ง€ ํฌํ•จํ•œ ํ›„๋ณด๊ตฐ์—์„œ ์„ ํƒ\n",
360
+ " ## ์ƒ์œ„ ๋‹จ์œ„๋“ค์˜ ๋ˆ„์ ํ™”๋ฅ ์ด 95% ๋„˜์„ ๋•Œ๊นŒ์ง€ ํ›„๋ณด๊ตฐ์„ ๋ˆ„์ ์‹œํ‚ด, ๊ทธ ์•ˆ์—์„œ ์ƒ˜ํ”Œ๋ง\n",
361
+ " top_p=0.95,\n",
362
+ " # ์ฐฝ์˜์„ฑ ์กฐ์ ˆ ๊ฐ’\n",
363
+ " temperature=0.8,\n",
364
+ " repetition_penalty=1.1\n",
365
+ " )\n",
366
+ "\n",
367
+ "# ํ† ํฐ์„ ํ…์ŠคํŠธ๋กœ ๋””์ฝ”๋”ฉ\n",
368
+ "# ๋ชจ๋ธ์ด ์ƒ์„ฑํ•œ ํ† ํฐ ์‹œํ€€์Šค ์ค‘ ์ฒซ๋ฒˆ ์งธ ๊ฒฐ๊ณผ๋ฅผ\n",
369
+ "# skip_special_tokens=True ํŠน์ˆ˜ํ† ํฐ ์ œ๊ฑฐ\n",
370
+ "result = tokenizer.decode(outputs[0], skip_special_tokens=True)\n",
371
+ "print(\"\\n๐Ÿ“„ ์ƒ์„ฑ๋œ ๋ฌธ์žฅ:\\n\")\n",
372
+ "print(result)"
373
+ ]
374
+ },
375
+ {
376
+ "cell_type": "code",
377
+ "execution_count": 25,
378
+ "id": "382ea67d-298b-4d78-b16c-9f66f3052e21",
379
+ "metadata": {},
380
+ "outputs": [
381
+ {
382
+ "name": "stdout",
383
+ "output_type": "stream",
384
+ "text": [
385
+ "\n",
386
+ "๐Ÿ“„ ์ƒ์„ฑ๋œ ๋ฌธ์žฅ:\n",
387
+ "\n",
388
+ "### ๋ช…๋ น:\n",
389
+ "๋‹ค์Œ ์ „๊ณต ์ •๋ณด๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ํ•™์ƒ์˜ ํฅ๋ฏธ์™€ ํ™œ๋™์„ ๋ฐ˜์˜ํ•œ ์ƒ๊ธฐ๋ถ€ ๋ฌธ๊ตฌ๋ฅผ ์ž‘์„ฑํ•˜์„ธ์š”.\n",
390
+ "\n",
391
+ "### ์ž…๋ ฅ:\n",
392
+ "1. ์‹ฌ๋ฆฌ: ์ธ๊ฐ„์˜ ํ–‰๋™๊ณผ ์ •์‹  ๊ณผ์ •์„ ๊ณผํ•™์ ์œผ๋กœ ํƒ๊ตฌํ•˜๋Š” ํ•™๋ฌธ์ด๋‹ค. (์ฃผ์š” ์—ญ๋Ÿ‰: ๊ณต๊ฐ๋Šฅ๋ ฅ, ๊ด€์‹ฌ ๋ถ„์•ผ: ๊ฐ์ •)\n",
393
+ "2. ๊ต์œก: ์ธ๊ฐ„์˜ ํ•™์Šต๊ณผ ๋ฐœ๋‹ฌ์„ ์—ฐ๊ตฌํ•˜๊ณ  ํšจ๊ณผ์ ์ธ ๊ต์ˆ˜๋ฒ•์„ ํƒ์ƒ‰ํ•˜๋Š” ํ•™๋ฌธ์ด๋‹ค. (์ฃผ์š” ์—ญ๋Ÿ‰: ์†Œํ†ต๋Šฅ๋ ฅ, ๊ด€์‹ฌ ๋ถ„์•ผ: ์•„๋™ ๋ฐœ๋‹ฌ)\n",
394
+ "3. ์‚ฌํšŒ๋ณต์ง€: ๋‹ค์–‘ํ•œ ์‚ฌํšŒ ๊ตฌ์„ฑ์›์˜ ์‚ถ์˜ ์งˆ ํ–ฅ์ƒ์„ ์œ„ํ•œ ์ œ๋„์™€ ์‹ค์ฒœ ๋ฐฉ๋ฒ•์„ ์—ฐ๊ตฌํ•˜๋Š” ํ•™๋ฌธ์ด๋‹ค. (์ฃผ์š” ์—ญ๋Ÿ‰: ๋Œ€์ธ๊ด€๊ณ„๋Šฅ๋ ฅ, ๊ด€์‹ฌ ๋ถ„์•ผ: ์‚ฌํšŒ์  ์•ฝ์ž ์ง€์›)\n",
395
+ "\n",
396
+ "### ์ถœ๋ ฅ:\n",
397
+ "\"์‹ฌ๋ฆฌํ•™์„ ํ†ตํ•ด ์„ฌ์„ธํ•œ ๊ฐ์ •์˜ ๊นŠ์ด๋ฅผ ๋А๋ผ๊ณ , ๊ต์œก์€ ์•„์ด๋“ค์˜ ์ž ์žฌ๋ ฅ์„ ๊นจ์šฐ๋ฉฐ ์„ฑ์žฅ์‹œํ‚ค๋Š” ๋ฐ ํฐ ๊ธฐ์จ์„ ๋А๊ผˆ์Šต๋‹ˆ๋‹ค. ์‚ฌํšŒ๋ณต์ง€์—์„œ๋Š” ๋ณต์žกํ•œ ์‚ฌํšŒ ๋ฌธ์ œ ์†์—์„œ๋„ ๋”ฐ๋œปํ•œ ์†๊ธธ๋กœ ์–ด๋ ค์›€์„ ๊ฒช๋Š” ์ด๋“ค์„ ๋•๋Š” ๊ฒƒ์ด ํฐ ๋ณด๋žŒ์ด์—ˆ์Šต๋‹ˆ๋‹ค.\"\n"
398
+ ]
399
+ }
400
+ ],
401
+ "source": [
402
+ "# ์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•  ํ…์ŠคํŠธ ๋˜๋Š” ์ž…๋ ฅ๊ฐ’\n",
403
+ "prompt = \"\"\"### ๋ช…๋ น:\n",
404
+ "๋‹ค์Œ ์ „๊ณต ์ •๋ณด๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ํ•™์ƒ์˜ ํฅ๋ฏธ์™€ ํ™œ๋™์„ ๋ฐ˜์˜ํ•œ ์ƒ๊ธฐ๋ถ€ ๋ฌธ๊ตฌ๋ฅผ ์ž‘์„ฑํ•˜์„ธ์š”.\n",
405
+ "\n",
406
+ "### ์ž…๋ ฅ:\n",
407
+ "1. ์‹ฌ๋ฆฌ: ์ธ๊ฐ„์˜ ํ–‰๋™๊ณผ ์ •์‹  ๊ณผ์ •์„ ๊ณผํ•™์ ์œผ๋กœ ํƒ๊ตฌํ•˜๋Š” ํ•™๋ฌธ์ด๋‹ค. (์ฃผ์š” ์—ญ๋Ÿ‰: ๊ณต๊ฐ๋Šฅ๋ ฅ, ๊ด€์‹ฌ ๋ถ„์•ผ: ๊ฐ์ •)\n",
408
+ "2. ๊ต์œก: ์ธ๊ฐ„์˜ ํ•™์Šต๊ณผ ๋ฐœ๋‹ฌ์„ ์—ฐ๊ตฌํ•˜๊ณ  ํšจ๊ณผ์ ์ธ ๊ต์ˆ˜๋ฒ•์„ ํƒ์ƒ‰ํ•˜๋Š” ํ•™๋ฌธ์ด๋‹ค. (์ฃผ์š” ์—ญ๋Ÿ‰: ์†Œํ†ต๋Šฅ๋ ฅ, ๊ด€์‹ฌ ๋ถ„์•ผ: ์•„๋™ ๋ฐœ๋‹ฌ)\n",
409
+ "3. ์‚ฌํšŒ๋ณต์ง€: ๋‹ค์–‘ํ•œ ์‚ฌํšŒ ๊ตฌ์„ฑ์›์˜ ์‚ถ์˜ ์งˆ ํ–ฅ์ƒ์„ ์œ„ํ•œ ์ œ๋„์™€ ์‹ค์ฒœ ๋ฐฉ๋ฒ•์„ ์—ฐ๊ตฌํ•˜๋Š” ํ•™๋ฌธ์ด๋‹ค. (์ฃผ์š” ์—ญ๋Ÿ‰: ๋Œ€์ธ๊ด€๊ณ„๋Šฅ๋ ฅ, ๊ด€์‹ฌ ๋ถ„์•ผ: ์‚ฌํšŒ์  ์•ฝ์ž ์ง€์›)\n",
410
+ "\n",
411
+ "### ์ถœ๋ ฅ:\n",
412
+ "\"\"\"\n",
413
+ "\n",
414
+ "# ์ž…๋ ฅ๊ฐ’์„ ํ† ํฌ๋‚˜์ด์ €๋ฅผ ํ†ตํ•ด ์ˆซ์ž ํ† ํฐ์œผ๋กœ ๋ณ€ํ™˜\n",
415
+ "# return_tensors=\"pt\" ์ž…๋ ฅ๊ฐ’์„ ์ˆซ์ž ํ† ํฐํ™”ํ•˜์—ฌ ํŒŒ์ดํ† ์ง€ ํ…์„œ ํ˜•ํƒœ๋กœ ๋ฆฌํ„ด\n",
416
+ "inputs = tokenizer(prompt, return_tensors=\"pt\").to(device)\n",
417
+ "\n",
418
+ "# gpt๋Š” ์ž…๋ ฅ ์ž์ฒด๊ฐ€ ํ•ญ์ƒ ํ•˜๋‚˜์˜ ์—ฐ์†๋œ ๋ฌธ์žฅ ์Šคํ€€์Šค์ด๊ธฐ ๋•Œ๋ฌธ์— ๋ฌธ์žฅ ๊ตฌ๋ถ„์ด ํ•„์š”๏ฟฝ๏ฟฝ์Œ\n",
419
+ "if 'token_type_ids' in inputs:\n",
420
+ " inputs.pop('token_type_ids')\n",
421
+ "\n",
422
+ "# torch.no_grad() ์ถ”๋ก  ์‹œ์—๋Š” ๊ธฐ์šธ๊ธฐ ๊ฒŒ์‚ฐํ•˜์ง€ ์•Š๊ฒŒํ•˜์—ฌ ์†๋„/๋ฉ”๋ชจ๋ฆฌ ์ ˆ์•ฝ -> ์™œ ์ด๋ ‡๊ฒŒ ํ•ด์•ผํ•˜๋‚˜?\n",
423
+ "with torch.no_grad():\n",
424
+ " # model.generate() ์ฃผ์–ด์ง„ ์ž…๋ ฅ์— ๋Œ€ํ•ด ํ…์ŠคํŠธ๋ฅผ ์ƒ์„ฑํ•จ\n",
425
+ " ## ์ž์„ธํ•œ ๋‚ด์šฉ๊ณผ ์ดํ•ด๋Š” ๋…ธ์…˜ ์ฐธ๊ณ \n",
426
+ " outputs = model.generate(\n",
427
+ " **inputs,\n",
428
+ " # ์ตœ๋Œ€ 80๊ฐœ์˜ ์ƒˆ๋กœ์šด ํ† ํฐ ์ƒ์„ฑ\n",
429
+ " ## ๋ชจ๋ธ์ด ์ƒˆ๋กœ ์ƒ์„ฑํ•  ์ตœ๋Œ€ ํ† ํฐ์˜ ๊ฐœ์ˆ˜\n",
430
+ " max_new_tokens=150,\n",
431
+ " # ํ™•๋ฅ  ๊ธฐ๋ฐ˜ ์ƒ˜ํ”Œ๋ง ํ™œ์„ฑํ™”\n",
432
+ " ## ๋ชจ๋ธ์ด ๋‹ค์Œ ํ† ํฐ์„ ์„ ํƒํ•  ๋•Œ ๊ฐ€์žฅ ํ™•๋ฅ  ๋†’์€ ๋‹จ์–ด๋ฅผ ๋ฌด์กฐ๊ฑด ๊ณ ๋ฅด๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ํ™•๋ฅ  ๋ถ„ํฌ์—์„œ ๋ฌด์ž‘์œ„๋กœ ํ•˜๋‚˜ ์ƒ˜ํ”Œ๋ง\n",
433
+ " do_sample=True,\n",
434
+ " # ํ™•๋ฅ  ๋†’์€ ์ƒ์œ„ 50๊ฐœ ์ค‘์—์„œ ์„ ํƒ\n",
435
+ " ## ์ƒ˜ํ”Œ๋งํ•  ๋•Œ ์ƒ์œ„ k๊ฐœ์˜ ๋‹จ์–ด๋งŒ์œผ๋กœ ํ›„๋ณด๋ฅผ ์ œํ•œ\n",
436
+ " top_k=50,\n",
437
+ " # ๋ˆ„์  ํ™•๋ฅ  95%๊นŒ์ง€ ํฌํ•จํ•œ ํ›„๋ณด๊ตฐ์—์„œ ์„ ํƒ\n",
438
+ " ## ์ƒ์œ„ ๋‹จ์œ„๋“ค์˜ ๋ˆ„์ ํ™”๋ฅ ์ด 95% ๋„˜์„ ๋•Œ๊นŒ์ง€ ํ›„๋ณด๊ตฐ์„ ๋ˆ„์ ์‹œํ‚ด, ๊ทธ ์•ˆ์—์„œ ์ƒ˜ํ”Œ๋ง\n",
439
+ " top_p=0.95,\n",
440
+ " # ์ฐฝ์˜์„ฑ ์กฐ์ ˆ ๊ฐ’\n",
441
+ " temperature=0.8,\n",
442
+ " repetition_penalty=1.1\n",
443
+ " )\n",
444
+ "\n",
445
+ "# ํ† ํฐ์„ ํ…์ŠคํŠธ๋กœ ๋””์ฝ”๋”ฉ\n",
446
+ "# ๋ชจ๋ธ์ด ์ƒ์„ฑํ•œ ํ† ํฐ ์‹œํ€€์Šค ์ค‘ ์ฒซ๋ฒˆ ์งธ ๊ฒฐ๊ณผ๋ฅผ\n",
447
+ "# skip_special_tokens=True ํŠน์ˆ˜ํ† ํฐ ์ œ๊ฑฐ\n",
448
+ "result = tokenizer.decode(outputs[0], skip_special_tokens=True)\n",
449
+ "print(\"\\n๐Ÿ“„ ์ƒ์„ฑ๋œ ๋ฌธ์žฅ:\\n\")\n",
450
+ "print(result)"
451
+ ]
452
+ },
453
+ {
454
+ "cell_type": "code",
455
+ "execution_count": null,
456
+ "id": "7f17e54f-824f-4c2c-9318-bfcf92c03315",
457
+ "metadata": {},
458
+ "outputs": [],
459
+ "source": []
460
+ }
461
+ ],
462
+ "metadata": {
463
+ "kernelspec": {
464
+ "display_name": "Python [conda env:base] *",
465
+ "language": "python",
466
+ "name": "conda-base-py"
467
+ },
468
+ "language_info": {
469
+ "codemirror_mode": {
470
+ "name": "ipython",
471
+ "version": 3
472
+ },
473
+ "file_extension": ".py",
474
+ "mimetype": "text/x-python",
475
+ "name": "python",
476
+ "nbconvert_exporter": "python",
477
+ "pygments_lexer": "ipython3",
478
+ "version": "3.12.7"
479
+ }
480
+ },
481
+ "nbformat": 4,
482
+ "nbformat_minor": 5
483
+ }
prototype/kcmii_lm_test.ipynb ADDED
@@ -0,0 +1,1104 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "cells": [
3
+ {
4
+ "cell_type": "code",
5
+ "execution_count": 2,
6
+ "id": "89eeae89-a93f-4afd-be82-7299362efd13",
7
+ "metadata": {},
8
+ "outputs": [
9
+ {
10
+ "name": "stdout",
11
+ "output_type": "stream",
12
+ "text": [
13
+ "Collecting torch\n",
14
+ " Downloading torch-2.7.0-cp310-none-macosx_11_0_arm64.whl.metadata (29 kB)\n",
15
+ "Collecting transformers\n",
16
+ " Downloading transformers-4.51.3-py3-none-any.whl.metadata (38 kB)\n",
17
+ "Requirement already satisfied: filelock in /opt/anaconda3/envs/report_error_detector/lib/python3.10/site-packages (from torch) (3.18.0)\n",
18
+ "Requirement already satisfied: typing-extensions>=4.10.0 in /opt/anaconda3/envs/report_error_detector/lib/python3.10/site-packages (from torch) (4.12.2)\n",
19
+ "Collecting sympy>=1.13.3 (from torch)\n",
20
+ " Downloading sympy-1.14.0-py3-none-any.whl.metadata (12 kB)\n",
21
+ "Collecting networkx (from torch)\n",
22
+ " Downloading networkx-3.4.2-py3-none-any.whl.metadata (6.3 kB)\n",
23
+ "Requirement already satisfied: jinja2 in /opt/anaconda3/envs/report_error_detector/lib/python3.10/site-packages (from torch) (3.1.6)\n",
24
+ "Requirement already satisfied: fsspec in /opt/anaconda3/envs/report_error_detector/lib/python3.10/site-packages (from torch) (2025.3.0)\n",
25
+ "Requirement already satisfied: huggingface-hub<1.0,>=0.30.0 in /opt/anaconda3/envs/report_error_detector/lib/python3.10/site-packages (from transformers) (0.30.2)\n",
26
+ "Requirement already satisfied: numpy>=1.17 in /opt/anaconda3/envs/report_error_detector/lib/python3.10/site-packages (from transformers) (2.2.5)\n",
27
+ "Requirement already satisfied: packaging>=20.0 in /opt/anaconda3/envs/report_error_detector/lib/python3.10/site-packages (from transformers) (24.2)\n",
28
+ "Requirement already satisfied: pyyaml>=5.1 in /opt/anaconda3/envs/report_error_detector/lib/python3.10/site-packages (from transformers) (6.0.2)\n",
29
+ "Collecting regex!=2019.12.17 (from transformers)\n",
30
+ " Downloading regex-2024.11.6-cp310-cp310-macosx_11_0_arm64.whl.metadata (40 kB)\n",
31
+ "Requirement already satisfied: requests in /opt/anaconda3/envs/report_error_detector/lib/python3.10/site-packages (from transformers) (2.32.3)\n",
32
+ "Collecting tokenizers<0.22,>=0.21 (from transformers)\n",
33
+ " Downloading tokenizers-0.21.1-cp39-abi3-macosx_11_0_arm64.whl.metadata (6.8 kB)\n",
34
+ "Collecting safetensors>=0.4.3 (from transformers)\n",
35
+ " Downloading safetensors-0.5.3-cp38-abi3-macosx_11_0_arm64.whl.metadata (3.8 kB)\n",
36
+ "Requirement already satisfied: tqdm>=4.27 in /opt/anaconda3/envs/report_error_detector/lib/python3.10/site-packages (from transformers) (4.67.1)\n",
37
+ "Collecting mpmath<1.4,>=1.1.0 (from sympy>=1.13.3->torch)\n",
38
+ " Downloading mpmath-1.3.0-py3-none-any.whl.metadata (8.6 kB)\n",
39
+ "Requirement already satisfied: MarkupSafe>=2.0 in /opt/anaconda3/envs/report_error_detector/lib/python3.10/site-packages (from jinja2->torch) (3.0.2)\n",
40
+ "Requirement already satisfied: charset-normalizer<4,>=2 in /opt/anaconda3/envs/report_error_detector/lib/python3.10/site-packages (from requests->transformers) (3.3.2)\n",
41
+ "Requirement already satisfied: idna<4,>=2.5 in /opt/anaconda3/envs/report_error_detector/lib/python3.10/site-packages (from requests->transformers) (3.7)\n",
42
+ "Requirement already satisfied: urllib3<3,>=1.21.1 in /opt/anaconda3/envs/report_error_detector/lib/python3.10/site-packages (from requests->transformers) (2.3.0)\n",
43
+ "Requirement already satisfied: certifi>=2017.4.17 in /opt/anaconda3/envs/report_error_detector/lib/python3.10/site-packages (from requests->transformers) (2025.4.26)\n",
44
+ "Downloading torch-2.7.0-cp310-none-macosx_11_0_arm64.whl (68.6 MB)\n",
45
+ "\u001b[2K \u001b[90mโ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”\u001b[0m \u001b[32m68.6/68.6 MB\u001b[0m \u001b[31m58.7 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0ma \u001b[36m0:00:01\u001b[0m\n",
46
+ "Downloading transformers-4.51.3-py3-none-any.whl (10.4 MB)\n",
47
+ "\u001b[2K \u001b[90mโ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”\u001b[0m \u001b[32m10.4/10.4 MB\u001b[0m \u001b[31m55.4 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
48
+ "\u001b[?25hDownloading regex-2024.11.6-cp310-cp310-macosx_11_0_arm64.whl (284 kB)\n",
49
+ "Downloading safetensors-0.5.3-cp38-abi3-macosx_11_0_arm64.whl (418 kB)\n",
50
+ "Downloading sympy-1.14.0-py3-none-any.whl (6.3 MB)\n",
51
+ "\u001b[2K \u001b[90mโ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”\u001b[0m \u001b[32m6.3/6.3 MB\u001b[0m \u001b[31m54.9 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
52
+ "Downloading tokenizers-0.21.1-cp39-abi3-macosx_11_0_arm64.whl (2.7 MB)\n",
53
+ "\u001b[2K \u001b[90mโ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”๏ฟฝ๏ฟฝ๏ฟฝโ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”\u001b[0m \u001b[32m2.7/2.7 MB\u001b[0m \u001b[31m49.1 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
54
+ "\u001b[?25hDownloading networkx-3.4.2-py3-none-any.whl (1.7 MB)\n",
55
+ "\u001b[2K \u001b[90mโ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”\u001b[0m \u001b[32m1.7/1.7 MB\u001b[0m \u001b[31m45.7 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
56
+ "Downloading mpmath-1.3.0-py3-none-any.whl (536 kB)\n",
57
+ "\u001b[2K \u001b[90mโ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”\u001b[0m \u001b[32m536.2/536.2 kB\u001b[0m \u001b[31m21.3 MB/s\u001b[0m eta \u001b[36m0:00:00\u001b[0m\n",
58
+ "Installing collected packages: mpmath, sympy, safetensors, regex, networkx, torch, tokenizers, transformers\n",
59
+ "Successfully installed mpmath-1.3.0 networkx-3.4.2 regex-2024.11.6 safetensors-0.5.3 sympy-1.14.0 tokenizers-0.21.1 torch-2.7.0 transformers-4.51.3\n"
60
+ ]
61
+ }
62
+ ],
63
+ "source": [
64
+ "# ๋ชจ๋ธ ์ž„ํฌํŠธ์™€ ํ…Œ์ŠคํŠธ์˜ ๊ธฐ๋ณธ ํŒจํ‚ค์ง€ ์„ค์น˜\n",
65
+ "!pip install torch transformers"
66
+ ]
67
+ },
68
+ {
69
+ "cell_type": "code",
70
+ "execution_count": 1,
71
+ "id": "e710baec-6288-410c-9ca3-28ab64064613",
72
+ "metadata": {},
73
+ "outputs": [
74
+ {
75
+ "name": "stdout",
76
+ "output_type": "stream",
77
+ "text": [
78
+ "MPS ์‚ฌ์šฉ ๊ฐ€๋Šฅ ์—ฌ๋ถ€: True\n",
79
+ "MPS ์ค€๋น„ ์™„๋ฃŒ ์—ฌ๋ถ€: True\n"
80
+ ]
81
+ }
82
+ ],
83
+ "source": [
84
+ "import torch\n",
85
+ "print(\"MPS ์‚ฌ์šฉ ๊ฐ€๋Šฅ ์—ฌ๋ถ€:\", torch.backends.mps.is_available())\n",
86
+ "print(\"MPS ์ค€๋น„ ์™„๋ฃŒ ์—ฌ๋ถ€:\", torch.backends.mps.is_built())"
87
+ ]
88
+ },
89
+ {
90
+ "cell_type": "code",
91
+ "execution_count": 1,
92
+ "id": "00c17b86-2c03-4d87-99aa-47511bab5715",
93
+ "metadata": {},
94
+ "outputs": [
95
+ {
96
+ "name": "stderr",
97
+ "output_type": "stream",
98
+ "text": [
99
+ "/opt/anaconda3/envs/report_error_detector/lib/python3.10/site-packages/tqdm/auto.py:21: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html\n",
100
+ " from .autonotebook import tqdm as notebook_tqdm\n"
101
+ ]
102
+ },
103
+ {
104
+ "ename": "NameError",
105
+ "evalue": "name 'torch' is not defined",
106
+ "output_type": "error",
107
+ "traceback": [
108
+ "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
109
+ "\u001b[0;31mNameError\u001b[0m Traceback (most recent call last)",
110
+ "Cell \u001b[0;32mIn[1], line 7\u001b[0m\n\u001b[1;32m 2\u001b[0m \u001b[38;5;28;01mfrom\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;21;01mtransformers\u001b[39;00m\u001b[38;5;250m \u001b[39m\u001b[38;5;28;01mimport\u001b[39;00m AutoTokenizer, AutoModelForCausalLM\n\u001b[1;32m 4\u001b[0m \u001b[38;5;66;03m# ๋””๋ฐ”์ด์Šค ์„ค์ • (ํ•ด๋‹น ๊ธฐ๊ธฐ์—์„œ mps๊ฐ€ ์‚ฌ์šฉ๊ฐ€๋Šฅํ•œ์ง€ ํ™•์ธ)\u001b[39;00m\n\u001b[1;32m 5\u001b[0m \u001b[38;5;66;03m# ํ™•์ธ ํ›„ ๋ชจ๋ธ/๋ฐ์ดํ„ฐ๋ฅผ gpu / cpu๋กœ ํ• ์ง€ ๊ฒฐ์ •\u001b[39;00m\n\u001b[1;32m 6\u001b[0m \u001b[38;5;66;03m# torch.backends.mps.is_available() -> mps ์‚ฌ์šฉ ์—ฌ๋ถ€ ํ™•์ธ\u001b[39;00m\n\u001b[0;32m----> 7\u001b[0m device \u001b[38;5;241m=\u001b[39m \u001b[43mtorch\u001b[49m\u001b[38;5;241m.\u001b[39mdevice(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mmps\u001b[39m\u001b[38;5;124m\"\u001b[39m \u001b[38;5;28;01mif\u001b[39;00m torch\u001b[38;5;241m.\u001b[39mbackends\u001b[38;5;241m.\u001b[39mmps\u001b[38;5;241m.\u001b[39mis_available() \u001b[38;5;28;01melse\u001b[39;00m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mcpu\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[1;32m 8\u001b[0m \u001b[38;5;28mprint\u001b[39m(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124m์‚ฌ์šฉ ์ค‘์ธ ๋””๋ฐ”์ด์Šค:\u001b[39m\u001b[38;5;124m\"\u001b[39m, device)\n\u001b[1;32m 10\u001b[0m \u001b[38;5;66;03m# ๋ชจ๋ธ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ\u001b[39;00m\n\u001b[1;32m 11\u001b[0m \u001b[38;5;66;03m# model_name ํ—ˆ๊น…ํŽ˜์ด์Šค์—์„œ ๋ถˆ๋Ÿฌ์˜ฌ ๋ชจ๋ธ ์ง€์ •\u001b[39;00m\n",
111
+ "\u001b[0;31mNameError\u001b[0m: name 'torch' is not defined"
112
+ ]
113
+ }
114
+ ],
115
+ "source": [
116
+ "# ํ—ˆ๊น…ํŽ˜์ด์Šค์— ์žˆ๋Š” ๋ชจ๋ธ์„ ์ž„ํฌํŠธ ๋ฐ ํ† ํฌ๋‚˜์ด์ € ๋กœ๋”ฉ์šฉ ๋„๊ตฌ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ\n",
117
+ "from transformers import AutoTokenizer, AutoModelForCausalLM\n",
118
+ "\n",
119
+ "# ๋””๋ฐ”์ด์Šค ์„ค์ • (ํ•ด๋‹น ๊ธฐ๊ธฐ์—์„œ mps๊ฐ€ ์‚ฌ์šฉ๊ฐ€๋Šฅํ•œ์ง€ ํ™•์ธ)\n",
120
+ "# ํ™•์ธ ํ›„ ๋ชจ๋ธ/๋ฐ์ดํ„ฐ๋ฅผ gpu / cpu๋กœ ํ• ์ง€ ๊ฒฐ์ •\n",
121
+ "# torch.backends.mps.is_available() -> mps ์‚ฌ์šฉ ์—ฌ๋ถ€ ํ™•์ธ\n",
122
+ "device = torch.device(\"mps\" if torch.backends.mps.is_available() else \"cpu\")\n",
123
+ "print(\"์‚ฌ์šฉ ์ค‘์ธ ๋””๋ฐ”์ด์Šค:\", device)\n",
124
+ "\n",
125
+ "# ๋ชจ๋ธ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ\n",
126
+ "# model_name ํ—ˆ๊น…ํŽ˜์ด์Šค์—์„œ ๋ถˆ๋Ÿฌ์˜ฌ ๋ชจ๋ธ ์ง€์ •\n",
127
+ "model_name = \"EleutherAI/polyglot-ko-1.3b\"\n",
128
+ "# ํ•ด๋‹น ๋ชจ๋ธ๊ณผ ํ˜ธํ™˜๋˜๋Š” ํ† ํฌ๋‚˜์ด์ €(๋ฌธ์ž๏ฟฝ๏ฟฝ๏ฟฝ -> ์ˆซ์ž ๋ณ€ํ™˜๊ธฐ) ๋ถˆ๋Ÿฌ์˜ค๊ธฐ ## ํ† ํฌ๋‚˜์ด์ €์— ๋Œ€ํ•ด์„œ ์•Œ๊ธฐ\n",
129
+ "## ์ž์—ฐ์–ด๋ฅผ ๋ชจ๋ธ์ด ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ์ˆซ์ž ํ† ํฐ์œผ๋กœ ๋ฐ”๊พธ๋Š” ๋„๊ตฌ\n",
130
+ "## ๋‹จ์ง€ ํ† ํฌ๋‚˜์ด์ €๋Š” ๋‹จ์–ด๋ฅผ ์ˆซ์žํ™”ํ•ด์„œ ๋ช…๋ช…ํ•œ ๋„๊ตฌ์ผ ๋ฟ ์–ด๋– ํ•œ ์˜๋ฏธ๋„ ์—†์Œ\n",
131
+ "## +) ์ž„๋ฒ ๋”ฉ์€ ๋‹จ์–ด์˜ ์˜๋ฏธ๊ฐ€ ๋‹ด๊ฒจ ์žˆ๋Š” ๋ฒกํ„ฐ ๊ณต๊ฐ„\n",
132
+ "tokenizer = AutoTokenizer.from_pretrained(model_name)\n",
133
+ "# ํ…์ŠคํŠธ ์ƒ์„ฑ์šฉ ๋ชจ๋ธ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ / to(device) ๋ชจ๋ธ์„ ์•„๊นŒ ์„ค์ •ํ•œ ๋””๋ฐ”์ด์Šค๋กœ ์ด๋™\n",
134
+ "model = AutoModelForCausalLM.from_pretrained(model_name).to(device)\n",
135
+ "\n",
136
+ "# ์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•  ํ…์ŠคํŠธ ๋˜๋Š” ์ž…๋ ฅ๊ฐ’\n",
137
+ "prompt = \"์–ด๋ฌธํ•™์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€?\\nํ•ด์„:\"\n",
138
+ "\n",
139
+ "# ์ž…๋ ฅ๊ฐ’์„ ํ† ํฌ๋‚˜์ด์ €๋ฅผ ํ†ตํ•ด ์ˆซ์ž ํ† ํฐ์œผ๋กœ ๋ณ€ํ™˜\n",
140
+ "# return_tensors=\"pt\" ์ž…๋ ฅ๊ฐ’์„ ์ˆซ์ž ํ† ํฐํ™”ํ•˜์—ฌ ํŒŒ์ดํ† ์ง€ ํ…์„œ ํ˜•ํƒœ๋กœ ๋ฆฌํ„ด\n",
141
+ "inputs = tokenizer(prompt, return_tensors=\"pt\").to(device)\n",
142
+ "\n",
143
+ "# GPT ๋ชจ๋ธ์— ๋ถˆํ•„์š”ํ•œ token_type_ids ์ œ๊ฑฐ\n",
144
+ "# ํ† ํฐํ™”ํ•˜๋ฉด ์–ด๋–ป๊ฒŒ ๋‚˜์˜ค๊ธธ๋ž˜ ๊ถ๊ธˆํ•˜๊ธฐ๋„ ํ•˜๊ณ \n",
145
+ "# gpt ๋ชจ๋ธ๊ณผ bert๋ชจ๋ธ์ด๋ž‘ ๋จธ๊ฐ€ ๋‹ค๋ฅธ์ง€๋„ ํ™•์ธํ•ด์„œ ์™œ ๋ถˆํ•„์š”ํ•œ์ง€ ํ™•์ธ์ด ํ•„์š”ํ•จ\n",
146
+ "# {\n",
147
+ "# 'input_ids': tensor([[ 101, ... , 102]]),\n",
148
+ "# 'attention_mask': tensor([[1, 1, 1, ...]]),\n",
149
+ "# 'token_type_ids': tensor([[0, 0, 0, ...]])\n",
150
+ "# }\n",
151
+ "# input_ids : ๋‹จ์–ด๋ฅผ ์ˆซ์ž๋กœ ๋ฐ”๊พผ ๊ฒฐ๊ณผ\n",
152
+ "# attetion_mask : ์‹ค์ œ ๋‹จ์–ด(1) vs ํŒจ๋”ฉ(0) ๊ตฌ๋ถ„\n",
153
+ "# token_type_ids : ๋‘ ๋ฌธ์žฅ์„ ๊ตฌ๋ถ„ํ•˜๊ธฐ ์œ„ํ•œ segment ID\n",
154
+ "\n",
155
+ "# [CLS] ๋‚˜๋Š” ์‚ฌ๊ณผ๋ฅผ ๋จน์—ˆ๋‹ค [SEP] ํ•˜์ง€๋งŒ ๋ฐฐ๋Š” ์•ˆ ๋จน์—ˆ๋‹ค [SEP]\n",
156
+ "# โ†‘ ๋ฌธ์žฅ A โ†‘ ๋ฌธ์žฅ B\n",
157
+ "# token_type_ids: [0, 0, 0, 0, 0, 1, 1, 1, 1, 1]\n",
158
+ "\n",
159
+ "# gpt๋Š” ์ž…๋ ฅ ์ž์ฒด๊ฐ€ ํ•ญ์ƒ ํ•˜๋‚˜์˜ ์—ฐ์†๋œ ๋ฌธ์žฅ ์Šคํ€€์Šค์ด๊ธฐ ๋•Œ๋ฌธ์— ๋ฌธ์žฅ ๊ตฌ๋ถ„์ด ํ•„์š”์—†์Œ\n",
160
+ "if 'token_type_ids' in inputs:\n",
161
+ " inputs.pop('token_type_ids')\n",
162
+ "\n",
163
+ "# torch.no_grad() ์ถ”๋ก  ์‹œ์—๋Š” ๊ธฐ์šธ๊ธฐ ๊ฒŒ์‚ฐํ•˜์ง€ ์•Š๊ฒŒํ•˜์—ฌ ์†๋„/๋ฉ”๋ชจ๋ฆฌ ์ ˆ์•ฝ -> ์™œ ์ด๋ ‡๊ฒŒ ํ•ด์•ผํ•˜๋‚˜?\n",
164
+ "with torch.no_grad():\n",
165
+ " # model.generate() ์ฃผ์–ด์ง„ ์ž…๋ ฅ์— ๋Œ€ํ•ด ํ…์ŠคํŠธ๋ฅผ ์ƒ์„ฑํ•จ\n",
166
+ " ## ์ž์„ธํ•œ ๋‚ด์šฉ๊ณผ ์ดํ•ด๋Š” ๋…ธ์…˜ ์ฐธ๊ณ \n",
167
+ " outputs = model.generate(\n",
168
+ " **inputs,\n",
169
+ " # ์ตœ๋Œ€ 80๊ฐœ์˜ ์ƒˆ๋กœ์šด ํ† ํฐ ์ƒ์„ฑ\n",
170
+ " ## ๋ชจ๋ธ์ด ์ƒˆ๋กœ ์ƒ์„ฑํ•  ์ตœ๋Œ€ ํ† ํฐ์˜ ๊ฐœ์ˆ˜\n",
171
+ " max_new_tokens=100,\n",
172
+ " # ํ™•๋ฅ  ๊ธฐ๋ฐ˜ ์ƒ˜ํ”Œ๋ง ํ™œ์„ฑํ™”\n",
173
+ " ## ๋ชจ๋ธ์ด ๋‹ค์Œ ํ† ํฐ์„ ์„ ํƒํ•  ๋•Œ ๊ฐ€์žฅ ํ™•๋ฅ  ๋†’์€ ๋‹จ์–ด๋ฅผ ๋ฌด์กฐ๊ฑด ๊ณ ๋ฅด๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ํ™•๋ฅ  ๋ถ„ํฌ์—์„œ ๋ฌด์ž‘์œ„๋กœ ํ•˜๋‚˜ ์ƒ˜ํ”Œ๋ง\n",
174
+ " do_sample=True,\n",
175
+ " # ํ™•๋ฅ  ๋†’์€ ์ƒ์œ„ 50๊ฐœ ์ค‘์—์„œ ์„ ํƒ\n",
176
+ " ## ์ƒ˜ํ”Œ๋งํ•  ๋•Œ ์ƒ์œ„ k๊ฐœ์˜ ๋‹จ์–ด๋งŒ์œผ๋กœ ํ›„๋ณด๋ฅผ ์ œํ•œ\n",
177
+ " top_k=50,\n",
178
+ " # ๋ˆ„์  ํ™•๋ฅ  95%๊นŒ์ง€ ํฌํ•จํ•œ ํ›„๋ณด๊ตฐ์—์„œ ์„ ํƒ\n",
179
+ " ## ์ƒ์œ„ ๋‹จ์œ„๋“ค์˜ ๋ˆ„์ ํ™”๋ฅ ์ด 95% ๋„˜์„ ๋•Œ๊นŒ์ง€ ํ›„๋ณด๊ตฐ์„ ๋ˆ„์ ์‹œํ‚ด, ๊ทธ ์•ˆ์—์„œ ์ƒ˜ํ”Œ๋ง\n",
180
+ " top_p=0.95,\n",
181
+ " # ์ฐฝ์˜์„ฑ ์กฐ์ ˆ ๊ฐ’\n",
182
+ " temperature=0.8\n",
183
+ " )\n",
184
+ "\n",
185
+ "# ํ† ํฐ์„ ํ…์ŠคํŠธ๋กœ ๋””์ฝ”๋”ฉ\n",
186
+ "# ๋ชจ๋ธ์ด ์ƒ์„ฑํ•œ ํ† ํฐ ์‹œํ€€์Šค ์ค‘ ์ฒซ๋ฒˆ ์งธ ๊ฒฐ๊ณผ๋ฅผ\n",
187
+ "# skip_special_tokens=True ํŠน์ˆ˜ํ† ํฐ ์ œ๊ฑฐ\n",
188
+ "result = tokenizer.decode(outputs[0], skip_special_tokens=True)\n",
189
+ "print(\"\\n๐Ÿ“„ ์ƒ์„ฑ๋œ ๋ฌธ์žฅ:\\n\")\n",
190
+ "print(result)"
191
+ ]
192
+ },
193
+ {
194
+ "cell_type": "code",
195
+ "execution_count": 3,
196
+ "id": "ca568fec-565c-434f-98a2-4d3830768f61",
197
+ "metadata": {},
198
+ "outputs": [
199
+ {
200
+ "name": "stderr",
201
+ "output_type": "stream",
202
+ "text": [
203
+ "Setting `pad_token_id` to `eos_token_id`:2 for open-end generation.\n"
204
+ ]
205
+ },
206
+ {
207
+ "name": "stdout",
208
+ "output_type": "stream",
209
+ "text": [
210
+ "\n",
211
+ "๐Ÿ“„ ์ƒ์„ฑ๋œ ๋ฌธ์žฅ:\n",
212
+ "\n",
213
+ "๋„ˆ๋Š” ์–ด๋–ค ๋ชจ๋ธ์ด๋‹ˆ?\n",
214
+ "ํ•ด์„: ๋„ˆ๋Š” ๊ทธ์˜ ๋ชธ์„ ์ˆจ๊ธฐ๊ณ  ๊ทธ์˜ ๋ชธ์„ ํŒ”๊ณ  ์žˆ๊ตฌ๋‚˜.๋ฒˆ์—ญ: ๋„ˆ๋Š” ๋‚˜์˜ ๋ชธ์„ ํŒ”๊ณ  ์žˆ๊ตฌ๋‚˜. ืขึธืจึธื”ึธื” ืœึดืคึฐื ึตื™ ื”ึธืึนืช ืจึธื—ึธื”ึพืžึธื™ึดื ืขึน๏ฟฝ\n"
215
+ ]
216
+ }
217
+ ],
218
+ "source": [
219
+ "# ์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•  ํ…์ŠคํŠธ ๋˜๋Š” ์ž…๋ ฅ๊ฐ’\n",
220
+ "prompt = \"๋„ˆ๋Š” ์–ด๋–ค ๋ชจ๋ธ์ด๋‹ˆ?\\nํ•ด์„:\"\n",
221
+ "\n",
222
+ "# ์ž…๋ ฅ๊ฐ’์„ ํ† ํฌ๋‚˜์ด์ €๋ฅผ ํ†ตํ•ด ์ˆซ์ž ํ† ํฐ์œผ๋กœ ๋ณ€ํ™˜\n",
223
+ "inputs = tokenizer(prompt, return_tensors=\"pt\").to(device)\n",
224
+ "\n",
225
+ "# gpt๋Š” ์ž…๋ ฅ ์ž์ฒด๊ฐ€ ํ•ญ์ƒ ํ•˜๋‚˜์˜ ์—ฐ์†๋œ ๋ฌธ์žฅ ์Šคํ€€์Šค์ด๊ธฐ ๋•Œ๋ฌธ์— ๋ฌธ์žฅ ๊ตฌ๋ถ„์ด ํ•„์š”์—†์Œ\n",
226
+ "if 'token_type_ids' in inputs:\n",
227
+ " inputs.pop('token_type_ids')\n",
228
+ "\n",
229
+ "# torch.no_grad() ์ถ”๋ก  ์‹œ์—๋Š” ๊ธฐ์šธ๊ธฐ ๊ฒŒ์‚ฐํ•˜์ง€ ์•Š๊ฒŒํ•˜์—ฌ ์†๋„/๋ฉ”๋ชจ๋ฆฌ ์ ˆ์•ฝ -> ์™œ ์ด๋ ‡๊ฒŒ ํ•ด์•ผํ•˜๋‚˜?\n",
230
+ "with torch.no_grad():\n",
231
+ " # model.generate() ์ฃผ์–ด์ง„ ์ž…๋ ฅ์— ๋Œ€ํ•ด ํ…์ŠคํŠธ๋ฅผ ์ƒ์„ฑํ•จ\n",
232
+ " ## ์ž์„ธํ•œ ๋‚ด์šฉ๊ณผ ์ดํ•ด๋Š” ๋…ธ์…˜ ์ฐธ๊ณ \n",
233
+ " outputs = model.generate(\n",
234
+ " **inputs,\n",
235
+ " # ์ตœ๋Œ€ 80๊ฐœ์˜ ์ƒˆ๋กœ์šด ํ† ํฐ ์ƒ์„ฑ\n",
236
+ " ## ๋ชจ๋ธ์ด ์ƒˆ๋กœ ์ƒ์„ฑํ•  ์ตœ๋Œ€ ํ† ํฐ์˜ ๊ฐœ์ˆ˜\n",
237
+ " max_new_tokens=100,\n",
238
+ " # ํ™•๋ฅ  ๊ธฐ๋ฐ˜ ์ƒ˜ํ”Œ๋ง ํ™œ์„ฑํ™”\n",
239
+ " ## ๋ชจ๋ธ์ด ๋‹ค์Œ ํ† ํฐ์„ ์„ ํƒํ•  ๋•Œ ๊ฐ€์žฅ ํ™•๋ฅ  ๋†’์€ ๋‹จ์–ด๋ฅผ ๋ฌด์กฐ๊ฑด ๊ณ ๋ฅด๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ํ™•๋ฅ  ๋ถ„ํฌ์—์„œ ๋ฌด์ž‘์œ„๋กœ ํ•˜๋‚˜ ์ƒ˜ํ”Œ๋ง\n",
240
+ " do_sample=True,\n",
241
+ " # ํ™•๋ฅ  ๋†’์€ ์ƒ์œ„ 50๊ฐœ ์ค‘์—์„œ ์„ ํƒ\n",
242
+ " ## ์ƒ˜ํ”Œ๋งํ•  ๋•Œ ์ƒ์œ„ k๊ฐœ์˜ ๋‹จ์–ด๋งŒ์œผ๋กœ ํ›„๋ณด๋ฅผ ์ œํ•œ\n",
243
+ " top_k=50,\n",
244
+ " # ๋ˆ„์  ํ™•๋ฅ  95%๊นŒ์ง€ ํฌํ•จํ•œ ํ›„๋ณด๊ตฐ์—์„œ ์„ ํƒ\n",
245
+ " ## ์ƒ์œ„ ๋‹จ์œ„๋“ค์˜ ๋ˆ„์ ํ™”๋ฅ ์ด 95% ๋„˜์„ ๋•Œ๊นŒ์ง€ ํ›„๋ณด๊ตฐ์„ ๋ˆ„์ ์‹œํ‚ด, ๊ทธ ์•ˆ์—์„œ ์ƒ˜ํ”Œ๋ง\n",
246
+ " top_p=0.95,\n",
247
+ " # ์ฐฝ์˜์„ฑ ์กฐ์ ˆ ๊ฐ’\n",
248
+ " temperature=0.8\n",
249
+ " )\n",
250
+ "\n",
251
+ "# ํ† ํฐ์„ ํ…์ŠคํŠธ๋กœ ๋””์ฝ”๋”ฉ\n",
252
+ "# ๋ชจ๋ธ์ด ์ƒ์„ฑํ•œ ํ† ํฐ ์‹œํ€€์Šค ์ค‘ ์ฒซ๋ฒˆ ์งธ ๊ฒฐ๊ณผ๋ฅผ\n",
253
+ "# skip_special_tokens=True ํŠน์ˆ˜ํ† ํฐ ์ œ๊ฑฐ\n",
254
+ "result = tokenizer.decode(outputs[0], skip_special_tokens=True)\n",
255
+ "print(\"\\n๐Ÿ“„ ์ƒ์„ฑ๋œ ๋ฌธ์žฅ:\\n\")\n",
256
+ "print(result)"
257
+ ]
258
+ },
259
+ {
260
+ "cell_type": "markdown",
261
+ "id": "c01a9f6f-9eb4-4917-bc18-3c33674b7a57",
262
+ "metadata": {},
263
+ "source": [
264
+ "### kcmii ์ง€์นจ์„œ๋กœ ๊ฒฝ๋Ÿ‰ ํ•™์Šต ํ›„ ์„ฑ๋Šฅ ํ…Œ์ŠคํŠธ\n",
265
+ "kcmii์˜ ์ „๊ณต์˜ ์ˆ˜๊ฐ€ 50๊ฐœ ์ •๋„๋˜๊ธฐ ๋•Œ๋ฌธ์— \n",
266
+ "์ „๊ณต ํฅ๋ฏธ์ฒ™๋„ ์กฐํ•ฉ๋ณ„๋กœ ์ƒ๊ธฐ๋ถ€ ๋ฌธ๊ตฌ๋ฅผ ํ•™์Šต์‹œํ‚ค๊ธฐ์—” ๋น„ํšจ์œจ์ ์ด๋ผ๊ณ  ํŒ๋‹จ \n",
267
+ "๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ์ „๊ณต์— ๋Œ€ํ•œ ๊ฐœ๋… ๋จผ์ € ํ•™์Šต ์‹œํ‚จ ํ›„ ์ƒ๊ธฐ๋ถ€ ๋ฌธ๊ตฌ ํ•™์Šต์‹œํ‚ค๋Š” ํ๋ฆ„์œผ๋กœ ๊ฒฐ์ •"
268
+ ]
269
+ },
270
+ {
271
+ "cell_type": "code",
272
+ "execution_count": 30,
273
+ "id": "56bcb149-6237-487e-b93d-dd21889ce93f",
274
+ "metadata": {},
275
+ "outputs": [
276
+ {
277
+ "name": "stderr",
278
+ "output_type": "stream",
279
+ "text": [
280
+ "huggingface/tokenizers: The current process just got forked, after parallelism has already been used. Disabling parallelism to avoid deadlocks...\n",
281
+ "To disable this warning, you can either:\n",
282
+ "\t- Avoid using `tokenizers` before the fork if possible\n",
283
+ "\t- Explicitly set the environment variable TOKENIZERS_PARALLELISM=(true | false)\n"
284
+ ]
285
+ },
286
+ {
287
+ "name": "stdout",
288
+ "output_type": "stream",
289
+ "text": [
290
+ "Requirement already satisfied: datasets in /opt/anaconda3/envs/report_error_detector/lib/python3.10/site-packages (3.5.1)\n",
291
+ "Requirement already satisfied: peft in /opt/anaconda3/envs/report_error_detector/lib/python3.10/site-packages (0.15.2)\n",
292
+ "Requirement already satisfied: accelerate in /opt/anaconda3/envs/report_error_detector/lib/python3.10/site-packages (1.6.0)\n",
293
+ "Requirement already satisfied: filelock in /opt/anaconda3/envs/report_error_detector/lib/python3.10/site-packages (from datasets) (3.18.0)\n",
294
+ "Requirement already satisfied: numpy>=1.17 in /opt/anaconda3/envs/report_error_detector/lib/python3.10/site-packages (from datasets) (2.2.5)\n",
295
+ "Requirement already satisfied: pyarrow>=15.0.0 in /opt/anaconda3/envs/report_error_detector/lib/python3.10/site-packages (from datasets) (20.0.0)\n",
296
+ "Requirement already satisfied: dill<0.3.9,>=0.3.0 in /opt/anaconda3/envs/report_error_detector/lib/python3.10/site-packages (from datasets) (0.3.8)\n",
297
+ "Requirement already satisfied: pandas in /opt/anaconda3/envs/report_error_detector/lib/python3.10/site-packages (from datasets) (2.2.3)\n",
298
+ "Requirement already satisfied: requests>=2.32.2 in /opt/anaconda3/envs/report_error_detector/lib/python3.10/site-packages (from datasets) (2.32.3)\n",
299
+ "Requirement already satisfied: tqdm>=4.66.3 in /opt/anaconda3/envs/report_error_detector/lib/python3.10/site-packages (from datasets) (4.67.1)\n",
300
+ "Requirement already satisfied: xxhash in /opt/anaconda3/envs/report_error_detector/lib/python3.10/site-packages (from datasets) (3.5.0)\n",
301
+ "Requirement already satisfied: multiprocess<0.70.17 in /opt/anaconda3/envs/report_error_detector/lib/python3.10/site-packages (from datasets) (0.70.16)\n",
302
+ "Requirement already satisfied: fsspec<=2025.3.0,>=2023.1.0 in /opt/anaconda3/envs/report_error_detector/lib/python3.10/site-packages (from fsspec[http]<=2025.3.0,>=2023.1.0->datasets) (2025.3.0)\n",
303
+ "Requirement already satisfied: aiohttp in /opt/anaconda3/envs/report_error_detector/lib/python3.10/site-packages (from datasets) (3.11.18)\n",
304
+ "Requirement already satisfied: huggingface-hub>=0.24.0 in /opt/anaconda3/envs/report_error_detector/lib/python3.10/site-packages (from datasets) (0.30.2)\n",
305
+ "Requirement already satisfied: packaging in /opt/anaconda3/envs/report_error_detector/lib/python3.10/site-packages (from datasets) (24.2)\n",
306
+ "Requirement already satisfied: pyyaml>=5.1 in /opt/anaconda3/envs/report_error_detector/lib/python3.10/site-packages (from datasets) (6.0.2)\n",
307
+ "Requirement already satisfied: psutil in /opt/anaconda3/envs/report_error_detector/lib/python3.10/site-packages (from peft) (5.9.0)\n",
308
+ "Requirement already satisfied: torch>=1.13.0 in /opt/anaconda3/envs/report_error_detector/lib/python3.10/site-packages (from peft) (2.7.0)\n",
309
+ "Requirement already satisfied: transformers in /opt/anaconda3/envs/report_error_detector/lib/python3.10/site-packages (from peft) (4.51.3)\n",
310
+ "Requirement already satisfied: safetensors in /opt/anaconda3/envs/report_error_detector/lib/python3.10/site-packages (from peft) (0.5.3)\n",
311
+ "Requirement already satisfied: aiohappyeyeballs>=2.3.0 in /opt/anaconda3/envs/report_error_detector/lib/python3.10/site-packages (from aiohttp->datasets) (2.6.1)\n",
312
+ "Requirement already satisfied: aiosignal>=1.1.2 in /opt/anaconda3/envs/report_error_detector/lib/python3.10/site-packages (from aiohttp->datasets) (1.3.2)\n",
313
+ "Requirement already satisfied: async-timeout<6.0,>=4.0 in /opt/anaconda3/envs/report_error_detector/lib/python3.10/site-packages (from aiohttp->datasets) (5.0.1)\n",
314
+ "Requirement already satisfied: attrs>=17.3.0 in /opt/anaconda3/envs/report_error_detector/lib/python3.10/site-packages (from aiohttp->datasets) (24.3.0)\n",
315
+ "Requirement already satisfied: frozenlist>=1.1.1 in /opt/anaconda3/envs/report_error_detector/lib/python3.10/site-packages (from aiohttp->datasets) (1.6.0)\n",
316
+ "Requirement already satisfied: multidict<7.0,>=4.5 in /opt/anaconda3/envs/report_error_detector/lib/python3.10/site-packages (from aiohttp->datasets) (6.4.3)\n",
317
+ "Requirement already satisfied: propcache>=0.2.0 in /opt/anaconda3/envs/report_error_detector/lib/python3.10/site-packages (from aiohttp->datasets) (0.3.1)\n",
318
+ "Requirement already satisfied: yarl<2.0,>=1.17.0 in /opt/anaconda3/envs/report_error_detector/lib/python3.10/site-packages (from aiohttp->datasets) (1.20.0)\n",
319
+ "Requirement already satisfied: typing-extensions>=3.7.4.3 in /opt/anaconda3/envs/report_error_detector/lib/python3.10/site-packages (from huggingface-hub>=0.24.0->datasets) (4.12.2)\n",
320
+ "Requirement already satisfied: charset-normalizer<4,>=2 in /opt/anaconda3/envs/report_error_detector/lib/python3.10/site-packages (from requests>=2.32.2->datasets) (3.3.2)\n",
321
+ "Requirement already satisfied: idna<4,>=2.5 in /opt/anaconda3/envs/report_error_detector/lib/python3.10/site-packages (from requests>=2.32.2->datasets) (3.7)\n",
322
+ "Requirement already satisfied: urllib3<3,>=1.21.1 in /opt/anaconda3/envs/report_error_detector/lib/python3.10/site-packages (from requests>=2.32.2->datasets) (2.3.0)\n",
323
+ "Requirement already satisfied: certifi>=2017.4.17 in /opt/anaconda3/envs/report_error_detector/lib/python3.10/site-packages (from requests>=2.32.2->datasets) (2025.4.26)\n",
324
+ "Requirement already satisfied: sympy>=1.13.3 in /opt/anaconda3/envs/report_error_detector/lib/python3.10/site-packages (from torch>=1.13.0->peft) (1.14.0)\n",
325
+ "Requirement already satisfied: networkx in /opt/anaconda3/envs/report_error_detector/lib/python3.10/site-packages (from torch>=1.13.0->peft) (3.4.2)\n",
326
+ "Requirement already satisfied: jinja2 in /opt/anaconda3/envs/report_error_detector/lib/python3.10/site-packages (from torch>=1.13.0->peft) (3.1.6)\n",
327
+ "Requirement already satisfied: python-dateutil>=2.8.2 in /opt/anaconda3/envs/report_error_detector/lib/python3.10/site-packages (from pandas->datasets) (2.9.0.post0)\n",
328
+ "Requirement already satisfied: pytz>=2020.1 in /opt/anaconda3/envs/report_error_detector/lib/python3.10/site-packages (from pandas->datasets) (2025.2)\n",
329
+ "Requirement already satisfied: tzdata>=2022.7 in /opt/anaconda3/envs/report_error_detector/lib/python3.10/site-packages (from pandas->datasets) (2025.2)\n",
330
+ "Requirement already satisfied: regex!=2019.12.17 in /opt/anaconda3/envs/report_error_detector/lib/python3.10/site-packages (from transformers->peft) (2024.11.6)\n",
331
+ "Requirement already satisfied: tokenizers<0.22,>=0.21 in /opt/anaconda3/envs/report_error_detector/lib/python3.10/site-packages (from transformers->peft) (0.21.1)\n",
332
+ "Requirement already satisfied: six>=1.5 in /opt/anaconda3/envs/report_error_detector/lib/python3.10/site-packages (from python-dateutil>=2.8.2->pandas->datasets) (1.17.0)\n",
333
+ "Requirement already satisfied: mpmath<1.4,>=1.1.0 in /opt/anaconda3/envs/report_error_detector/lib/python3.10/site-packages (from sympy>=1.13.3->torch>=1.13.0->peft) (1.3.0)\n",
334
+ "Requirement already satisfied: MarkupSafe>=2.0 in /opt/anaconda3/envs/report_error_detector/lib/python3.10/site-packages (from jinja2->torch>=1.13.0->peft) (3.0.2)\n"
335
+ ]
336
+ }
337
+ ],
338
+ "source": [
339
+ "!pip install datasets peft accelerate"
340
+ ]
341
+ },
342
+ {
343
+ "cell_type": "code",
344
+ "execution_count": 1,
345
+ "id": "1f0a84f9-8f1d-4863-a25f-cf8349b3a67f",
346
+ "metadata": {},
347
+ "outputs": [
348
+ {
349
+ "name": "stderr",
350
+ "output_type": "stream",
351
+ "text": [
352
+ "/opt/anaconda3/envs/report_error_detector/lib/python3.10/site-packages/tqdm/auto.py:21: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html\n",
353
+ " from .autonotebook import tqdm as notebook_tqdm\n",
354
+ "Loading checkpoint shards: 100%|โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ| 3/3 [00:01<00:00, 1.68it/s]\n"
355
+ ]
356
+ }
357
+ ],
358
+ "source": [
359
+ "# ํ—ˆ๊น…ํŽ˜์ด์Šค์—์„œ ๋ฐ์ดํ„ฐ์…‹์„ ๋ถˆ๋Ÿฌ์˜ค๊ฑฐ๋‚˜, ๋กœ์ปฌ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์‰ฝ๊ฒŒ ํ•™์Šต์šฉ์œผ๋กœ ์…‹ํŒ…ํ•˜๊ฒŒ ํ•˜๋Š” ํŒจํ‚ค์ง€\n",
360
+ "from datasets import load_dataset\n",
361
+ "# AutoTokenizer ํ…์ŠคํŠธ๋ฅผ ์ˆซ์ž id๋กœ ๋ณ€ํ™˜\n",
362
+ "# AutoModelForCausalLM GPT๋ฅ˜ ์ƒ์„ฑ ๋ชจ๋ธ์„ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ ์œ„ํ•œ ํด๋ž˜์Šค\n",
363
+ "# TrainingArguments ํ•™์Šต ์„ค์ •์„ ๋‹ด๋Š” ๊ฐ์ฒด\n",
364
+ "# Trainer ํ•™์Šต ์ „์ฒด๋ฅผ ๋‹ด๋‹นํ•˜๋Š” ํ•™์Šต ์—”์ง„\n",
365
+ "from transformers import AutoTokenizer, AutoModelForCausalLM, TrainingArguments, Trainer\n",
366
+ "# peft ๊ฒฝ๋Ÿ‰ํŠœ๋‹ LoRA ๊ด€๋ จ ๋„๊ตฌ ์ž„ํฌํŠธ\n",
367
+ "from peft import get_peft_model, LoraConfig, TaskType\n",
368
+ "\n",
369
+ "# 1. ๋กœ์ปฌ์—์„œ ํ•™์Šต ๋ฐ์ดํ„ฐ ๋กœ๋“œ\n",
370
+ "dataset = load_dataset(\"json\", data_files=\"dataset/kcmii_major_instruction_data_summarized.jsonl\", split=\"train\")\n",
371
+ "\n",
372
+ "# 2. ๋ชจ๋ธ ๋ฐ ํ† ํฌ๋‚˜์ด์ € ๋กœ๋”ฉ\n",
373
+ "## ๋ชจ๋ธ ์ž„ํฌํŠธ\n",
374
+ "model_name = \"EleutherAI/polyglot-ko-1.3b\"\n",
375
+ "## ๋ชจ๋ธ์— ์•Œ๋งž์€ ํ† ํฌ๋‚˜์ด์ € ์ž„ํฌํŠธ\n",
376
+ "tokenizer = AutoTokenizer.from_pretrained(model_name)\n",
377
+ "## ๋ถˆ๋Ÿฌ์˜จ ๋ชจ๋ธ์„ mps์— ์˜ฌ๋ ค ํ•™์Šต ๋ฐ ์ถ”๋ก ํ•  ์ค€๋น„\n",
378
+ "model = AutoModelForCausalLM.from_pretrained(model_name).to(\"mps\")\n",
379
+ "\n",
380
+ "# 3. LoRA ๊ฒฝ๋Ÿ‰ ํ•™์Šต ์„ค์ •\n",
381
+ "peft_config = LoraConfig(\n",
382
+ " ## causal_lm = GPT๋ฅ˜๋Š” ์™ผ์ชฝ->์˜ค๋ฅธ์ชฝ์œผ๋กœ ๋ฌธ์žฅ ์ƒ์„ฑํ•˜๋Š” ๊ตฌ์กฐ, ์ด์— ๋งž์ถฐ LoRA ์‚ฝ์ž…์œ„์น˜๋ฅผ ๊ฒฐ์ •ํ•˜๊ธฐ ์œ„ํ•ด\n",
383
+ " ## ๋ชจ๋ธ ๊ตฌ์กฐ ๋ช…์‹œ\n",
384
+ " task_type=TaskType.CAUSAL_LM,\n",
385
+ " ## LoRA์—์„œ ์‚ฝ์œ•๋˜๋Š” ์ €์ฐจ์› ํ–‰๋ ฌ์˜ rank\n",
386
+ " ## A, B๋ผ๋Š” ์ž‘์€ ํ–‰๋ ฌ ์ถ”๊ฐ€\n",
387
+ " ## ๊ธฐ์กด ๊ฐ€์ค‘์น˜๊ฐ€ 4096 x 4096์ด๋ผ๋ฉด A : 4096 X 8, B : 8 X 4096 ํ–‰๋ ฌ ์ถ”๊ฐ€ํ•˜์—ฌ\n",
388
+ " ## ์ƒˆ๋กœ์šด ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ํ•™์Šต์‹œํ‚ด\n",
389
+ " r=8,\n",
390
+ " ## LoRA์—์„œ ์‚ฌ์šฉ๋˜๋Š” ์Šค์ผ€์ผ๋ง ๊ณ„์ˆ˜\n",
391
+ " ## ๋ชจ๋ธ์˜ ํŒŒ๋ผ๋ฏธํ„ฐ์— ๋น„ํ•ด ์ƒ๋Œ€์ ์œผ๋กœ ์ž‘์€ ๊ฐฏ์ˆ˜๋ฅผ ํ•™์Šต์‹œํ‚ค๊ธฐ ๋•Œ๋ฌธ์— ์˜ํ–ฅ์ด ์ž‘์•„\n",
392
+ " ## ์•ŒํŒŒ๊ฐ’์„ ์„ค์ •ํ•ด ์˜ํ–ฅ๋ ฅ์„ ์ฆํญ์‹œ์ผœ ์คŒ\n",
393
+ " ## ๋„ˆ๋ฌด ์ž‘์œผ๋ฉด ํ•™์Šต ํšจ๊ณผ๊ฐ€ ์—†๊ณ , ํฌ๋ฉด ๊ณผ์ž‰ ํŠœ๋‹๋จ\n",
394
+ " lora_alpha=16,\n",
395
+ " ## LoRA layer์— ์ ์šฉํ•  ๋“œ๋กญ์•„์›ƒ ํ™•๋ฅ \n",
396
+ " ## ํ•™์Šต ์ค‘ A ๋˜๋Š” B์— ์ž…๋ ฅ๋œ ์ผ๋ถ€ ์—ฐ๊ฒฐ์„ 10% ํ™•๋ฅ ๋กœ ๋Š์Œ\n",
397
+ " ## ํŒจํ„ด์„ ๊ทธ๋Œ€๋กœ ์™ธ์›Œ๋ฒ„๋ ค์„œ ์ผ๋ฐ˜ํ™”๊ฐ€ ์•ˆ๋˜๋Š” ๊ทธ๋‹ˆ๊นŒ ๊ณผ์ ํ•ฉ์„ ๋ฐฉ์ง€\n",
398
+ " lora_dropout=0.1,\n",
399
+ " ## ๊ธฐ์กด ๋ชจ๋ธ์˜ bias ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ๊ทธ๋Œ€๋กœ ๋‘˜์ง€ ์„ค์ •\n",
400
+ " bias=\"none\"\n",
401
+ ")\n",
402
+ "## ๊ธฐ์กด ๋ชจ๋ธ์— LoRA ๊ณ„์ธต์„ ์‚ฝ์ž…ํ•˜์—ฌ peft ํ•™์Šต์ด ๊ฐ€๋Šฅํ•˜๋„๋ก ๋ฐ”๊ฟˆ\n",
403
+ "model = get_peft_model(model, peft_config)\n",
404
+ "\n",
405
+ "# 4. ํ•™์Šต ๋ฐ์ดํ„ฐ์˜ ํ† ํฐํ™” ํ•จ์ˆ˜ ์ •์˜\n",
406
+ "def tokenize(example):\n",
407
+ " # ํ•™์Šต ๋ฐ์ดํ„ฐ์˜ ํ…œํ”Œ๋ฆฟ(๊ตฌ์กฐ) ๊ณ ๋ คํ•ด ํ”„๋กฌํ”„ํŠธ ์ƒ์„ฑ\n",
408
+ " ## ์ž…๋ ฅ์„ ํ•˜๋‚˜์˜ ๊ธด ๋ฌธ์ž์—ด๋กœ ๋งŒ๋“œ๋Š” ์—ญํ• \n",
409
+ " prompt = f\"{example['instruction']}\\n๋‹ต๋ณ€: {example['response']}\"\n",
410
+ " # ํ”„๋กฌํ”„ํŠธ๋ฅผ ๋ชจ๋ธ์ด ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋„๋ก ํ…์ŠคํŠธ id๋กœ ๋ณ€ํ™˜\n",
411
+ " ## padding=\"max_length\" ์ž…๋ ฅ ๊ธธ์ด๊ฐ€ ์งง์„ ๊ฒฝ์šฐ ๋’ค์— 0์œผ๋กœ ์ฑ„์›€\n",
412
+ " ## truncation=True ์ž…๋ ฅ์ด 512 ํ† ํฐ๋ณด๋‹ค ๊ธธ ๊ฒฝ์šฐ ์ž˜๋ผ๋ƒ„\n",
413
+ " ## max_length=512 ํ•˜๋‚˜์˜ ํ•™์Šต ๋ฐ์ดํ„ฐ์˜ ์ตœ๋Œ€ ๊ธธ์ด๋Š” 512๋กœ ์ œํ•œ\n",
414
+ " encoded = tokenizer(prompt, padding=\"max_length\", truncation=True, max_length=512)\n",
415
+ " # ํ•™์Šต์˜ ์ •๋‹ต์„ ์ž…๋ ฅ๊ณผ ๋™์ผํ•˜๊ฒŒ ์„ค์ •\n",
416
+ " ## gpt ๊ตฌ์กฐ์—์„  ์ž…๋ ฅ ๋‹ค์Œ ๋‚˜์™€์•ผํ•  ๋‹จ์–ด๋ฅผ ์˜ˆ์ธกํ•˜๋Š” ํ•™์Šต์„ ํ•จ\n",
417
+ " ## ์ž…๋ ฅ๊ณผ ์ •๋‹ต์ด ๊ฐ™๊ณ , ๋ชจ๋ธ์€ ํ•œ ํ† ํฐ์”ฉ ๋‹ค์Œ ๋‹จ์–ด๋ฅผ ๋งž์ถ”๋Š” ๋ฐฉ์‹์œผ๋กœ ํ•™์Šตํ•จ\n",
418
+ " encoded[\"labels\"] = encoded[\"input_ids\"].copy()\n",
419
+ " return encoded"
420
+ ]
421
+ },
422
+ {
423
+ "cell_type": "code",
424
+ "execution_count": 2,
425
+ "id": "4fa47208-c384-4d19-b713-216188185dff",
426
+ "metadata": {
427
+ "scrolled": true
428
+ },
429
+ "outputs": [
430
+ {
431
+ "name": "stdout",
432
+ "output_type": "stream",
433
+ "text": [
434
+ "{'instruction': '์–ด๋ฌธํ•™์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?', 'response': '์–ด๋ฌธํ•™ ์ „๊ณต์—์„œ๋Š” ๋™ยท์„œ์–‘ ์–ธ์–ด์˜ ์›๋ฆฌ๋ฅผ ์ฒด๊ณ„์ ์œผ๋กœ ์—ฐ๊ตฌํ•˜๊ณ , ๊ฐ ๋‚˜๋ผ๏ฟฝ๏ฟฝ ๋ฌธํ•™๊ณผ ๋ฌธํ™”๋ฅผ ์ดํ•ดํ•˜์—ฌ ์„ธ๊ณ„ํ™” ์‹œ๋Œ€์— ์š”๊ตฌ๋˜๋Š” ์ธ๋ฌธํ•™์  ๊ต์–‘๊ณผ ์–ธ์–ด ๊ด€๋ จ ์‹ค๋ฌด์  ๋Šฅ๋ ฅ์„ ๊ณ„ ๋ฐœํ•œ๋‹ค. ์–ด๋ฌธํ•™ ์ „๊ณต์€ ์–ธ์–ด์  ๊ฐ๊ฐ, ๋…ผ๋ฆฌ์  ์‚ฌ๊ณ ๋ ฅ, ๋น„ํŒ์  ๋ถ„์„ ๋Šฅ๋ ฅ์ด ํ•„์š”ํ•˜๊ณ , ์–ธ์–ด ์™€ ๋ฌธํ•™ ๊ทธ๋ฆฌ๊ณ  ๋‹ค์–‘ํ•œ ๊ตญ๊ฐ€์˜ ์‚ฌํšŒยท๋ฌธํ™”์  ํŠน์„ฑ์— ๋Œ€ํ•ด ๊ด€์‹ฌ์ด ์žˆ์–ด์•ผ ํ•œ๋‹ค.'}\n",
435
+ "{'instruction': '๋ฌธํ™”ยท์ธ๋ฅ˜ยท์—ญ์‚ฌ์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?', 'response': '๋ฌธํ™”ยท์ธ๋ฅ˜ยท์—ญ์‚ฌ ์ „๊ณต์€ ์ธ๊ฐ„์ด ์ถœํ˜„ํ•œ ์‹œ๊ธฐ๋ถ€ํ„ฐ ํ˜„์žฌ๊นŒ์ง€์˜ ๋ฌธํ™”์™€ ์‚ฌํšŒ๋ฅผ ํƒ๊ตฌํ•˜ ๊ณ , ์‹œ๋Œ€๋ณ„๋กœ ๋ฌธํ™” ๋ฐ ์‚ฌํšŒ์˜ ํŠน์„ฑ์„ ์—ฐ๊ตฌํ•˜์—ฌ ์—ญ์‚ฌ์  ์˜์˜๋ฅผ ์ดํ•ดํ•˜๋Š” ๋ถ„์•ผ์ด๋‹ค. ๋ฌธํ™”ยท ์ธ๋ฅ˜ยท์—ญ์‚ฌ ์ „๊ณต์€ ๊ณ ๋„์˜ ๊ด€์ฐฐ๋ ฅ ๋ฐ ๋ถ„์„๋ ฅ์ด ํ•„์š”ํ•˜๊ณ , ํ•œ๊ตญ์‚ฌ ๋ฐ ์„ธ๊ณ„์‚ฌ ๊ทธ๋ฆฌ๊ณ  ๋‹ค์–‘ ํ•œ ์‚ฌํšŒ์ ยท์—ญ์‚ฌ์  ํ˜„์ƒ์— ๋Œ€ํ•ด ๊ด€์‹ฌ์ด ์žˆ์–ด์•ผ ํ•œ๋‹ค.'}\n",
436
+ "{'instruction': '์ฒ ํ•™์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?', 'response': '์ฒ ํ•™ ์ „๊ณต์—์„œ๋Š” ์ž์‹ ์„ ๋‘˜๋Ÿฌ์‹ผ ์ž์—ฐ, ์šฐ์ฃผ, ์‚ฌํšŒ์— ๋Œ€ํ•œ ์˜๋ฏธ๋ฅผ ํ†ต์ฐฐํ•˜๊ณ  ์ด๋ฅผ ๋…ผ๋ฆฌ ์ ์œผ๋กœ ๋ถ„์„ํ•˜์—ฌ ์ธ๊ฐ„ ํ–‰์œ„์™€ ์„ธ๊ณ„์— ๋Œ€ํ•œ ์˜๋ฏธ๋ฅผ ํƒ์ƒ‰ํ•œ๋‹ค. ์ฒ ํ•™ ์ „๊ณต์€ ์ž์—ฐ, ์šฐ์ฃผ, ์‚ฌ ํšŒ๋ฅผ ๋…ผ๋ฆฌ์ ์œผ๋กœ ๋ถ„์„ํ•˜์—ฌ ๊ทธ๊ฒƒ์˜ ์˜๋ฏธ๋ฅผ ํƒ์ƒ‰ํ•˜๋Š” ํ†ตํ•ฉ์  ์‚ฌ๊ณ  ๋Šฅ๋ ฅ์ด ํ•„์š”ํ•˜๊ณ , ์ธ๊ฐ„ ๋ณธ์„ฑ๊ณผ ์กด์žฌ ๊ฐ€์น˜, ์‚ถ์˜ ๋ณธ์งˆ์— ๋Œ€ํ•ด ๊ด€์‹ฌ์ด ์žˆ์–ด์•ผ ํ•œ๋‹ค.'}\n",
437
+ "{'instruction': '๋ฒ•ํ•™์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?', 'response': '๋ฒ•ํ•™ ์ „๊ณต์€ ๋ฒ•๊ณผ ๊ด€๋ จ๋œ ๊ธฐ์ดˆ์ ์ธ ์ด๋ก ์—์„œ๋ถ€ํ„ฐ ์‚ฌ๋ฒ•, ๊ณต๋ฒ•, ์‚ฌํšŒ๋ฒ• ๋ฐ ๊ตญ์ œ ๊ด€๊ณ„์™€ ๊ด€๋ จ๋œ ๋‹ค์–‘ํ•œ ๋ฒ•ํ•™ ์ด๋ก ๋“ค์„ ์Šต๋“ํ•˜๊ณ  ์ด๋ฅผ ๊ตฌ์ฒด์ ์ธ ์‚ฌ๋ก€์— ์ ์šฉํ•œ๋‹ค. ๋ฒ•ํ•™ ์ „๊ณต์ž๋Š” ์‚ฌ๊ฑด๊ณผ ์ƒํ™ฉ์„ ๋ถ„์„ํ•˜์—ฌ ํƒ€๋‹นํ•œ ๊ฒฐ๋ก ์— ์ด๋ฅผ ์ˆ˜ ์žˆ๋Š” ์‚ฌ๊ณ ๋ ฅ๊ณผ ๊ณต์ •ํ•œ ํŒ๋‹จ๋ ฅ์ด ํ•„์š”ํ•˜ ๊ณ , ๋ฒ•๋ฅ ๊ณผ ๊ด€๋ จ๋œ ์‚ฌํšŒํ˜„์ƒ ๋ฐ ์‚ฌํšŒ๋ฌธ์ œ์— ๋Œ€ํ•ด ๊ด€์‹ฌ๊ณผ ํฅ๋ฏธ๊ฐ€ ์žˆ์–ด์•ผ ํ•œ๋‹ค.'}\n",
438
+ "{'instruction': '์ •์น˜ยท๊ตญ์ œ๊ด€๊ณ„์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?', 'response': '์ •์น˜ยท๊ตญ์ œ๊ด€๊ณ„ ์ „๊ณต์€ ํ•œ ๊ตญ๊ฐ€ ๋‚ด ํ˜น์€ ์—ฌ๋Ÿฌ ๊ตญ๊ฐ€ ๊ฐ„์˜ ์ •์น˜์  ํ˜„์ƒ์„ ๋ถ„์„ํ•˜๊ณ  ๋น„ํŒ ํ•˜๋ฉฐ, ๊ตญ๋‚ดยท์™ธ์˜ ์ •์น˜์  ํ˜„์ƒ๊ณผ ๊ตญ์ œ ๊ด€๊ณ„์— ๋Œ€ํ•œ ์ด๋ก ๊ณผ ์‹ค์ œ๋ฅผ ์—ฐ๊ตฌํ•œ๋‹ค. ์ •์น˜ยท๊ตญ์ œ๊ด€ ๊ณ„ ์ „๊ณต์ž๋Š” ๊ตญ์ œ์  ํ˜„์ƒ๊ณผ ๊ตญ๊ฐ€ ๊ฐ„ ๊ด€๊ณ„ยท์„ธ๋ ฅ ๋ณ€ํ™” ๋“ฑ์„ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ„์„๋ ฅ๊ณผ ๋…ผ๋ฆฌ ๋ ฅ์ด ํ•„์š”ํ•˜๊ณ , ๊ตญ๋‚ดยท์™ธ์˜ ๋‹ค์–‘ํ•œ ์ •์น˜ยท๊ฒฝ์ œยท์‚ฌํšŒ์  ์ด์Šˆ์— ๋Œ€ํ•œ ๋ฌธ์ œ์˜์‹๊ณผ ๊ด€์‹ฌ, ํฅ๋ฏธ ๊ฐ€ ์žˆ์–ด์•ผ ํ•œ๋‹ค.'}\n",
439
+ "{'instruction': 'ํ–‰์ •์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?', 'response': 'ํ–‰์ • ์ „๊ณต์€ ๊ตญ๋ฏผ๊ณผ ์ •๋ถ€ ๊ฐ„์˜ ์ƒํ˜ธ์ž‘์šฉ, ๋‹ค์–‘ํ•œ ๊ณต๊ณต๋ถ€๋ฌธ์—์„œ์˜ ํ–‰์ • ๋ฐ ์ •์ฑ…๊ณผ ๊ด€ ๋ จ๋œ ํ˜„์ƒ์„ ๋ถ„์„ํ•จ์œผ๋กœ์จ ๊ณต๊ณต๋ถ„์•ผ ๊ด€๋ฆฌ ๋“ฑ ๊ตญ๊ฐ€ ์šด์˜์„ ํšจ์œจ์ ์œผ๋กœ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ ์•ˆ์„ ๋ชจ์ƒ‰ํ•œ๋‹ค. ํ–‰์ • ์ „๊ณต์ž๋Š” ์‚ฌํšŒ ๋ฌธ์ œ์— ๋Œ€ํ•œ ํ•ฉ๋ฆฌ์ ์ธ ํŒ๋‹จ ๋Šฅ๋ ฅ๊ณผ ์‚ฌํšŒ ๋ฌธ์ œ๋ฅผ ํšจ ์œจ์ ์œผ๋กœ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œํ•ด๊ฒฐ ๋Šฅ๋ ฅ์ด ํ•„์š”ํ•˜๊ณ , ๊ณต๊ณต์˜ ๋ฌธ์ œ์™€ ์ •์ฑ… ๊ทธ๋ฆฌ๊ณ  ์ •๋ถ€์™€ ๊ณต๊ณต ๊ธฐ๊ด€์˜ ์„ฑ๊ฒฉ, ์—…๋ฌด ๋“ฑ์— ๋Œ€ํ•ด ๊ด€์‹ฌ๊ณผ ํฅ๋ฏธ๊ฐ€ ์žˆ์–ด์•ผ ํ•œ๋‹ค.'}\n",
440
+ "{'instruction': '์‚ฌํšŒ์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?', 'response': '์‚ฌํšŒ ์ „๊ณต์€ ์‚ฌํšŒ์˜ ๋‹ค์–‘ํ•œ ํ˜„์ƒ๊ณผ ๋ฌธ์ œ๋ฅผ ๊ด€์ฐฐ, ๋ถ„์„ํ•˜๊ณ  ์ด๋ฅผ ํ†ตํ•ด ๊ทธ๊ฒƒ์˜ ์˜๋ฏธ๋ฅผ ํ•ด์„ํ•จ์œผ๋กœ์จ ์‚ฌํšŒ ๊ตฌ์„ฑ์›๋“ค ๊ฐ„์˜ ์ƒํ˜ธ์ž‘์šฉ ๋ฐ ์‚ฌํšŒ๊ตฌ์กฐ์— ๋Œ€ํ•˜์—ฌ ํƒ๊ตฌํ•˜๊ณ  ํ˜„๋Œ€ ์‚ฌํšŒ ์˜ ๋ฌธ์ œ๋“ค์„ ํ•ด๊ฒฐํ•œ๋‹ค. ์‚ฌํšŒ ์ „๊ณต์ž๋Š” ์‚ฌํšŒ ํ˜„์ƒ์„ ๊ฐ๊ด€์ ์œผ๋กœ ๊ด€์ฐฐํ•˜๊ณ  ๊ณผํ•™์ ์œผ๋กœ ๋ถ„ ์„ํ•  ์ˆ˜ ์žˆ๋Š” ๋Šฅ๋ ฅ์ด ํ•„์š”ํ•˜๊ณ , ๊ฐœ์ธ์ ยท์‚ฌํšŒ์  ์ˆ˜์ค€์˜ ๋‹ค์–‘ํ•œ ๋ฌธ์ œ๋ฅผ ํƒ๊ตฌํ•˜๋Š” ๊ฒƒ์— ๊ด€ ์‹ฌ๊ณผ ํฅ๋ฏธ๊ฐ€ ์žˆ์–ด์•ผ ํ•œ๋‹ค.'}\n",
441
+ "{'instruction': '์‹ฌ๋ฆฌ์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?', 'response': '์‹ฌ๋ฆฌ ์ „๊ณต์€ ์ธ๊ฐ„์˜ ํ–‰๋™๊ณผ ์ •์‹  ๊ณผ์ •, ๊ฐœ์ธ ๊ฐ„ ์ƒํ˜ธ๊ด€๊ณ„ ํ˜•์„ฑ์— ๊ด€ํ•œ ์‹ฌ์ธต์  ์—ฐ๊ตฌ๋ฅผ ํ†ตํ•ด ๊ฐœ์ธ์ด ๊ฐ€์ง„ ์‹ฌ๋ฆฌยท์ •์„œ์  ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ณ  ์กฐํ™”๋กœ์šด ์ธ๊ฒฉ ํ˜•์„ฑ๊ณผ ์ธ์„ฑ ํšŒ๋ณต์„ ์œ„ ํ•œ ๋ฐฉ์•ˆ์„ ๋ชจ์ƒ‰ํ•œ๋‹ค. ์‹ฌ๋ฆฌ ์ „๊ณต์ž๋Š” ์‹ฌ๋ฆฌ ํ˜„์ƒ์— ๋Œ€ํ•œ ์‹คํ—˜๊ณผ ์กฐ์‚ฌ๋ฅผ ๊ณผํ•™์ ์œผ๋กœ ์‹ค์‹œํ•˜ ๊ณ , ์„ธ๋ฐ€ํ•˜๊ฒŒ ๊ด€์ฐฐํ•˜๋ฉฐ, ๊ฒฐ๊ณผ๋ฅผ ๋…ผ๋ฆฌ์ ์œผ๋กœ ํ•ด์„ํ•  ์ˆ˜ ์žˆ๋Š” ๋Šฅ๋ ฅ์ด ํ•„์š”ํ•˜๊ณ , ์‚ฌ๋žŒ๋“ค์˜ ์‚ฌ๊ณ , ์„ฑ๊ฒฉ, ํ–‰๋™ ๋ฐ ๊ทธ์™€ ๊ด€๋ จ๋˜๋Š” ์‚ฌํšŒ ํ˜„์ƒ์— ๋Œ€ํ•œ ๊ด€์‹ฌ๊ณผ ํฅ๋ฏธ๊ฐ€ ์žˆ์–ด์•ผ ํ•œ๋‹ค.'}\n",
442
+ "{'instruction': '์‚ฌํšŒ๋ณต์ง€์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?', 'response': '์‚ฌํšŒ๋ณต์ง€ ์ „๊ณต์€ ๊ฐ€์กฑยท์•„๋™ยท์ฒญ์†Œ๋…„ยท๋…ธ์ธยท์—ฌ์„ฑ ๋“ฑ ์‚ฌํšŒ ๊ตฌ์„ฑ์›์˜ ์ผ์ •ํ•œ ์ƒํ™œ ์ˆ˜์ค€ ๋ฐ ๋ณด๊ฑด ์ƒํƒœ๋ฅผ ํ™•๋ณดํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌํšŒ ์ •์ฑ… ๋ฐ ์ œ๋„์™€ ๊ด€๋ จ๋œ ์ด๋ก ๊ณผ ๋ฐฉ๋ฒ•์„ ํƒ๊ตฌํ•œ๋‹ค. ์‚ฌ ํšŒ๋ณต์ง€ ์ „๊ณต์ž๋Š” ์‚ฌํšŒ ๊ตฌ์„ฑ์›์˜ ์ผ์ •ํ•œ ์ƒํ™œ ์ˆ˜์ค€ ๋ฐ ๋ณด๊ฑด ์ƒํƒœ๋ฅผ ์ง€์›ํ•˜๊ธฐ ์œ„ํ•œ ์‚ฌํšŒ ์ •์ฑ… ๋ฐ ์ œ๋„ ๋“ฑ์„ ํ•™๋ฌธ์ ์œผ๋กœ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ๋Šฅ๋ ฅ์ด ํ•„์š”ํ•˜๊ณ , ์ฃผ์œ„ ์ด์›ƒ์— ๋Œ€ํ•œ ๊ด€์‹ฌ ๊ณผ ๋ด‰์‚ฌ์ •์‹ ์ด ์žˆ์–ด์•ผ ํ•œ๋‹ค.'}\n",
443
+ "{'instruction': '๋ฌธํ—Œ์ •๋ณด์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?', 'response': '๋ฌธํ—Œ์ •๋ณด ์ „๊ณต์€ ๊ฐ์ข… ์ง€์  ํ™œ๋™์— ํ•„์š”ํ•œ ์ •๋ณด ๋ฐ ๋ฌธํ—Œ์˜ ์†์„ฑ์„ ์ดํ•ดํ•˜๊ณ , ๋‹ค์–‘ํ•œ ๋ฏธ๋””์–ด๋ฅผ ํ†ต๏ฟฝ๏ฟฝ ์ •๋ณด๋ฅผ ํšจ์œจ์ ์œผ๋กœ ์ˆ˜์ง‘, ์ •๋ฆฌ, ๊ฐ€๊ณต, ๊ด€๋ฆฌ, ๋ฐฐํฌํ•˜๋Š” ์ง€์‹ ์ •๋ณด ๊ด€๋ฆฌ ๋Šฅ๋ ฅ ์„ ๊ณ„๋ฐœํ•œ๋‹ค. ๋ฌธํ—Œ์ •๋ณด ์ „๊ณต์ž๋Š” ์ƒํ™ฉ์— ๋”ฐ๋ฅธ ์ ํ•ฉํ•œ ๋„์„œ ๋ฐ ์ž๋ฃŒ์˜ ์ˆ˜์ง‘ยท์ •๋ฆฌยท๊ฐ€๊ณต ๋Šฅ ๋ ฅ, ๋„์„œ ๋ฐ ์ž๋ฃŒ์˜ ๊ด€๋ฆฌ ๋ฐ ํ™œ์šฉ์„ ์œ„ํ•œ ์ „์‚ฐ ์ฒ˜๋ฆฌ ๋ฐ ํ†ต๊ณ„ ์ฒ˜๋ฆฌ ๋Šฅ๋ ฅ์ด ํ•„์š”ํ•˜๊ณ , ๋‹ค์–‘ ํ•œ ๋ถ„์•ผ์˜ ๋„์„œ์™€ ์ž๋ฃŒ์— ๋Œ€ํ•œ ๊ด€์‹ฌ๊ณผ ํฅ๋ฏธ๊ฐ€ ์žˆ์–ด์•ผ ํ•œ๋‹ค.'}\n",
444
+ "{'instruction': '์–ธ๋ก ยทํ™๋ณดยท๋ฏธ๋””์–ด์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?', 'response': '์–ธ๋ก ยทํ™๋ณดยท๋ฏธ๋””์–ด ์ „๊ณต์€ ์‚ฌํšŒ์˜ ์—ฌ๋Ÿฌ ์˜์—ญ์—์„œ ์ด๋ฃจ์–ด์ง€๋Š” ๋Œ€์ค‘ ๋งค์ฒด์˜ ์†Œํ†ต ๊ณผ์ • ์„ ๋ถ„์„, ์—ฐ๊ตฌํ•˜์—ฌ ๋‹ค์–‘ํ•œ ๋ฏธ๋””์–ด ์ฝ˜ํ…์ธ  ์ œ์ž‘๊ณผ ๋ฐ”๋žŒ์งํ•œ ๋ฏธ๋””์–ดยท๋Œ€์ค‘ ๋งค์ฒด์˜ ๋ฐœ์ „ ๋ฐฉ ์•ˆ์— ๋Œ€ํ•ด ์—ฐ๊ตฌํ•œ๋‹ค. ์–ธ๋ก ยทํ™๋ณดยท๋ฏธ๋””์–ด ์ „๊ณต์ž๋Š” ์ตœ์‹  ํŠธ๋ Œ๋“œ๋ฅผ ํŒŒ์•…ํ•˜๋Š” ๋Šฅ๋ ฅ, ์ •ํ™•ํ•œ ์ •๋ณด ์ „๋‹ฌ์„ ์œ„ํ•œ ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜ ๋Šฅ๋ ฅ, ๊ทธ๋ฆฌ๊ณ  ๋งค๋ ฅ์  ์ฝ˜ํ…์ธ  ์ƒ์‚ฐ์„ ์œ„ํ•œ ์˜ˆ์ˆ ์„ฑ ๋ฐ ์ฐฝ ์˜๋ ฅ์ด ํ•„์š”ํ•˜๊ณ , ๋Œ€์ค‘ ๋งค์ฒด์™€ ๋‹ค์–‘ํ•œ ์ฝ˜ํ…์ธ , ๋‰ด๋ฏธ๋””์–ด ๋“ฑ์— ๋Œ€ํ•œ ๊ด€์‹ฌ์ด ์žˆ์–ด์•ผ ํ•œ๋‹ค.'}\n",
445
+ "{'instruction': '๋„์‹œยท์ง€์—ญ์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?', 'response': '๋„์‹œยท์ง€์—ญ ์ „๊ณต์€ ๋„์‹œ ๋ฐ ์ง€์—ญ๊ณผ ๊ด€๋ จ๋œ ๊ฐ์ข… ๋ฌธ์ œ๋ฅผ ๋ถ„์„ํ•˜๊ณ  ์ด๋ฅผ ํ•ฉ๋ฆฌ์ ์œผ๋กœ ํ•ด ๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ์•ˆ์„ ๋ชจ์ƒ‰ํ•˜์—ฌ ๊ตญํ† ๋ฅผ ๊ฒฝ์ œ์ , ์‚ฌํšŒ์ , ๋ฌธํ™”์  ์ธก๋ฉด์—์„œ ์กฐํ™”๋กญ๊ณ  ๊ท ํ˜• ์žˆ๊ฒŒ ๋ฐœ์ „ํ•˜๋Š” ๋ฐฉ์•ˆ์— ๋Œ€ํ•ด ์—ฐ๊ตฌํ•œ๋‹ค. ๋„์‹œยท์ง€์—ญ ์ „๊ณต์ž๋Š” ๋„์‹œ์˜ ๊ธฐ๋Šฅ๊ณผ ์—ญํ• , ๊ตํ†ต ์ฒด ๊ณ„, ์ง€์—ญ์  ํŠน์„ฑ์— ์ ํ•ฉํ•œ ์‚ฌํšŒ๊ธฐ๋ฐ˜์‹œ์„ค ๋“ฑ์— ๋Œ€ํ•œ ์ดํ•ด ๋Šฅ๋ ฅ๊ณผ ์ฐฝ์˜๋ ฅ, ๊ณต๊ฐ„์ง€๊ฐ๋ ฅ์ด ํ•„์š”ํ•˜๊ณ , ๊ณต๊ฐ„์— ๋Œ€ํ•œ ํ˜ธ๊ธฐ์‹ฌ์ด ์žˆ์–ด์•ผ ํ•œ๋‹ค.'}\n",
446
+ "{'instruction': '๊ตฐ์‚ฌยท๊ตญ๋ฐฉยท์•ˆ๋ณด์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?', 'response': '๊ตฐ์‚ฌยท๊ตญ๋ฐฉยท์•ˆ๋ณด ์ „๊ณต์€ ๊ตฐ์‚ฌ ์ •์ฑ… ๋ฐ ์ „๋žต์— ํ•„์š”ํ•œ ์ „๋ฌธ ์ง€์‹์„ ์Šต๋“ํ•˜๊ณ , ๋‹ค์–‘ํ•œ ์ƒํ™ฉ์—์„œ ์‹ค์งˆ์ ์œผ๋กœ ๋Œ€์ฒ˜ ๊ฐ€๋Šฅํ•œ ๊ตฐ์‚ฌ ์šด์šฉ ๋Šฅ๋ ฅ์„ ๊ณ„๋ฐœํ•˜๋ฉฐ, ํˆฌ์ฒ ํ•œ ๊ตญ๊ฐ€๊ด€์„ ํ•จ์–‘ํ•˜ ์—ฌ ๊ตญ๊ฐ€์˜ ์•ˆ๋ณด์— ๊ธฐ์—ฌํ•œ๋‹ค. ๊ตฐ์‚ฌยท๊ตญ๋ฐฉยท์•ˆ๋ณด ์ „๊ณต์ž๋Š” ๊ตฐ๋ณ‘๋ ฅ์„ ํ†ต์†”ํ•˜๋Š” ๋ฆฌ๋”์‹ญ๊ณผ ์˜ฌ ๋ฐ”๋ฅธ ๊ตญ๊ฐ€๊ด€, ํ›ˆ๋ จ ๋ฐ ์‹ค์ „์— ๋Œ€๋น„ํ•œ ๊ฐ•ํ•œ ์ฒด๋ ฅ๊ณผ ์ •์‹ ๋ ฅ, ํ†ต์ฐฐ๋ ฅ ๋ฐ ํŒ๋‹จ๋ ฅ์ด ํ•„์š”ํ•˜๊ณ , ๊ตญ๊ฐ€์˜ ์•ˆ๋ณด ํ™˜๊ฒฝ์— ๋Œ€ํ•œ ์ดํ•ด์™€ ๊ด€์‹ฌ์ด ์žˆ์–ด์•ผ ํ•œ๋‹ค.'}\n",
447
+ "{'instruction': '๊ฒฝ์ฐฐยท์†Œ๋ฐฉยท์•ˆ์ „์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?', 'response': '๊ฒฝ์ฐฐยท์†Œ๋ฐฉยท์•ˆ์ „ ์ „๊ณต์€ ๊ฐ์ข… ๋ฒ”์ฃ„ ํ˜„์ƒ์˜ ์›์ธ๊ณผ ๋Œ€์ฑ…์„ ์—ฐ๊ตฌํ•˜๊ฑฐ๋‚˜ ์•ˆ์ „ ๊ด€๋ฆฌ์— ๋Œ€ ํ•œ ์ด๋ก ์  ์ง€์‹ ๋ฐ ์‹ค๋ฌด ๋Šฅ๋ ฅ์„ ์Šต๋“ํ•จ์œผ๋กœ์จ ๋ฒ”์ฃ„, ์œ„ํ—˜ ๋ฐ ์žฌ๋‚œ์œผ๋กœ๋ถ€ํ„ฐ ๊ตญ๋ฏผ์˜ ์ƒ๋ช… ๊ณผ ์žฌ์‚ฐ์„ ๋ณดํ˜ธํ•œ๋‹ค. ๊ฒฝ์ฐฐยท์†Œ๋ฐฉยท์•ˆ์ „ ์ „๊ณต์ž๋Š” ํ˜„์žฅ์—์„œ์˜ ๋Œ๋ฐœ ์ƒํ™ฉ์„ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š” ๋ฆฌ๋”์‹ญ๊ณผ ์กฐ์ง์  ์‚ฌ๊ณ , ์ฑ…์ž„๊ฐ, ์ƒํ™ฉํŒ๋‹จ๋ ฅ์ด ํ•„์š”ํ•˜๊ณ , ์‚ฌํšŒ ๋ฌธ์ œ ๋ฐ ๋ฒ”์ฃ„ ํ•ด๊ฒฐ, ๊ฐ์ข… ์‚ฌ ๊ฑดยท์‚ฌ๊ณ ์— ๊ด€์‹ฌ๊ณผ ํฅ๋ฏธ๊ฐ€ ์žˆ์–ด์•ผ ํ•œ๋‹ค.'}\n",
448
+ "{'instruction': '๊ฒฝ์˜์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?', 'response': '๊ฒฝ์˜ ๊ด€๋ จ ์ „๊ณต์—์„œ๋Š” ๊ธฐ์—… ๊ฒฝ์˜์— ํ•„์š”ํ•œ ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์ด๋ก ๊ณผ ๊ธฐ๋ฒ•์„ ์—ฐ๊ตฌํ•˜๊ณ , ์ƒํ™œ ์— ํ•„์š”ํ•œ ๋‹ค์–‘ํ•œ ์ƒํ’ˆ ๋˜๋Š” ์„œ๋น„์Šค๋ฅผ ์ƒ์‚ฐ, ์œ ํ†ต, ํŒ๋งคํ•˜๋Š” ์ „ ๊ณผ์ •์— ๋Œ€ํ•ด ์—ฐ๊ตฌํ•œ๋‹ค. ๊ฒฝ ์˜ํ•™ ๊ด€๋ จ ์ „๊ณต์ž์—๊ฒŒ๋Š” ํšจ์œจ์ ์ธ ๊ฒฝ์˜ ํ™œ๋™์— ๋Œ€ํ•œ ๋ถ„์„ยท์‹คํ–‰ ๋Šฅ๋ ฅ๊ณผ ํ•ฉ๋ฆฌ์  ์˜์‚ฌ๊ฒฐ์ • ๋Šฅ๋ ฅ์ด ํ•„์š”ํ•˜๊ณ , ์กฐ์ง์˜ ์„ฑ๊ณผ๋ฅผ ๋†’์ด๊ธฐ ์œ„ํ•œ ๊ฒฝ์˜ ํ™œ๋™ ๋ฐ ๊ธ€๋กœ๋ฒŒ ๊ธฐ์—… ํ™˜๊ฒฝ์˜ ๋ณ€ํ™”์— ๋Œ€ํ•œ ๊ด€์‹ฌ๊ณผ ํฅ๋ฏธ๊ฐ€ ์žˆ์–ด์•ผ ํ•œ๋‹ค.'}\n",
449
+ "{'instruction': '๊ฒฝ์ œยท๊ธˆ์œตยท๋ถ€๋™์‚ฐ์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?', 'response': '๊ฒฝ์ œยท๊ธˆ์œตยท๋ถ€๋™์‚ฐ ์ „๊ณต์€ ๊ตญ๊ฐ€, ์กฐ์ง, ๊ฐœ์ธ ๋“ฑ์˜ ๊ฒฝ์ œ ์ƒํ™ฉ์„ ๋ถ„์„ยท์ง„๋‹จํ•˜์—ฌ ๊ฒฝ์ œ ๊ด€ ๋ จ ๋ฌธ์ œ์— ์ ์ ˆํžˆ ๋Œ€์‘ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์„ ์—ฐ๊ตฌํ•œ๋‹ค. ๋”ฐ๋ผ์„œ ๊ธˆ์œต์˜ ํ๋ฆ„์„ ํŒŒ์•…ํ•˜๊ธฐ ์œ„ ํ•œ ๋ถ„์„๋ ฅ๊ณผ ์ˆ˜ํ•™ ๋Šฅ๋ ฅ, ์ •๋ณด์ฒ˜๋ฆฌ ๋ฐ ํ™œ์šฉ๋Šฅ๋ ฅ์ด ํ•„์š”ํ•˜๊ณ , ๊ตญ๊ฐ€ ๋ฐ ์„ธ๊ณ„ ๊ฒฝ์ œ์˜ ํ๋ฆ„์— ๊ด€์‹ฌ์ด ์žˆ์–ด์•ผ ํ•œ๋‹ค.'}\n",
450
+ "{'instruction': '๋ฌด์—ญยท๋ฌผ๋ฅ˜์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?', 'response': '๋ฌด์—ญยท๋ฌผ๋ฅ˜ ์ „๊ณต์€ ๋ฌผํ’ˆยท์„œ๋น„์Šคยท๊ธฐ์ˆ ยท์ž์› ๋“ฑ์˜ ๊ตญ๊ฐ€ ๊ฐ„ ์ด๋™๊ณผ ๋ฌผํ’ˆ์˜ ์ƒ์‚ฐ์—์„œ ๊ณต ๊ธ‰์— ์ด๋ฅด๋Š” ์ผ๋ จ์˜ ๊ณผ์ •์„ ๊ฒฝ์ œ์ ์ด๊ณ  ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ• ๋ฐ ๊ตญ์ œ ๊ฒฝ์ œ ๊ต๋ฅ˜์™€ ๊ด€๋ จ๋œ ์‚ฌ์•ˆ์— ๋Œ€ํ•ด ์—ฐ๊ตฌํ•œ๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ ๋ฌด์—ญยท๋ฌผ๋ฅ˜ ์ „๊ณต์ž๋Š” ์„ธ๊ณ„ ์†Œ๋น„๊ฒฝํ–ฅ ๋ฐ ์ž์›์˜ ํ๋ฆ„์„ ๋ถ„์„ํ•˜๊ณ  ์ดํ•ดํ•˜๋Š” ๋Šฅ๋ ฅ๊ณผ ๊ด€๋ จ ์ •๋ณด๋ฅผ ๊ฒฝ์˜, ๊ฒฝ์ œ, ๋ฒ•, ๋ณดํ—˜, ์™ธ๊ตญ์–ด ๋“ฑ์˜ ์ธ์ ‘ ํ•™๋ฌธ๊ณผ ์—ฐ๊ณ„ํ•  ์ˆ˜ ์žˆ๋Š” ๋Šฅ๋ ฅ์ด ํ•„์š”ํ•˜๊ณ , ๊ตญ์ œ ๊ฒฝ์ œ ๊ต๋ฅ˜์— ๋Œ€ํ•ด ๊ด€์‹ฌ์ด ์žˆ์–ด์•ผ ํ•œ๋‹ค.'}\n",
451
+ "{'instruction': 'ํšŒ๊ณ„ยท์„ธ๋ฌด์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?', 'response': 'ํšŒ๊ณ„ยท์„ธ๋ฌด ์ „๊ณต์€ ๊ธฐ์—…์˜ ํšŒ๊ณ„์ •๋ณด๋ฅผ ์ฒด๊ณ„์ ์ธ ๋ฐฉ๋ฒ•์œผ๋กœ ์‚ฐ์ถœยท๋ถ„์„ํ•˜๊ณ , ์„ธ๋ฌด์™€ ๊ด€ ๋ จ๋œ ํšจ์œจ์ ์ธ ์˜์‚ฌ๊ฒฐ์ • ๋ฐฉ์•ˆ์„ ํƒ์ƒ‰ํ•œ๋‹ค. ๋”ฐ๋ผ์„œ ์ดํ•ด๊ด€๊ณ„๋ฅผ ๋ถ„์„ํ•˜๊ณ  ์˜ˆ์ธกํ•  ์ˆ˜ ์žˆ๋Š” ์ˆ˜๋ฆฌ ๋Šฅ๋ ฅ ๋ฐ ๋…ผ๋ฆฌ๋ ฅ์ด ํ•„์š”ํ•˜๊ณ , ๊ฒฝ์ œ ๋ฐ ๊ธฐ์—… ์ž์›์˜ ํšจ์œจ์  ๋ฐฐ๋ถ„์— ๊ด€์‹ฌ์ด ์žˆ์–ด์•ผ ํ•œ๋‹ค.'}\n",
452
+ "{'instruction': '๊ด€๊ด‘์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?', 'response': '๊ด€๊ด‘ ์ „๊ณต์—์„œ๋Š” ๊ด€๊ด‘์„ ํ†ตํ•œ ์‚ถ์˜ ์งˆ ํ–ฅ์ƒ์„ ์œ„ํ•ด ๊ตญ๋‚ด์™ธ ๊ด€๊ด‘์ง€๋ฅผ ํŒŒ์•…ํ•˜๊ณ , ๊ด€๊ด‘ ํ˜„์ƒ์— ๋Œ€ํ•œ ํ•™๋ฌธ์  ๋ถ„์„๊ณผ ์‹ค๋ฌด์ ์ธ ์ •์ฑ…์„ ์ˆ˜๋ฆฝํ•œ๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ ๊ด€๊ด‘ ์ƒํ’ˆ์˜ ๊ฐœ๋ฐœ ๋ฐ ๊ธฐํš ๋Šฅ๋ ฅ, ์™ธ๊ตญ์–ด ๋Šฅ๋ ฅ, ์ธ์  ๋„คํŠธ์›Œํฌ ํ˜•์„ฑ ๋Šฅ๋ ฅ์ด ํ•„์š”ํ•˜๊ณ , ์—ฌํ–‰ ๋ฐ ๊ด€๊ด‘์— ๋Œ€ํ•œ ํฅ๋ฏธ ์™€ ๊ด€์‹ฌ์ด ์žˆ์–ด์•ผ ํ•œ๋‹ค.'}\n",
453
+ "{'instruction': '๊ต์œก์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?', 'response': '๊ต์œก ์ „๊ณต์€ ๊ต์œก ๊ธฐ๊ด€ ์•ˆํŒŽ์˜ ๊ต์œกํ™œ๋™์„ ์ด์ฒด์ ์œผ๋กœ ์ดํ•ดํ•˜๊ณ , ๊ต์œก๊ณผ ๊ด€๋ จํ•œ ๋‹ค ์–‘ํ•œ ๋ฌธ์ œ์— ๋Œ€ํ•ด ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ๋ชจ์ƒ‰ํ•œ๋‹ค. ๋”ฐ๋ผ์„œ ๊ต์œก ํ˜„์ƒ ๋ฐ ๊ต์œก ์ •์ฑ… ๋“ฑ์— ๋Œ€ํ•œ ํŒ๋‹จ ๋ ฅ๊ณผ ๊ต์œก ๋ฌธ์ œ์˜ ์›์ธ์„ ์ฒด๊ณ„์ ์œผ๋กœ ํŒŒ์•…ํ•˜๋Š” ๋ถ„์„๋ ฅ์ด ํ•„์š”ํ•˜๊ณ , ์ธ๊ฐ„๊ณผ ๊ต์œก ํ™œ๋™์— ๋Œ€ํ•œ ๊ด€์‹ฌ์ด ์žˆ์–ด์•ผ ํ•œ๋‹ค.'}\n",
454
+ "{'instruction': '์œ ์•„๊ต์œก์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?', 'response': '์œ ์•„๊ต์œก ์ „๊ณต์—์„œ๋Š” ์˜ยท์œ ์•„๊ธฐ ๋ฐœ๋‹ฌ์— ๋Œ€ํ•œ ์ฒด๊ณ„์ ์ธ ์ด๋ก ์„ ์ดํ•ดํ•˜๊ณ , ์ด๋ฅผ ํ˜„์žฅ ์— ์ ์šฉํ•ด ๋ณด๋Š” ์‹ค์Šต์„ ํ†ตํ•ด ์˜ยท์œ ์•„์˜ ์‹ ์ฒด์ , ์ •์„œ์  ๋ฐœ๋‹ฌ์— ๋”ฐ๋ฅธ ๊ต์œก ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ํ•™ ์Šตํ•œ๋‹ค. ๋”ฐ๋ผ์„œ ์•„๋™์˜ ๋ฐœ๋‹ฌ, ์‹ฌ๋ฆฌ์™€ ํ–‰๋™, ๋ถ€๋ชจ ๊ต์œก ๋“ฑ ์•„๋™์— ๋Œ€ํ•œ ์ „๋ฌธ์ ์ธ ์ง€์‹๊ณผ ์•„ ๋™์˜ ์ˆ˜์ค€์— ๋งž๋Š” ์˜์‚ฌ์†Œํ†ต ๋Šฅ๋ ฅ๊ณผ ์–ธ์–ด ๊ตฌ์‚ฌ ๋Šฅ๋ ฅ์ด ํ•„์š”ํ•˜๊ณ , ์•„๋™ ๋ณด์œก์— ๋Œ€ํ•œ ์ฑ…์ž„ ๊ฐ์ด ์žˆ์–ด์•ผ ํ•œ๋‹ค.'}\n",
455
+ "{'instruction': '์ดˆ๋“ฑ๊ต์œก์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?', 'response': '์ดˆ๋“ฑ๊ต์œก ์ „๊ณต์—์„œ๋Š” ๋งŒ 6โˆผ12์„ธ ์•„๋™์„ ๋Œ€์ƒ์œผ๋กœ, ๊ทธ๋“ค์˜ ์‹ฌ๋ฆฌ์  ํŠน์„ฑ์„ ํŒŒ์•…ํ•˜๊ณ  ๊ตญ์–ด, ์ˆ˜ํ•™, ๋ฏธ์ˆ  ๋“ฑ ๋‹ค์–‘ํ•œ ๊ต๊ณผ ์ด๋ก ์„ ์ ์šฉํ•˜์—ฌ ๊ต์œก ํ˜„์žฅ์—์„œ ๊ต์‚ฌ๋กœ์„œ ์—…๋ฌด๋ฅผ ์ˆ˜ํ–‰ ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•๋“ค์„ ํ•™์Šตํ•œ๋‹ค. ๋”ฐ๋ผ์„œ ์ดˆ๋“ฑํ•™๊ต ๊ต๊ณผ์— ๋Œ€ํ•œ ๊ธฐ์ดˆ ์ง€์‹๊ณผ ๋‹ค์–‘ํ•œ ๊ต์œก ๋ฐฉ๋ฒ•์„ ๊ณ ์•ˆํ•  ์ˆ˜ ์žˆ๋Š” ์ฐฝ์˜๋ ฅ, ์–ด๋ฆฐ์ด์˜ ๋ฐœ๋‹ฌ์— ๋Œ€ํ•œ ๋†’์€ ์ดํ•ด ๋Šฅ๋ ฅ์ด ํ•„์š”ํ•˜๊ณ , ์ดˆ๋“ฑ ๊ต์œก์— ๋Œ€ํ•œ ๊ด€์‹ฌ์ด ์žˆ์–ด์•ผ ํ•œ๋‹ค.'}\n",
456
+ "{'instruction': '์ค‘๋“ฑ๊ต์œก์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?', 'response': '์ค‘๋“ฑ๊ต์œก ์ „๊ณต์—์„œ๋Š” ๋งŒ 13โˆผ18์„ธ ์ค‘ยท๊ณ ๋“ฑํ•™๊ต ํ•™์ƒ๋“ค์„ ๋Œ€์ƒ์œผ๋กœ ๊ทธ๋“ค์„ ๊ฐ€๋ฅด์น˜ ๊ธฐ ์œ„ํ•ด ํŠน์ • ๊ต๊ณผ๋ชฉ์„ ์ „๊ณตํ•˜๊ณ , ๊ต์œก ํ˜„์žฅ์—์„œ ๊ต์‚ฌ๋กœ์„œ ์—…๋ฌด๋ฅผ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ• ๋“ค์„ ํ•™์Šตํ•œ๋‹ค. ์ด์— ์ค‘ยท๊ณ ๋“ฑํ•™๊ต ๊ต๊ณผ์— ๋Œ€ํ•œ ์ง€์‹, ํ˜„ํ–‰ ๊ต์œก๊ณผ์ • ๋ฐ ๊ต์œก์ •์ฑ…์— ๋Œ€ํ•œ ์ดํ•ด, ํ•™์ƒ ์ง€๋„ ๋Šฅ๋ ฅ, ๊ต์œก ํ˜„์ƒ์„ ์ข…ํ•ฉ์ ์œผ๋กœ ์ดํ•ดํ•˜๊ณ  ๋น„ํŒํ•  ์ˆ˜ ์žˆ๋Š” ๋Šฅ๋ ฅ์ด ํ•„์š”ํ•˜ ๊ณ , ์ค‘ยท๊ณ ๋“ฑํ•™๊ต ๊ต์œก์— ๋Œ€ํ•œ ๊ด€์‹ฌ์ด ์žˆ์–ด์•ผ ํ•œ๋‹ค.'}\n",
457
+ "{'instruction': 'ํŠน์ˆ˜๊ต์œก์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?', 'response': 'ํŠน์ˆ˜๊ต์œก ์ „๊ณต์—์„œ๋Š” ์‹ ์ฒด์ , ์ •์‹ ์ , ์‚ฌํšŒ์  ๋ฐœ๋‹ฌ ์žฅ์• ๋ฅผ ์ง€๋‹Œ ํ•™์ƒ๋“ค์—๊ฒŒ ์ ํ•ฉํ•œ ๊ต์œก์„ ์ œ๊ณตํ•˜์—ฌ ๊ทธ๋“ค์ด ์‚ฌํšŒ ๊ตฌ์„ฑ์›์œผ๋กœ์„œ ์ƒํ™œํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ต์œกํ•˜๋Š” ํŠน์ˆ˜๊ต์œก ์ „๋ฌธ ๊ฐ€๋ฅผ ์–‘์„ฑํ•œ๋‹ค. ๋”ฐ๋ผ์„œ ํŠน์ˆ˜๊ต์œก์— ๋Œ€ํ•œ ์ „๋ฌธ์ ์ธ ์ง€์‹์„ ๋ฐ”ํƒ•์œผ๋กœ ๋‹ค์–‘ํ•œ ์ƒํ™ฉ์—์„œ์˜ ๋Œ€์ฒ˜ ๋Šฅ๋ ฅ์ด ํ•„์š”ํ•˜๊ณ , ์žฅ์• ํ•™์ƒ์— ๋Œ€ํ•œ ์‚ฌ๋ž‘, ๊ต์‚ฌ๋กœ์„œ์˜ ์†Œ๋ช… ์˜์‹๊ณผ ๋ด‰์‚ฌ ๋ฐ ํฌ์ƒ ์ • ์‹ ์ด ์žˆ์–ด์•ผ ํ•œ๋‹ค.'}\n",
458
+ "{'instruction': '์ˆ˜ํ•™์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?', 'response': '์ˆ˜ํ•™ ์ „๊ณต์—์„œ๋Š” ๋‹ค์–‘ํ•œ ๋ฌผ์ฒด๋‚˜ ๊ณต๊ฐ„, ํ˜„์ƒ์„ ๊ณ„๋Ÿ‰ํ™”ํ•˜์—ฌ ๋ถ„์„ยท์„ค๋ช…ํ•˜๊ณ , ์ˆ˜์˜ ์ฒด๊ณ„ ์™€ ์„ฑ์งˆ์„ ์—ฐ๊ตฌํ•œ๋‹ค. ์ˆ˜ํ•™ ์ „๊ณต์€ ๋…ผ๋ฆฌ์ ์ธ ์‚ฌ๊ณ ์™€ ๋ถ„์„๋ ฅ, ์ถ”๋ฆฌ๋ ฅ์ด ํ•„์š”ํ•˜๊ณ , ๋ฌธ์ œ ํ•ด ๊ฒฐ ๊ณผ์ •์„ ์ค‘์š”ํ•˜๊ฒŒ ์ƒ๊ฐํ•˜๋ฉฐ ์ˆ˜์˜ ์„ฑ์งˆ์— ๋Œ€ํ•œ ํฅ๋ฏธ๊ฐ€ ์žˆ์–ด์•ผ ํ•œ๋‹ค.'}\n",
459
+ "{'instruction': 'ํ†ต๊ณ„์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?', 'response': 'ํ†ต๊ณ„ ์ „๊ณต์—์„œ๋Š” ์—ฐ๊ตฌ๋ชฉ์ ์— ๋ถ€ํ•ฉํ•˜๋Š” ์ž๋ฃŒ๋ฅผ ์ˆ˜์ง‘, ์š”์•ฝํ•จ์œผ๋กœ์จ ์‚ฌํšŒ ๊ฐ ๋ถ„์•ผ์˜ ๋‹ค์–‘ํ•œ ํŠน์„ฑ ๋ฐ ์ •๋ณด๋ฅผ ๋ถ„์„ํ•˜๊ณ  ํ•ด์„ํ•˜๋Š” ์ด๋ก ๊ณผ ๋ฐฉ๋ฒ•์„ ์—ฐ๊ตฌํ•œ๋‹ค. ํ†ต๊ณ„ ์ „๊ณต์€ ๋‹ค์–‘ํ•œ ํ†ต๊ณ„ ๋ฐฉ๋ฒ•๋ก ์„ ์ ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์‘์šฉ๋ ฅ๊ณผ ์ •๋ณด๋ฅผ ๋ถ„์„ํ•˜๊ณ  ์ถ”๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ๋Šฅ๋ ฅ์ด ํ•„์š”ํ•˜ ๊ณ , ์ˆ˜ํ•™์— ๋Œ€ํ•œ ํฅ๋ฏธ๊ฐ€ ์žˆ์–ด์•ผ ํ•œ๋‹ค.'}\n",
460
+ "{'instruction': '๋ฌผ๋ฆฌยท์ฒœ๋ฌธ์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?', 'response': '๋ฌผ๋ฆฌยท์ฒœ๋ฌธ ์ „๊ณต์—์„œ๋Š” ๋ชจ๋“  ์ž์—ฐํ˜„์ƒ์„ ์กด์žฌํ•˜๋Š” ํž˜์˜ ์›๋ฆฌ์™€ ์šฐ์ฃผ์—์„œ ์ผ์–ด๋‚˜๋Š” ๋‹ค์–‘ํ•œ ํ˜„์ƒ์„ ๊ด€์ธกํ•˜์—ฌ ์šฐ์ฃผ์˜ ์งˆ์„œ์™€ ๋ฒ•์น™์„ ํƒ๊ตฌํ•œ๋‹ค. ๋ฌผ๋ฆฌยท์ฒœ๋ฌธ ์ „๊ณต์€ ๋ˆˆ์— ๋ณด์ด ์ง€ ์•Š๋Š” ์ž‘์€ ์„ธ๊ณ„๋ฅผ ํฌํ•จํ•ด ์ง€๊ตฌ์™€ ์šฐ์ฃผ์— ๋Œ€ํ•œ ์ฐฝ์˜์ ์ธ ์‚ฌ๊ณ  ๋Šฅ๋ ฅ, ์ฒœ์ฒด๋‚˜ ์ง€๊ตฌ์—์„œ ์ผ์–ด๋‚˜๋Š” ํ˜„์ƒ์„ ๋ถ„์„ํ•˜๋Š” ๋…ผ๋ฆฌ์ ์ธ ์‚ฌ๊ณ  ๋Šฅ๋ ฅ์ด ํ•„์š”ํ•˜๊ณ , ๋‹ค์–‘ํ•œ ์ž์—ฐ ํ˜„์ƒ์— ๋Œ€ํ•œ ๊ด€ ์‹ฌ์ด ์žˆ์–ด์•ผ ํ•œ๋‹ค.'}\n",
461
+ "{'instruction': '์ง€์งˆยท๋Œ€๊ธฐยทํ•ด์–‘์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?', 'response': '์ง€์งˆยท๋Œ€๊ธฐยทํ•ด์–‘ ์ „๊ณต์—์„œ๋Š” ์ง€๊ตฌ๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋ฌผ์งˆ์˜ ์„ฑ๋ถ„, ๊ตฌ์กฐ, ํ˜•์„ฑ ๋ฐ ๋ณ€ํ™” ๊ณผ์ • ๋“ฑ์„ ์—ฐ๊ตฌํ•˜๊ณ  ์ง€๊ตฌ๋ฅผ ๋‘˜๋Ÿฌ์‹ผ ๋Œ€๊ธฐ์™€ ํ•ด์–‘์˜ ์ž์—ฐ ํ˜„์ƒ์— ๋Œ€ํ•ด ํƒ๊ตฌํ•œ๋‹ค. ์ง€์งˆยท๋Œ€๊ธฐยทํ•ด ์–‘ ์ „๊ณต์€ ๊ณผํ•™ ๊ต๊ณผ ์ „๋ฐ˜์— ๋Œ€ํ•œ ๊ธฐ๋ณธ ์ง€์‹ ๊ทธ๋ฆฌ๊ณ  ์ž์—ฐ ํ™˜๊ฒฝ์— ๋Œ€ํ•œ ๊ด€์ฐฐ๋ ฅ๊ณผ ํƒ๏ฟฝ๏ฟฝ๋ ฅ ์ด ํ•„์š”ํ•˜๊ณ , ์ž์—ฐ, ๋Œ€๊ธฐ, ๋ฐ”๋‹ค์—์„œ ๋ฐœ์ƒํ•˜๋Š” ์ž์—ฐ ํ˜„์ƒ์— ๊ด€์‹ฌ์ด ์žˆ์–ด์•ผ ํ•œ๋‹ค.'}\n",
462
+ "{'instruction': '๋†๋ฆผยท์ถ•์‚ฐยท์ˆ˜์‚ฐ์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?', 'response': '๋†๋ฆผยท์ถ•์‚ฐยท์ˆ˜์‚ฐ ์ „๊ณต์—์„œ๋Š” ๋†ยท์ถ•ยท์ˆ˜์‚ฐ๋ฌผ์„ ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌํ•˜๊ณ  ๊ฐœ๋ฐœ, ์ƒ์‚ฐํ•˜๊ธฐ ์œ„ ํ•œ ์—ฐ๊ตฌ๋ฅผ ์ˆ˜ํ–‰ํ•˜๋ฉฐ, ๋†ยท์ถ•ยท์ˆ˜์‚ฐ ์‹ํ’ˆ์˜ ์ƒ์‚ฐ, ๊ฐ€๊ณต์ฒ˜๋ฆฌ, ์œ ํ†ต ๋“ฑ์— ๋Œ€ํ•œ ์ง€์‹์„ ์Šต๋“ํ•˜ ์—ฌ ๊ด€๋ จ๋œ ๋ฌธ์ œ๋“ค์„ ํƒ์ƒ‰ํ•˜๊ณ  ํ•ด๊ฒฐ๋ฐฉ๋ฒ•์„ ๋ชจ์ƒ‰ํ•œ๋‹ค. ๋†๋ฆผยท์ถ•์‚ฐยท์ˆ˜์‚ฐ ์ „๊ณต์€ ์ƒํ™”ํ•™์  ๊ธฐ์ดˆ์™€ ์ƒ๋ช…๊ณผํ•™ ๋ฐ ํ™”ํ•™ ์ง€์‹์ด ํ•„์š”ํ•˜๊ณ , ๋†์–ด์ดŒ ํ™˜๊ฒฝ๊ณผ ๋™ยท์‹๋ฌผ์— ๋Œ€ํ•œ ๊ด€์‹ฌ์ด ์žˆ์–ด ์•ผ ํ•œ๋‹ค.'}\n",
463
+ "{'instruction': '์‹ํ’ˆ์˜์–‘์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?', 'response': '์‹ํ’ˆ์˜์–‘ ์ „๊ณต์—์„œ๋Š” ๊ฐœ์ธ, ๊ฐ€์ •, ์ง‘๋‹จ์˜ ์Œ์‹ ์„ญ์ทจ์™€ ์‹์ƒํ™œ ๋ฌธ์ œ๋ฅผ ๋ถ„์„ํ•˜๊ณ , ๊ฑด๊ฐ• ํ•œ ์‚ถ์˜ ์œ ์ง€๋ฅผ ๋ชฉ์ ์œผ๋กœ ํ•˜๋Š” ์‹์ƒํ™œ์˜ ์งˆ์  ํ–ฅ์ƒ์„ ์œ„ํ•ด ๊ฑด๊ฐ• ๋ฐ ์˜์–‘์„ ๊ด€๋ฆฌยท์ฆ์ง„ํ•˜ ๋Š” ๋ฐฉ์•ˆ์— ๋Œ€ํ•˜์—ฌ ์—ฐ๊ตฌํ•œ๋‹ค. ์‹ํ’ˆ์˜์–‘ ์ „๊ณต์€ ์‹ํ’ˆ, ์˜์–‘์— ๋Œ€ํ•œ ์ค‘์š”์„ฑ์„ ์ดํ•ดํ•˜๊ณ  ์ œ ํ’ˆ ๊ฐœ๋ฐœ์ด๋‚˜ ์ฒจ๋‹จ๊ธฐ์ˆ  ์ ์šฉ์„ ์œ„ํ•œ ์ฐฝ์˜๋ ฅ, ์‘์šฉ๋ ฅ์ด ํ•„์š”ํ•˜๋ฉฐ, ๋‹ค์–‘ํ•œ ์‹ํ’ˆ์˜ ์„ฑ๋ถ„๊ณผ ์˜์–‘์†Œ์— ๋Œ€ํ•ด ํฅ๋ฏธ๊ฐ€ ์žˆ์–ด์•ผ ํ•œ๋‹ค.'}\n",
464
+ "{'instruction': '๊ธฐ๊ณ„์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?', 'response': '๊ธฐ๊ณ„ ์ „๊ณต์—์„œ๋Š” ๋‹ค์–‘ํ•œ ์‚ฐ์—…๋ถ„์•ผ์˜ ํ† ๋Œ€๊ฐ€ ๋˜๋Š” ๊ฐ์ข… ๊ธฐ๊ณ„์™€ ์žฅ๋น„์˜ ์„ค๊ณ„, ์ œ์ž‘, ์ด ์šฉ, ๊ด€๋ฆฌ ๋“ฑ์— ๋Œ€ํ•œ ์ด๋ก ๊ณผ ์‘์šฉ์— ๋Œ€ํ•ด ์—ฐ๊ตฌํ•œ๋‹ค. ๊ธฐ๊ณ„ ์ „๊ณต์ž์—๊ฒŒ๋Š” ์ˆ˜ํ•™, ๋ฌผ๋ฆฌ ๋“ฑ ๊ธฐ์ดˆ ๊ณผํ•™ ์ง€์‹์ด ํ•„์š”ํ•˜๊ณ , ๊ธฐ๊ณ„ ์ž‘๋™ ์›๋ฆฌ๋ฅผ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•œ ๋…ผ๋ฆฌ๋ ฅ๊ณผ ์ง€์‹ ๋ฐ ์ด๋ก ์„ ์‘์šฉ ํ•  ์ˆ˜ ์žˆ๋Š” ๋Šฅ๋ ฅ์ด ํ•„์š”ํ•˜๋ฉฐ ๊ธฐ๊ณ„, ์ž๋™์ฐจ, ์ „๊ธฐ, ์ „์ž ๋“ฑ์— ๋Œ€ํ•œ ํฅ๋ฏธ๊ฐ€ ์žˆ์–ด์•ผ ํ•œ๋‹ค.'}\n",
465
+ "{'instruction': '์ „๊ธฐยท์ „์ž์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?', 'response': '์ „๊ธฐยท์ „์ž ์ „๊ณต์—์„œ๋Š” ์ „๊ธฐ ๋ฐ ์ž๊ธฐ์˜ ํ๋ฆ„๊ณผ ๊ณ ์ฒด, ๊ธฐ์ฒด, ์ง„๊ณต ๋‚ด์—์„œ์˜ ์ „์ž ์šด๋™ ์„ ํƒ๊ตฌํ•˜๊ณ  ์ด๊ฒƒ์„ ์‹ค์ƒํ™œ์— ์‘์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์—ฐ๊ตฌํ•˜๋Š” ํ•™๋ฌธ์ด๋‹ค. ์ „๊ธฐยท์ „์ž ์ „๊ณต์ž์— ๊ฒŒ๋Š” ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์„ ์ „๊ธฐยท์ „์ž์ œํ’ˆ์œผ๋กœ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ์ฐฝ์˜๋ ฅ, ๋ถ„์„์  ์‚ฌ๊ณ ๊ฐ€ ํ•„์š”ํ•˜ ๊ณ , ์ „๊ธฐ์ „์ž ์‹œ์Šคํ…œ ์ดํ•ด๋ฅผ ์œ„ํ•œ ๋…ผ๋ฆฌ์  ์‚ฌ๊ณ ๊ฐ€ ํ•„์š”ํ•˜๋ฉฐ, ์ˆ˜ํ•™, ๋ฌผ๋ฆฌํ•™์— ๋Œ€ํ•œ ํฅ๋ฏธ๊ฐ€ ์žˆ์–ด์•ผ ํ•œ๋‹ค.'}\n",
466
+ "{'instruction': '์ปดํ“จํ„ฐยท์†Œํ”„ํŠธ์›จ์–ด์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?', 'response': '์ปดํ“จํ„ฐยท์†Œํ”„ํŠธ์›จ์–ด ์ „๊ณต์—์„œ๋Š” ์ปดํ“จํ„ฐ์˜ ํ•˜๋“œ์›จ์–ด์™€ ์†Œํ”„ํŠธ์›จ์–ด, ๋ฉ€ํ‹ฐ๋ฏธ๋””์–ด ๋“ฑ ์ปดํ“จํ„ฐ์™€ ๊ด€๋ จ๋œ ๊ธฐ์ˆ ๊ณผ ์ง€์‹์„ ์Šต๋“ํ•˜๊ณ  ์ด๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ๋‹ค์–‘ํ•œ ๋ถ„์•ผ์— ์ ์šฉํ•˜๋Š” ํ•™๋ฌธ ์ด๋‹ค. ์ปดํ“จํ„ฐยท์†Œํ”„ํŠธ์›จ์–ด ์ „๊ณต์ž์—๊ฒŒ๋Š” ์ƒˆ๋กœ์šด ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ์— ํ•„์š”ํ•œ ์ปดํ“จํ„ฐ ํ”„๋กœ ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์— ๋Œ€ํ•œ ์ง€์‹๊ณผ ๋…ผ๋ฆฌ์  ์‚ฌ๊ณ ๋Šฅ๋ ฅ ๋ฐ ์ฐฝ์˜๋ ฅ์ด ํ•„์š”ํ•˜๊ณ , ์ˆ˜ํ•™์— ๋Œ€ํ•œ ํฅ๋ฏธ์™€ ๊ด€์‹ฌ์ด ์žˆ์–ด์•ผ ํ•œ๋‹ค.'}\n",
467
+ "{'instruction': '์ •๋ณดยทํ†ต์‹ ยท๋ณด์•ˆ์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?', 'response': '์ •๋ณดยทํ†ต์‹ ยท๋ณด์•ˆ ์ „๊ณต์—์„œ๋Š” ์ปดํ“จํ„ฐ๊ณตํ•™๊ธฐ๋ฐ˜ ์ง€์‹์„ ๋ฐ”ํƒ•์œผ๋กœ ICT(์ •๋ณดํ†ต์‹ ๊ธฐ์ˆ ) ๋ฐ ๋‹ค์–‘ํ•œ ์œตํ•ฉ์‚ฐ์—…๋ถ„์•ผ์˜ ์ •๋ณดยทํ†ต์‹ ยท๋ณด์•ˆ์— ๊ด€ํ•œ ์ด๋ก ์„ ์Šต๋“ํ•˜๊ณ  ์ด๋ฅผ ์ ์šฉํ•˜๋Š” ํ•™๋ฌธ์ด ๋‹ค. ์ •๋ณดยทํ†ต์‹ ยท๋ณด์•ˆ ์ „๊ณต์ž์—๊ฒŒ๋Š” ์ˆ˜ํ•™, ํ†ต๊ณ„, ๋ฌผ๋ฆฌ ๋“ฑ์— ๋Œ€ํ•œ ๊ธฐ๋ณธ ์ง€์‹๊ณผ ์ „๊ธฐ, ์ „์ž, ์ปด ํ“จํ„ฐ์— ๋Œ€ํ•œ ๊ธฐ์ดˆ์ง€์‹, ๋…ผ๋ฆฌ์  ์‚ฌ๊ณ ๋ ฅ, ์ฐฝ์˜์ ์ด๋ฉฐ ์œ ์—ฐํ•œ ์‚ฌ๊ณ , ์ •ํ™•ํ•œ ํŒ๋‹จ๋ ฅ์ด ํ•„์š” ํ•˜๊ณ , ๋‹ค์–‘ํ•œ ์‚ฐ์—…์˜ ์ •๋ณดยทํ†ต์‹  ๋ถ„์•ผ์— ๊ด€์‹ฌ์ด ์žˆ์–ด์•ผ ํ•œ๋‹ค.'}\n",
468
+ "{'instruction': '์‚ฐ์—…๊ณตํ•™์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?', 'response': '์‚ฐ์—…๊ณตํ•™ ์ „๊ณต์—์„œ๋Š” ์ œํ’ˆ ์ƒ์‚ฐ๊ณผ ์ „๋‹ฌ์˜ ์ „ ๊ณผ์ •์— ํ•„์š”ํ•œ ๊ธฐ๊ณ„, ๊ธฐ์ˆ , ์ธ์ ์ž์› ๋“ฑ ์— ๊ด€ํ•œ ์ตœ์ ์˜ ์‹œ์Šคํ…œ์„ ์—ฐ๊ตฌํ•œ๋‹ค. ์‚ฐ์—…๊ณตํ•™ ์ „๊ณต์ž์—๊ฒŒ๋Š” ๋ฐ์ดํ„ฐ์— ๊ธฐ๋ฐ˜ํ•˜์—ฌ ์‹œ์Šคํ…œ ์˜ ํšจ์œจ์„ฑ์„ ๋†’์ผ ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œํ•ด๊ฒฐ๋Šฅ๋ ฅ๊ณผ ์‚ฌ๊ณ ๋ ฅ์ด ํ•„์š”ํ•˜๊ณ , ๊ณตํ•™๋ฟ ์•„๋‹ˆ๋ผ ๊ฒฝ์˜ํ•™ ๋“ฑ ์˜ ์‚ฌํšŒ๊ณผํ•™์— ๊ด€์‹ฌ์ด ์žˆ์–ด์•ผ ํ•œ๋‹ค.'}\n",
469
+ "{'instruction': '๊ฑด์ถ•ยทํ† ๋ชฉ์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?', 'response': '๊ฑด์ถ•ยทํ† ๋ชฉ ์ „๊ณต์—์„œ๋Š” ๊ฑด์ถ•๋ฌผ ๋ฐ ๋„๋กœ, ํ•ญ๊ตฌ, ๋Œ ๋“ฑ์˜ ์‚ฌํšŒ๊ธฐ๋ฐ˜์‹œ์„ค์„ ์„ค๊ณ„ํ•˜๊ณ  ๊ฑด์ถ• ํ•˜๊ธฐ ์œ„ํ•œ ์ด๋ก ์„ ์—ฐ๊ตฌํ•œ๋‹ค. ๊ฑด์ถ•ยทํ† ๋ชฉ ์ „๊ณต์ž์—๊ฒŒ๋Š” ์ˆ˜ํ•™, ๊ณผํ•™ ๋“ฑ ๊ธฐ์ดˆ๋ถ„์•ผ๋ฅผ ๋น„๋กฏํ•˜ ์—ฌ ์ปดํ“จํ„ฐ ํ™œ์šฉ ๋Šฅ๋ ฅ, ๊ณต๊ฐ„ ์ง€๊ฐ๋ ฅ ๋ฐ ๊ณต๊ฐ„ ์ดํ•ด๋ ฅ์ด ํ•„์š”ํ•˜๊ณ , ์•„๋ฆ„๋‹ค์šด ๊ฑด์ถ• ์„ค๊ณ„๋ฅผ ์œ„ ํ•œ ๋ฌธํ™”์ ยท๋ฏธ์  ๊ฐ๊ฐ์ด ์žˆ์–ด์•ผ ํ•œ๋‹ค.'}\n",
470
+ "{'instruction': 'ํ™˜๊ฒฝยท์—๋„ˆ์ง€์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?', 'response': 'ํ™˜๊ฒฝยท์—๋„ˆ์ง€ ์ „๊ณต์—์„œ๋Š” ์ž์—ฐ์„ ๊ตฌ์„ฑํ•˜๋Š” ๋ฌผ, ๋Œ€๊ธฐ, ํ† ์–‘๊ณผ ์ƒํƒœ๊ณ„์—์„œ ์ผ์–ด๋‚˜๋Š” ํ™˜ ๊ฒฝ ๋ณ€ํ™”, ์—๋„ˆ์ง€์˜ ์ƒ์‚ฐ ๊ณผ์ • ๋ฐ ๋ณ€ํ™˜ ๊ณผ์ • ๋“ฑ์„ ํƒ๊ตฌํ•˜์—ฌ ์ธ๊ฐ„์˜ ์‚ถ์˜ ์งˆ ํ–ฅ์ƒ์„ ๋ชฉ์ ์œผ ๋กœ ํ•˜๋Š” ํ•™๋ฌธ์ด๋‹ค. ํ™˜๊ฒฝยท์—๋„ˆ์ง€ ์ „๊ณต์ž์—๊ฒŒ๋Š” ์‹คํ—˜ ์—ฐ๊ตฌ๋ฅผ ์œ„ํ•œ ๋ถ„์„์  ์‚ฌ๊ณ ์™€ ์ง‘์ค‘๋ ฅ, ํ™”ํ•™, ๋ฌผ๋ฆฌ, ์ˆ˜ํ•™ ๋“ฑ ๊ธฐ์ดˆ๊ณผํ•™ ๋ถ„์•ผ์— ๋Œ€ํ•œ ์ดํ•ด ๋Šฅ๋ ฅ์ด ํ•„์š”ํ•˜๊ณ , ํ™˜๊ฒฝ๋ฌธ์ œ ๋ฐ ์ž์—ฐ์— ๋Œ€ ํ•œ ๋„“์€ ์ดํ•ด์™€ ๊ด€์‹ฌ์ด ์žˆ์–ด์•ผ ํ•œ๋‹ค.'}\n",
471
+ "{'instruction': '์ƒ๋ช…๊ณผํ•™ยท์ƒ๋ช…๊ณตํ•™์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?', 'response': '์ƒ๋ช…๊ณผํ•™ยท์ƒ๋ช…๊ณตํ•™ ์ „๊ณต์—์„œ๋Š” ์ƒ๋ช…์ฒด์— ๋Œ€ํ•œ ์ง€์‹๊ณผ ์ดํ•ด๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ๋‹ค์–‘ํ•œ ์ƒ ๋ช… ํ˜„์ƒ์˜ ๊ณผ์ •์„ ํƒ๊ตฌํ•˜๋ฉฐ, ์˜๋ฃŒ, ํ™˜๊ฒฝ ๋“ฑ์˜ ์—ฐ๊ตฌ์™€ ์‚ฐ์—…์— ๊ธฐ์ดˆ๊ฐ€ ๋˜๋Š” ํ•™๋ฌธ์ด๋‹ค. ์ƒ๋ช… ๊ณผํ•™ยท์ƒ๋ช…๊ณตํ•™ ์ „๊ณต์ž์—๊ฒŒ๋Š” ์ž์—ฐ๊ณผํ•™ ๋ถ„์•ผ์— ๋Œ€ํ•œ ๊นŠ์ด ์žˆ๋Š” ์ดํ•ด์™€ ์ง€์‹ ๊ทธ๋ฆฌ๊ณ  ๊ด€์ฐฐ ๋ ฅ, ๋…ผ๋ฆฌ์  ์‚ฌ๊ณ , ๋ถ„์„๋ ฅ, ํ†ต์ฐฐ๋ ฅ์ด ํ•„์š”ํ•˜๊ณ , ๋‹ค์–‘ํ•œ ์ƒ๋ช… ํ˜„์ƒ๊ณผ ์ƒ๋ช…์ฒด์— ๊ด€์‹ฌ์ด ์žˆ์–ด ์•ผ ํ•œ๋‹ค.'}\n",
472
+ "{'instruction': 'ํ™”ํ•™ยทํ™”ํ•™๊ณตํ•™์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?', 'response': 'ํ™”ํ•™ยทํ™”ํ•™๊ณตํ•™ ์ „๊ณต์—์„œ๋Š” ํ™”ํ•™ ๋ฐ˜์‘์˜ ์›๋ฆฌ๋ฅผ ์‹ค์ƒํ™œ์— ์‘์šฉํ•˜๋Š” ๊ธฐ์ˆ ๊ณผ ๋ฐฉ๋ฒ•์„ ์—ฐ๊ตฌํ•˜๋Š” ํ•™๋ฌธ์œผ๋กœ, ๊ณ ๋ถ„์ž, ์‹ ์—๋„ˆ์ง€, ํ™˜๊ฒฝ๊ธฐ์ˆ  ๋“ฑ ํ™”ํ•™ ๊ณต์ •์ด ํ•„์š”ํ•œ ์‚ฐ์—…์— ํ™œ์šฉ๋˜ ๋Š” ํ•™๋ฌธ์ด๋‹ค. ํ™”ํ•™ยทํ™”ํ•™๊ณตํ•™ ์ „๊ณต์ž์—๊ฒŒ๋Š” ์ˆ˜ํ•™, ๋ฌผ๋ฆฌ ๋“ฑ ๊ธฐ์ดˆ๊ณผํ•™๋ถ„์•ผ์— ๋Œ€ํ•œ ์ง€์‹๊ณผ ๋ถ„์„์ ์ธ ์‚ฌ๊ณ  ๋Šฅ๋ ฅ์ด ํ•„์š”ํ•˜๊ณ , ๊ผผ๊ผผํ•˜๊ณ  ์ฃผ์˜ ๊นŠ์€ ์„ฑ๊ฒฉ๊ณผ ๋ฌผ์งˆ ๋ณ€ํ™”์— ๋Œ€ํ•œ ๊ด€์‹ฌ์ด ์žˆ์–ด์•ผ ํ•œ๋‹ค.'}\n",
473
+ "{'instruction': '์žฌ๋ฃŒยท์‹ ์†Œ์žฌ์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?', 'response': '์žฌ๋ฃŒยท์‹ ์†Œ์žฌ ์ „๊ณต์—์„œ๋Š” ๋‹ค์–‘ํ•œ ์žฌ๋ฃŒ์˜ ๊ตฌ์กฐ์™€ ํŠน์ง•์„ ์ดํ•ดํ•˜๊ณ  ์‚ฐ์—…์— ํ•„์š”ํ•œ ์‹  ์†Œ์žฌ, ์ƒ์ฒด์žฌ๋ฃŒ, ๊ธฐ๋Šฅ์žฌ๋ฃŒ ๋“ฑ์˜ ์ฒจ๋‹จ ์žฌ๋ฃŒ์— ๋Œ€ํ•ด ์—ฐ๊ตฌํ•˜๊ณ  ๊ฐœ๋ฐœํ•˜๋Š” ํ•™๋ฌธ์ด๋‹ค. ์žฌ๋ฃŒยท์‹  ์†Œ์žฌ ์ „๊ณต์ž์—๊ฒŒ๋Š” ๋‹ค์–‘ํ•œ ์†Œ์žฌ์— ๋Œ€ํ•œ ์ดํ•ด์™€ ์ด๋ฅผ ์‹ค์ƒํ™œ์— ์ ์šฉ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋Š” ์‘์šฉ๋ ฅ, ์‹คํ—˜ยท์‹ค์Šต์„ ์œ„ํ•œ ๋ถ„์„์  ์‚ฌ๊ณ ๋ ฅ์ด ํ•„์š”ํ•˜๊ณ , ์ˆ˜ํ•™, ํ™”ํ•™, ๋ฌผ๋ฆฌ ๋“ฑ ๊ธฐ์ดˆ๊ณผํ•™์— ๊ด€์‹ฌ์ด ์žˆ ์–ด์•ผ ํ•œ๋‹ค.'}\n",
474
+ "{'instruction': '์˜ํ•™์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?', 'response': '์˜ํ•™ ์ „๊ณต์€ ์ธ์ฒด์—์„œ ๋ฐœ์ƒํ•˜๋Š” ์งˆ๋ณ‘์˜ ์˜ˆ๋ฐฉยท์ง„๋‹จยท์น˜๋ฃŒ์™€ ๊ด€๋ จ๋œ ์ง€์‹์„ ์Šต๋“ํ•˜๊ณ , ์ด๋ฅผ ํ™œ์šฉํ•˜์—ฌ ํ™˜์ž๋ฅผ ์ง„๋ฃŒํ•˜๋ฉฐ, ์˜ํ•™ ์ด๋ก ์„ ํƒ๊ตฌํ•จ์œผ๋กœ์จ ์งˆ๋ณ‘ ์˜ˆ๋ฐฉ ๋ฐ ์น˜๋ฃŒ ๋ฐฉ์•ˆ์— ๋Œ€ํ•œ ์—ฐ๊ตฌ๋ฅผ ์ˆ˜ํ–‰ํ•œ๋‹ค. ์˜ํ•™ ์ „๊ณต์ž๋Š” ํ™”ํ•™ ๋ฐ ์ƒ๋ช…๊ณผํ•™์˜ ๊ธฐ์ดˆ ์ง€์‹๊ณผ ๊ณผํ•™์  ์‚ฌ๊ณ ๋ฐฉ ์‹, ์˜ํ•™์  ์ง„๋‹จ๊ณผ ์ฒ˜์น˜๋ฅผ ์œ„ํ•œ ์ถ”๋ก ๋ ฅ์ด ํ•„์š”ํ•˜๊ณ , ํ™˜์ž์˜ ๊ณ ํ†ต์„ ์ดํ•ดํ•˜๋ฉฐ ์ƒ๋ช…์„ ๊ตฌ ํ•˜๋Š” ์ผ์— ๋ณด๋žŒ์„ ๋А๋ผ๊ณ , ์ธ์ฒด์˜ ๊ตฌ์กฐ์™€ ๊ธฐ๋Šฅ์— ๊ด€์‹ฌ์ด ์žˆ์–ด์•ผ ํ•œ๋‹ค.'}\n",
475
+ "{'instruction': '์•ฝํ•™์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?', 'response': '์•ฝํ•™ ์ „๊ณต์€ ์งˆ๋ณ‘์˜ ์˜ˆ๋ฐฉ ๋ฐ ์น˜๋ฃŒ์— ์‚ฌ์šฉ๋˜๋Š” ์˜์•ฝํ’ˆ์— ๊ด€ํ•œ ๊ธฐ์ดˆ ์ด๋ก ๊ณผ ์˜์•ฝํ’ˆ์˜ ๊ฐœ๋ฐœ, ์ƒ์‚ฐ, ์กฐ์ œ์™€ ๊ด€๋ จ๋œ ์ง€์‹์„ ์Šต๋“ํ•˜๊ณ  ์ด์— ๋Œ€ํ•ด ์—ฐ๊ตฌํ•œ๋‹ค. ์•ฝํ•™ ์ „๊ณต์ž๋Š” ์‹คํ—˜ ๋ฐ ์‹ค์Šต์—์„œ์˜ ์นจ์ฐฉํ•จ, ๊นŠ์€ ์ฃผ์˜๋ ฅ ๊ทธ๋ฆฌ๊ณ  ๋ถ„์„์ ์ธ ์‚ฌ๊ณ ๋ ฅ์ด ํ•„์š”ํ•˜๊ณ , ํ™”ํ•™, ์ƒ๋ช…๊ณผํ•™์— ๊ด€์‹ฌ์ด ์žˆ์–ด์•ผ ํ•œ๋‹ค.'}\n",
476
+ "{'instruction': '๊ฐ„ํ˜ธ์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?', 'response': '๊ฐ„ํ˜ธ ์ „๊ณต์€ ์ธ๊ฐ„์ด ๊ฑด๊ฐ•์„ ์œ ์ง€ ๋ฐ ์ฆ์ง„ํ•˜๊ณ  ์งˆ๋ณ‘์œผ๋กœ๋ถ€ํ„ฐ ํšŒ๋ณตํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ์ด๋ก ๊ณผ ์‹ค๋ฌด ๊ทธ๋ฆฌ๊ณ  ๊ฐ„ํ˜ธ ๋Œ€์ƒ์ž์˜ ๊ฐ„ํ˜ธ ๋ฌธ์ œ๋ฅผ ์ง„๋‹จ, ์ค‘์žฌ, ํ‰๊ฐ€ํ•  ์ˆ˜ ์žˆ๋Š” ๋Šฅ๋ ฅ์„ ๊ฐœ๋ฐœ ํ•˜๊ณ  ์ ์šฉํ•œ๋‹ค. ๊ฐ„ํ˜ธ ์ „๊ณต์ž๋Š” ํ™”ํ•™ ๋ฐ ์ƒ๋ช…๊ณผํ•™์— ๋Œ€ํ•œ ์ดํ•ด์™€ ํ™˜์ž ๊ฐ„ํ˜ธ๋ฅผ ์œ„ํ•œ ์˜์‚ฌ ์†Œํ†ต ๋Šฅ๋ ฅ์ด ํ•„์š”ํ•˜๊ณ , ์งˆ๋ณ‘๊ณผ ํ™˜์ž์˜ ๊ณ ํ†ต์— ๊ด€์‹ฌ๊ณผ ๋ฐฐ๋ ค๊ฐ€ ์žˆ์–ด์•ผ ํ•œ๋‹ค.'}\n",
477
+ "{'instruction': '๋ณด๊ฑดยท์ž„์ƒ์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?', 'response': '๋ณด๊ฑดยท์ž„์ƒ ์ „๊ณต์€ ๊ณต์ค‘๋ณด๊ฑด, ๊ฐœ์ธ ์œ„์ƒ ๋“ฑ ๊ฑด๊ฐ•์„ ํ–ฅ์ƒ์‹œํ‚ค๊ธฐ ์œ„ํ•œ ๋ฐฉ์•ˆ์„ ํƒ์ƒ‰ํ•˜๊ณ , ์‹ ์ฒด์ ยท์ •์‹ ์  ์žฅ์• ๋ฅผ ๊ฐ€์ง„ ์‚ฌ๋žŒ๋“ค์„ ๋ณด์กฐํ•˜๋Š” ์น˜๋ฃŒ ์‹œ์„ค๊ณผ ์ฒจ๋‹จ ์˜๋ฃŒ ์žฅ๋น„๋ฅผ ๋‹ค๋ฃจ๊ณ  ๋งŒ๋“œ๋Š” ๊ธฐ์ˆ ์— ๋Œ€ํ•ด ์—ฐ๊ตฌํ•œ๋‹ค. ๋ณด๊ฑดยท์ž„์ƒ ์ „๊ณต์ž๋Š” ๊ธฐ์ดˆ๊ณผํ•™์— ๋Œ€ํ•œ ์ง€์‹์„ ๋ฐ”ํƒ•์œผ๋กœ ๊ณต์ค‘๋ณด๊ฑด๊ณผ ๊ฐœ์ธ ์œ„์ƒ์— ๋Œ€ํ•œ ์ดํ•ด ๋Šฅ๋ ฅ, ํ™˜์ž ์ƒํƒœ์— ๋”ฐ๋ผ ์ ์ ˆํ•œ ์น˜๋ฃŒ ๋ฐฉ๋ฒ•์„ ์ˆ˜ํ–‰ํ•˜ ๋Š” ์‹คํ–‰ ๋Šฅ๋ ฅ์ด ํ•„์š”ํ•˜๊ณ , ๋ณด๊ฑด์˜๋ฃŒ์ธ์œผ๋กœ์„œ์˜ ์‚ฌ๋ช…๊ฐ์ด ์žˆ์–ด์•ผ ํ•œ๋‹ค.'}\n",
478
+ "{'instruction': '๋ฌด์šฉ์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?', 'response': '๋ฌด์šฉ ์ „๊ณต์—์„œ๋Š” ๋ฌด์šฉ ์ด๋ก ๊ณผ ๊ด€๋ จ๋œ ์ „๋ฌธ ์ง€์‹์„ ์Šต๋“ํ•˜๊ณ . ์‹ค๊ธฐ ๊ต์œก์„ ํ†ตํ•ด ๊ท ํ˜• ์žˆ๋Š” ์‹ ์ฒด์˜ ์›€์ง์ž„์„ ์—ฐ๋งˆํ•˜์—ฌ ๋ฌด์šฉ ์ž‘ํ’ˆ์— ๋Œ€ํ•œ ํ•ด์„๋ ฅ๊ณผ ์˜ˆ์ˆ ์  ํ‘œํ˜„๋ ฅ ๋“ฑ์„ ํ•จ์–‘ํ•œ ๋‹ค. ๋”ฐ๋ผ์„œ ์Œ์•…๊ณผ ์ฃผ์ œ์— ๋งž์ถฐ ๋ชธ์œผ๋กœ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ๋Šฅ๋ ฅ์ด ํ•„์š”ํ•˜๊ณ , ๊ฐ•ํ•œ ์ฒด๋ ฅ๊ณผ ์œ  ์—ฐํ•œ ์‹ ์ฒด์กฐ๊ฑด์„ ๊ฐ–์ถ”๊ธฐ ์œ„ํ•œ ๋ˆ๊ธฐ์™€ ์ธ๋‚ด์‹ฌ์ด ์žˆ์–ด์•ผ ํ•œ๋‹ค.'}\n",
479
+ "{'instruction': '์ฒด์œก์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?', 'response': '์ฒด์œก ์ „๊ณต์—์„œ๋Š” ์‹ ์ฒดํ™œ๋™์„ ๋ฐ”ํƒ•์œผ๋กœ ํ•˜๋Š” ์šด๋™, ๊ฑด๊ฐ•, ์Šคํฌ์ธ  ๊ณผํ•™, ์—ฌ๊ฐ€์— ๋Œ€ํ•œ ์ด๋ก ์„ ๋ฐฐ์šฐ๊ณ  ์ด์™€ ๊ด€๋ จํ•œ ํŠน์ • ์‹ค๊ธฐ ์‹ค์Šต์„ ์ˆ˜ํ–‰ํ•˜์—ฌ ์‹ ์ฒด์  ๋Šฅ๋ ฅ์„ ๊ณ„๋ฐœํ•œ๋‹ค. ์ฒด์œก์„ ์ „๊ณตํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๊ฐ•์ธํ•œ ์ฒด๋ ฅ ๋ฐ ์ •์‹ ๋ ฅ ๊ทธ๋ฆฌ๊ณ  ๊ฒฝ๊ธฐ๋ฅผ ์ •๋‹นํ•˜๊ฒŒ ์น˜๋ฅด๊ธฐ ์œ„ํ•œ ์Šคํฌ์ธ  ๋งจ์‹ญ์ด ํ•„์š”ํ•˜๊ณ , ์šด๋™ํ•˜๊ธฐ๋ฅผ ์ข‹์•„ํ•˜๋Š” ๋งˆ์Œ๊ณผ ์Šคํฌ์ธ ์— ๊ด€์‹ฌ์ด ์žˆ์–ด์•ผ ํ•œ๋‹ค.'}\n",
480
+ "{'instruction': '์—ฐ์˜ˆยท์˜ํ™”ยท์—ฐ๊ทน์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?', 'response': '์—ฐ์˜ˆยท์˜ํ™”ยท์—ฐ๊ทน ์ „๊ณต์€ ๋‹ค์–‘ํ•œ ๋งค์ฒด๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์ƒˆ๋กœ์šด ์˜์ƒ ์–ธ์–ด๋ฅผ ์ฐฝ์ถœํ•˜๊ณ  ์˜ํ™”, ์—ฐ๊ทน ๋“ฑ์˜ ๋ถ„์•ผ์—์„œ ์ธ๊ฐ„์˜ ์ •์„œ๋ฅผ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ๋Š” ํ™œ๋™์„ ์ˆ˜ํ–‰ํ•œ๋‹ค. ๋”ฐ๋ผ์„œ ๋ฐฐ์—ญ์— ๋Œ€ ํ•œ ๋ถ„์„๋ ฅ, ์—ฐ๊ธฐ๋ ฅ, ์˜ˆ์ˆ ์  ์ง€์‹์ด ํ•„์š”ํ•˜๊ณ , ์ƒ๊ฐ์„ ๋งค์ฒด๋ฅผ ํ†ตํ•ด ํ‘œํ˜„ํ•˜๋Š” ๋Šฅ๋ ฅ์ด ํ•„์š” ํ•˜๋ฉฐ ๋ฏธ์ˆ , ์Œ์•…, ๋ฌด์šฉ, ์–ดํ•™, ์—ฐ๊ทน, ์‚ฌํšŒํ•™, ์–ธ๋ก ํ•™ ๋“ฑ ๋‹ค์–‘ํ•œ ๋ถ„์•ผ์— ๊ด€์‹ฌ์ด ์žˆ์–ด์•ผ ํ•œ๋‹ค.'}\n",
481
+ "{'instruction': '์Œ์•…์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?', 'response': '์Œ์•… ์ „๊ณต์—์„œ๋Š” ์Œ์•… ์ „๋ฐ˜์— ๊ด€ํ•œ ์ด๋ก  ํ•™์Šต๊ณผ ๋‹ค์–‘ํ•œ ์Œ์•… ๊ด€๋ จ ๊ธฐ๊ต์˜ ํ›ˆ๋ จ์„ ํ†ต ํ•ด ๊ธฐ์กด ์Œ์•…์„ ์—ฐ์ฃผํ•˜๊ฑฐ๋‚˜ ์ƒˆ๋กœ์šด ์Œ์•…์„ ์ฐฝ์ž‘ํ•˜๋ฉฐ, ์ „๋ฌธ์ ์œผ๋กœ ๊ฐ์ƒ ๋ฐ ๋น„ํ‰ํ•˜๋Š” ๋Šฅ๋ ฅ ์„ ๊ณ„๋ฐœํ•œ๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ ์ฒญ์Œ๋Šฅ๋ ฅ, ์ฐฝ์˜๋ ฅ, ์Œ์•…์„ ์†Œ๋ฆฌ๋‚˜ ์•…๊ธฐ๋กœ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ์—ฐ์ฃผ ๋Šฅ ๋ ฅ์ด ํ•„์š”ํ•˜๊ณ , ์Œ๊ฐ๊ณผ ์Œ์•…์  ๊ฐ์ˆ˜์„ฑ์ด ์žˆ์–ด์•ผ ํ•œ๋‹ค.'}\n",
482
+ "{'instruction': '๋ฏธ์ˆ ยท๊ณต์˜ˆยท๋””์ž์ธ์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?', 'response': '๋ฏธ์ˆ ยท๊ณต์˜ˆยท๋””์ž์ธ ์ „๊ณต์€ ๋ฏธ์ˆ  ์ „๋ฐ˜์— ๋Œ€ํ•œ ์ง€์‹๊ณผ ์‹ค๊ธฐ ๊ต์œก์„ ํ†ตํ•ด ๋ฏธ์ˆ ์  ์ƒ์ƒ๋ ฅ ๊ณผ ์ฐฝ์˜์„ฑ ๋ฐ ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ํ‘œํ˜„ ๋ฐฉ๋ฒ•์„ ์Šต๋“ํ•˜๊ณ , ๊ธฐ๋Šฅ์ ยท์‹ฌ๋ฏธ์  ์กฐ๊ฑด์„ ๊ณ ๋ คํ•˜์—ฌ ๊ฐ์ข… ์ƒ ํ’ˆ์˜ ๋””์ž์ธ์„ ๊ฐœ๋ฐœํ•˜๊ณ  ์—ฐ๊ตฌํ•œ๋‹ค. ๋”ฐ๋ผ์„œ ๋ฏธ์ˆ  ์ž‘ํ’ˆ์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•œ ๋…์ฐฝ์„ฑ๊ณผ ์ฐฝ์˜์„ฑ, ์ •๊ตํ•œ ๊ธฐ๋ฒ• ํ™œ์šฉ ๋Šฅ๋ ฅ์ด ํ•„์š”ํ•˜๊ณ , ์˜ˆ์ˆ  ๋ถ„์•ผ์—์„œ์˜ ๋ณ€ํ™”์™€ ์œ ํ–‰์— ๋ฏผ๊ฐํ•ด์•ผ ํ•œ๋‹ค.'}\n",
483
+ "{'instruction': '๋””์ง€ํ„ธ์ฝ˜ํ…์ธ ์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?', 'response': '๋””์ง€ํ„ธ์ฝ˜ํ…์ธ  ์ „๊ณต์—์„œ๋Š” ๋‰ด๋ฏธ๋””์–ด ๋งค์ฒด์ธ ๋””์ง€ํ„ธ ๊ฒŒ์ž„, ๋””์ง€ํ„ธ ์˜์ƒ, ์• ๋‹ˆ๋ฉ”์ด์…˜, ์ธํ„ฐ๋ž™ํ‹ฐ๋ธŒ ๋””์ž์ธ์ฝ˜ํ…์ธ  ๋“ฑ์˜ ๊ธฐํš๊ณผ ์—ฐ์ถœ์„ ์ˆ˜ํ–‰ํ•˜๊ณ , ๋‹ค์–‘ํ•œ ์‹œ๊ฐ์  ํ‘œํ˜„๊ณผ ๋””์ž์ธ ์„ ํƒ์ƒ‰ ๋ฐ ์ฐฝ์ถœํ•œ๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ ๋””์ง€ํ„ธ์ฝ˜ํ…์ธ  ์ „๊ณต์ž๊ฐ€ ๋˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋””์ง€ํ„ธ ๊ธฐ์ˆ ์— ๋Œ€ ํ•œ ์ง€์‹, ๋””์ง€ํ„ธ์ฝ˜ํ…์ธ  ์ œ์ž‘ ๋Šฅ๋ ฅ, ํŠธ๋ Œ๋“œ๋ฅผ ํŒŒ์•…ํ•˜๋Š” ๋Šฅ๋ ฅ, ์ฐฝ์˜๋ ฅ, ๊ธฐํš๋ ฅ์ด ํ•„์š”ํ•˜๊ณ , ๋‹ค์–‘ํ•œ ๋งค์ฒด์— ๋Œ€ํ•œ ๊ด€์‹ฌ์ด ์žˆ์–ด์•ผ ํ•œ๋‹ค.'}\n",
484
+ "[99, 97, 91, 100, 115, 116, 105, 123, 106, 118, 118, 118, 125, 115, 108, 90, 127, 82, 79, 82, 107, 112, 115, 103, 75, 91, 113, 102, 116, 111, 103, 109, 93, 129, 85, 93, 115, 110, 110, 111, 122, 88, 92, 119, 92, 98, 109, 94, 100, 104]\n"
485
+ ]
486
+ }
487
+ ],
488
+ "source": [
489
+ "# ์ •์˜ํ•œ ํ•™์Šต๋ฐ์ดํ„ฐ์˜ ํ† ํฌ๋‚˜์ด์ €๊ฐ€ 512๋ฅผ ๋„˜๋Š” ๋ฐ์ดํ„ฐ๋Š” ์ž˜๋ฆฌ๊ธฐ ๋•Œ๋ฌธ์—\n",
490
+ "# ํ•™์Šต๋ฐ์ดํ„ฐ๊ฐ€ ๋ช‡ ํ† ํฐ์œผ๋กœ ๊ตฌ์„ฑ๋˜๋Š”์ง€ ํŒŒ์•…\n",
491
+ "from datasets import load_dataset\n",
492
+ "dataset = load_dataset(\"json\", data_files=\"dataset/kcmii_major_instruction_data_summarized.jsonl\", split=\"train\")\n",
493
+ "\n",
494
+ "def token_len(data) :\n",
495
+ " token_lengths = []\n",
496
+ " prompt = f\"{data['instruction']}\\n๋‹ต๋ณ€: {data['response']}\"\n",
497
+ " token = tokenizer(prompt, truncation=False)[\"input_ids\"]\n",
498
+ " token_lengths.append(len(token))\n",
499
+ " return token_lengths\n",
500
+ " \n",
501
+ "token_lengths = []\n",
502
+ "for i in range(0, len(dataset)) :\n",
503
+ " data = dataset[i]\n",
504
+ " print(data)\n",
505
+ " prompt = f\"{data['instruction']}\\n๋‹ต๋ณ€: {data['response']}\"\n",
506
+ " token = tokenizer(prompt, truncation=False)[\"input_ids\"]\n",
507
+ " token_lengths.append(len(token))\n",
508
+ "print(token_lengths)\n",
509
+ "\n",
510
+ "# 512 ๋„˜์–ด๊ฐ€๋Š” ํ† ํฐ์€ ์—†์Œ"
511
+ ]
512
+ },
513
+ {
514
+ "cell_type": "code",
515
+ "execution_count": 3,
516
+ "id": "be874ebd-da32-418c-9da5-ec68d2d8edfd",
517
+ "metadata": {
518
+ "scrolled": true
519
+ },
520
+ "outputs": [
521
+ {
522
+ "name": "stderr",
523
+ "output_type": "stream",
524
+ "text": [
525
+ "No label_names provided for model class `PeftModelForCausalLM`. Since `PeftModel` hides base models input arguments, if label_names is not given, label_names can't be set automatically within `Trainer`. Note that empty label_names list will be used instead.\n",
526
+ "/opt/anaconda3/envs/report_error_detector/lib/python3.10/site-packages/torch/utils/data/dataloader.py:683: UserWarning: 'pin_memory' argument is set as true but not supported on MPS now, then device pinned memory won't be used.\n",
527
+ " warnings.warn(warn_msg)\n"
528
+ ]
529
+ },
530
+ {
531
+ "data": {
532
+ "text/html": [
533
+ "\n",
534
+ " <div>\n",
535
+ " \n",
536
+ " <progress value='250' max='250' style='width:300px; height:20px; vertical-align: middle;'></progress>\n",
537
+ " [250/250 15:42, Epoch 10/10]\n",
538
+ " </div>\n",
539
+ " <table border=\"1\" class=\"dataframe\">\n",
540
+ " <thead>\n",
541
+ " <tr style=\"text-align: left;\">\n",
542
+ " <th>Step</th>\n",
543
+ " <th>Training Loss</th>\n",
544
+ " </tr>\n",
545
+ " </thead>\n",
546
+ " <tbody>\n",
547
+ " <tr>\n",
548
+ " <td>10</td>\n",
549
+ " <td>9.802700</td>\n",
550
+ " </tr>\n",
551
+ " <tr>\n",
552
+ " <td>20</td>\n",
553
+ " <td>9.243700</td>\n",
554
+ " </tr>\n",
555
+ " <tr>\n",
556
+ " <td>30</td>\n",
557
+ " <td>8.776400</td>\n",
558
+ " </tr>\n",
559
+ " <tr>\n",
560
+ " <td>40</td>\n",
561
+ " <td>8.264700</td>\n",
562
+ " </tr>\n",
563
+ " <tr>\n",
564
+ " <td>50</td>\n",
565
+ " <td>7.813600</td>\n",
566
+ " </tr>\n",
567
+ " <tr>\n",
568
+ " <td>60</td>\n",
569
+ " <td>6.891800</td>\n",
570
+ " </tr>\n",
571
+ " <tr>\n",
572
+ " <td>70</td>\n",
573
+ " <td>6.322800</td>\n",
574
+ " </tr>\n",
575
+ " <tr>\n",
576
+ " <td>80</td>\n",
577
+ " <td>5.139000</td>\n",
578
+ " </tr>\n",
579
+ " <tr>\n",
580
+ " <td>90</td>\n",
581
+ " <td>3.943400</td>\n",
582
+ " </tr>\n",
583
+ " <tr>\n",
584
+ " <td>100</td>\n",
585
+ " <td>2.517000</td>\n",
586
+ " </tr>\n",
587
+ " <tr>\n",
588
+ " <td>110</td>\n",
589
+ " <td>1.442300</td>\n",
590
+ " </tr>\n",
591
+ " <tr>\n",
592
+ " <td>120</td>\n",
593
+ " <td>1.049300</td>\n",
594
+ " </tr>\n",
595
+ " <tr>\n",
596
+ " <td>130</td>\n",
597
+ " <td>0.892200</td>\n",
598
+ " </tr>\n",
599
+ " <tr>\n",
600
+ " <td>140</td>\n",
601
+ " <td>0.763800</td>\n",
602
+ " </tr>\n",
603
+ " <tr>\n",
604
+ " <td>150</td>\n",
605
+ " <td>0.728200</td>\n",
606
+ " </tr>\n",
607
+ " <tr>\n",
608
+ " <td>160</td>\n",
609
+ " <td>0.697900</td>\n",
610
+ " </tr>\n",
611
+ " <tr>\n",
612
+ " <td>170</td>\n",
613
+ " <td>0.658500</td>\n",
614
+ " </tr>\n",
615
+ " <tr>\n",
616
+ " <td>180</td>\n",
617
+ " <td>0.633600</td>\n",
618
+ " </tr>\n",
619
+ " <tr>\n",
620
+ " <td>190</td>\n",
621
+ " <td>0.616100</td>\n",
622
+ " </tr>\n",
623
+ " <tr>\n",
624
+ " <td>200</td>\n",
625
+ " <td>0.639900</td>\n",
626
+ " </tr>\n",
627
+ " <tr>\n",
628
+ " <td>210</td>\n",
629
+ " <td>0.610700</td>\n",
630
+ " </tr>\n",
631
+ " <tr>\n",
632
+ " <td>220</td>\n",
633
+ " <td>0.607500</td>\n",
634
+ " </tr>\n",
635
+ " <tr>\n",
636
+ " <td>230</td>\n",
637
+ " <td>0.618500</td>\n",
638
+ " </tr>\n",
639
+ " <tr>\n",
640
+ " <td>240</td>\n",
641
+ " <td>0.592900</td>\n",
642
+ " </tr>\n",
643
+ " <tr>\n",
644
+ " <td>250</td>\n",
645
+ " <td>0.587400</td>\n",
646
+ " </tr>\n",
647
+ " </tbody>\n",
648
+ "</table><p>"
649
+ ],
650
+ "text/plain": [
651
+ "<IPython.core.display.HTML object>"
652
+ ]
653
+ },
654
+ "metadata": {},
655
+ "output_type": "display_data"
656
+ },
657
+ {
658
+ "name": "stderr",
659
+ "output_type": "stream",
660
+ "text": [
661
+ "/opt/anaconda3/envs/report_error_detector/lib/python3.10/site-packages/torch/utils/data/dataloader.py:683: UserWarning: 'pin_memory' argument is set as true but not supported on MPS now, then device pinned memory won't be used.\n",
662
+ " warnings.warn(warn_msg)\n",
663
+ "/opt/anaconda3/envs/report_error_detector/lib/python3.10/site-packages/torch/utils/data/dataloader.py:683: UserWarning: 'pin_memory' argument is set as true but not supported on MPS now, then device pinned memory won't be used.\n",
664
+ " warnings.warn(warn_msg)\n",
665
+ "/opt/anaconda3/envs/report_error_detector/lib/python3.10/site-packages/torch/utils/data/dataloader.py:683: UserWarning: 'pin_memory' argument is set as true but not supported on MPS now, then device pinned memory won't be used.\n",
666
+ " warnings.warn(warn_msg)\n",
667
+ "/opt/anaconda3/envs/report_error_detector/lib/python3.10/site-packages/torch/utils/data/dataloader.py:683: UserWarning: 'pin_memory' argument is set as true but not supported on MPS now, then device pinned memory won't be used.\n",
668
+ " warnings.warn(warn_msg)\n",
669
+ "/opt/anaconda3/envs/report_error_detector/lib/python3.10/site-packages/torch/utils/data/dataloader.py:683: UserWarning: 'pin_memory' argument is set as true but not supported on MPS now, then device pinned memory won't be used.\n",
670
+ " warnings.warn(warn_msg)\n",
671
+ "/opt/anaconda3/envs/report_error_detector/lib/python3.10/site-packages/torch/utils/data/dataloader.py:683: UserWarning: 'pin_memory' argument is set as true but not supported on MPS now, then device pinned memory won't be used.\n",
672
+ " warnings.warn(warn_msg)\n",
673
+ "/opt/anaconda3/envs/report_error_detector/lib/python3.10/site-packages/torch/utils/data/dataloader.py:683: UserWarning: 'pin_memory' argument is set as true but not supported on MPS now, then device pinned memory won't be used.\n",
674
+ " warnings.warn(warn_msg)\n",
675
+ "/opt/anaconda3/envs/report_error_detector/lib/python3.10/site-packages/torch/utils/data/dataloader.py:683: UserWarning: 'pin_memory' argument is set as true but not supported on MPS now, then device pinned memory won't be used.\n",
676
+ " warnings.warn(warn_msg)\n",
677
+ "/opt/anaconda3/envs/report_error_detector/lib/python3.10/site-packages/torch/utils/data/dataloader.py:683: UserWarning: 'pin_memory' argument is set as true but not supported on MPS now, then device pinned memory won't be used.\n",
678
+ " warnings.warn(warn_msg)\n"
679
+ ]
680
+ },
681
+ {
682
+ "data": {
683
+ "text/plain": [
684
+ "('./kcmii_major_lora_tuned/tokenizer_config.json',\n",
685
+ " './kcmii_major_lora_tuned/special_tokens_map.json',\n",
686
+ " './kcmii_major_lora_tuned/tokenizer.json')"
687
+ ]
688
+ },
689
+ "execution_count": 3,
690
+ "metadata": {},
691
+ "output_type": "execute_result"
692
+ }
693
+ ],
694
+ "source": [
695
+ "tokenized_dataset = dataset.map(tokenize)\n",
696
+ "\n",
697
+ "# 5. ํ•™์Šต์„ ์ˆ˜ํ–‰ํ•  ๋•Œ ์‚ฌ์šฉํ•  ํŒŒ๋ผ๋ฏธํ„ฐ ์ง€์ •\n",
698
+ "training_args = TrainingArguments(\n",
699
+ " # ํ•™์Šต ๋„์ค‘ ๋ชจ๋ธ ์ฒดํฌํฌ์ธํŠธ ์ €์žฅํ•  ํด๋” ๊ฒฝ๋กœ\n",
700
+ " ## ์ค‘๊ฐ ๊ฒฐ๊ณผ ๋ฐฑ์—…, ์‹คํ—˜๋ณ„ ๊ตฌ๋ถ„ ๊ฐ€๋Šฅ\n",
701
+ " output_dir=\"./kcmii_major_lora\",\n",
702
+ " # ํ•œ๋ฒˆ์— ํ•™์Šตํ•  ์ƒ˜ํ”Œ ๊ฐœ์ˆ˜\n",
703
+ " per_device_train_batch_size=2,\n",
704
+ " # ์ „์ฒด ๋ฐ์ดํ„ฐ๋ฅผ ๋ช‡ ๋ฒˆ ๋ฐ˜๋ณต ํ•™์Šตํ• ์ง€\n",
705
+ " num_train_epochs=10,\n",
706
+ " # ๋ช‡ ์Šคํ…๋งˆ๋‹ค ํ•™์Šต ๋กœ๊ทธ ์ถœ๋ ฅํ• ์ง€\n",
707
+ " logging_steps=10,\n",
708
+ " # ๋ชจ๋ธ ์ €์žฅ ์ฃผ๊ธฐ ์„ค์ • (๋งค ์—ํญ๋งˆ๋‹ค ์ €์žฅ)\n",
709
+ " save_strategy=\"epoch\",\n",
710
+ " # ์ตœ์ ํ™” ๋ฐฉ๋ฒ• ์„ค์ •\n",
711
+ " optim=\"adamw_torch\"\n",
712
+ ")\n",
713
+ "\n",
714
+ "# 6. Trainer ๊ตฌ์„ฑ ๋ฐ ํ•™์Šต ์‹คํ–‰\n",
715
+ "## ๋ชจ๋ธ, ๋ฐ์ดํ„ฐ์…‹, ํ•™์Šต ์ธ์ž๋“ค์„ ๋ฐ”ํƒ•์œผ๋กœ ๋‚ด๋ถ€์ ์œผ๋กœ for ๋ฐ˜๋ณต, ์ตœ์ ํ™”, ์†์‹ค ๊ณ„์‚ฐ ๋“ฑ์„ ์ž๋™ ์ฒ˜๋ฆฌ\n",
716
+ "trainer = Trainer(\n",
717
+ " model=model,\n",
718
+ " args=training_args,\n",
719
+ " train_dataset=tokenized_dataset\n",
720
+ ")\n",
721
+ "\n",
722
+ "trainer.train()\n",
723
+ "\n",
724
+ "# 7. ํŠœ๋‹๋œ ๋ชจ๋ธ ์ €์žฅ\n",
725
+ "model.save_pretrained(\"./kcmii_major_lora_tuned\")\n",
726
+ "tokenizer.save_pretrained(\"./kcmii_major_lora_tuned\")"
727
+ ]
728
+ },
729
+ {
730
+ "cell_type": "code",
731
+ "execution_count": 16,
732
+ "id": "7e217351-2861-4bb7-b04b-657e91abe461",
733
+ "metadata": {},
734
+ "outputs": [
735
+ {
736
+ "name": "stderr",
737
+ "output_type": "stream",
738
+ "text": [
739
+ "Loading checkpoint shards: 100%|โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ| 3/3 [00:11<00:00, 3.93s/it]\n",
740
+ "Setting `pad_token_id` to `eos_token_id`:2 for open-end generation.\n"
741
+ ]
742
+ },
743
+ {
744
+ "name": "stdout",
745
+ "output_type": "stream",
746
+ "text": [
747
+ "\n",
748
+ "๐Ÿ“„ ์ƒ์„ฑ๋œ ๋ฌธ์žฅ:\n",
749
+ "\n",
750
+ "์–ด๋ฌธํ•™์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?\n",
751
+ "๋‹ต๋ณ€: ์–ด๋ฌธํ•™์€ ๋ฌธํ•™์„ ์ค‘์‹ฌ์œผ๋กœ ํ•™๋ฌธ์˜ ํ•œ ์˜์—ญ\n"
752
+ ]
753
+ }
754
+ ],
755
+ "source": [
756
+ "# 1์ฐจ ์ถ”๋ก  ํ…Œ์ŠคํŠธ\n",
757
+ "from peft import PeftModel\n",
758
+ "from transformers import AutoTokenizer, AutoModelForCausalLM\n",
759
+ "import torch\n",
760
+ "\n",
761
+ "device = torch.device(\"mps\" if torch.backends.mps.is_available() else \"cpu\")\n",
762
+ "\n",
763
+ "base_model = AutoModelForCausalLM.from_pretrained(\"EleutherAI/polyglot-ko-1.3b\", device_map=None).to(device)\n",
764
+ "model = PeftModel.from_pretrained(base_model, \"./kcmii_major_lora_tuned\").to(device)\n",
765
+ "\n",
766
+ "tokenizer = AutoTokenizer.from_pretrained(\"EleutherAI/polyglot-ko-1.3b\")\n",
767
+ "\n",
768
+ "prompt = \"์–ด๋ฌธํ•™์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?\\n๋‹ต๋ณ€: ์–ด๋ฌธํ•™์€\"\n",
769
+ "inputs = tokenizer(prompt, return_tensors=\"pt\").to(device)\n",
770
+ "\n",
771
+ "if \"token_type_ids\" in inputs:\n",
772
+ " inputs.pop(\"token_type_ids\")\n",
773
+ "\n",
774
+ "with torch.no_grad():\n",
775
+ " outputs = model.generate(\n",
776
+ " **inputs,\n",
777
+ " max_new_tokens=300,\n",
778
+ " do_sample=True,\n",
779
+ " top_k=50,\n",
780
+ " top_p=0.95,\n",
781
+ " temperature=0.8,\n",
782
+ " repetition_penalty=1.1\n",
783
+ " )\n",
784
+ "\n",
785
+ "result = tokenizer.decode(outputs[0], skip_special_tokens=True)\n",
786
+ "print(\"\\n๐Ÿ“„ ์ƒ์„ฑ๋œ ๋ฌธ์žฅ:\\n\")\n",
787
+ "print(result)"
788
+ ]
789
+ },
790
+ {
791
+ "cell_type": "code",
792
+ "execution_count": 11,
793
+ "id": "6741bf0d-33cc-40fd-8936-15e29536424d",
794
+ "metadata": {},
795
+ "outputs": [
796
+ {
797
+ "name": "stdout",
798
+ "output_type": "stream",
799
+ "text": [
800
+ "๋กœ๋ผ ํŒŒ๋ผ๋ฏธํ„ฐ ์ˆ˜: 1572864\n"
801
+ ]
802
+ }
803
+ ],
804
+ "source": [
805
+ "print(\"๋กœ๋ผ ํŒŒ๋ผ๋ฏธํ„ฐ ์ˆ˜:\", sum(p.numel() for n, p in model.named_parameters() if \"lora\" in n))"
806
+ ]
807
+ },
808
+ {
809
+ "cell_type": "code",
810
+ "execution_count": 12,
811
+ "id": "0c224268-1848-49a1-98c3-425c189063bd",
812
+ "metadata": {},
813
+ "outputs": [
814
+ {
815
+ "name": "stdout",
816
+ "output_type": "stream",
817
+ "text": [
818
+ "๐Ÿ”ข ์ถœ๋ ฅ ํ† ํฐ ์ˆ˜: 69\n",
819
+ "๐Ÿงฉ ํ† ํฐ ID ์‹œํ€€์Šค: [348, 3446, 5517, 1937, 11260, 34, 202, 1477, 1078, 29, 1437, 3446, 296, 414, 15, 3260, 15, 26667, 15, 16499, 15, 29953, 433, 285, 3636, 285, 18765, 301, 502, 284, 453, 414, 15, 3260, 15, 26667, 15, 16499, 15, 29953, 433, 3636, 285, 2831, 274, 1026, 26667, 15, 7991, 15, 7991, 14735, 15, 7991, 5694, 433, 339, 7093, 3668, 17, 1437, 3446, 296, 3636, 285, 394, 18765, 2048, 2]\n",
820
+ "๐Ÿ“ ๋””์ฝ”๋”ฉ ์ „์ฒด: ์–ด๋ฌธํ•™์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?\n",
821
+ "๋‹ต๋ณ€: ํ˜„๋Œ€๋ฌธํ•™์€ ์‹œ, ์†Œ์„ค, ํฌ๊ณก, ์ˆ˜ํ•„, ํ‰๋ก  ๋“ฑ์˜ ๋ฌธํ•™์˜ ๊ฐˆ๋ž˜๋ฅผ ๋งํ•˜๋ฉฐ ์‹œ, ์†Œ์„ค, ํฌ๊ณก, ์ˆ˜ํ•„, ํ‰๋ก  ๋“ฑ ๋ฌธํ•™์˜ ํ˜•ํƒœ์— ๋”ฐ๋ผ ํฌ๊ณก, ์‹œ๋‚˜๋ฆฌ์˜ค, ์‹œ๋‚˜๋ฆฌ์˜ค์ฐฝ์ž‘, ์‹œ๋‚˜๋ฆฌ์˜ค์ž‘๊ฐ€ ๋“ฑ์œผ๋กœ ๋‚˜๋‰ฉ๋‹ˆ๋‹ค. ํ˜„๋Œ€๋ฌธํ•™์€ ๋ฌธํ•™์˜ ํ•œ ๊ฐˆ๋ž˜๋กœ์„œ<|endoftext|>\n"
822
+ ]
823
+ }
824
+ ],
825
+ "source": [
826
+ "print(\"๐Ÿ”ข ์ถœ๋ ฅ ํ† ํฐ ์ˆ˜:\", len(outputs[0]))\n",
827
+ "print(\"๐Ÿงฉ ํ† ํฐ ID ์‹œํ€€์Šค:\", outputs[0].tolist())\n",
828
+ "print(\"๐Ÿ“ ๋””์ฝ”๋”ฉ ์ „์ฒด:\", tokenizer.decode(outputs[0], skip_special_tokens=False))"
829
+ ]
830
+ },
831
+ {
832
+ "cell_type": "code",
833
+ "execution_count": 8,
834
+ "id": "83bdead2-8efe-4764-9b9e-d3d29c884ac6",
835
+ "metadata": {},
836
+ "outputs": [
837
+ {
838
+ "name": "stderr",
839
+ "output_type": "stream",
840
+ "text": [
841
+ "/opt/anaconda3/envs/report_error_detector/lib/python3.10/site-packages/transformers/generation/configuration_utils.py:631: UserWarning: `do_sample` is set to `False`. However, `temperature` is set to `0.7` -- this flag is only used in sample-based generation modes. You should set `do_sample=True` or unset `temperature`.\n",
842
+ " warnings.warn(\n",
843
+ "Setting `pad_token_id` to `eos_token_id`:2 for open-end generation.\n",
844
+ "Setting `pad_token_id` to `eos_token_id`:2 for open-end generation.\n",
845
+ "Setting `pad_token_id` to `eos_token_id`:2 for open-end generation.\n"
846
+ ]
847
+ },
848
+ {
849
+ "name": "stdout",
850
+ "output_type": "stream",
851
+ "text": [
852
+ "\n",
853
+ "๐Ÿ“Œ ํ”„๋กฌํ”„ํŠธ: ์–ด๋ฌธํ•™์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?\n",
854
+ "๋‹ต๋ณ€:\n",
855
+ "๐Ÿ“„ ์ƒ์„ฑ๋œ ๋ฌธ์žฅ:\n",
856
+ "์–ด๋ฌธํ•™์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?\n",
857
+ "๋‹ต๋ณ€: ๋ฌธํ•™์€ ์ธ๊ฐ„์˜ ์‚ฌ์ƒ๊ณผ ๊ฐ์ •์„ ํ‘œํ˜„ํ•˜๋Š” ์˜ˆ์ˆ ์ \n",
858
+ "\n",
859
+ "๐Ÿ“Œ ํ”„๋กฌํ”„ํŠธ: ์–ด๋ฌธํ•™์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?\n",
860
+ "\n",
861
+ "๋‹ต๋ณ€:\n",
862
+ "๐Ÿ“„ ์ƒ์„ฑ๋œ ๋ฌธ์žฅ:\n",
863
+ "์–ด๋ฌธํ•™์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?\n",
864
+ "\n",
865
+ "๋‹ต๋ณ€:\n"
866
+ ]
867
+ },
868
+ {
869
+ "name": "stderr",
870
+ "output_type": "stream",
871
+ "text": [
872
+ "Setting `pad_token_id` to `eos_token_id`:2 for open-end generation.\n"
873
+ ]
874
+ },
875
+ {
876
+ "name": "stdout",
877
+ "output_type": "stream",
878
+ "text": [
879
+ "\n",
880
+ "๐Ÿ“Œ ํ”„๋กฌํ”„ํŠธ: ์–ด๋ฌธํ•™์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?\n",
881
+ "๋‹ต๋ณ€:\n",
882
+ "\n",
883
+ "๐Ÿ“„ ์ƒ์„ฑ๋œ ๋ฌธ์žฅ:\n",
884
+ "์–ด๋ฌธํ•™์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?\n",
885
+ "๋‹ต๋ณ€:\n",
886
+ "๋ฌธํ•™์€ ๋ฌธํ•™์˜ ํ•œ ๋ถ„์•ผ๋กœ, ์–ธ์–ด๋ฅผ ๋งค์ฒด๋กœ ํ•˜์—ฌ ์ธ๊ฐ„๊ณผ ์„ธ๊ณ„์— ๋Œ€ํ•œ ํ‘œํ˜„์„ ํƒ๊ตฌํ•˜๋Š”\n",
887
+ "\n",
888
+ "๐Ÿ“Œ ํ”„๋กฌํ”„ํŠธ: Instruction: ์–ด๋ฌธํ•™์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?\n",
889
+ "Response:\n",
890
+ "๐Ÿ“„ ์ƒ์„ฑ๋œ ๋ฌธ์žฅ:\n",
891
+ "Instruction: ์–ด๋ฌธํ•™์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?\n",
892
+ "Response:\n"
893
+ ]
894
+ }
895
+ ],
896
+ "source": [
897
+ "for test_prompt in [\n",
898
+ " \"์–ด๋ฌธํ•™์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?\\n๋‹ต๋ณ€:\",\n",
899
+ " \"์–ด๋ฌธํ•™์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?\\n\\n๋‹ต๋ณ€:\",\n",
900
+ " \"์–ด๋ฌธํ•™์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?\\n๋‹ต๋ณ€:\\n\",\n",
901
+ " \"Instruction: ์–ด๋ฌธํ•™์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?\\nResponse:\"\n",
902
+ "]:\n",
903
+ " inputs = tokenizer(test_prompt, return_tensors=\"pt\").to(device)\n",
904
+ " if \"token_type_ids\" in inputs:\n",
905
+ " inputs.pop(\"token_type_ids\")\n",
906
+ " with torch.no_grad():\n",
907
+ " outputs = model.generate(\n",
908
+ " **inputs,\n",
909
+ " max_new_tokens=100,\n",
910
+ " do_sample=False,\n",
911
+ " temperature=0.7,\n",
912
+ " top_k=0,\n",
913
+ " top_p=1.0,\n",
914
+ " repetition_penalty=1.2,\n",
915
+ " eos_token_id=tokenizer.eos_token_id\n",
916
+ " )\n",
917
+ " result = tokenizer.decode(outputs[0], skip_special_tokens=True)\n",
918
+ " print(f\"\\n๐Ÿ“Œ ํ”„๋กฌํ”„ํŠธ: {test_prompt}\\n๐Ÿ“„ ์ƒ์„ฑ๋œ ๋ฌธ์žฅ:\\n{result}\")"
919
+ ]
920
+ },
921
+ {
922
+ "cell_type": "code",
923
+ "execution_count": 12,
924
+ "id": "2176d8d5-bdfb-43b3-bcbe-6cc8548514f3",
925
+ "metadata": {},
926
+ "outputs": [
927
+ {
928
+ "name": "stderr",
929
+ "output_type": "stream",
930
+ "text": [
931
+ "Loading checkpoint shards: 100%|โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ| 3/3 [00:09<00:00, 3.24s/it]\n"
932
+ ]
933
+ },
934
+ {
935
+ "name": "stdout",
936
+ "output_type": "stream",
937
+ "text": [
938
+ "๐Ÿ“Š ์ƒ์œ„ 10๊ฐœ ์˜ˆ์ธก ๊ฒฐ๊ณผ:\n",
939
+ "1. ' ๋ฌธํ•™' - ํ™•๋ฅ : 10.66%\n",
940
+ "2. '<|endoftext|>' - ํ™•๋ฅ : 10.05%\n",
941
+ "3. ' ์ธ๊ฐ„' - ํ™•๋ฅ : 5.13%\n",
942
+ "4. ' ์–ธ์–ด' - ํ™•๋ฅ : 3.81%\n",
943
+ "5. ' ๋ฌด์—‡' - ํ™•๋ฅ : 2.44%\n",
944
+ "6. ' ํฌ' - ํ™•๋ฅ : 2.14%\n",
945
+ "7. ' ์Œ์•…' - ํ™•๋ฅ : 1.92%\n",
946
+ "8. ' ์ธ๋ฌธํ•™' - ํ™•๋ฅ : 1.84%\n",
947
+ "9. ' ์‚ฌํšŒ' - ํ™•๋ฅ : 1.61%\n",
948
+ "10. ' ๋ฌธํ™”' - ํ™•๋ฅ : 1.45%\n"
949
+ ]
950
+ }
951
+ ],
952
+ "source": [
953
+ "# ํ•™์Šต๏ฟฝ๏ฟฝ๏ฟฝ ๋ชจ๋ธ์˜ ์ž…๋ ฅ์— ๋‹ค์Œ ๋‹จ์–ด๊ฐ€ ์˜ฌ ์˜ˆ์ธก ํ™•๋ฅ  ๋ถ„ํฌ\n",
954
+ "import torch\n",
955
+ "from transformers import AutoModelForCausalLM, AutoTokenizer\n",
956
+ "from peft import PeftModel\n",
957
+ "\n",
958
+ "# ๋ชจ๋ธ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ\n",
959
+ "model_name = \"EleutherAI/polyglot-ko-1.3b\"\n",
960
+ "base_model = AutoModelForCausalLM.from_pretrained(model_name).to(\"mps\")\n",
961
+ "model = PeftModel.from_pretrained(base_model, \"./kcmii_major_lora_tuned\").to(\"mps\")\n",
962
+ "tokenizer = AutoTokenizer.from_pretrained(model_name)\n",
963
+ "\n",
964
+ "# ํ”„๋กฌํ”„ํŠธ\n",
965
+ "prompt = \"์–ด๋ฌธํ•™์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?\\n๋‹ต๋ณ€: ์–ด๋ฌธํ•™์€\"\n",
966
+ "inputs = tokenizer(prompt, return_tensors=\"pt\").to(\"mps\")\n",
967
+ "\n",
968
+ "# token_type_ids ์ œ๊ฑฐ\n",
969
+ "if \"token_type_ids\" in inputs:\n",
970
+ " inputs.pop(\"token_type_ids\")\n",
971
+ "\n",
972
+ "# ๋ชจ๋ธ ์ถ”๋ก \n",
973
+ "with torch.no_grad():\n",
974
+ " outputs = model(**inputs)\n",
975
+ "\n",
976
+ "# ๋งˆ์ง€๋ง‰ ํ† ํฐ ๋‹ค์Œ์— ์ƒ์„ฑ๋  ๋‹จ์–ด์˜ logit (์˜ˆ์ธก ๋ถ„ํฌ)\n",
977
+ "next_token_logits = outputs.logits[0, -1]\n",
978
+ "\n",
979
+ "# softmax๋กœ ํ™•๋ฅ ํ™”\n",
980
+ "probs = torch.nn.functional.softmax(next_token_logits, dim=-1)\n",
981
+ "\n",
982
+ "# ์ƒ์œ„ 10๊ฐœ ๋‹จ์–ด ์ถœ๋ ฅ\n",
983
+ "topk = torch.topk(probs, k=10)\n",
984
+ "top_indices = topk.indices\n",
985
+ "top_probs = topk.values\n",
986
+ "\n",
987
+ "print(\"๐Ÿ“Š ์ƒ์œ„ 10๊ฐœ ์˜ˆ์ธก ๊ฒฐ๊ณผ:\")\n",
988
+ "for i in range(10):\n",
989
+ " token = top_indices[i].item()\n",
990
+ " print(f\"{i+1}. '{tokenizer.decode([token])}' - ํ™•๋ฅ : {top_probs[i].item()*100:.2f}%\")"
991
+ ]
992
+ },
993
+ {
994
+ "cell_type": "code",
995
+ "execution_count": 15,
996
+ "id": "652acde5-5591-46a1-992e-ffd93f972dde",
997
+ "metadata": {},
998
+ "outputs": [
999
+ {
1000
+ "name": "stderr",
1001
+ "output_type": "stream",
1002
+ "text": [
1003
+ "Loading checkpoint shards: 100%|โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ| 3/3 [00:11<00:00, 3.84s/it]\n"
1004
+ ]
1005
+ },
1006
+ {
1007
+ "name": "stdout",
1008
+ "output_type": "stream",
1009
+ "text": [
1010
+ "๐Ÿ“Š ์ƒ์œ„ 10๊ฐœ ์˜ˆ์ธก ๊ฒฐ๊ณผ:\n",
1011
+ "1. ' ๋ฌธํ•™' - ํ™•๋ฅ : 13.43%\n",
1012
+ "2. ' ์–ธ์–ด' - ํ™•๋ฅ : 11.99%\n",
1013
+ "3. ' ์ธ๊ฐ„' - ํ™•๋ฅ : 5.63%\n",
1014
+ "4. ' ๋ฌธ์ž' - ํ™•๋ฅ : 5.20%\n",
1015
+ "5. ' ์šฐ๋ฆฌ' - ํ™•๋ฅ : 3.36%\n",
1016
+ "6. ' ๋ง' - ํ™•๋ฅ : 2.78%\n",
1017
+ "7. ' ํฌ' - ํ™•๋ฅ : 2.14%\n",
1018
+ "8. ' ์ธ๋ฌธํ•™' - ํ™•๋ฅ : 1.80%\n",
1019
+ "9. ' ์‚ฌ๋žŒ' - ํ™•๋ฅ : 1.55%\n",
1020
+ "10. ' ์˜์–ด' - ํ™•๋ฅ : 1.50%\n"
1021
+ ]
1022
+ }
1023
+ ],
1024
+ "source": [
1025
+ "# ๋ฒ ์ด์Šค ๋ชจ๋ธ์˜ ์ž…๋ ฅ์— ๋‹ค์Œ ๋‹จ์–ด๊ฐ€ ์˜ฌ ์˜ˆ์ธก ํ™•๋ฅ  ๋ถ„ํฌ\n",
1026
+ "import torch\n",
1027
+ "from transformers import AutoModelForCausalLM, AutoTokenizer\n",
1028
+ "from peft import PeftModel\n",
1029
+ "\n",
1030
+ "# ๋ชจ๋ธ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ\n",
1031
+ "model_name = \"EleutherAI/polyglot-ko-1.3b\"\n",
1032
+ "model = AutoModelForCausalLM.from_pretrained(model_name).to(\"mps\")\n",
1033
+ "tokenizer = AutoTokenizer.from_pretrained(model_name)\n",
1034
+ "\n",
1035
+ "# ํ”„๋กฌํ”„ํŠธ\n",
1036
+ "prompt = \"์–ด๋ฌธํ•™์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?\\n๋‹ต๋ณ€: ์–ด๋ฌธํ•™์€\"\n",
1037
+ "inputs = tokenizer(prompt, return_tensors=\"pt\").to(\"mps\")\n",
1038
+ "\n",
1039
+ "# token_type_ids ์ œ๊ฑฐ\n",
1040
+ "if \"token_type_ids\" in inputs:\n",
1041
+ " inputs.pop(\"token_type_ids\")\n",
1042
+ "\n",
1043
+ "# ๋ชจ๋ธ ์ถ”๋ก \n",
1044
+ "with torch.no_grad():\n",
1045
+ " outputs = model(**inputs)\n",
1046
+ "\n",
1047
+ "# ๋งˆ์ง€๋ง‰ ํ† ํฐ ๋‹ค์Œ์— ์ƒ์„ฑ๋  ๋‹จ์–ด์˜ logit (์˜ˆ์ธก ๋ถ„ํฌ)\n",
1048
+ "next_token_logits = outputs.logits[0, -1]\n",
1049
+ "\n",
1050
+ "# softmax๋กœ ํ™•๋ฅ ํ™”\n",
1051
+ "probs = torch.nn.functional.softmax(next_token_logits, dim=-1)\n",
1052
+ "\n",
1053
+ "# ์ƒ์œ„ 10๊ฐœ ๋‹จ์–ด ์ถœ๋ ฅ\n",
1054
+ "topk = torch.topk(probs, k=10)\n",
1055
+ "top_indices = topk.indices\n",
1056
+ "top_probs = topk.values\n",
1057
+ "\n",
1058
+ "print(\"๐Ÿ“Š ์ƒ์œ„ 10๊ฐœ ์˜ˆ์ธก ๊ฒฐ๊ณผ:\")\n",
1059
+ "for i in range(10):\n",
1060
+ " token = top_indices[i].item()\n",
1061
+ " print(f\"{i+1}. '{tokenizer.decode([token])}' - ํ™•๋ฅ : {top_probs[i].item()*100:.2f}%\")"
1062
+ ]
1063
+ },
1064
+ {
1065
+ "cell_type": "markdown",
1066
+ "id": "a8af7579-789f-4d22-9bea-c136532ed8de",
1067
+ "metadata": {},
1068
+ "source": [
1069
+ "## ๋ฒ ์ด์Šค ๋ชจ๋ธ ์ž„ํฌํŠธ์™€ ์ถ”๋ก  ํ…Œ์ŠคํŠธ ์™„๋ฃŒ \n",
1070
+ "## ๊ทธ๋Ÿฌ๋‚˜ LoRA ๊ฒฝ๋Ÿ‰ ํ•™์Šต์œผ๋กœ ์ถ”๋ก  ์„ฑ๋Šฅ์ด ์ข‹์ง€ ์•Š์•„ Full-fine-tunning์œผ๋กœ ์ง„ํ–‰\n",
1071
+ "## kcmii_lm_fullfinetuning ์Šคํฌ๋ฆฝํŠธ ์ฐธ๊ณ "
1072
+ ]
1073
+ },
1074
+ {
1075
+ "cell_type": "code",
1076
+ "execution_count": null,
1077
+ "id": "b62c92f5-4a8e-4c42-904e-18ca513cae1d",
1078
+ "metadata": {},
1079
+ "outputs": [],
1080
+ "source": []
1081
+ }
1082
+ ],
1083
+ "metadata": {
1084
+ "kernelspec": {
1085
+ "display_name": "Python [conda env:base] *",
1086
+ "language": "python",
1087
+ "name": "conda-base-py"
1088
+ },
1089
+ "language_info": {
1090
+ "codemirror_mode": {
1091
+ "name": "ipython",
1092
+ "version": 3
1093
+ },
1094
+ "file_extension": ".py",
1095
+ "mimetype": "text/x-python",
1096
+ "name": "python",
1097
+ "nbconvert_exporter": "python",
1098
+ "pygments_lexer": "ipython3",
1099
+ "version": "3.12.7"
1100
+ }
1101
+ },
1102
+ "nbformat": 4,
1103
+ "nbformat_minor": 5
1104
+ }