Introduction
Command r plus λͺ¨λΈμ μ΄μ©νμ¬ μ체 ꡬμΆν RAG νΉν λ°μ΄ν°μ , CoT λ°μ΄ν°μ , λ²€μΉλ§ν¬ λ°μ΄ν°μ μΌλ‘ Qwen2.5 14B λͺ¨λΈμ Full fine-tuning ν λͺ¨λΈμ λλ€. ν΄λΉ λͺ¨λΈμ μΌλ°μ μΈ RAG μλΉμ€μ μ λ ₯λ°μ΄ν°μ λν΄μ μ νν λ΅λ³κ³Ό λ΅λ³ μΆμ²λ₯Ό μμ±ν μ μμΌλ©°, Json ννλ‘ λ΅λ³μ μΆλ ₯νλ νΉμ§μ κ°μ§κ³ μμ΅λλ€. μΆλ ₯ ν€κ°μ μλμ κ°μ΅λλ€.
- "related_document"μ κ° : μ§λ¬Έκ³Ό κ΄λ ¨ μλ λ¬Έμ doc_id, μ λͺ© (key : λ¬Έμ λ²νΈ, Value : λ¬Έμ μ λͺ©)
- "source" : μ§λ¬Έκ³Ό κ΄λ ¨μλ λ¬Έμ doc_idμ λ΅λ³μ μμ±ν μΈμ©κ΅¬ ꡬμ
- "answer"μ κ° : μΆμ²λ₯Ό νκΈ°νμ§ μμ 3~6λ¬Έμ₯ μ€λͺ ν λ΅λ³
- "grounded_answer"μ κ° : answerκ³Ό λμΌνλ <co: doc_id>μ </co: doc_id> κΈ°νΈλ‘ μΈμ© μΆμ²λ₯Ό λͺ μν λ΅λ³
λ΅λ³ μΆλ ₯ μμ
{
"related_document": {
"D0000042284685": "κ°λ½λͺ° μ λ μΌλ₯μ°¨ νμ¬μλ°© μΆμ§ λμ±
",
"4895": "μ°¨μΈλ κ³ μ λ’°μ± κ³ μΆλ ₯ μνΌμΆμ κΈ°"
},
"source": {
"D0000042284685": "γλ¬Όλ₯μ΄λ°μ₯λΉ μΆ©μ μ₯μΉ(리ν¬μ΄μ¨ λ°°ν°λ¦¬) ...",
"4895": "μνΌμΆμ κΈ°μ 리ν¬μ΄μ°¨μ μ§μ λΉκ΅ ..."
},
"answer": "κ°λ½λͺ° μ λ μΌλ₯μ°¨μ 리ν¬μ΄μ¨ λ°°ν°λ¦¬μ μνΌμΆμ κΈ°λ λ©...",
"grounded_answer": "κ°λ½λͺ° μ λ μΌλ₯μ°¨μ 리ν¬μ΄μ¨ λ°°ν°λ¦¬μ μνΌμΆμ κΈ°λ <co: 4895>λ©μ»€λμ¦, μμ¬, μλͺ
, 보νΈνλ‘, κ·Ήμ±, κ³Όμ μ, μμ‘΄μ©λμΈ‘μ , νΉμ§</co: 4895> λ±μμ μ°¨μ΄κ° μμ΅λλ€. 리ν¬μ΄μ¨ λ°°ν°λ¦¬λ <co: 4895>리ν¬μ΄μ¨ μ΄λ λ©μ»€λμ¦</co: 4895>μ κ°μ§κ³ μμΌλ©°,... "
}
RAG Prompt
RAG_PROMPT = """<|im_start|>system\n\n λΉμ μ λνν 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
<|im_end|>\n<|im_start|>user\n {instruction} <|im_end|>\n<|im_start|>assistant\n"""
Quickstart
from transformers import AutoModelForCausalLM, AutoTokenizer
model_name = "Surromind/RAG-Specialized-LLM"
model = AutoModelForCausalLM.from_pretrained(
model_name, torch_dtype="auto", device_map="auto"
)
tokenizer = AutoTokenizer.from_pretrained(model_name)
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λͺ
μ λμμΌλ‘ νκ΅ μ§λ°©νμ μ μ°μμ¬λ‘λ₯Ό λ²€μΉλ§νΉν μ μλ λͺ½κ³¨κ΅°μ κ³Όμ λ± λ€μν κ΅μ‘νλ‘κ·Έλ¨μ μ΄μν΄ μ€κ³ μλ€.
"""
messages = [
{
"role": "system",
"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""",
},
{"role": "user", "content": prompt},
]
text = tokenizer.apply_chat_template(
messages, tokenize=False, add_generation_prompt=True
)
model_inputs = tokenizer([text], return_tensors="pt").to(model.device)
generated_ids = model.generate(**model_inputs, max_new_tokens=512)
generated_ids = [
output_ids[len(input_ids) :]
for input_ids, output_ids in zip(model_inputs.input_ids, generated_ids)
]
response = tokenizer.batch_decode(generated_ids, skip_special_tokens=True)[0]
print(response)
νμ΅ νκ²½ λ° νλΌλ―Έν°
- νλ νκ²½
- H100(80GB) * 8
- νλΌλ―Έν°
- tokenizer_model_mex_length 4500
- use_flash_attn True
- num_train_epochs 3.0
- weight_decay 0.001
- lr_scheduler_type "linear"
- per_device_train_batch_size 1
- gradient_accumulation_steps 64
- learning_rate 5e-06
- bf16 True
- deepspeed ds_stage2.json
μ¬μ© λ°μ΄ν°μ
- AIhub 16 νμ λ¬Έμ λμ κΈ°κ³λ ν΄ λ°μ΄ν°
- AIhub 17 λ΄μ€ κΈ°μ¬ κΈ°κ³λ ν΄ λ°μ΄ν°
- AIhub 21 λμμλ£ κΈ°κ³λ ν΄
- AIhub 149 ν μ 보 μ§μμλ΅ λ°μ΄ν°
- AIhub 150 μ«μμ°μ° κΈ°κ³λ ν΄ λ°μ΄ν°
- AIhub 151 κΈμ΅, λ²λ₯ λ¬Έμ κΈ°κ³λ ν΄ λ°μ΄ν°
- kyujinpy/KoCoT_2000
- MarkrAI/KoCommercial-Dataset
- CarrotAI/ko-instruction-dataset
- heegyu/CoT-collection-ko
Contact us
- μ¨λ‘λ§μΈλ
- μμΈμ κ΄μ ꡬ λ¨λΆμνλ‘ 1802, 2μΈ΅
- 02-872-5127
- [email protected]
- Downloads last month
- 21
Inference Providers
NEW
This model isn't deployed by any Inference Provider.
π
Ask for provider support