|
--- |
|
license: other |
|
license_name: exaone |
|
license_link: https://huggingface.co/LGAI-EXAONE/EXAONE-3.0-7.8B-Instruct/blob/main/LICENSE |
|
--- |
|
# 2024-NIKL-DCS |
|
|
|
κ΅λ¦½κ΅μ΄μ AI λ§ν μΌμ λν μμ½ 'λͺ¨λΈλ€μμ¬λμμ΄μ' ν <br><br> |
|
![image](https://github.com/user-attachments/assets/e8b65f98-bd8a-4bcf-81d9-549e19cee408) |
|
|
|
μ μλ λͺ¨λΈμ μ¬μ νλ ¨λ μΈμ΄ λͺ¨λΈ [EXAONE](https://huggingface.co/LGAI-EXAONE/EXAONE-3.0-7.8B-Instruct)μ κΈ°λ°μΌλ‘ νμΈ νλλμμΌλ©°, νΉμ μ§μμ΄λ κΈ°μ μ μ΅λνλλ‘ μ€κ³λμμ΅λλ€. |
|
ν₯ν μ°κ΅¬μμλ μ΄λ¬ν μ§μμ΄λ κΈ°μ μ΄ μ¬λμ μ νΈμ μ‘°νλ μ μλλ‘ [Direct Preference Optimization](https://arxiv.org/abs/2305.18290)κ³Ό κ°μ κΈ°λ²μ ν΅ν΄ νμ΅ν κ³νμ
λλ€.<br><br> |
|
νμ¬ μ
λ‘λλ μμ€ μ½λμ κ²½μ° μΈκ° μ νΈ λ°μ΄ν°μ
λ§ κ΅¬μΆ λλ€λ©΄ μ κΈ°λ²μ μ μ©ν μ μλλ‘ μμ±λμμΌλ©°, μΆν μλμΌλ‘ μ μ©λμ΄ νμ΅λ μ μλλ‘ κ³ λν μμ μ
λλ€. |
|
|
|
## νμ΅ λ° νκ° λ°©λ² |
|
https://github.com/BM-K/2024-NIKL-DCS |
|
|
|
## Quick Start |
|
```python |
|
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λ λνκ΅ λλΆν° μ¬νμ μ’μνκ³ , κ³ λ±νκ΅ λλ μλ²μ§κ° μ§μ€ ν¨ν€μ§ μ¬νμ λ€λ
κΈ° λλ¬Έμ μ¬νμ ν₯λ―Έκ° μμλ€κ³ λ§νμ΅λλ€. λνκ΅ μ΄νλ‘λ μ€νμΈκ³Ό ν¬λ₯΄ν¬κ°μ μ¬ννλλ°, νΉν μ€νμΈμ΄ μ’μλ€κ³ λ§νμ΅λλ€. λ ν¨λ λλ λ€λ
μμ§λ§ λ μ¨κ° λ무 λμμ λ§μ΄ 보μ§λ λͺ»νλ€κ³ λ§νμ΅λλ€. |
|
""" |
|
``` |
|
|
|
## Citing |
|
``` |
|
@inproceedings{exaone_sft_dcs, |
|
title={EXAONE Dialogue Coversation Summarization Model}, |
|
author={Bong-Min Kim and Gyu-Min Park}, |
|
year={2024}, |
|
url={https://huggingface.co/BM-K/EXAONE-3.0-7.8B-Daily-Conversation-Summary} |
|
} |
|
``` |
|
|
|
## License |
|
[exaone](https://huggingface.co/LGAI-EXAONE/EXAONE-3.0-7.8B-Instruct/blob/main/LICENSE) |
|
|