iRASC/Meerkat-Ko-8B-d6-w5-dpo

이 λͺ¨λΈμ€ iRASC/Llama-Ko-8B λͺ¨λΈ 개발의 후속 μ—°κ΅¬λ‘œ μ§„ν–‰λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

λͺ¨λΈ μ„€λͺ…

이 λͺ¨λΈμ€ ν•œκ΅­μ–΄ 의료 μ§ˆμ˜μ‘λ‹΅(QA) μ„±λŠ₯을 μ΅œμ ν™”ν•˜κΈ° μœ„ν•΄ 개발된 λŒ€κ·œλͺ¨ μ–Έμ–΄ λͺ¨λΈ(LLM)μž…λ‹ˆλ‹€. 특히, 단일 μ†ŒλΉ„μžμš© GPU(RTX 4090)와 같은 μžμ› μ œμ•½ ν™˜κ²½μ—μ„œλ„ 효율적으둜 ν™œμš©λ  수 μžˆλ„λ‘ νŒŒλΌλ―Έν„° 효율적인 방법둠을 μ μš©ν•˜μ—¬ κ΅¬μΆ•λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

λ³Έ λͺ¨λΈμ€ λ‹€μŒκ³Ό 같은 과정을 톡해 μƒμ„±λ˜μ—ˆμŠ΅λ‹ˆλ‹€:

  1. λͺ¨λΈ 병합(Model Merging): μ˜μ–΄ 의료 νŠΉν™” λͺ¨λΈμΈ dmis-lab/llama-3-meerkat-8b-v1.0κ³Ό λ²”μš© ν•œκ΅­μ–΄ λͺ¨λΈμΈ beomi/Llama-3-Open-Ko-8Bλ₯Ό DARE (Drop and Rescale) 기법 (밀도 d=0.6)을 μ‚¬μš©ν•˜μ—¬ λ³‘ν•©ν•˜μ˜€μŠ΅λ‹ˆλ‹€. 이λ₯Ό 톡해 μ˜μ–΄ 의료 지식과 ν•œκ΅­μ–΄ λŠ₯λ ₯을 효과적으둜 κ²°ν•©ν•œ κ°•λ ₯ν•œ 기반 λͺ¨λΈμ„ κ΅¬μΆ•ν–ˆμŠ΅λ‹ˆλ‹€.
  2. 직접 μ„ ν˜Έλ„ μ΅œμ ν™” (Direct Preference Optimization, DPO): μƒμ„±λœ 병합 λͺ¨λΈμ„ QLoRA (Quantized Low-Rank Adaptation) λ°©μ‹μœΌλ‘œ DPO νŠœλ‹μ„ μ§„ν–‰ν•˜μ—¬, ν•œκ΅­μ–΄ 의료 QA νƒœμŠ€ν¬(KorMedMCQA 데이터셋 기반)에 λŒ€ν•œ μ„±λŠ₯을 λ”μš± ν–₯μƒμ‹œν‚€κ³  λͺ¨λΈμ„ μ •λ ¬(Align)ν–ˆμŠ΅λ‹ˆλ‹€.

결과적으둜, 이 λͺ¨λΈμ€ μ œν•œλœ μžμ› ν•˜μ—μ„œλ„ ν•œκ΅­μ–΄ 의료 κ΄€λ ¨ μ§ˆλ¬Έμ— λŒ€ν•΄ ν–₯μƒλœ λ‹΅λ³€ λŠ₯λ ₯을 보여주도둝 μ΅œμ ν™”λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

μžμ„Έν•œ ν•™μŠ΅ μ •λ³΄λŠ” μ—¬κΈ°μ—μ„œ 확인할 수 μžˆμŠ΅λ‹ˆλ‹€

ν™œμš© λͺ©μ  및 ν•œκ³„μ 

ν™œμš© λͺ©μ 

  • ν•œκ΅­μ–΄ 의료 μ§ˆμ˜μ‘λ‹΅: ν•œκ΅­μ–΄λ‘œ 된 의료 κ΄€λ ¨ μ§ˆλ¬Έμ— λ‹΅λ³€ν•˜λŠ” 데 ν™œμš©λ  수 μžˆμŠ΅λ‹ˆλ‹€.
  • 의료 정보 검색 보쑰: μ‚¬μš©μžμ˜ 의료 κ΄€λ ¨ 정보 검색을 λ•λŠ” μ‹œμŠ€ν…œμ˜ λ°±μ—”λ“œλ‘œ μ‚¬μš©λ  수 μžˆμŠ΅λ‹ˆλ‹€.
  • 의료 상담 챗봇 개발: κ°„λ‹¨ν•œ 의료 μƒλ‹΄μ΄λ‚˜ 정보 μ œκ³΅μ„ μœ„ν•œ 챗봇 개발의 기반 λͺ¨λΈλ‘œ ν™œμš©λ  수 μžˆμŠ΅λ‹ˆλ‹€.
  • 연ꡬ λͺ©μ : μžμ› μ œμ•½ ν™˜κ²½μ—μ„œμ˜ LLM νŠœλ‹, λͺ¨λΈ 병합, DPO λ“± κ΄€λ ¨ 연ꡬ에 ν™œμš©λ  수 μžˆμŠ΅λ‹ˆλ‹€.

ν•œκ³„μ  및 μ£Όμ˜μ‚¬ν•­

  • μ „λ¬Έ 의료 진단 λŒ€μ²΄ λΆˆκ°€: 이 λͺ¨λΈμ€ μ „λ¬Έ 의료인의 μ§„λ‹¨μ΄λ‚˜ 상담을 λŒ€μ²΄ν•  수 μ—†μŠ΅λ‹ˆλ‹€. μƒμ„±λœ μ •λ³΄λŠ” 참고용으둜만 μ‚¬μš©ν•΄μ•Ό ν•©λ‹ˆλ‹€.
  • μ •λ³΄μ˜ μ •ν™•μ„± 및 μ΅œμ‹ μ„±: λͺ¨λΈμ€ ν•™μŠ΅ 데이터에 κΈ°λ°˜ν•˜μ—¬ 닡변을 μƒμ„±ν•˜λ―€λ‘œ, μ΅œμ‹  의료 μ •λ³΄λ‚˜ νŠΉμ • 희귀 μ§ˆν™˜ 등에 λŒ€ν•œ 정보가 λΆ€μ •ν™•ν•˜κ±°λ‚˜ λˆ„λ½λ  수 μžˆμŠ΅λ‹ˆλ‹€.
  • ν™˜κ° (Hallucination): λ‹€λ₯Έ LLMκ³Ό λ§ˆμ°¬κ°€μ§€λ‘œ, 사싀과 λ‹€λ₯΄κ±°λ‚˜ κ΄€λ ¨ μ—†λŠ” 정보λ₯Ό μƒμ„±ν•˜λŠ” ν™˜κ° ν˜„μƒμ΄ λ°œμƒν•  수 μžˆμŠ΅λ‹ˆλ‹€. μ€‘μš”ν•œ μ •λ³΄λŠ” λ°˜λ“œμ‹œ ꡐ차 검증이 ν•„μš”ν•©λ‹ˆλ‹€.
  • 편ν–₯μ„± (Bias): ν•™μŠ΅ 데이터에 λ‚΄μž¬λœ 편ν–₯이 λͺ¨λΈμ˜ 닡변에 영ν–₯을 λ―ΈμΉ  수 μžˆμŠ΅λ‹ˆλ‹€.
  • KorMedMCQA νŠΉν™”: DPO νŠœλ‹μ΄ KorMedMCQA 데이터셋 기반으둜 μ΄λ£¨μ–΄μ‘ŒμœΌλ―€λ‘œ, ν•΄λ‹Ή ν˜•μ‹μ˜ QAμ—λŠ” 강점을 보일 수 μžˆμœΌλ‚˜ λ‹€λ₯Έ ν˜•νƒœμ˜ 의료 κ΄€λ ¨ νƒœμŠ€ν¬μ—μ„œλŠ” μ„±λŠ₯이 λ‹¬λΌμ§ˆ 수 μžˆμŠ΅λ‹ˆλ‹€.

μ‚¬μš© 방법

import torch
from transformers import AutoTokenizer, AutoModelForCausalLM

model_id = "iRASC/Meerkat-Ko-8B-d6-w5-dpo"
tokenizer = AutoTokenizer.from_pretrained(model_id)
model = AutoModelForCausalLM.from_pretrained(
    model_id,
    torch_dtype=torch.bfloat16,
    device_map="auto"
)

messages = [
    {"role": "system", "content": "당신은 의료 κ΄€λ ¨ μ§ˆλ¬Έμ— λ‹΅λ³€ν•˜λŠ” AI μ–΄μ‹œμŠ€ν„΄νŠΈμž…λ‹ˆλ‹€."},
    {"role": "user", "content": "μ½œλ ˆμŠ€ν…Œλ‘€'이 μ •ν™•νžˆ λ¬΄μ—‡μΈκ°€μš”? HDLκ³Ό LDL은 μ–΄λ–»κ²Œ λ‹€λ₯Έκ°€μš”? "}
]

input_ids = tokenizer.apply_chat_template(
    messages,
    add_generation_prompt=True,
    return_tensors="pt"
).to(model.device)

terminators = [
    tokenizer.eos_token_id,
    tokenizer.convert_tokens_to_ids("<|eot_id|>")
]

outputs = model.generate(
    input_ids,
    max_new_tokens=1000,
    eos_token_id=terminators,
    do_sample=True,
    temperature=0.7,
)
response = outputs[0][input_ids.shape[-1]:]
print(tokenizer.decode(response, skip_special_tokens=True))
Downloads last month
9
Safetensors
Model size
8.03B params
Tensor type
BF16
Β·
Inference Providers NEW
This model isn't deployed by any Inference Provider. πŸ™‹ Ask for provider support

Model tree for iRASC/Meerkat-Ko-8B-d6-w5-dpo

Dataset used to train iRASC/Meerkat-Ko-8B-d6-w5-dpo