|
--- |
|
base_model: MLP-KTLim/llama-3-Korean-Bllossom-8B |
|
language: |
|
- en |
|
license: apache-2.0 |
|
tags: |
|
- text-generation-inference |
|
- transformers |
|
- unsloth |
|
- llama |
|
- trl |
|
datasets: |
|
- lcw99/wikipedia-korean-20240501-1million-qna |
|
library_name: peft |
|
--- |
|
|
|
<img src="https://huggingface.co/iknow-lab/ko-genstruct-v0.1/resolve/main/image.webp" /> |
|
|
|
# 0725-ko-genstruct-v0.2-simple-qa |
|
|
|
Ko-genstruct๋ ์ฃผ์ด์ง ๋ฌธ์๋ก๋ถํฐ Instruction Tuning ๋ฐ์ดํฐ๋ฅผ ์์ฑํด๋ด๋ ๋ชจ๋ธ์
๋๋ค. |
|
|
|
| ๋ชจ๋ธ | ์ ํ | |
|
|-----|-----| |
|
| [iknow-lab/0725-ko-genstruct-v0.2-simple-qa](https://huggingface.co/iknow-lab/0725-ko-genstruct-v0.2-simple-qa) | ๋จ์ํ ์ง๋ฌธ๊ณผ ๋ต๋ณ ์์ฑ | |
|
| [iknow-lab/0725-ko-genstruct-v0.2-writing](https://huggingface.co/iknow-lab/0725-ko-genstruct-v0.2-writing) | ๊ธ์ฐ๊ธฐ ์ง์๋ฌธ๊ณผ ๋ต๋ณ ์์ฑ | |
|
| [iknow-lab/0725-ko-genstruct-v0.2-creative-writing](https://huggingface.co/iknow-lab/0725-ko-genstruct-v0.2-creative-writing) | ์ฐฝ์์ ์ธ ๊ธ์ฐ๊ธฐ ์ง์๋ฌธ๊ณผ ๋ต๋ณ ์์ฑ | |
|
|
|
์ด ๋ชจ๋ธ์ [Ada-instruct](https://arxiv.org/abs/2310.04484)์ [Genstruct](https://huggingface.co/NousResearch/Genstruct-7B)๋ก๋ถํฐ ์๊ฐ์ ๋ฐ์์ต๋๋ค. |
|
|
|
๋ค์๊ณผ ๊ฐ์ ์ฉ๋๋ก ํ์ฉํ ์ ์์ต๋๋ค. |
|
- ๊ฒ์ ๋ชจ๋ธ์ ํ์ตํ๊ธฐ ์ํด ์ฃผ์ด์ง ํ
์คํธ๋ก๋ถํฐ ์ง๋ฌธ์ ์์ฑํ๊ธฐ |
|
- ๋ณด์ ํ ๋ฐ์ดํฐ๋ฅผ ์ด์ฉํ์ฌ Instruction Tuning ํ์ต ๋ฐ์ดํฐ๋ฅผ ์์ฑ |
|
|
|
|
|
|
|
# ์ฌ์ฉ๋ฐฉ๋ฒ |
|
## ์์ฑ ์์ |
|
**์ฃผ์**: simple-qa ๋ชจ๋ธ์ ์์ฑํ๋ ์ง๋ฌธ์ ๋ค์์ฑ์ด ๋ฎ์ต๋๋ค. ๋ฐ๋ผ์ ๊ธด ํ
์คํธ๋ฅผ ํต์งธ๋ก ์ฃผ๊ธฐ๋ณด๋ค ์ ๋นํ ๊ท๋ชจ๋ก ์๋ผ์ ์ฌ์ฉํ์๊ธฐ๋ฅผ ๊ถ์ฅํฉ๋๋ค. |
|
|
|
```python |
|
import transformers |
|
|
|
transformers.logging.set_verbosity_error() |
|
|
|
import transformers |
|
import peft |
|
|
|
model_id = "MLP-KTLim/llama-3-Korean-Bllossom-8B" |
|
peft_model_id = "iknow-lab/0725-ko-genstruct-v0.2-simple-qa" |
|
|
|
tokenizer = transformers.AutoTokenizer.from_pretrained(model_id) |
|
model = transformers.AutoModelForCausalLM.from_pretrained(model_id, device_map="cuda:0", torch_dtype="auto").eval() |
|
|
|
model.load_adapter(peft_model_id) |
|
|
|
|
|
text = """7์ผ(ํ์ง์๊ฐ) ์น๋ฌ์ง ํ๋์ค ์กฐ๊ธฐ ์ด์ ๊ฒฐ์ ์์ ์ขํ์ฐํฉ ์ ๋ฏผ์ค์ ์ (NFP)์ด ์์์ ๊นจ๊ณ ๊ทน์ฐ ๊ตญ๋ฏผ์ฐํฉ(RN)์ ๋๋ฅด๊ณ 1๋น ์๋ฆฌ๋ฅผ ์ฐจ์งํ๋ค. 1์ฐจ ํฌํ์์ 1์๋ฅผ ์ฐจ์งํ๋ฉฐ ์ด์ ๊ธฐ๊ฐ ๋ด๋ด ์ง์ง์จ 1์์๋ RN์ ๋ฒ์ฌ๊ถ๊ณผ ์ขํ์ ๋จ์ผํ ๋ฒฝ์ ๋ถ๋ชํ 3์๋ก ๋ฐ๋ ค๋ฌ๋ค. |
|
|
|
8์ผ ํ๋์ค ๋ด๋ฌด๋ถ์ ๋ฐ๋ฅด๋ฉด ์ด์ ๊ฒฐ์ ํฌํ ๊ฒฐ๊ณผ, NFP๊ฐ ํ์ 577์ ์ค 182์์ ์ป์ด ์๋ด 1๋น ์๋ฆฌ์ ์ฌ๋๋ค. ์๋ง๋์ ๋งํฌ๋กฑ ๋ํต๋ น์ ๋ฅด๋ค์์ค๋น์ ์ค์ฌ์ผ๋ก ํ ์ฌ๊ถ ์ฐํฉ ์์๋ธ์ 168์์ผ๋ก 2์๋ฅผ ์ฐจ์งํ๋ค. RN์ 143์์ ์ป๋ ๋ฐ ๊ทธ์ณค๋ค. |
|
|
|
RN์ ์ง๋๋ฌ 30์ผ 1์ฐจ ํฌํ์์ 33.2%๋ฅผ ๋ํํด 1์์ ์ค๋ฅด๋ฉด์ 2์ฐจ ๊ฒฐ์ ํฌํ์์ 240โผ270์์ ์ป์ ๊ฒ์ผ๋ก ์ ๋ง๋๋ค. ํ์ง๋ง ๊ทน์ฐ ์ง๊ถ์ ๋ง๊ธฐ ์ํด NFP์ ์์๋ธ์ด ๋๋์ ์ธ ํ๋ณด ๋จ์ผํ์ ๋์๋ฉด์ ํ์ธ๊ฐ ๋ค์งํ๋ค. RN์ ์กฐ๋ฅด๋น ๋ฐ๋ฅด๋ธ๋ผ ๋ํ๋ โ๋ถ๋ช
์์ค๋ฌ์ด ๋๋งน์ด ํ๋์ค๋ฅผ ๊ทน์ข์ ํ์ ๋์ง๊ณ ์๋คโ๋ฉฐ โ์ฐ๋ฆฌ๋ ํ๋์ค ๊ตญ๋ฏผ์ ํธ์ ์ค ๊ฒโ์ด๋ผ๊ณ ํ์ธต ๊ฐ๊ฒฝํ ๋์ ๋ถ ํฌ์์ ์๊ณ ํ๋ค. |
|
|
|
์ด์ ๊ฒฐ๊ณผ ์๋ด 1๋น์ ์ฐจ์งํ๊ฒ ๋ NFP๋ ์ ๋ถ ์ด์์ ๋์ค ๋ป์ ๋ถ๋ช
ํ ํด 27๋
๋ง์ ๋๊ฑฐ์ ๋ถ๊ฐ ๋ค์ด์ค ๊ฒ์ผ๋ก ๋ณด์ธ๋ค. NFP ์์์ธ ๊ตด๋ณตํ์ง์๋ํ๋์ค(LFI)์ ์ฅ๋คผํฌ ๋ฉ๋์ ๋ํ๋ โ์ ๊ถ์๋ค์ด ๋ถ๊ฐ๋ฅํ ๊ฒ์ผ๋ก ์ฌ๊ฒจ์ง ์ขํ์ฐํฉ์ ์น๋ฆฌ๋ฅผ ๋ง๋ค์ด๋๋คโ๋ฉฐ โ์ขํ์ฐํฉ์ ์ง๊ถํ ์ค๋น๊ฐ ๋ผ ์๋คโ๊ณ ๋งํ๋ค. NFP ์์ ์ฌํ๋น์ ์ฌ๋ฆฌ๋น์ ํฌ๋ฅด ๋ํ๋ โํ๋์ค๋ RN์ด ์ง๊ถํ๋ ๊ฒ์ ๊ฑฐ๋ถํ๋คโ๋ฉฐ โNFP๊ฐ ์ฐ๋ฆฌ ์ญ์ฌ์ ์๋ก์ด ํ์ด์ง๋ฅผ ์ฑ
์์ ธ์ผ ํ๋คโ๊ณ ๊ฐ์กฐํ๋ค. |
|
|
|
# ํํธ ๊ฐ๋ธ๋ฆฌ์ ์ํ ์ด๋ฆฌ๋ ์์๋ธ์ด 1๋น ์ง์๋ฅผ ํ๋ณดํ์ง ๋ชปํ ๋ฐ ๋ํด ์ฑ
์์ ์ง๊ฒ ๋ค๋ฉฐ ๋ํต๋ น์๊ฒ ์ฌ์๋ฅผ ํํ๊ฒ ๋ค๊ณ ๋ฐํ๋ค.""" |
|
|
|
|
|
PROMPT_QA = """์ฃผ์ด์ง ํ
์คํธ ์ปจํ
์ธ ๋ฅผ ์ฐธ๊ณ ํ์ฌ ์ง๋ฌธ๊ณผ ์ ํํ๊ณ ์์ธํ ๋ต๋ณ์ ๋ง๋์ธ์, ๋๋ต์ ์๋ ํํ๋ก ์์ฑํ์ธ์ |
|
**๋ต๋ณ ํ์** |
|
[[Q]] ์ง์๋ฌธ |
|
|
|
[[A]] ๋ต๋ณ |
|
--- |
|
{text}""" |
|
|
|
|
|
def generate_question(text): |
|
prompt = PROMPT_QA.format(text=text) |
|
|
|
prompt = [{"content": prompt, "role": "user"}] |
|
inputs = tokenizer.apply_chat_template(prompt, return_tensors="pt", add_generation_prompt=True, tokenize=False) |
|
inputs = inputs.strip() |
|
inputs = tokenizer.encode(inputs, add_special_tokens=False, return_tensors="pt").to(model.device) |
|
outputs = model.generate(input_ids=inputs, max_new_tokens=256, do_sample=True, early_stopping=True, eos_token_id=128009, temperature=1.0) |
|
|
|
question = tokenizer.decode(outputs[0, inputs.shape[1]:], skip_special_tokens=True) |
|
|
|
return question |
|
|
|
|
|
for _ in range(5): |
|
question = generate_question(text) |
|
print(question) |
|
``` |
|
|
|
## ์์ฑ ๊ฒฐ๊ณผ |
|
``` |
|
[[Q]] ํ๋์ค ์ด์ ๊ฒฐ์ ๊ฒฐ๊ณผ์ ๋ํด ๊ฐ๋จํ ์ค๋ช
ํด์ฃผ์ธ์. |
|
|
|
[[A]] ํ๋์ค ์ด์ ๊ฒฐ์ ์์ ์ขํ์ฐํฉ ์ ๋ฏผ์ค์ ์ (NFP)์ด ์์์ ๊นจ๊ณ 1๋น ์๋ฆฌ๋ฅผ ์ฐจ์งํ์์ผ๋ฉฐ, ๊ทน์ฐ ๊ตญ๋ฏผ์ฐํฉ(RN)์ 3์๋ฅผ ์ฐจ์งํ์์ต๋๋ค. 1์ฐจ ํฌํ์์ 1์๋ฅผ ์ฐจ์งํ RN์ ๋ฒ์ฌ๊ถ๊ณผ ์ขํ์ ๋จ์ผํ ๋ฒฝ์ ๋ถ๋ชํ 3์๋ก ๋ฐ๋ ค๋ฌ์ต๋ |
|
๋ค. NFP๋ ํ์ 577์ ์ค 182์์ ์ป์ด ์๋ด 1๋น ์๋ฆฌ์ ์ฌ๋์ต๋๋ค. ์๋ง๋์ ๋งํฌ๋กฑ ๋ํต๋ น์ ๋ฅด๋ค์์ค๋น์ ์ค์ฌ์ผ๋ก ํ ์ฌ๊ถ ์ฐํฉ ์์๋ธ์ 168์์ผ๋ก 2์๋ฅผ ์ฐจ์งํ์๊ณ , RN์ 143์์ ์ป๋ ๋ฐ ๊ทธ์ณค์ต๋๋ค. RN์ 2์ฐจ ๊ฒฐ์ ํฌํ์ |
|
์ 240โผ270์์ ์ป์ ๊ฒ์ผ๋ก ์ ๋ง๋์์ง๋ง, ๊ทน์ฐ ์ง๊ถ์ ๋ง๊ธฐ ์ํด NFP์ ์์๋ธ์ด ๋๋์ ์ธ ํ๋ณด ๋จ์ผํ์ ๋์๋ฉด์ ํ์ธ๊ฐ ๋ค์งํ์ต๋๋ค. |
|
|
|
|
|
[[Q]] ํ๋์ค ์กฐ๊ธฐ ์ด์ ๊ฒฐ์ ์์ ์ขํ์ฐํฉ ์ ๋ฏผ์ค์ ์ (NFP)์ด ์์์ ๊นจ๊ณ ๊ทน์ฐ ๊ตญ๋ฏผ์ฐํฉ(RN)์ ๋๋ฅด๊ณ 1๋น ์๋ฆฌ๋ฅผ ์ฐจ์งํ๋ค. 1์ฐจ ํฌํ์์ 1์๋ฅผ ์ฐจ์งํ๋ฉฐ ์ด์ ๊ธฐ๊ฐ ๋ด๋ด ์ง์ง์จ 1์์๋ RN์ ๋ฒ์ฌ๊ถ๊ณผ ์ขํ์ ๋จ์ผํ ๋ฒฝ์ ๋ถ๋ช |
|
ํ 3์๋ก ๋ฐ๋ ค๋ฌ๋ค. NFP๊ฐ ์ด์ ๊ฒฐ์ ํฌํ ๊ฒฐ๊ณผ ํ์ 577์ ์ค 182์์ ์ป์ด ์๋ด 1๋น ์๋ฆฌ์ ์ฌ๋๋ค. RN์ ์ง๋๋ฌ 30์ผ 1์ฐจ ํฌํ์์ 33.2%๋ฅผ ๋ํํด 1์์ ์ค๋ฅด๋ฉด์ 2์ฐจ ๊ฒฐ์ ํฌํ์์ 240โผ270์์ ์ป์ ๊ฒ์ผ๋ก ์ ๋ง๋๋ค. ํ์ง๋ง |
|
๊ทน์ฐ ์ง๊ถ์ ๋ง๊ธฐ ์ํด NFP์ ์์๋ธ์ด ๋๋์ ์ธ ํ๋ณด ๋จ์ผํ์ ๋์๋ฉด์ ํ์ธ๊ฐ ๋ค์งํ๋ค. NFP ์์์ธ ๊ตด๋ณตํ์ง์๋ํ๋์ค(LFI)์ ์ฅ๋คผํฌ ๋ฉ๋์ ๋ํ๋ โ์ ๊ถ์๋ค์ด ๋ถ๊ฐ๋ฅ |
|
|
|
ใด NOTE: ์๋ชป ์์ฑ๋ ์ผ์ด์ค ๐ญ |
|
|
|
[[Q]] ํ๋์ค ์ด์ ๊ฒฐ์ ์์ ์ขํ์ฐํฉ ์ ๋ฏผ์ค์ ์ (NFP)์ด ์์์ ๊นจ๊ณ ๊ทน์ฐ ๊ตญ๋ฏผ์ฐํฉ(RN)์ ๋๋ฅด๊ณ 1๋น ์๋ฆฌ์ ์ค๋ฅธ ์ด์ ๋ ๋ฌด์์ธ๊ฐ์? |
|
|
|
[[A]] ํ๋์ค ์ด์ ๊ฒฐ์ ์์ NFP์ ๊ทน์ฐ RN์ ๋๋ฅด๊ณ 1๋น ์๋ฆฌ์ ์ค๋ฅธ ์ด์ ๋ ๋ฒ์ฌ๊ถ๊ณผ ์ขํ์ ๋จ์ผํ ๋ฒฝ์ ๋ถ๋ชํ RN์ด 3์๋ก ๋ฐ๋ ค๋ฌ๊ธฐ ๋๋ฌธ์
๋๋ค. NFP์ ์ง๋ 1์ฐจ ํฌํ์์ 1์๋ฅผ ์ฐจ์งํ๋ฉฐ ์ด์ ๊ธฐ๊ฐ ๋ด๋ด ์ง์ง์จ 1์๋ฅผ ์ฐจ์งํ์ง |
|
๋ง, RN์ ๊ทน์ฐ ์ง๊ถ์ ๋ง๊ธฐ ์ํด NFP์ ์์๋ธ์ด ๋๋์ ์ธ ํ๋ณด ๋จ์ผํ์ ๋์๋ฉด์ ํ์ธ๊ฐ ๋ค์งํ์ต๋๋ค. ์ด๋ก ์ธํด NFP์ 182์์ ์ป์ด ์๋ด 1๋น ์๋ฆฌ์ ์ฌ๋์ต๋๋ค. |
|
|
|
|
|
[[Q]] 7์ผ ์น๋ฌ์ง ํ๋์ค ์กฐ๊ธฐ ์ด์ ๊ฒฐ์ ์์ ์ด๋ค ๊ฒฐ๊ณผ๊ฐ ๋์๊ณ , ์ด๋ ์์์ ์ด๋ป๊ฒ ๊นจ๋จ๋ ธ๋์ง ์ค๋ช
ํด ์ฃผ์ค ์ ์์๊น์? |
|
|
|
[[A]] ํ๋์ค ์กฐ๊ธฐ ์ด์ ๊ฒฐ์ ์์ ์ขํ์ฐํฉ ์ ๋ฏผ์ค์ ์ (NFP)์ด ์์์ ๊นจ๊ณ ๊ทน์ฐ ๊ตญ๋ฏผ์ฐํฉ(RN)์ ๋๋ฅด๊ณ 1๋น ์๋ฆฌ๋ฅผ ์ฐจ์งํ๋ค. 1์ฐจ ํฌํ์์ 1์๋ฅผ ์ฐจ์งํ๋ฉฐ ์ด์ ๊ธฐ๊ฐ ๋ด๋ด ์ง์ง์จ 1์๋ฅผ ์ฐจ์งํ๋ RN์ ๋ฒ์ฌ๊ถ๊ณผ ์ขํ์ ๋จ์ผํ ๋ฒฝ |
|
์ ๋ถ๋ชํ 3์๋ฅผ ์ฐจ์งํ๋ค. NFP๋ ํ์ 577์ ์ค 182์์ ์ป์ด ์๋ด 1๋น ์๋ฆฌ์ ์ฌ๋์ผ๋ฉฐ, ์๋ง๋์ ๋งํฌ๋กฑ ๋ํต๋ น์ ๋ฅด๋ค์์ค๋น์ ์ค์ฌ์ผ๋ก ํ ์ฌ๊ถ ์ฐํฉ ์์๋ธ์ 168์์ผ๋ก 2์๋ฅผ ์ฐจ์งํ๋ค. RN์ 143์์ ์ป๋ ๋ฐ ๊ทธ์ณค๋ค. NFP์ |
|
์น๋ฆฌ๋ RN์ด ์ง๊ถํ๋ ๊ฒ์ ๊ฑฐ๋ถํ ์ ๊ถ์๋ค์ ์ง์ง๋ฅผ ๋ฐ์ ๊ฒฐ๊ณผ๋ก ๋ณด์ธ๋ค. |
|
|
|
|
|
[[Q]] ํ๋์ค ์กฐ๊ธฐ ์ด์ ๊ฒฐ์ ์์ ์ด๋ค ์ ๋น์ด 1๋น ์๋ฆฌ๋ฅผ ์ฐจ์งํ์๊ณ , ์ด๋ค ์ ๋น์ด 3์์ ๋จธ๋ฌผ๋ ์๊น์? |
|
|
|
[[A]] ํ๋์ค ์กฐ๊ธฐ ์ด์ ๊ฒฐ์ ์์ ์ขํ์ฐํฉ ์ ๋ฏผ์ค์ ์ (NFP)์ด ์์์ ๊นจ๊ณ 1๋น ์๋ฆฌ๋ฅผ ์ฐจ์งํ์๊ณ , ๊ทน์ฐ ๊ตญ๋ฏผ์ฐํฉ(RN)์ด 3์์ ๋จธ๋ฌผ๋ ์ต๋๋ค. |
|
``` |
|
|
|
# Model |
|
- **Developed by:** iknow-lab |
|
- **License:** apache-2.0 |
|
- **Finetuned from model :** MLP-KTLim/llama-3-Korean-Bllossom-8B |
|
|
|
This llama model was trained 2x faster with [Unsloth](https://github.com/unslothai/unsloth) and Huggingface's TRL library. |
|
|
|
[<img src="https://raw.githubusercontent.com/unslothai/unsloth/main/images/unsloth%20made%20with%20love.png" width="200"/>](https://github.com/unslothai/unsloth) |