Improve language tag

#1
by lbourdois - opened
Files changed (1) hide show
  1. README.md +134 -122
README.md CHANGED
@@ -1,123 +1,135 @@
1
- ---
2
- license: apache-2.0
3
- language:
4
- - ko
5
- base_model:
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
- pipeline_tag: text-generation
17
- ---
18
-
19
- ## Introduction
20
- Command r plus ๋ชจ๋ธ์„ ์ด์šฉํ•˜์—ฌ ์ž์ฒด ๊ตฌ์ถ•ํ•œ RAG ํŠนํ™” ๋ฐ์ดํ„ฐ์…‹, CoT ๋ฐ์ดํ„ฐ์…‹, ๋ฒค์น˜๋งˆํฌ ๋ฐ์ดํ„ฐ์…‹์œผ๋กœ Qwen2.5 14B ๋ชจ๋ธ์„ Full fine-tuning ํ•œ ๋ชจ๋ธ์ž…๋‹ˆ๋‹ค.
21
- ํ•ด๋‹น ๋ชจ๋ธ์€ ์ผ๋ฐ˜์ ์ธ RAG ์„œ๋น„์Šค์˜ ์ž…๋ ฅ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•ด์„œ ์ •ํ™•ํ•œ ๋‹ต๋ณ€๊ณผ ๋‹ต๋ณ€ ์ถœ์ฒ˜๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, Json ํ˜•ํƒœ๋กœ ๋‹ต๋ณ€์„ ์ถœ๋ ฅํ•˜๋Š” ํŠน์ง•์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
22
- ์ถœ๋ ฅ ํ‚ค๊ฐ’์€ ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.
23
- 1. "related_document"์˜ ๊ฐ’ : ์งˆ๋ฌธ๊ณผ ๊ด€๋ จ ์žˆ๋Š” ๋ฌธ์„œ doc_id, ์ œ๋ชฉ (key : ๋ฌธ์„œ ๋ฒˆํ˜ธ, Value : ๋ฌธ์„œ ์ œ๋ชฉ)
24
- 2. "source" : ์งˆ๋ฌธ๊ณผ ๊ด€๋ จ์žˆ๋Š” ๋ฌธ์„œ doc_id์™€ ๋‹ต๋ณ€์— ์ƒ์„ฑํ•œ ์ธ์šฉ๊ตฌ ๊ตฌ์ ˆ
25
- 3. "answer"์˜ ๊ฐ’ : ์ถœ์ฒ˜๋ฅผ ํ‘œ๊ธฐํ•˜์ง€ ์•Š์€ 3~6๋ฌธ์žฅ ์„ค๋ช…ํ˜• ๋‹ต๋ณ€
26
- 4. "grounded_answer"์˜ ๊ฐ’ : answer๊ณผ ๋™์ผํ•˜๋˜ <co: doc_id>์™€ </co: doc_id> ๊ธฐํ˜ธ๋กœ ์ธ์šฉ ์ถœ์ฒ˜๋ฅผ ๋ช…์‹œํ•œ ๋‹ต๋ณ€
27
-
28
- ### ๋‹ต๋ณ€ ์ถœ๋ ฅ ์˜ˆ์‹œ
29
- ```
30
- {
31
- "related_document": {
32
- "D0000042284685": "๊ฐ€๋ฝ๋ชฐ ์ „๋™ ์‚ผ๋ฅœ์ฐจ ํ™”์žฌ์˜ˆ๋ฐฉ ์ถ”์ง„ ๋Œ€์ฑ…",
33
- "4895": "์ฐจ์„ธ๋Œ€ ๊ณ ์‹ ๋ขฐ์„ฑ ๊ณ ์ถœ๋ ฅ ์Šˆํผ์ถ•์ „๊ธฐ"
34
- },
35
- "source": {
36
- "D0000042284685": "ใ€Œ๋ฌผ๋ฅ˜์šด๋ฐ˜์žฅ๋น„ ์ถฉ์ „์žฅ์น˜(๋ฆฌํŠฌ์ด์˜จ ๋ฐฐํ„ฐ๋ฆฌ) ...",
37
- "4895": "์Šˆํผ์ถ•์ „๊ธฐ์™€ ๋ฆฌํŠฌ์ด์ฐจ์ „์ง€์˜ ๋น„๊ต ..."
38
- },
39
- "answer": "๊ฐ€๋ฝ๋ชฐ ์ „๋™ ์‚ผ๋ฅœ์ฐจ์˜ ๋ฆฌํŠฌ์ด์˜จ ๋ฐฐํ„ฐ๋ฆฌ์™€ ์Šˆํผ์ถ•์ „๊ธฐ๋Š” ๋ฉ”...",
40
- "grounded_answer": "๊ฐ€๋ฝ๋ชฐ ์ „๋™ ์‚ผ๋ฅœ์ฐจ์˜ ๋ฆฌํŠฌ์ด์˜จ ๋ฐฐํ„ฐ๋ฆฌ์™€ ์Šˆํผ์ถ•์ „๊ธฐ๋Š” <co: 4895>๋ฉ”์ปค๋‹ˆ์ฆ˜, ์†Œ์žฌ, ์ˆ˜๋ช…, ๋ณดํ˜ธํšŒ๋กœ, ๊ทน์„ฑ, ๊ณผ์ „์••, ์ž”์กด์šฉ๋Ÿ‰์ธก์ •, ํŠน์ง•</co: 4895> ๋“ฑ์—์„œ ์ฐจ์ด๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฆฌํŠฌ์ด์˜จ ๋ฐฐํ„ฐ๋ฆฌ๋Š” <co: 4895>๋ฆฌํŠฌ์ด์˜จ ์ด๋™ ๋ฉ”์ปค๋‹ˆ์ฆ˜</co: 4895>์„ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฉฐ,... "
41
- }
42
- ```
43
-
44
- ## RAG Prompt
45
- ```
46
- RAG_PROMPT = """<|im_start|>system\n\n ๋‹น์‹ ์€ ๋Œ€ํ™”ํ˜• AI๋กœ์„œ, ์‚ฌ์šฉ์ž์˜ ์งˆ๋ฌธ์— ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์ด ์ฃผ์š” ์—ญํ• ์ž…๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž์˜ ์š”๊ตฌ๋ฅผ ์ •ํ™•ํžˆ ์ดํ•ดํ•˜๊ณ , ๊ด€๋ จ ๋ฌธ์„œ๋ฅผ ๋ถ„์„ํ•˜์—ฌ ์ตœ์ ์˜ ๋‹ต๋ณ€์„ ์ƒ์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. \n๋‹น์‹ ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์›์น™์„ ์ค€์ˆ˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค:\n1. ํ•ญ์ƒ ์‚ฌ์šฉ์ž์˜ ์š”์ฒญ์„ ์ตœ์šฐ์„ ์œผ๋กœ ๊ณ ๋ คํ•˜๋ฉฐ, ๋ช…ํ™•ํ•˜๊ณ  ์ดํ•ดํ•˜๊ธฐ ์‰ฌ์šด ๋‹ต๋ณ€์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.\n2. ์ œ๊ณต๋œ ๋ฌธ์„œ๋ฅผ ์ตœ๋Œ€ํ•œ ํ™œ์šฉํ•˜์—ฌ ์‘๋‹ต์„ ๊ตฌ์„ฑํ•˜๋˜, ์ถ”๊ฐ€์ ์ธ ๋ถ„์„๊ณผ ๋…ผ๋ฆฌ๋ฅผ ํ†ตํ•ด ์‘๋‹ต์˜ ์งˆ์„ ๋†’์ž…๋‹ˆ๋‹ค.\n3. ์‘๋‹ต์„ ์ƒ์„ฑํ•  ๋•Œ๋Š” ๋ฐ˜๋“œ์‹œ ์ฃผ์–ด์ง„ ์ง€์นจ์„ ๋”ฐ๋ฅด๊ณ , ๋ช…ํ™•ํ•œ ์ถœ์ฒ˜๋ฅผ ์ œ๊ณตํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.\n4. ์‚ฌ์šฉ์ž์˜ ์งˆ๋ฌธ์ด ๋ชจํ˜ธํ•  ๊ฒฝ์šฐ, ๋ช…ํ™•์„ฑ์„ ํ™•๋ณดํ•˜๊ธฐ ์œ„ํ•ด ์งˆ๋ฌธ์„ ์žฌ๊ตฌ์„ฑํ•˜๋Š” ๋ฐฉ์•ˆ์„ ๊ณ ๋ คํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.\n\n# ์‚ฌ์šฉ์ž ์•ˆ๋‚ด๋ฌธ\n## ์ž‘์—… ๋ฐ ๋งฅ๋ฝ\n๋‹น์‹ ์€ ์‚ฌ์šฉ์ž ์งˆ๋ฌธ์— ๋Œ€ํ•ด ๊ด€๋ จ ๋ฌธ์„œ๋ฅผ ๋ถ„์„ํ•˜๊ณ , ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ์ •๋ณด๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ์‘๋‹ต์„ ์ƒ์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋‹จ์ˆœํ•œ ์ •๋ณด ์ „๋‹ฌ์„ ๋„˜์–ด, ๋ฌธ๋งฅ์„ ๊ณ ๋ คํ•˜์—ฌ ๊ฐ€์žฅ ์ ์ ˆํ•œ ํ˜•ํƒœ๋กœ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.\n\n## ์Šคํƒ€์ผ ๊ฐ€์ด๋“œ\njson ํ˜•์‹์œผ๋กœ ๋‹ต๋ณ€์„ ์ถœ๋ ฅํ•˜์„ธ์š”.[
47
- {{
48
- "related_document" : {{"๋ฌธ์„œ ์ •๋ณด์—์„œ ์ฐพ์€ doc_id"}}
49
- "source" : {{"๋ฌธ์„œ ์ •๋ณด์—์„œ ์ฐพ์€ doc_id" : "ํ•ด๋‹น ๋ฌธ์„œ์—์„œ ์ฐพ์„ ์ˆ˜ ์žˆ๋Š” ์ธ์šฉ๊ตฌ ๊ตฌ์ ˆ, ์›๋ฌธ ๊ทธ๋Œ€๋กœ ํ‘œ๊ธฐ",
50
- "๋ฌธ์„œ ์ •๋ณด์—์„œ ์ฐพ์€ doc_id" : "ํ•ด๋‹น ๋ฌธ์„œ์—์„œ ์ฐพ์„ ์ˆ˜ ์žˆ๋Š” ์ธ์šฉ๊ตฌ ๊ตฌ์ ˆ, ์›๋ฌธ ๊ทธ๋Œ€๋กœ ํ‘œ๊ธฐ"}},
51
- "answer" : "์ถœ์ฒ˜๋ฅผ ํ‘œ๊ธฐํ•˜์ง€ ์•Š์€ 3~6๋ฌธ์žฅ ์„ค๋ช…ํ˜• ๋‹ต๋ณ€",
52
- "grounded_answer" : "answer๊ณผ ๋™์ผํ•˜๋˜ <co: doc_id>์™€ </co: doc_id> ๊ธฐํ˜ธ๋กœ ์ธ์šฉ ์ถœ์ฒ˜๋ฅผ ๋ช…์‹œํ•œ ๋‹ต๋ณ€"
53
- }}
54
- ]\n
55
- <|im_end|>\n<|im_start|>user\n {instruction} <|im_end|>\n<|im_start|>assistant\n"""
56
- ```
57
-
58
- ## Quickstart
59
- ```
60
- from transformers import AutoModelForCausalLM, AutoTokenizer
61
-
62
- model_name = "Surromind/RAG-Specialized-LLM"
63
- model = AutoModelForCausalLM.from_pretrained(
64
- model_name, torch_dtype="auto", device_map="auto"
65
- )
66
- tokenizer = AutoTokenizer.from_pretrained(model_name)
67
-
68
- 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๋ช…์„ ๋Œ€์ƒ์œผ๋กœ ํ•œ๊ตญ ์ง€๋ฐฉํ–‰์ •์˜ ์šฐ์ˆ˜์‚ฌ๋ก€๋ฅผ ๋ฒค์น˜๋งˆํ‚นํ•  ์ˆ˜ ์žˆ๋Š” ๋ชฝ๊ณจ๊ตฐ์ˆ˜ ๊ณผ์ • ๋“ฑ ๋‹ค์–‘ํ•œ ๊ต์œกํ”„๋กœ๊ทธ๋žจ์„ ์šด์˜ํ•ด ์˜ค๊ณ  ์žˆ๋‹ค.
69
- """
70
- messages = [
71
- {
72
- "role": "system",
73
- "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""",
74
- },
75
- {"role": "user", "content": prompt},
76
- ]
77
- text = tokenizer.apply_chat_template(
78
- messages, tokenize=False, add_generation_prompt=True
79
- )
80
- model_inputs = tokenizer([text], return_tensors="pt").to(model.device)
81
-
82
- generated_ids = model.generate(**model_inputs, max_new_tokens=512)
83
- generated_ids = [
84
- output_ids[len(input_ids) :]
85
- for input_ids, output_ids in zip(model_inputs.input_ids, generated_ids)
86
- ]
87
-
88
- response = tokenizer.batch_decode(generated_ids, skip_special_tokens=True)[0]
89
- print(response)
90
- ```
91
-
92
- ## ํ•™์Šต ํ™˜๊ฒฝ ๋ฐ ํŒŒ๋ผ๋ฏธํ„ฐ
93
- - ํŠœ๋‹ ํ™˜๊ฒฝ
94
- - H100(80GB) * 8
95
- - ํŒŒ๋ผ๋ฏธํ„ฐ
96
- - tokenizer_model_mex_length 4500
97
- - use_flash_attn True
98
- - num_train_epochs 3.0
99
- - weight_decay 0.001
100
- - lr_scheduler_type "linear"
101
- - per_device_train_batch_size 1
102
- - gradient_accumulation_steps 64
103
- - learning_rate 5e-06
104
- - bf16 True
105
- - deepspeed ds_stage2.json
106
-
107
- ## ์‚ฌ์šฉ ๋ฐ์ดํ„ฐ์…‹
108
- - AIhub 16 ํ–‰์ • ๋ฌธ์„œ ๋Œ€์ƒ ๊ธฐ๊ณ„๋…ํ•ด ๋ฐ์ดํ„ฐ
109
- - AIhub 17 ๋‰ด์Šค ๊ธฐ์‚ฌ ๊ธฐ๊ณ„๋…ํ•ด ๋ฐ์ดํ„ฐ
110
- - AIhub 21 ๋„์„œ์ž๋ฃŒ ๊ธฐ๊ณ„๋…ํ•ด
111
- - AIhub 149 ํ‘œ ์ •๋ณด ์งˆ์˜์‘๋‹ต ๋ฐ์ดํ„ฐ
112
- - AIhub 150 ์ˆซ์ž์—ฐ์‚ฐ ๊ธฐ๊ณ„๋…ํ•ด ๋ฐ์ดํ„ฐ
113
- - AIhub 151 ๊ธˆ์œต, ๋ฒ•๋ฅ  ๋ฌธ์„œ ๊ธฐ๊ณ„๋…ํ•ด ๋ฐ์ดํ„ฐ
114
- - kyujinpy/KoCoT_2000
115
- - MarkrAI/KoCommercial-Dataset
116
- - CarrotAI/ko-instruction-dataset
117
- - heegyu/CoT-collection-ko
118
-
119
- ## Contact us
120
- - ์จ๋กœ๋งˆ์ธ๋“œ
121
- - ์„œ์šธ์‹œ ๊ด€์•…๊ตฌ ๋‚จ๋ถ€์ˆœํ™˜๋กœ 1802, 2์ธต
122
- - 02-872-5127
 
 
 
 
 
 
 
 
 
 
 
 
123
  - contact@surromind.ai
 
1
+ ---
2
+ license: apache-2.0
3
+ language:
4
+ - zho
5
+ - eng
6
+ - fra
7
+ - spa
8
+ - por
9
+ - deu
10
+ - ita
11
+ - rus
12
+ - jpn
13
+ - kor
14
+ - vie
15
+ - tha
16
+ - ara
17
+ base_model:
18
+ - Qwen/Qwen2.5-14B
19
+ tags:
20
+ - RAG
21
+ - Ko-LLM
22
+ - QA
23
+ datasets:
24
+ - kyujinpy/KoCoT_2000
25
+ - MarkrAI/KoCommercial-Dataset
26
+ - CarrotAI/ko-instruction-dataset
27
+ - heegyu/CoT-collection-ko
28
+ pipeline_tag: text-generation
29
+ ---
30
+
31
+ ## Introduction
32
+ Command r plus ๋ชจ๋ธ์„ ์ด์šฉํ•˜์—ฌ ์ž์ฒด ๊ตฌ์ถ•ํ•œ RAG ํŠนํ™” ๋ฐ์ดํ„ฐ์…‹, CoT ๋ฐ์ดํ„ฐ์…‹, ๋ฒค์น˜๋งˆํฌ ๋ฐ์ดํ„ฐ์…‹์œผ๋กœ Qwen2.5 14B ๋ชจ๋ธ์„ Full fine-tuning ํ•œ ๋ชจ๋ธ์ž…๋‹ˆ๋‹ค.
33
+ ํ•ด๋‹น ๋ชจ๋ธ์€ ์ผ๋ฐ˜์ ์ธ RAG ์„œ๋น„์Šค์˜ ์ž…๋ ฅ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•ด์„œ ์ •ํ™•ํ•œ ๋‹ต๋ณ€๊ณผ ๋‹ต๋ณ€ ์ถœ์ฒ˜๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, Json ํ˜•ํƒœ๋กœ ๋‹ต๋ณ€์„ ์ถœ๋ ฅํ•˜๋Š” ํŠน์ง•์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
34
+ ์ถœ๋ ฅ ํ‚ค๊ฐ’์€ ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.
35
+ 1. "related_document"์˜ ๊ฐ’ : ์งˆ๋ฌธ๊ณผ ๊ด€๋ จ ์žˆ๋Š” ๋ฌธ์„œ doc_id, ์ œ๋ชฉ (key : ๋ฌธ์„œ ๋ฒˆํ˜ธ, Value : ๋ฌธ์„œ ์ œ๋ชฉ)
36
+ 2. "source" : ์งˆ๋ฌธ๊ณผ ๊ด€๋ จ์žˆ๋Š” ๋ฌธ์„œ doc_id์™€ ๋‹ต๋ณ€์— ์ƒ์„ฑํ•œ ์ธ์šฉ๊ตฌ ๊ตฌ์ ˆ
37
+ 3. "answer"์˜ ๊ฐ’ : ์ถœ์ฒ˜๋ฅผ ํ‘œ๊ธฐํ•˜์ง€ ์•Š์€ 3~6๋ฌธ์žฅ ์„ค๋ช…ํ˜• ๋‹ต๋ณ€
38
+ 4. "grounded_answer"์˜ ๊ฐ’ : answer๊ณผ ๋™์ผํ•˜๋˜ <co: doc_id>์™€ </co: doc_id> ๊ธฐํ˜ธ๋กœ ์ธ์šฉ ์ถœ์ฒ˜๋ฅผ ๋ช…์‹œํ•œ ๋‹ต๋ณ€
39
+
40
+ ### ๋‹ต๋ณ€ ์ถœ๋ ฅ ์˜ˆ์‹œ
41
+ ```
42
+ {
43
+ "related_document": {
44
+ "D0000042284685": "๊ฐ€๋ฝ๋ชฐ ์ „๋™ ์‚ผ๋ฅœ์ฐจ ํ™”์žฌ์˜ˆ๋ฐฉ ์ถ”์ง„ ๋Œ€์ฑ…",
45
+ "4895": "์ฐจ์„ธ๋Œ€ ๊ณ ์‹ ๋ขฐ์„ฑ ๊ณ ์ถœ๋ ฅ ์Šˆํผ์ถ•์ „๊ธฐ"
46
+ },
47
+ "source": {
48
+ "D0000042284685": "ใ€Œ๋ฌผ๋ฅ˜์šด๋ฐ˜์žฅ๋น„ ์ถฉ์ „์žฅ์น˜(๋ฆฌํŠฌ์ด์˜จ ๋ฐฐํ„ฐ๋ฆฌ) ...",
49
+ "4895": "์Šˆํผ์ถ•์ „๊ธฐ์™€ ๋ฆฌํŠฌ์ด์ฐจ์ „์ง€์˜ ๋น„๊ต ..."
50
+ },
51
+ "answer": "๊ฐ€๋ฝ๋ชฐ ์ „๋™ ์‚ผ๋ฅœ์ฐจ์˜ ๋ฆฌํŠฌ์ด์˜จ ๋ฐฐํ„ฐ๋ฆฌ์™€ ์Šˆํผ์ถ•์ „๊ธฐ๋Š” ๋ฉ”...",
52
+ "grounded_answer": "๊ฐ€๋ฝ๋ชฐ ์ „๋™ ์‚ผ๋ฅœ์ฐจ์˜ ๋ฆฌํŠฌ์ด์˜จ ๋ฐฐํ„ฐ๋ฆฌ์™€ ์Šˆํผ์ถ•์ „๊ธฐ๋Š” <co: 4895>๋ฉ”์ปค๋‹ˆ์ฆ˜, ์†Œ์žฌ, ์ˆ˜๋ช…, ๋ณดํ˜ธํšŒ๋กœ, ๊ทน์„ฑ, ๊ณผ์ „์••, ์ž”์กด์šฉ๋Ÿ‰์ธก์ •, ํŠน์ง•</co: 4895> ๋“ฑ์—์„œ ์ฐจ์ด๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ฆฌํŠฌ์ด์˜จ ๋ฐฐํ„ฐ๋ฆฌ๋Š” <co: 4895>๋ฆฌํŠฌ์ด์˜จ ์ด๋™ ๋ฉ”์ปค๋‹ˆ์ฆ˜</co: 4895>์„ ๊ฐ€์ง€๊ณ  ์žˆ์œผ๋ฉฐ,... "
53
+ }
54
+ ```
55
+
56
+ ## RAG Prompt
57
+ ```
58
+ RAG_PROMPT = """<|im_start|>system\n\n ๋‹น์‹ ์€ ๋Œ€ํ™”ํ˜• AI๋กœ์„œ, ์‚ฌ์šฉ์ž์˜ ์งˆ๋ฌธ์— ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์ด ์ฃผ์š” ์—ญํ• ์ž…๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž์˜ ์š”๊ตฌ๋ฅผ ์ •ํ™•ํžˆ ์ดํ•ดํ•˜๊ณ , ๊ด€๋ จ ๋ฌธ์„œ๋ฅผ ๋ถ„์„ํ•˜์—ฌ ์ตœ์ ์˜ ๋‹ต๋ณ€์„ ์ƒ์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. \n๋‹น์‹ ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์›์น™์„ ์ค€์ˆ˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค:\n1. ํ•ญ์ƒ ์‚ฌ์šฉ์ž์˜ ์š”์ฒญ์„ ์ตœ์šฐ์„ ์œผ๋กœ ๊ณ ๋ คํ•˜๋ฉฐ, ๋ช…ํ™•ํ•˜๊ณ  ์ดํ•ดํ•˜๊ธฐ ์‰ฌ์šด ๋‹ต๋ณ€์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.\n2. ์ œ๊ณต๋œ ๋ฌธ์„œ๋ฅผ ์ตœ๋Œ€ํ•œ ํ™œ์šฉํ•˜์—ฌ ์‘๋‹ต์„ ๊ตฌ์„ฑํ•˜๋˜, ์ถ”๊ฐ€์ ์ธ ๋ถ„์„๊ณผ ๋…ผ๋ฆฌ๋ฅผ ํ†ตํ•ด ์‘๋‹ต์˜ ์งˆ์„ ๋†’์ž…๋‹ˆ๋‹ค.\n3. ์‘๋‹ต์„ ์ƒ์„ฑํ•  ๋•Œ๋Š” ๋ฐ˜๋“œ์‹œ ์ฃผ์–ด์ง„ ์ง€์นจ์„ ๋”ฐ๋ฅด๊ณ , ๋ช…ํ™•ํ•œ ์ถœ์ฒ˜๋ฅผ ์ œ๊ณตํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.\n4. ์‚ฌ์šฉ์ž์˜ ์งˆ๋ฌธ์ด ๋ชจํ˜ธํ•  ๊ฒฝ์šฐ, ๋ช…ํ™•์„ฑ์„ ํ™•๋ณดํ•˜๊ธฐ ์œ„ํ•ด ์งˆ๋ฌธ์„ ์žฌ๊ตฌ์„ฑํ•˜๋Š” ๋ฐฉ์•ˆ์„ ๊ณ ๋ คํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.\n\n# ์‚ฌ์šฉ์ž ์•ˆ๋‚ด๋ฌธ\n## ์ž‘์—… ๋ฐ ๋งฅ๋ฝ\n๋‹น์‹ ์€ ์‚ฌ์šฉ์ž ์งˆ๋ฌธ์— ๋Œ€ํ•ด ๊ด€๋ จ ๋ฌธ์„œ๋ฅผ ๋ถ„์„ํ•˜๊ณ , ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋Š” ์ •๋ณด๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ์‘๋‹ต์„ ์ƒ์„ฑํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋‹จ์ˆœํ•œ ์ •๋ณด ์ „๋‹ฌ์„ ๋„˜์–ด, ๋ฌธ๋งฅ์„ ๊ณ ๋ คํ•˜์—ฌ ๊ฐ€์žฅ ์ ์ ˆํ•œ ํ˜•ํƒœ๋กœ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.\n\n## ์Šคํƒ€์ผ ๊ฐ€์ด๋“œ\njson ํ˜•์‹์œผ๋กœ ๋‹ต๋ณ€์„ ์ถœ๋ ฅํ•˜์„ธ์š”.[
59
+ {{
60
+ "related_document" : {{"๋ฌธ์„œ ์ •๋ณด์—์„œ ์ฐพ์€ doc_id"}}
61
+ "source" : {{"๋ฌธ์„œ ์ •๋ณด์—์„œ ์ฐพ์€ doc_id" : "ํ•ด๋‹น ๋ฌธ์„œ์—์„œ ์ฐพ์„ ์ˆ˜ ์žˆ๋Š” ์ธ์šฉ๊ตฌ ๊ตฌ์ ˆ, ์›๋ฌธ ๊ทธ๋Œ€๋กœ ํ‘œ๊ธฐ",
62
+ "๋ฌธ์„œ ์ •๋ณด์—์„œ ์ฐพ์€ doc_id" : "ํ•ด๋‹น ๋ฌธ์„œ์—์„œ ์ฐพ์„ ์ˆ˜ ์žˆ๋Š” ์ธ์šฉ๊ตฌ ๊ตฌ์ ˆ, ์›๋ฌธ ๊ทธ๋Œ€๋กœ ํ‘œ๊ธฐ"}},
63
+ "answer" : "์ถœ์ฒ˜๋ฅผ ํ‘œ๊ธฐํ•˜์ง€ ์•Š์€ 3~6๋ฌธ์žฅ ์„ค๋ช…ํ˜• ๋‹ต๋ณ€",
64
+ "grounded_answer" : "answer๊ณผ ๋™์ผํ•˜๋˜ <co: doc_id>์™€ </co: doc_id> ๊ธฐํ˜ธ๋กœ ์ธ์šฉ ์ถœ์ฒ˜๋ฅผ ๋ช…์‹œํ•œ ๋‹ต๋ณ€"
65
+ }}
66
+ ]\n
67
+ <|im_end|>\n<|im_start|>user\n {instruction} <|im_end|>\n<|im_start|>assistant\n"""
68
+ ```
69
+
70
+ ## Quickstart
71
+ ```
72
+ from transformers import AutoModelForCausalLM, AutoTokenizer
73
+
74
+ model_name = "Surromind/RAG-Specialized-LLM"
75
+ model = AutoModelForCausalLM.from_pretrained(
76
+ model_name, torch_dtype="auto", device_map="auto"
77
+ )
78
+ tokenizer = AutoTokenizer.from_pretrained(model_name)
79
+
80
+ 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๋ช…์„ ๋Œ€์ƒ์œผ๋กœ ํ•œ๊ตญ ์ง€๋ฐฉํ–‰์ •์˜ ์šฐ์ˆ˜์‚ฌ๋ก€๋ฅผ ๋ฒค์น˜๋งˆํ‚นํ•  ์ˆ˜ ์žˆ๋Š” ๋ชฝ๊ณจ๊ตฐ์ˆ˜ ๊ณผ์ • ๋“ฑ ๋‹ค์–‘ํ•œ ๊ต์œกํ”„๋กœ๊ทธ๋žจ์„ ์šด์˜ํ•ด ์˜ค๊ณ  ์žˆ๋‹ค.
81
+ """
82
+ messages = [
83
+ {
84
+ "role": "system",
85
+ "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""",
86
+ },
87
+ {"role": "user", "content": prompt},
88
+ ]
89
+ text = tokenizer.apply_chat_template(
90
+ messages, tokenize=False, add_generation_prompt=True
91
+ )
92
+ model_inputs = tokenizer([text], return_tensors="pt").to(model.device)
93
+
94
+ generated_ids = model.generate(**model_inputs, max_new_tokens=512)
95
+ generated_ids = [
96
+ output_ids[len(input_ids) :]
97
+ for input_ids, output_ids in zip(model_inputs.input_ids, generated_ids)
98
+ ]
99
+
100
+ response = tokenizer.batch_decode(generated_ids, skip_special_tokens=True)[0]
101
+ print(response)
102
+ ```
103
+
104
+ ## ํ•™์Šต ํ™˜๊ฒฝ ๋ฐ ํŒŒ๋ผ๋ฏธํ„ฐ
105
+ - ํŠœ๋‹ ํ™˜๊ฒฝ
106
+ - H100(80GB) * 8
107
+ - ํŒŒ๋ผ๋ฏธํ„ฐ
108
+ - tokenizer_model_mex_length 4500
109
+ - use_flash_attn True
110
+ - num_train_epochs 3.0
111
+ - weight_decay 0.001
112
+ - lr_scheduler_type "linear"
113
+ - per_device_train_batch_size 1
114
+ - gradient_accumulation_steps 64
115
+ - learning_rate 5e-06
116
+ - bf16 True
117
+ - deepspeed ds_stage2.json
118
+
119
+ ## ์‚ฌ์šฉ ๋ฐ์ดํ„ฐ์…‹
120
+ - AIhub 16 ํ–‰์ • ๋ฌธ์„œ ๋Œ€์ƒ ๊ธฐ๊ณ„๋…ํ•ด ๋ฐ์ดํ„ฐ
121
+ - AIhub 17 ๋‰ด์Šค ๊ธฐ์‚ฌ ๊ธฐ๊ณ„๋…ํ•ด ๋ฐ์ดํ„ฐ
122
+ - AIhub 21 ๋„์„œ์ž๋ฃŒ ๊ธฐ๊ณ„๋…ํ•ด
123
+ - AIhub 149 ํ‘œ ์ •๋ณด ์งˆ์˜์‘๋‹ต ๋ฐ์ดํ„ฐ
124
+ - AIhub 150 ์ˆซ์ž์—ฐ์‚ฐ ๊ธฐ๊ณ„๋…ํ•ด ๋ฐ์ดํ„ฐ
125
+ - AIhub 151 ๊ธˆ์œต, ๋ฒ•๋ฅ  ๋ฌธ์„œ ๊ธฐ๊ณ„๋…ํ•ด ๋ฐ์ดํ„ฐ
126
+ - kyujinpy/KoCoT_2000
127
+ - MarkrAI/KoCommercial-Dataset
128
+ - CarrotAI/ko-instruction-dataset
129
+ - heegyu/CoT-collection-ko
130
+
131
+ ## Contact us
132
+ - ์จ๋กœ๋งˆ์ธ๋“œ
133
+ - ์„œ์šธ์‹œ ๊ด€์•…๊ตฌ ๋‚จ๋ถ€์ˆœํ™˜๋กœ 1802, 2์ธต
134
+ - 02-872-5127
135
  - contact@surromind.ai