daebum commited on
Commit
3936520
ยท
verified ยท
1 Parent(s): 7f89650

Update README.md

Browse files
Files changed (1) hide show
  1. README.md +93 -1
README.md CHANGED
@@ -6,4 +6,96 @@ base_model:
6
  - Qwen/Qwen2.5-14B
7
  tags:
8
  - RAG
9
- ---
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
6
  - Qwen/Qwen2.5-14B
7
  tags:
8
  - RAG
9
+ - Ko-LLM
10
+ - QA
11
+ datasets:
12
+ - kyujinpy/KoCoT_2000
13
+ - MarkrAI/KoCommercial-Dataset
14
+ - CarrotAI/ko-instruction-dataset
15
+ - heegyu/CoT-collection-ko
16
+ ---
17
+
18
+ ## Introduction
19
+ Qwen2.5 14B ๋ชจ๋ธ์„ ์ž์ฒด ๊ตฌ์ถ•ํ•œ RAG ํŠนํ™” ๋ฐ์ดํ„ฐ์…‹, CoT ๋ฐ์ดํ„ฐ์…‹, ๋ฒค์น˜๋งˆํฌ ๋ฐ์ดํ„ฐ์…‹์œผ๋กœ Full fine-tuning ํ•œ ๋ชจ๋ธ์ž…๋‹ˆ๋‹ค.
20
+ ํ•ด๋‹น ๋ชจ๋ธ์€ ์ผ๋ฐ˜์ ์ธ RAG ์„œ๋น„์Šค์˜ ์ž…๋ ฅ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•ด์„œ ์ •ํ™•ํ•œ ๋‹ต๋ณ€๊ณผ ๋‹ต๋ณ€ ์ถœ์ฒ˜๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ Json ํ˜•ํƒœ๋กœ ๋‹ต๋ณ€์„ ์ถœ๋ ฅํ•˜๋Š” ํŠน์ง•์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
21
+ ์ถœ๋ ฅ key๊ฐ’์€ ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.
22
+ 1. "source"์˜ ๊ฐ’ : ์‚ฌ์šฉ์ž์˜ ๋งˆ์ง€๋ง‰ ์ž…๋ ฅ์— ๋Œ€ํ•œ ๋‹ต๋ณ€์— ์ธ์šฉํ•ด์•ผ ํ•  ๋‚ด์šฉ์„ ํฌํ•จํ•œ ๋ฌธ์„œ๋ฅผ 1๊ฐœ ๋˜๋Š” 2๊ฐœ ์‹๋ณ„ํ•˜๊ณ , ๊ทธ ๋ฌธ์„œ๋“ค์˜ doc_id๋ฅผ ์ฐพ์•„ ์‹๋ณ„ํ•˜์„ธ์š”. ์ฐพ์€ doc_id๋ฅผ key๋กœ ์‚ฌ์šฉ, value๋กœ๋Š” ์ธ์šฉ๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋”•์…”๋„ˆ๋ฆฌ๋ฅผ ์ถœ๋ ฅํ•˜์‹ญ์‹œ์˜ค. ์ธ์šฉ๊ตฌ๋ž€, "content_of_context"์—์„œ ์‚ฌ์šฉ์ž ์งˆ๋ฌธ์— ๋Œ€ํ•œ ๋‹ต์„ ์ฐพ์„ ์ˆ˜ ์žˆ๋Š” ๊ตฌ์ ˆ์„ ์˜๋ฏธํ•˜๋ฉฐ, ๋ฐ˜๋“œ์‹œ ์›๋ฌธ ๊ทธ๋Œ€๋กœ ํ‘œ๊ธฐํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋‹ต๋ณ€์— ์ธ์šฉํ•ด์•ผ ํ•  ๋‚ด์šฉ์„ ํฌํ•จํ•œ ๋ฌธ์„œ๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ ๋”•์…”๋„ˆ๋ฆฌ ๋Œ€์‹  None์„ ์ถœ๋ ฅํ•˜์‹ญ์‹œ์˜ค.
23
+ 2. "answer"์˜ ๊ฐ’ : ์‚ฌ์šฉ์ž์˜ ๋งˆ์ง€๋ง‰ ์ž…๋ ฅ์— ๋Œ€ํ•œ ๊ณ ํ’ˆ์งˆ์˜ ์ž์—ฐ์Šค๋Ÿฌ์šด ํ•œ๊ตญ์–ด ์‘๋‹ต์„ 3-6๋ฌธ์žฅ์˜ ์„ค๋ช…ํ˜•์œผ๋กœ ์ž‘์„ฑํ•˜์‹ญ์‹œ์˜ค. ์‹ค์ œ ์ •๋‹ต์€ ๋ฌธ์„œ ์ •๋ณด์˜ "original_answer"์— ๊ธฐ์žฌ๋˜์–ด ์žˆ์œผ๋ฏ€๋กœ ์ด๋ฅผ ์ฐธ๊ณ ํ•˜๊ณ , ์‚ฌ์šฉ์ž๊ฐ€ ์ดํ•ดํ•˜๊ธฐ ์‰ฌ์šด ์นœ์ ˆํ•˜๊ณ  ์ž์„ธํ•œ 3~6๋ฌธ์žฅ์œผ๋กœ ์ž‘์„ฑํ•˜์‹ญ์‹œ์˜ค. ์ธ์šฉ์ด๋‚˜ ์ถœ์ฒ˜ ํ‘œ์‹œ๋Š” ์ƒ๋žตํ•˜์‹ญ์‹œ์˜ค.
24
+ 3. "grounded_answer"์˜ ๊ฐ’ : "answer"์™€ ๋™์ผํ•œ ์‘๋‹ต์— ์ธ์šฉ ์ถœ์ฒ˜ ๊ธฐํ˜ธ ํƒœ๊ทธ๋ฅผ ํ‘œ๊ธฐํ•˜์—ฌ ์ถœ๋ ฅํ•˜์‹ญ์‹œ์˜ค. ๋ฌธ์„œ์—์„œ ์ œ๊ณต๋œ ์ •๋ณด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜์—ฌ, ์‚ฌ์‹ค์„ ์ธ์šฉํ•  ๋•Œ <co: doc_id>์™€ </co: doc_id> ๊ธฐํ˜ธ๋กœ ๋ช…์‹œํ•˜์‹ญ์‹œ์˜ค.
25
+
26
+ ```
27
+ <์ถœ๋ ฅ ์˜ˆ์‹œ>
28
+ [
29
+ {{
30
+ "related_document" : {{"๋ฌธ์„œ ์ •๋ณด์—์„œ ์ฐพ์€ doc_id"}},
31
+ "source" : {{"๋ฌธ์„œ ์ •๋ณด์—์„œ ์ฐพ์€ doc_id" : "ํ•ด๋‹น ๋ฌธ์„œ์—์„œ ์ฐพ์„ ์ˆ˜ ์žˆ๋Š” ์ธ์šฉ๊ตฌ ๊ตฌ์ ˆ, ์›๋ฌธ ๊ทธ๋Œ€๋กœ ํ‘œ๊ธฐ",
32
+ "๋ฌธ์„œ ์ •๋ณด์—์„œ ์ฐพ์€ doc_id" : "ํ•ด๋‹น ๋ฌธ์„œ์—์„œ ์ฐพ์„ ์ˆ˜ ์žˆ๋Š” ์ธ์šฉ๊ตฌ ๊ตฌ์ ˆ, ์›๋ฌธ ๊ทธ๋Œ€๋กœ ํ‘œ๊ธฐ"}},
33
+ "answer" : "์ถœ์ฒ˜๋ฅผ ํ‘œ๊ธฐํ•˜์ง€ ์•Š์€ 3~6๋ฌธ์žฅ ์„ค๋ช…ํ˜• ๋‹ต๋ณ€",
34
+ "grounded_answer" : "answer๊ณผ ๋™์ผํ•˜๋˜ <co: doc_id>์™€ </co: doc_id> ๊ธฐํ˜ธ๋กœ ์ธ์šฉ ์ถœ์ฒ˜๋ฅผ ๋ช…์‹œํ•œ ๋‹ต๋ณ€"
35
+ }}
36
+ ]
37
+ ```
38
+
39
+ ## ๋‹ต๋ณ€ ์ถœ๋ ฅ ์˜ˆ์‹œ
40
+ ```
41
+ {
42
+ "related_document": {
43
+ "D0000042284685": "๊ฐ€๋ฝ๋ชฐ ์ „๋™ ์‚ผ๋ฅœ์ฐจ ํ™”์žฌ์˜ˆ๋ฐฉ ์ถ”์ง„ ๋Œ€์ฑ…",
44
+ "4895": "์ฐจ์„ธ๋Œ€ ๊ณ ์‹ ๋ขฐ์„ฑ ๊ณ ์ถœ๋ ฅ ์Šˆํผ์ถ•์ „๊ธฐ"
45
+ },
46
+ "source": {
47
+ "D0000042284685": "ใ€Œ๋ฌผ๋ฅ˜์šด๋ฐ˜์žฅ๋น„ ์ถฉ์ „์žฅ์น˜(๋ฆฌํŠฌ์ด์˜จ ๋ฐฐํ„ฐ๋ฆฌ) ...",
48
+ "4895": "์Šˆํผ์ถ•์ „๊ธฐ์™€ ๋ฆฌํŠฌ์ด์ฐจ์ „์ง€์˜ ๋น„๊ต ..."
49
+ },
50
+ "answer": "๊ฐ€๋ฝ๋ชฐ ์ „๋™ ์‚ผ๋ฅœ์ฐจ์˜ ๋ฆฌํŠฌ์ด์˜จ ๋ฐฐํ„ฐ๋ฆฌ์™€ ์Šˆํผ์ถ•์ „๊ธฐ๋Š” ๋ฉ”...",
51
+ "grounded_answer": "๊ฐ€๋ฝ๋ชฐ ์ „๋™ ์‚ผ๋ฅœ์ฐจ์˜ ๋ฆฌํŠฌ์ด์˜จ ๋ฐฐํ„ฐ๋ฆฌ์™€ ์Šˆํผ์ถ•์ „๊ธฐ๋Š” <co: 4895>๋ฉ”์ปค๋‹ˆ์ฆ˜, ์†Œ์žฌ, ์ˆ˜๋ช…, ๋ณดํ˜ธํšŒ๋กœ, ๊ทน์„ฑ, ๊ณผ์ „์••, ์ž”์กด์šฉ๋Ÿ‰์ธก์ •, ํŠน์ง•</co: 4895> ๋“ฑ์—์„œ ์ฐจ์ด๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฆฌํŠฌ์ด์˜จ ๋ฐฐํ„ฐ๋ฆฌ๋Š” <co: 4895>๋ฆฌํŠฌ์ด์˜จ ์ด๋™ ๋ฉ”์ปค๋‹ˆ์ฆ˜</co: 4895>์„ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฉฐ,... "
52
+ }
53
+ ```
54
+
55
+ ## RAG Prompt
56
+ ```
57
+ RAG_PROMPT = """<|im_start|>system\n\n ๋‹น์‹ ์€ ๋Œ€ํ™”ํ˜• AI๋กœ์„œ, ์‚ฌ์šฉ์ž์˜ ์งˆ๋ฌธ์— ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์ด ์ฃผ์š” ์—ญํ• ์ž…๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž์˜ ์š”๊ตฌ๋ฅผ ์ •ํ™•ํžˆ ์ดํ•ดํ•˜๊ณ , ๊ด€๋ จ ๋ฌธ์„œ๋ฅผ ๋ถ„์„ํ•˜์—ฌ ์ตœ์ ์˜ ๋‹ต๋ณ€์„ ์ƒ์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. \n๋‹น์‹ ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์›์น™์„ ์ค€์ˆ˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค:\n1. ํ•ญ์ƒ ์‚ฌ์šฉ์ž์˜ ์š”์ฒญ์„ ์ตœ์šฐ์„ ์œผ๋กœ ๊ณ ๋ คํ•˜๋ฉฐ, ๋ช…ํ™•ํ•˜๊ณ  ์ดํ•ดํ•˜๊ธฐ ์‰ฌ์šด ๋‹ต๋ณ€์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.\n2. ์ œ๊ณต๋œ ๋ฌธ์„œ๋ฅผ ์ตœ๋Œ€ํ•œ ํ™œ์šฉํ•˜์—ฌ ์‘๋‹ต์„ ๊ตฌ์„ฑํ•˜๋˜, ์ถ”๊ฐ€์ ์ธ ๋ถ„์„๊ณผ ๋…ผ๋ฆฌ๋ฅผ ํ†ตํ•ด ์‘๋‹ต์˜ ์งˆ์„ ๋†’์ž…๋‹ˆ๋‹ค.\n3. ์‘๋‹ต์„ ์ƒ์„ฑํ•  ๋•Œ๋Š” ๋ฐ˜๋“œ์‹œ ์ฃผ์–ด์ง„ ์ง€์นจ์„ ๋”ฐ๋ฅด๊ณ , ๋ช…ํ™•ํ•œ ์ถœ์ฒ˜๋ฅผ ์ œ๊ณตํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.\n4. ์‚ฌ์šฉ์ž์˜ ์งˆ๋ฌธ์ด ๋ชจํ˜ธํ•  ๊ฒฝ์šฐ, ๋ช…ํ™•์„ฑ์„ ํ™•๋ณดํ•˜๊ธฐ ์œ„ํ•ด ์งˆ๋ฌธ์„ ์žฌ๊ตฌ์„ฑํ•˜๋Š” ๋ฐฉ์•ˆ์„ ๊ณ ๋ คํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.\n\n# ์‚ฌ์šฉ์ž ์•ˆ๋‚ด๋ฌธ\n## ์ž‘์—… ๋ฐ ๋งฅ๋ฝ\n๋‹น์‹ ์€ ์‚ฌ์šฉ์ž ์งˆ๋ฌธ์— ๋Œ€ํ•ด ๊ด€๋ จ ๋ฌธ์„œ๋ฅผ ๋ถ„์„ํ•˜๊ณ , ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ์ •๋ณด๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ์‘๋‹ต์„ ์ƒ์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋‹จ์ˆœํ•œ ์ •๋ณด ์ „๋‹ฌ์„ ๋„˜์–ด, ๋ฌธ๋งฅ์„ ๊ณ ๋ คํ•˜์—ฌ ๊ฐ€์žฅ ์ ์ ˆํ•œ ํ˜•ํƒœ๋กœ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.\n\n## ์Šคํƒ€์ผ ๊ฐ€์ด๋“œ\njson ํ˜•์‹์œผ๋กœ ๋‹ต๋ณ€์„ ์ถœ๋ ฅํ•˜์„ธ์š”.[
58
+ {{
59
+ "related_document" : {{"๋ฌธ์„œ ์ •๋ณด์—์„œ ์ฐพ์€ doc_id"}}
60
+ "source" : {{"๋ฌธ์„œ ์ •๋ณด์—์„œ ์ฐพ์€ doc_id" : "ํ•ด๋‹น ๋ฌธ์„œ์—์„œ ์ฐพ์„ ์ˆ˜ ์žˆ๋Š” ์ธ์šฉ๊ตฌ ๊ตฌ์ ˆ, ์›๋ฌธ ๊ทธ๋Œ€๋กœ ํ‘œ๊ธฐ",
61
+ "๋ฌธ์„œ ์ •๋ณด์—์„œ ์ฐพ์€ doc_id" : "ํ•ด๋‹น ๋ฌธ์„œ์—์„œ ์ฐพ์„ ์ˆ˜ ์žˆ๋Š” ์ธ์šฉ๊ตฌ ๊ตฌ์ ˆ, ์›๋ฌธ ๊ทธ๋Œ€๋กœ ํ‘œ๊ธฐ"}},
62
+ "answer" : "์ถœ์ฒ˜๋ฅผ ํ‘œ๊ธฐํ•˜์ง€ ์•Š์€ 3~6๋ฌธ์žฅ ์„ค๋ช…ํ˜• ๋‹ต๋ณ€",
63
+ "grounded_answer" : "answer๊ณผ ๋™์ผํ•˜๋˜ <co: doc_id>์™€ </co: doc_id> ๊ธฐํ˜ธ๋กœ ์ธ์šฉ ์ถœ์ฒ˜๋ฅผ ๋ช…์‹œํ•œ ๋‹ต๋ณ€"
64
+ }}
65
+ ]\n
66
+ <|im_end|>\n<|im_start|>user\n {instruction} <|im_end|>\n<|im_start|>assistant\n"""
67
+ ```
68
+
69
+ ## Quickstart
70
+ ```
71
+ from transformers import AutoModelForCausalLM, AutoTokenizer
72
+
73
+ model_name = "Surromind/RAG-Specialized-LLM"
74
+ model = AutoModelForCausalLM.from_pretrained(
75
+ model_name, torch_dtype="auto", device_map="auto"
76
+ )
77
+ tokenizer = AutoTokenizer.from_pretrained(model_name)
78
+
79
+ prompt = """ ์งˆ๋ฌธ : NAOG ์™ธ์— ๋ชฝ๊ณจ์˜ ์–ด๋–ค ์‚ฌ๋žŒ๋“ค์ด ํ–‰์ •์ž์น˜๋ถ€ ์ง€๋ฐฉํ–‰์ •์—ฐ์ˆ˜์›์˜ ๊ต์œก ํ”„๋กœ๊ทธ๋žจ์— ์ฐธ๊ฐ€ํ•ด์™”์ง€?\n\n doc_id : 44365 / title : ํ•œ๊ตญ ์ง€๋ฐฉ์ธ์žฌ๊ฐœ๋ฐœ์ „๋žต ๋ฒ ํŠธ๋‚จ์— ์ „์ˆ˜๋œ๋‹ค. / content : ํ•œ๊ตญ ์ง€๋ฐฉ์ธ์žฌ๊ฐœ๋ฐœ์ „๋žต ๋ฒ ํŠธ๋‚จ์— ์ „์ˆ˜๋œ๋‹ค.\nโ–ก ๋ฒ ํŠธ๋‚จ ๋ž‘์„ ์„ฑ ์ง€๋ฐฉ์ •๋ถ€ ๊ณต๋ฌด์›๋“ค์ด ๊ณต๋ฌด์› ์ธ์žฌ์ฑ„์šฉ ๋ฐ ๊ต์œก ํ›ˆ๋ จ์ œ๋„ ์‹œ์Šคํ…œ ๋“ฑ ํ•œ๊ตญ์˜ ์ธ์ ์ž์›๊ฐœ๋ฐœ์ „๋žต์„ ๋ฐฐ์šฐ๋Ÿฌ ์šฐ๋ฆฌ๋‚˜๋ผ๋ฅผ ์ฐพ์•˜๋‹ค. \nโ—‹ ํ–‰์ •์ž์น˜๋ถ€ ์ง€๋ฐฉํ–‰์ •์—ฐ์ˆ˜์›(์›์žฅ ***, ์ดํ•˜ ์—ฐ์ˆ˜์›)์€ ํ•œ๊ตญ๊ตญ์ œ ํ˜‘๋ ฅ๋‹จ(KOICA)๊ณผ ๊ณต๋™์œผ๋กœ 11์›” 26์ผ๋ถ€ํ„ฐ 12์›” 9์ผ๊นŒ์ง€ 2์ฃผ๊ฐ„ ๋ฒ ํŠธ๋‚จ ๋ž‘์„ ์„ฑ ์ง€๋ฐฉ์ •๋ถ€ ๊ณต๋ฌด์› 15๋ช…์„ ๋Œ€์ƒ์œผ๋กœใ€Ž๋ฒ ํŠธ๋‚จ ๋ž‘์„ ์„ฑ ์ง€๋ฐฉ์ •๋ถ€ ๊ณต๋ฌด์› ์—ญ๋Ÿ‰๊ฐ•ํ™”๊ณผ์ •(Capacity Building for Vietnamese Local Government Officials from Lan Son Provinceใ€์„ ์šด์˜ํ•œ๋‹ค.\nโ–ก ์ด๋ฒˆ ๊ณผ์ •์€ ์—ฐ์ˆ˜์ƒ ๋Œ€๋ถ€๋ถ„์ด ๋ฒ ํŠธ๋‚จ ๋ž‘์„ ์„ฑ ์†Œ์†๊ณต๋ฌด์›์ธ ๋งŒํผ ํ•ด๋‹น ์ง€๋ฐฉ์ •๋ถ€๊ฐ€ ์š”์ฒญํ•œ ์ง€๋ฐฉํ–‰์ •, ๊ณต๋ฌด์› ์ฑ„์šฉยท๊ต์œก, ์ง€์—ญ๊ฒฝ์ œ ํ™œ์„ฑํ™” ๊ฐ•์˜ ๋ฐ ํ˜„์žฅ๊ฒฌํ•™ ๋“ฑ์˜ ๋งž์ถคํ˜• ์—ฐ์ˆ˜๊ณผ์ •์œผ๋กœ ์„ค๊ณ„๋˜์—ˆ๋‹ค. \nโ—‹ ํŠนํžˆ, ๋ฒ ํŠธ๋‚จ ์ง€๋ฐฉ์ •๋ถ€ ๊ณต๋ฌด์›๋“ค์˜ ๋ฆฌ๋”์‹ญ๊ณผ ์—ญ๋Ÿ‰์„ ๊ฐ•ํ™”ํ•˜๊ธฐ ์œ„ํ•ด ๊ณต๋ฌด์› ์ธ์žฌ์ฑ„์šฉ ๋ฐ ๊ต์œกํ›ˆ๋ จ์ œ๋„ ์‹œ์Šคํ…œ์— ๋Œ€ํ•œ ํ† ๋ก ์‹ ์„ธ๋ฏธ๋‚˜ ๋ฐฉ์‹์œผ๋กœ Action Plan์„ ์ˆ˜๋ฆฝํ•˜๋„๋ก ํ•˜์—ฌ ์—ฐ์ˆ˜์ƒ์ด ๋ž‘์„ ์„ฑ์˜ ์ธ์ ์ž์›๊ฐœ๋ฐœ ์ •์ฑ…์ˆ˜๋ฆฝ์— ์ ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ์ง€์›ํ•  ์˜ˆ์ •์ด๋‹ค.\nโ—‹ ์•„์šธ๋Ÿฌ, ์—ฐ์ˆ˜๋‹จ์€ ๋†์—…์†Œ๋“์ฆ๋Œ€์™€ ์ง€์—ญ๊ฒฝ์ œ ํ™œ์„ฑํ™” ์„ฑ๊ณต์‚ฌ๋ก€๋กœ ํ‰๊ฐ€ ๋ฐ›๊ณ  ์žˆ๋Š” ์™„์ฃผ๊ตฐ ๊ฑฐ์ ๋†๋ฏผ๊ฐ€๊ณต์„ผํ„ฐ, ์ง€์—ญ๊ฒฝ์ œ์ˆœํ™˜์„ผํ„ฐ ๋“ฑ์„ ๋ฐฉ๋ฌธํ•˜์—ฌ ์ง€์—ญ๋†๋ฏผ์ด ์ƒ์‚ฐํ•œ ๋†์‚ฐ๋ฌผ์ด 2์ฐจ, 3์ฐจ ์‹ํ’ˆ ๊ฐ€๊ณต ๊ณผ์ •์„ ๊ฑฐ์ณ ์•ˆ์ •์ ์œผ๋กœ ํŒ๋งค๋  ์ˆ˜ ์žˆ๋„๋ก ์ง€์›ํ•˜๋Š” ๋†์‚ฐ๋ฌผ ๊ฐ€๊ณต ์‹œ์Šคํ…œ ํ˜„์žฅ์„ ์‚ดํŽด ๋ณผ ์˜ˆ์ •์ด๋‹ค. \nโ—‹ ์ด์™ธ์—๋„ ๋ฒ ํŠธ๋‚จ ๋ž‘์„ ์„ฑ์—์„œ ๊ด€์‹ฌ์ด ๋งŽ์€ ์ธ์ฒœ๊ฒฝ์ œ์ž์œ ๊ตฌ์—ญ์ฒญ์„ ๊ฒฌํ•™ํ•˜์—ฌ ํ•œ๊ตญ์˜ ๊ฒฝ์ œ๋ฐœ์ „์ƒ ๋“ฑ ํ˜„์žฅ์„ ๋‘˜๋Ÿฌ๋ณด๋ฉด์„œ ๋ž‘์„ ์„ฑ ์ง€์—ญ ๊ฒฝ์ œ์— ์ ‘๋ชฉํ•  ์ˆ˜ ์žˆ๋Š” ์ฒดํ—˜์˜ ๊ธฐํšŒ๋„ ๊ฐ€์งˆ ์˜ˆ์ •์ด๋‹ค. \nโ–ก ํ•œํŽธ, ์—ฐ์ˆ˜์›์€ 2006๋…„๋ถ€ํ„ฐ ๋ฒ ํŠธ๋‚จ ์ง€๋ฐฉ ๊ณต๋ฌด์›๋“ค์„ ๋Œ€์ƒ์œผ๋กœ ์—ฐ์ˆ˜๊ณผ์ •์„ ์šด์˜ํ•œ ์ดํ›„ 5๊ฐœ ๋ฒ ํŠธ๋‚จ ๊ณผ์ •๊ณผ ๊ธฐํƒ€ ๋‹ค๊ตญ ๊ณผ์ •์„ ํ†ตํ•˜์—ฌ ์ด 130๋ช…์˜ ์—ฐ์ˆ˜์ƒ์„ ๋™์ฐฝ์ƒ์œผ๋กœ ๋ฐฐ์ถœํ–ˆ๋‹ค.doc_id : 45112 / title : โ€œํ•œ๊ตญ ๊ณต๊ธฐ์—… ํ˜์‹ ์‚ฌ๋ก€ ๋ฐฐ์šฐ๋Ÿฌ ์™”์–ด์š”!โ€ / content : ๋ชฝ๊ณจ NAOG ๊ต์ˆ˜๋‹จ ๋ฐ ๊ณ ์œ„๊ณต๋ฌด์› ๋ฐฉํ•œ โ€œํ•œ๊ตญ ๊ณต๊ธฐ์—… ํ˜์‹ ์‚ฌ๋ก€ ๋ฐฐ์šฐ๋Ÿฌ ์™”์–ด์š”!โ€ - ์ง€๋ฐฉํ–‰์ •์—ฐ์ˆ˜์›, 13๋…„์งธ ๋ชฝ๊ณจ ๋งž์ถคํ˜• ๊ต์œก์‹ค์‹œ-\nโ–ก ํ–‰์ •์ž์น˜๋ถ€ ์ง€๋ฐฉํ–‰์ •์—ฐ์ˆ˜์›(์›์žฅ ์ตœ๋‘์˜, ์ดํ•˜ ์—ฐ์ˆ˜์›)์€ 3์›” 1์ผ๋ถ€ํ„ฐ 3์›” 8์ผ๊นŒ์ง€ ใ€Ž๋ชฝ๊ณจ NAOG* ์—ญ๋Ÿ‰๊ฐ•ํ™”๊ณผ์ •ใ€์„ ์šด์˜ํ•œ๋‹ค. \nโ—‹ ์ด๋ฒˆ ๊ณผ์ •์—๋Š” ๊ต์ˆ˜, ๊ณ ์œ„๊ณต๋ฌด์›, ์—ฐ์ˆ˜๊ด€๊ณ„๊ด€ 14๋ช…์ด ์ฐธ๊ฐ€ํ•œ๋‹ค. \n* NAOG (๊ตญ๋ฆฝ๊ฑฐ๋ฒ„๋„Œ์Šค ์•„์นด๋ฐ๋ฏธ, National Academy of Governance) : ๊ณต๋ฌด์›์€ ๋ฌผ๋ก  ์ •์น˜์ธยท๋ฏผ๊ฐ„์ธ ๋“ฑ ๋ชฝ๊ณจ์˜ ์˜คํ”ผ๋‹ˆ์–ธ ๋ฆฌ๋”๋“ค์„ ๊ต์œกํ•˜๋Š” ๋ชฝ๊ณจ ์ตœ๋Œ€์˜ ๊ต์œก๊ธฐ๊ด€์œผ๋กœ ์„โ€ค๋ฐ•์‚ฌํ•™์œ„ ์ˆ˜์—ฌ\nโ–ก ์—ฐ์ˆ˜์›์€ ๋ชฝ๊ณจ NAOG์™€ 2002๋…„ ๊ต๋ฅ˜ํ˜‘๋ ฅ MOU๋ฅผ ์ฒด๊ฒฐํ•œ ์ดํ›„, 13๊ฐœ ๊ต์œก๊ณผ์ •(ํ–‰์ •๊ฐœํ˜, ๊ฒฝ์ œ๋ฐœ์ „ ์ „๋žต, ํ–‰์ •์˜ ํˆฌ๋ช…์„ฑ ์ œ๊ณ  ๋ฐฉ์•ˆ ๋“ฑ)์„ ์šด์˜ํ•ด 158๋ช…์˜ NAOG ๊ต์ˆ˜์™€ ๊ณ ์œ„ ๊ณต๋ฌด์›์„ ๋™์ฐฝ์ƒ์œผ๋กœ ๋ฐฐ์ถœํ–ˆ๊ณ , \nโ—‹ ๊ทธ ์ด์™ธ์—๋„ ๋ชฝ๊ณจ์˜ ๋„์ง€์‚ฌ, ๊ตฐ์ˆ˜ ๋“ฑ ์ง€๋ฐฉ๊ณต๋ฌด์› 1,310๋ช…์„ ๋Œ€์ƒ์œผ๋กœ ํ•œ๊ตญ ์ง€๋ฐฉํ–‰์ •์˜ ์šฐ์ˆ˜์‚ฌ๋ก€๋ฅผ ๋ฒค์น˜๋งˆํ‚นํ•  ์ˆ˜ ์žˆ๋Š” ๋ชฝ๊ณจ๊ตฐ์ˆ˜ ๊ณผ์ • ๋“ฑ ๋‹ค์–‘ํ•œ ๊ต์œกํ”„๋กœ๊ทธ๋žจ์„ ์šด์˜ํ•ด ์˜ค๊ณ  ์žˆ๋‹ค.
80
+ """
81
+ messages = [
82
+ {
83
+ "role": "system",
84
+ "content": """๋‹น์‹ ์€ ๋Œ€ํ™”ํ˜• AI๋กœ์„œ, ์‚ฌ์šฉ์ž์˜ ์งˆ๋ฌธ์— ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์ด ์ฃผ์š” ์—ญํ• ์ž…๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž์˜ ์š”๊ตฌ๋ฅผ ์ •ํ™•ํžˆ ์ดํ•ดํ•˜๊ณ , ๊ด€๋ จ ๋ฌธ์„œ๋ฅผ ๋ถ„์„ํ•˜์—ฌ ์ตœ์ ์˜ ๋‹ต๋ณ€์„ ์ƒ์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. \n๋‹น์‹ ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์›์น™์„ ์ค€์ˆ˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค:\n1. ํ•ญ์ƒ ์‚ฌ์šฉ์ž์˜ ์š”์ฒญ์„ ์ตœ์šฐ์„ ์œผ๋กœ ๊ณ ๋ คํ•˜๋ฉฐ, ๋ช…ํ™•ํ•˜๊ณ  ์ดํ•ดํ•˜๊ธฐ ์‰ฌ์šด ๋‹ต๋ณ€์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.\n2. ์ œ๊ณต๋œ ๋ฌธ์„œ๋ฅผ ์ตœ๋Œ€ํ•œ ํ™œ์šฉํ•˜์—ฌ ์‘๋‹ต์„ ๊ตฌ์„ฑํ•˜๋˜, ์ถ”๊ฐ€์ ์ธ ๋ถ„์„๊ณผ ๋…ผ๋ฆฌ๋ฅผ ํ†ตํ•ด ์‘๋‹ต์˜ ์งˆ์„ ๋†’์ž…๋‹ˆ๋‹ค.\n3. ์‘๋‹ต์„ ์ƒ์„ฑํ•  ๋•Œ๋Š” ๋ฐ˜๋“œ์‹œ ์ฃผ์–ด์ง„ ์ง€์นจ์„ ๋”ฐ๋ฅด๊ณ , ๋ช…ํ™•ํ•œ ์ถœ์ฒ˜๋ฅผ ์ œ๊ณตํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.\n4. ์‚ฌ์šฉ์ž์˜ ์งˆ๋ฌธ์ด ๋ชจํ˜ธํ•  ๊ฒฝ์šฐ, ๋ช…ํ™•์„ฑ์„ ํ™•๋ณดํ•˜๊ธฐ ์œ„ํ•ด ์งˆ๋ฌธ์„ ์žฌ๊ตฌ์„ฑํ•˜๋Š” ๋ฐฉ์•ˆ์„ ๊ณ ๋ คํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.\n\n# ์‚ฌ์šฉ์ž ์•ˆ๋‚ด๋ฌธ\n## ์ž‘์—… ๋ฐ ๋งฅ๋ฝ\n๋‹น์‹ ์€ ์‚ฌ์šฉ์ž ์งˆ๋ฌธ์— ๋Œ€ํ•ด ๊ด€๋ จ ๋ฌธ์„œ๋ฅผ ๋ถ„์„ํ•˜๊ณ , ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ์ •๋ณด๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ์‘๋‹ต์„ ์ƒ์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋‹จ์ˆœํ•œ ์ •๋ณด ์ „๋‹ฌ์„ ๋„˜์–ด, ๋ฌธ๋งฅ์„ ๊ณ ๋ คํ•˜์—ฌ ๊ฐ€์žฅ ์ ์ ˆํ•œ ํ˜•ํƒœ๋กœ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.\n\n## ์Šคํƒ€์ผ ๊ฐ€์ด๋“œ\njson ํ˜•์‹์œผ๋กœ ๋‹ต๋ณ€์„ ์ถœ๋ ฅํ•˜์„ธ์š”.[{"related_document" : {"๋ฌธ์„œ ์ •๋ณด์—์„œ ์ฐพ์€ doc_id"}, "source" : {"๋ฌธ์„œ ์ •๋ณด์—์„œ ์ฐพ์€ doc_id" : "ํ•ด๋‹น ๋ฌธ์„œ์—์„œ ์ฐพ์„ ์ˆ˜ ์žˆ๋Š” ์ธ์šฉ๊ตฌ ๊ตฌ์ ˆ, ์›๋ฌธ ๊ทธ๋Œ€๋กœ ํ‘œ๊ธฐ", "๋ฌธ์„œ ์ •๋ณด์—์„œ ์ฐพ์€ doc_id" : "ํ•ด๋‹น ๋ฌธ์„œ์—์„œ ์ฐพ์„ ์ˆ˜ ์žˆ๋Š” ์ธ์šฉ๊ตฌ ๊ตฌ์ ˆ, ์›๋ฌธ ๊ทธ๋Œ€๋กœ ํ‘œ๊ธฐ"},"answer" : "์ถœ์ฒ˜๋ฅผ ํ‘œ๊ธฐํ•˜์ง€ ์•Š์€ 3~6๋ฌธ์žฅ ์„ค๋ช…ํ˜• ๋‹ต๋ณ€","grounded_answer" : "answer๊ณผ ๋™์ผํ•˜๋˜ <co: doc_id>์™€ </co: doc_id> ๊ธฐํ˜ธ๋กœ ์ธ์šฉ ์ถœ์ฒ˜๋ฅผ ๋ช…์‹œํ•œ ๋‹ต๋ณ€"}]\n""",
85
+ },
86
+ {"role": "user", "content": prompt},
87
+ ]
88
+ text = tokenizer.apply_chat_template(
89
+ messages, tokenize=False, add_generation_prompt=True
90
+ )
91
+ model_inputs = tokenizer([text], return_tensors="pt").to(model.device)
92
+
93
+ generated_ids = model.generate(**model_inputs, max_new_tokens=512)
94
+ generated_ids = [
95
+ output_ids[len(input_ids) :]
96
+ for input_ids, output_ids in zip(model_inputs.input_ids, generated_ids)
97
+ ]
98
+
99
+ response = tokenizer.batch_decode(generated_ids, skip_special_tokens=True)[0]
100
+ print(response)
101
+ ```