2024-NIKL-DCS

ꡭ립ꡭ어원 AI 말평 일상 λŒ€ν™” μš”μ•½ 'λͺ¨λΈλ’€μ—μ‚¬λžŒμžˆμ–΄μš”' νŒ€

image

μ œμ•ˆλœ λͺ¨λΈμ€ 사전 ν›ˆλ ¨λœ μ–Έμ–΄ λͺ¨λΈ EXAONE을 기반으둜 파인 νŠœλ‹λ˜μ—ˆμœΌλ©°, νŠΉμ • μ§€μ‹μ΄λ‚˜ κΈ°μˆ μ„ μŠ΅λ“ν•˜λ„λ‘ μ„€κ³„λ˜μ—ˆμŠ΅λ‹ˆλ‹€. ν–₯ν›„ μ—°κ΅¬μ—μ„œλŠ” μ΄λŸ¬ν•œ μ§€μ‹μ΄λ‚˜ 기술이 μ‚¬λžŒμ˜ μ„ ν˜Έμ™€ 쑰화될 수 μžˆλ„λ‘ Direct Preference Optimizationκ³Ό 같은 기법을 톡해 ν•™μŠ΅ν•  κ³„νšμž…λ‹ˆλ‹€.

ν˜„μž¬ μ—…λ‘œλ“œλœ μ†ŒμŠ€ μ½”λ“œμ˜ 경우 인간 μ„ ν˜Έ λ°μ΄ν„°μ…‹λ§Œ ꡬ좕 λœλ‹€λ©΄ μœ„ 기법을 μ μš©ν•  수 μžˆλ„λ‘ μž‘μ„±λ˜μ—ˆμœΌλ©°, μΆ”ν›„ μžλ™μœΌλ‘œ μ μš©λ˜μ–΄ ν•™μŠ΅λ  수 μžˆλ„λ‘ 고도화 μ˜ˆμ •μž…λ‹ˆλ‹€.

ν•™μŠ΅ 및 평가 방법

https://github.com/BM-K/2024-NIKL-DCS

Quick Start

import torch
from transformers import AutoTokenizer, AutoModelForCausalLM

model_name = "BM-K/EXAONE-3.0-7.8B-Daily-Conversation-Summary"
device = "cuda"

model = AutoModelForCausalLM.from_pretrained(
        model_name,
        torch_dtype=torch.bfloat16,
        device_map=device,
        trust_remote_code=True
)

tokenizer = AutoTokenizer.from_pretrained(model_name)

PROMPT = '''You are EXAONE model from LG AI Research, a helpful assistant. Please answer the user's questions kindly.'''
chat = "[Conversation]\nν™”μžSD2000001: μ €λŠ” μ—¬ν–‰ λ‹€λ‹ˆλŠ” 것을 ꡉμž₯히 μ’‹μ•„ν•˜λŠ”λ°μš”. κ·Έλž˜κ°€μ§€κ³  μŠ€νŽ˜μΈμ΄λ‚˜ 뭐 영ꡭ 유럽 μ•„λ‹ˆλ©΄ κ΅­λ‚΄μ—μ„œλ„ 뭐 κ°•λ¦‰μ΄λ‚˜ μ „μ£Ό 같은 데λ₯Ό 많이 λ‹€λ…”λŠ”λ°\nν™”μžSD2000001: ν˜Ήμ‹œ μ—¬ν–‰ λ‹€λ‹ˆλŠ” κ±° μ’‹μ•„ν•˜μ‹œλ‚˜μš”?\nν™”μžSD2000002: μ € μ—¬ν–‰ λ‹€λ‹ˆλŠ” κ±° 되게 μ’‹μ•„ν•΄μ„œ λŒ€ν•™κ΅ λ‚΄λ‚΄ 여행을 μ—„μ²­ 많이 λ‹€λ…”μ—ˆλŠ”λ°μš”.\nν™”μžSD2000002: μ œκ°€ 고등학ꡐ λ•ŒλŠ” 여행에 λŒ€ν•΄ ν₯λ―Έκ°€ μ—†μ—ˆλŠ”λ° 그게 μ’€ 아버지가 μ§ λŒ€λ‘œ νŒ¨ν‚€μ§€μ²˜λŸΌ 여행을 λ‹€λ…€μ„œ 그런 것 κ°™μ•„μš”.\nν™”μžSD2000002: κ·Έλž˜μ„œ λŒ€ν•™κ΅ κ°„ μ΄ν›„λ‘œλŠ” 해외여행을 되게 많이 κ°”μ—ˆλŠ”λ° κ·Έμ€‘μ—μ„œ 제일 κΈ° μ’‹μ•˜λ˜ κ±°λŠ” μŠ€νŽ˜μΈμ΄λž‘ 포λ₯΄νˆ¬κ°ˆμ΄μ—ˆκ±°λ“ μš”.\nν™”μžSD2000002: μ–΄~ ν˜Ήμ‹œ 포λ₯΄νˆ¬κ°ˆμ΄λ‚˜ 슀페인 유럽 μͺ½ λ‹€λ…€μ˜€μ‹  적 μžˆμœΌμ‹ κ°€μš”?\nν™”μžSD2000001: μ–΄~ λ„€. 저도 μš°μ—°νžˆ 슀페인과 포λ₯΄νˆ¬κ°ˆμ„ λ‹€λ…€μ™”μ—ˆμ—ˆμŠ΅λ‹ˆλ‹€.\nν™”μžSD2000001: μ–΄~ μ €λŠ” 슀페인 μ€‘μ—μ„œλ„ λ§ˆλ“œλ¦¬λ“œμ— 근ꡐ에 μžˆμ—ˆλ˜ ν†¨λ ˆλ„λΌλŠ” 지역이 ꡉμž₯히 μ’‹μ•˜λŠ”λ°μš”. κ·Έ ν†¨λ ˆλ„μ—μ„œ 특히 기얡에 λ‚¨μ•˜λ˜ κ±°λŠ” 거기에 λŒ€μ„±λ‹Ήμ΄ μžˆλŠ”λ° κ·Έ 성당이 μ—„μ²­ ν™”λ €ν•˜λ”λΌκ³ μš”. κ·Έλž˜μ„œ κ±°κΈ°λ₯Ό κΎΈλ©°λ…Ό κ±°λ₯Ό 보면은 κΈˆμ„ μ—„μ²­ 많이 μ‚¬μš©ν•΄κ°€μ§€κ³  되게 λΉ€μ§λΉ€μ§ν•˜κ³  μ’€ 성당은 보톡 μ’€ μ†Œλ°•ν•˜λ‹€λΌλŠ” 인식이 μžˆμ—ˆλŠ”λ° μ•„~ μ΄λ ‡κ²Œ ν™”λ €ν•œ 성당도 μžˆκ΅¬λ‚˜λΌλŠ” κ±°λ₯Ό μƒˆλ‘­κ²Œ μ•Œκ²Œ λμ—ˆμŠ΅λ‹ˆλ‹€.\nν™”μžSD2000001: μ–΄~ 또 ν†¨λ ˆλ„μ— 지역 μŒμ‹λ„ 같이 λ¨Ήμ—ˆμ—ˆλŠ”λ° μ•„~ 이름은 μ§€κΈˆ 잘 생각이 λ‚˜μ§€λŠ” μ•Šμ§€λ§Œ ꡉμž₯히 λ‹¬λ‹¬ν–ˆλ˜ 그런 λ””μ €νŠΈ μ’…λ₯˜μ˜€λŠ”데 κ·Έ~ λ””μ €νŠΈλ„ λ¨Ήκ³  κ·Έλ‹€μŒμ— 천천히 κ±Έμ–΄ λ‹€λ‹ˆλ©΄μ„œ μ£Όλ³€ 풍경도 보고 근ꡐ μ—¬ν–‰λ§Œμ˜ μ•½κ°„ μ†Œλ°•ν•œ 맛이 μžˆμ—ˆλ‹€κ³  생각을 ν•©λ‹ˆλ‹€.\nν™”μžSD2000001: μ–΄~ 또 λ¬Όλ‘  λ§ˆλ“œλ¦¬λ“œλ„ ꡉμž₯히 μ’‹μ•˜λŠ”λ° 유럽 여행을 많이 κ°€μ…¨λ‹€κ³  ν•΄μ„œ ν˜Ήμ‹œ ν†¨λ ˆλ„λ„ κ°€λ³Έ 적이 μžˆλ‚˜μš”?\nν™”μžSD2000002: μ•„~ μ œκ°€ ν†¨λ ˆλ„λ„ λ‹€λ…€μ™”λŠ”λ° μ €λŠ” 이제 μ—¬ν–‰ 일정을 길게 μž‘μ•„μ„œ ν†¨λ ˆλ„λŠ” ν•˜λ£¨λ₯Ό λ΄€λŠ”λ° 도 κ·Έλ ‡κ²Œ λ„ˆλ¬΄ 더웠기 λ•Œλ¬Έμ— 많이 보진 λͺ»ν•œ 것 κ°™μ•„μš”.\nν™”μžSD2000002: κ·Έλ•ŒλŠ” λ²„μŠ€ κ΄€κ΄‘λ²„μŠ€λ₯Ό 타고 계속 λŒμ•„λ‹€λ‹ˆλ©΄μ„œ 이제 λ‚΄λ¦¬λŠ” λ°λ§ˆλ‹€ 관광을 ν•  수 μžˆλŠ” λ²„μŠ€λ₯Ό νƒ”λŠ”λ°μš”. κ·Έ λ²„μŠ€λ₯Ό 타고 전체λ₯Ό λ‹€ λ‚΄λ €μ„œ 보렀고 ν–ˆμ§€λ§Œ 날씨가 λ„ˆλ¬΄ λ”μ›Œμ„œ 금방 금방 이제 xx μž₯μ†Œλ‘œ λ„˜μ–΄κ°”λ˜ 것 κ°™ κ°™μŠ΅λ‹ˆλ‹€.\nν™”μžSD2000002: κ±°κΈ°λŠ” 이제 κ³ λŒ€ λ„μ‹œλΌκ³  ν•΄μ„œ μ‚¬λžŒλ“€μ΄ 많이 μΆ”μ²œν•œ 거에 λΉ„ν•΄μ„œλŠ” μ €λŠ” ν•˜λ£¨λ₯Ό μž‘κΈ°μ—λŠ” 쑰금 λΆ€μ‘±ν•œ μ—¬ν–‰μ§€λΌλŠ” 생각이 λ“€μ—ˆκ³ \nν™”μžSD2000002: 였히렀 κ΄‘μž₯μ—μ„œ 쇼핑을 ν–ˆλ˜ 게 더 기얡에 λ‚¨μŠ΅λ‹ˆλ‹€.\n\n[Question]\nμœ„ ν•΄μ™Έμ—¬ν–‰ μ£Όμ œμ— λŒ€ν•œ λŒ€ν™”λ₯Ό μš”μ•½ν•΄μ£Όμ„Έμš”."

message = [
        {"role": "system", "content": PROMPT},
        {"role": "user", "content": chat}
]

source = tokenizer.apply_chat_template(
        message,
        add_generation_prompt=True,
        return_tensors="pt"
)

outputs = model.generate(
        source.to(device),
        max_new_tokens=1024,
        eos_token_id=tokenizer.eos_token_id,
        do_sample=False
)

summary = tokenizer.decode(outputs[0][source.shape[-1]:], skip_special_tokens=True).replace('\n',' ').replace('  ', ' ')

"""
>>> 이 λŒ€ν™”μ—μ„œ ν™”μžλ“€μ€ μ—¬ν–‰ κ²½ν—˜μ— λŒ€ν•΄ μ΄μ•ΌκΈ°ν–ˆμŠ΅λ‹ˆλ‹€. SD2000001은 슀페인과 포λ₯΄νˆ¬κ°ˆμ„ μ—¬ν–‰ν–ˆλ‹€κ³  λ§ν–ˆμŠ΅λ‹ˆλ‹€. 특히 ν†¨λ ˆλ„μ—μ„œ ν™”λ €ν•œ λŒ€μ„±λ‹Ήκ³Ό 지역 μŒμ‹μ„ λ¨Ήμ—ˆλ˜ κ²½ν—˜μ„ κ³΅μœ ν–ˆμŠ΅λ‹ˆλ‹€. SD2000002λŠ” λŒ€ν•™κ΅ λ•ŒλΆ€ν„° 여행을 μ’‹μ•„ν–ˆκ³ , 고등학ꡐ λ•ŒλŠ” 아버지가 μ§œμ€€ νŒ¨ν‚€μ§€ 여행을 λ‹€λ…”κΈ° λ•Œλ¬Έμ— 여행에 ν₯λ―Έκ°€ μ—†μ—ˆλ‹€κ³  λ§ν–ˆμŠ΅λ‹ˆλ‹€. λŒ€ν•™κ΅ μ΄ν›„λ‘œλŠ” 슀페인과 포λ₯΄νˆ¬κ°ˆμ„ μ—¬ν–‰ν–ˆλŠ”λ°, 특히 슀페인이 μ’‹μ•˜λ‹€κ³  λ§ν–ˆμŠ΅λ‹ˆλ‹€. 또 ν†¨λ ˆλ„λ„ λ‹€λ…€μ™”μ§€λ§Œ 날씨가 λ„ˆλ¬΄ λ”μ›Œμ„œ 많이 λ³΄μ§€λŠ” λͺ»ν–ˆλ‹€κ³  λ§ν–ˆμŠ΅λ‹ˆλ‹€.
"""

Citation

@misc{exaone_sft_dcs,
  title={EXAONE Daily Coversation Summarization Model},
  author={Bong-Min Kim and Gyu-Min Park},
  year={2024},
  url={https://github.com/BM-K/2024-NIKL-DCS}
}

License

exaone

Downloads last month
30
Safetensors
Model size
7.82B params
Tensor type
BF16
Β·
Inference Providers NEW
This model is not currently available via any of the supported Inference Providers.
The model cannot be deployed to the HF Inference API: The model has no library tag.