metadata
license: apache-2.0
tags:
- merge
- Korean
- Mistral-7B
- LLM
QI-mistral-7B-slerp
This model is based on the mistral model and merged several DPO fine-tuned models with SLERP. It processes Korean language relatively well, so it is useful when creating various applications.
QI-mistral-7B-slerp is a merge of the following models using mergekit:
๐งฉ Configuration
slices:
- sources:
- model: OpenPipe/mistral-ft-optimized-1218
layer_range: [0, 32]
- model: mlabonne/NeuralHermes-2.5-Mistral-7B
layer_range: [0, 32]
merge_method: slerp
base_model: OpenPipe/mistral-ft-optimized-1218
parameters:
t:
- filter: self_attn
value: [0, 0.5, 0.3, 0.7, 1]
- filter: mlp
value: [1, 0.5, 0.7, 0.3, 0]
- value: 0.5
dtype: bfloat16
Basic Usage
from transformers import AutoModelForCausalLM, AutoTokenizer, GPTQConfig
import transformers
import torch
model_id = "QuantumIntelligence/QI-mistral-7B-slerp"
tokenizer = AutoTokenizer.from_pretrained(model_id)
# model = AutoModelForCausalLM.from_pretrained(model_id, device_map="auto")
model = AutoModelForCausalLM.from_pretrained(model_id, device_map="auto", load_in_8bit=True) # quantization
pipeline = transformers.pipeline(
"text-generation",
model=model,
torch_dtype=torch.float16,
device_map="auto",
tokenizer=tokenizer,
)
prompt = """Classify the text into neutral, negative or positive.
Text: This movie is definitely one of my favorite movies of its kind. The interaction between respectable and morally strong characters is an ode to chivalry and the honor code amongst thieves and policemen.
Sentiment:
"""
outputs = pipeline(prompt, max_new_tokens=6)
print(outputs[0]["generated_text"])
Using Korean
- Sentiment
# prompt = """
# ๋ค์ ํ
์คํธ๋ฅผ ์ค๋ฆฝ, ๋ถ์ , ๊ธ์ ์ผ๋ก ๋ถ๋ฅํด์ค.
# ํ
์คํธ: ํ๋์ ๋ณด๋ ๋น๊ฐ ์ฌ๋ฏ ํ๋ค. ์ฐ์ธํ ๊ธฐ๋ถ์ด ๋ค์ด์ ์ ์ ํ์ ํ ๊น ๊ณ ๋ฏผ์ค์ธ๋ฐ ๊ฐ์ด ๋ง์ค ์ฌ๋์ด ์๋ค.
# ๊ฐ์ :
# """
outputs = pipeline(prompt, max_new_tokens=6)
print(outputs[0]["generated_text"])
#
- Summarization
prompt = """
์ด์์ (ํ๊ตญ ํ์: ๆ่่ฃ, 1545๋
4์ 28์ผ (์๋ ฅ 3์ 8์ผ) ~ 1598๋
12์ 16์ผ (์๋ ฅ 11์ 19์ผ))์ ์กฐ์ ์ค๊ธฐ์ ๋ฌด์ ์ด์๋ค. ๋ณธ๊ด์ ๋์(ๅพทๆฐด), ์๋ ์ฌํด(ๆฑ่ซง), ์ํธ๋ ์ถฉ๋ฌด(ๅฟ ๆญฆ)์์ผ๋ฉฐ, ํ์ฑ ์ถ์ ์ด์๋ค. ๋ฌธ๋ฐ ๊ฐ๋ฌธ ์ถ์ ์ผ๋ก 1576๋
(์ ์กฐ 9๋
) ๋ฌด๊ณผ(ๆญฆ็ง)์ ๊ธ์ [2]ํ์ฌ ๊ทธ ๊ด์ง์ด ๋๊ตฌ๋น๋ณด ๊ถ๊ด, ํ๋ จ์ ๋ด์ฌ, ๋ฐํฌ์ง ์๊ตฐ๋งํธ, ์กฐ์ฐ๋ณด ๋งํธ, ์ ๋ผ๋จ๋์์ฌ๋ฅผ ๊ฑฐ์ณ ์ ํ๋๋ถ ์ผ๋์๊ตฐํต์ ์ฌ์ ์ด๋ฅด๋ ๋ค.
ํจ๊ฒฝ๋ ๋๊ตฌ๋น๋ณด๊ถ๊ด(่ฃไป้ๅ กๆฌ็ฎก), 1581๋
๋ฐํฌ ์๊ตฐ๋งํธ(้ขๆตฆๆฐด่ป่ฌๆถ)๊ฐ ๋์๋ค๊ฐ ์ ๋ผ๋จ์์์ ์ค๋๋๋ฌด๋ฅผ ๋ฒ ๊ธฐ๋ฅผ ๊ฑฐ์ ํ์ฌ ์ข์์ฌ ์ฑ๋ฐ์ ๋ฏธ์์ ๋ฐ๊ธฐ๋ ํ๋ค. ์ดํ 1584๋
๋จ๋ณ์ฌ์ ๊ตฐ๊ด๊ณผ ๊ฑด์๋ณด๊ถ๊ด, ํ๋ จ์์ฐธ๊ตฐ, 1586๋
์ฌ๋ณต์์ฃผ๋ถ๋ฅผ ๊ฑฐ์ณ ์กฐ์ฐ๋ณด๋งํธ ๊ฒธ ๋
น๋๋์ ์ฌ์(้ ๅฑฑๅ ก่ฌๆถๅ
ผ้นฟๅณถๅฑฏ็ฐไบๅฎ)๋ก ๋ถ์ํ๋ค. ์กฐ์ฐ๋งํธ ๊ฒธ ๋
น๋๋์ฌ์ ์ฌ์ง ์ค 1587๋
(์ ์กฐ 20๋
) 9์์ ์ฌ์ง์กฑ์ ์ฌ์ ๊ธฐ์ต๊ณต๊ฒฉ์ผ๋ก ๋ฒ์ด์ง ๋
น๋๋์ ํฌ์์ ์ด๊ฒผ์ง๋ง ํผํด๊ฐ ์ปค์, ๋ถ๋ณ์ฌ ์ด์ผ์ ํํต์ ๋ฐ๊ณ ๋ฐฑ์์ข
๊ตฐ(็ฝ่กฃๅพ่ป)ํ๋ ์์น์ ์๊ธฐ๋ ํ๋ค. ๊ทธ ๋ค ๋๋ฒ์งธ ์ฌ์ง์กฑ๊ณผ์ ๊ต์ ์์ ์น์ , ๋ณต์งํ์๋ค. ๊ทธ ๋ค ์ ๋ผ๊ด์ฐฐ์ฌ ์ด๊ด(ๆๆดธ)์๊ฒ ๋ฐํ๋์ด ์ ๋ผ๋ ์กฐ๋ฐฉ์ฅ, ์ ์ ๊ด ๋ฑ์ ์ญ์ํ๋ค. 1589๋
์ ์ํ๊ฐ ์ฌ์ง ์ค ๋ฅ์ฑ๋ฃก์ ์ถ์ฒ์ผ๋ก ๊ณ ์ฌ๋ฆฌ์ฒจ์ฌ(้ซๆฒ้ๅไฝฟ)๊ฐ ๋๊ณ , ์ ์ถฉ์ฅ๊ตฐ(ๆ่กๅฐ่ป), ๋งํฌ์ง์ฒจ์ฌ(ๆปฟๆตฆ้ญๅไฝฟ), ์ง๋๊ตฐ์ ๋ฑ์ ๊ฑฐ์ณ ์ ๋ผ์ข๋์๊ตฐ์ ๋์ฌ๊ฐ ๋์ด ์์ง์๋์ ๋ง๋๊ฒ ๋์๋ค.
์์ง์๋ ๋ ์กฐ์ ์ ์ผ๋์๊ตฐํต์ ์ฌ๊ฐ ๋์ด ๋ถํ๋ค์ ํต์ํ๋ ์ง๋๋ ฅ, ๋ฐ์ด๋ ์ง๋ต, ๊ทธ๋ฆฌ๊ณ ํ์ํ ์ ๋ต๊ณผ ๋ฅ์๋ฅ๋ํ ์ ์ ๋ก ์ผ๋ณธ ์๊ตฐ๊ณผ์ ํด์ ์์ ์ฐ์ ์ฐ์นํด ๋๋ผ๋ฅผ ๊ตฌํ ์ฑ์
(่้)์ผ๋ก ์ถ์๋ฐ๊ณ ์๋ค. ๋
ธ๋ ํด์ ์์ ์ ์ฌํ ๋ค ์ ๋ฌด๊ณต์ 1๋ฑ๊ด์ ์ถ๋ก๋๊ณ ์ฆ ์์ ๋ถ์ฐ์์ ์ ์ถ์ฆ๋๊ณ ๋ํ๊ตฐ์ ์ถ๋ด๋์๋ค๊ฐ, ๊ดํด๊ตฐ ๋ ๋ค์ ์ฆ ์์ ๋ถ์ข์์ ์ ์ถ์ฆ๋๊ณ ๋ํ๋ถ์๊ตฐ์ ์ถ๋ด๋์๊ณ , ์ ์กฐ ๋์๋ ์ฆ ์์ ๋ถ์์์ ์ผ๋ก ๊ฐ์ฆ(ๅ ่ด)๋์๋ค.
๊ณ ๋ ค ๋ ์ 5ํ ์ค๋์ฅ(ไธญ้ๅฐ)์ ์ง๋ธ ๋์ ์ด์จ์ ์์กฐ ์ด๋์(ๆๆฆๅฎ)์ 12๋์์ด๋ฉฐ, ์กฐ์ ์ด ์์ค์ถ๋ถ์ฌ(้ ไธญๆจๅบไบ)๋ฅผ ์ง๋ธ ์ด๋ณ(ๆ้)[3]์ ํ์์ด๋ค. ์ธ๊ฐ๋ ์ด๊ณ ๋ณ์จ(ๅๆฐ), ์ฒ๊ฐ๋ ์จ์ ๋ฐฉ์จ(ๆนๆฐ, ๋น์์๋ ์์ฃผ ๋ฐฉ์จ)์ด๋ค. ๊ทธ์ ๋ฌ๋ ์ถฉ์ฒญ๋จ๋ ์์ฐ์์ ์๋ค.
์ ๋ฌธ์ฅ์ 300์๋ด๋ก ์์ฝํด์ค.
์์ฝ:
"""
outputs = pipeline(prompt, max_new_tokens=300, do_sample=True, top_k=50, return_full_text = False)
print(outputs[0]["generated_text"])
- Question answering
prompt = """
๋ค์ ๋ฌธ๋งฅ์ ๋ํด ์๋ ์ง๋ฌธ์ ๋ํด ๋ตํด์ค.
๋ฌธ๋งฅ: 1565๋
์ด์์ ์ ๋ฐฉ์จ(ๆนๆฐ)์ ํผ์ธํ๊ณ ๋ณด์ฑ๊ตฐ์๋ฅผ ์ง๋ธ ์ฅ์ธ ๋ฐฉ์ง์ ํ์์ผ๋ก ๋ณํ์ ๋ฐฐ์ฐ๋ฉด์ ๋ฌด๊ณผ(ๆญฆ็ง)๋ฅผ ์ค๋นํ์๋ค. 28์ด์ด๋ 1572๋
(์ ์กฐ 5๋
) ํ๋ จ์ ๋ณ๊ณผ(่จ้ฌ้ข ๅฅ็ง)์ ์์ํ์ผ๋ ์ํ์ ๋ณด๋ ์ค, ๋ง์์ ๋๋งํ์ฌ ์ฃผ๋ณ ์ฌ๋๋ค์ด ๊ธฐ์ ํ ์ค ์์์ผ๋ ์์ ์๋ ๋ฒ๋๋๋ฌด ๊ป์ง์ ๋ฒ๊ฒจ ๋ค๋ฆฌ๋ฅผ ๋์ฌ๋งค๊ณ ์ํ์ ๋๊น์ง ์น๋ ๋ค. ํ์ง๋ง ๊ฒฐ๊ตญ ์ํ์์๋ ๋๋ฐฉํ๊ณ ๋ง๋ค.
์ง๋ฌธ: ์ด์์ ์ 28์ด์ ๋ฌด๊ณผ์ ํฉ๊ฒฉํ๋๊ฐ?
๋๋ต:
"""
outputs = pipeline(prompt, max_new_tokens=30, do_sample=True, top_k=50, return_full_text = False)
generated_text = outputs[0]["generated_text"]
print(generated_text)
# ์๋์, 28์ด์ ๋ฌด๊ณผ์ ํฉ๊ฒฉํ์ง ๋ชปํ์๋ค.
- Chatbot style
messages = [{"role": "user", "content": "์ข์ ์ทจ๋ฏธ๋ฅผ ๊ฐ์ง๋ ค๋ฉด ์ด๋ป๊ฒ ํ๋์?"}]
prompt = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)
outputs = pipeline(prompt, max_new_tokens=512, do_sample=True, temperature=0.7, top_k=50, top_p=0.95, return_full_text = False)
generated_text = outputs[0]["generated_text"]
print(generated_text)
For Development
The support of GPU computing resource is required for the development and implementation of state-of-the-art models. I would appreciate if anyone could help.
Email: baida21@naver.com