metadata license: mit
language:
- ko
pipeline_tag: text-generation
tags:
- Language
- Dialect
JEJUMA-002
LLM์ผ๋ก ์ฌ๋ผ์ ธ๊ฐ๋ ์ฐ๋ฆฌ ๋ฐฉ์ธ ์งํค๊ธฐ ํ๋ก์ ํธ2: ์ ๊ตญ๋ฐฉ์ธ
์ ์์ํ๊ฒ ๋์๋์?
๋น ๋ฅด๊ฒ ์ฌ๋ผ์ ธ๊ฐ๋ ์ง์ญ๋ฐฉ์ธ
์ฌ๋ฌ ์ง์ญ ๋ฐฉ์ธ๋ค์ด ์ฌ๋ผ์ง๊ณ ์์ต๋๋ค.
์ง์ญ์ ์ฌ๋ ์ ์์ด๋ค๋ ์ง์ญ ๋ฐฉ์ธ๋ณด๋ค๋ ํ์ค์ด๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝํฅ์ด ๊ฐํด์ง๊ณ ์์ต๋๋ค.
ํนํ, ํ์ง์ญ๊ณผ์ ๊ต๋ฅ๊ฐ ํ๋ฐํด์ง๋ฉด์ ์ ์ ์ธต์์ ๋ฐฉ์ธ๋ณด๋จ ํ์ค์ด๋ฅผ ์ ํธํ๋ ํ์์ด ๋ํ๋ฉ๋๋ค.
์ง์ญ๋ฐฉ์ธ์ ์ฝํ ์ธ์ด๋ชจ๋ธ
์จ๋ผ์ธ ์์ค๋ ํ์ค์ด๋ก ๊ตฌ์ฑ๋์ด ์๊ธฐ์, ์๋ฃ๊ฐ ์ ์ ์ง์ญ๋ฐฉ์ธ์ ์ ๋ชจ๋ฆ
๋๋ค.
ํนํ ์ ์ฃผ์ด๋ ํ์ค์ด์ ์ฐจ์ด๊ฐ ํฌ๊ธฐ ๋๋ฌธ์, ์ ๋ช
ํ ๋จ์ด๋ ๋ฌธ์ฅ ์ธ์๋ ๋ชจ๋ธ์ด ์ดํดํ ์ ์์ต๋๋ค.
๊ทธ ์ธ์ ๋ค๋ฅธ ๋ฐฉ์ธ๋ค๋ ์ ์ฐจ ์ต์๋ง ๋จ๊ณ ๋จ์ด๋ค์ด ์์ค๋๊ณ ์์ต๋๋ค.
์ด๋ป๊ฒ ์ด๋ฅผ ํด๊ฒฐํ๋์?
์ธ์ด๋ชจ๋ธ์ ํตํด ์ด๋ ค์ด ๋ฐฉ์ธ์ ํ์ค์ด๋ก ๋ณ๊ฒฝํ์ฌ ๋ฐฉ์ธ์ด ์ํ์ง์ง ์๋๋ก ํฉ๋๋ค.
์ธ์ด๋ชจ๋ธ์ ํตํด ํ์ค์ด์ ๋ฐฉ์ธ ๋ฒ์ ์ ์์ฑํ์ฌ ํ์ธํ ์ ์๋๋ก ํฉ๋๋ค.
๋ฐฉ์ธ์ ์
๋ ฅํ๋ฉด ์ด๋ ์ง์ญ ๋ฐฉ์ธ์ธ์ง ์ ์ถํ ์ ์๋๋ก ํฉ๋๋ค.
์ธ์ด๋ชจ๋ธ์ ์ฌ์ฉํ ์ด์ ๋ ๊ธฐ์กด์ ํ์ต๋ ๋ค์ํ ๋ด์ฉ์ ๊ทธ๋๋ก ์ด์ด๊ฐ ์ ์๋๋ก ํ๊ธฐ ์ํจ์
๋๋ค.
๊ฐ๋ฐํ ์ธ์ด๋ชจ๋ธ์ ๋ํ ์ค๋ช
๊ฐ ์ง์ญ ๋ฐฉ์ธ ๋ฐ์ดํฐ๋ฅผ ๋ฐํ์ผ๋ก Llama3.1์ ๋ค์ํ ํ
์คํฌ๊ฐ ๊ฐ๋ฅํ๋๋ก ํ์ธํ๋ํ์ฌ, ์ฌ๋ฌ ์ง์ญ ๋ฐฉ์ธ๊ณผ ๊ด๋ จ๋ ์ฌ๋ฌ ํ
์คํฌ๋ฅผ ์ํํ๋๋ก ํฉ๋๋ค.
JEJUMA-002๋ ํ์ฌ ๋ฐฉ์ธ๊ณผ ํ์ค์ด๊ฐ ๋ณ๊ฒฝ, ๋ฐฉ์ธ ํ์ง ๋ฑ์ ์ญํ ์ ์ํํ ์ ์์ต๋๋ค.
JEJUMA-002๋ฅผ ๋ชจ๋ธ์ ํ๋ จํ๊ธฐ ์ํด ์ฝ 500๋ง๊ฐ์ ์ง์ญ๋ฐฉ์ธ-์์ธ๋ง ํ์ด ๋ฐ์ดํฐ๋ฅผ ์์งํ๊ณ , ๊ทธ ์ค ์ง์ญ๋ฐฉ์ธ ์ ๋ค์ด๋ ๋ฐ์ดํฐ๋ฅผ ํ๊ท 15๋ง๊ฐ์ฉ ์ด 75๋ง๊ฐ ์ ๋ณํ์์ต๋๋ค.
์ด๋ฅผ ๋ฐํ์ผ๋ก ์ด 4๊ฐ์ง์ ํ
์คํฌ๋ฅผ ์ํํ๋๋ก ํ๋ จ ๋ฐ์ดํฐ๋ฅผ ํ์ฅํ์์ผ๋ฉฐ, ์ด๋ ์ด ์ฝ 200๋ง๊ฐ์ ๋ฐ์ดํฐ์
๋๋ค.
๊ฐ ๋ฐฉ์ธ๋ณ ๋ฐ์ดํฐ ๋น์จ๊ณผ ํ์์ ๋ง์ถ๊ธฐ ์ํด, ์ง์ ์์งํ๋ ๋์ ์คํ ๋ฐ์ดํฐ๋ฅผ ๊ฐ๊ณตํ์์ต๋๋ค.
LlamaFactory๋ฅผ ํตํด LoRA ๋ฐฉ์์ผ๋ก ํ๋ จํ์์ผ๋ฉฐ, ๋ชจ๋ ๋ฐ์ดํฐ์ ๋ํด 1์ํญ ํ์ตํ์์ต๋๋ค.
์ด๋ ค์ด ๋ฐฉ์ธ(์ฌํฌ๋ฆฌ)์ ๋ํด์, gpt4o์ ๊ตญ์ฐ ๋ชจ๋ธ์ธ ์
์คํ
์ด์ง Solar, ๋ค์ด๋ฒ HCX ๋์ ๋ฒ์ญ ์ ํ๋๋ฅผ ๋ณด์
๋๋ค.
์ ์ผ ์ด๋ ค์ด ์ ์ฃผ์ด ํ
์คํฌ์ ๋ํ ์์
์ ์ฃผ์ด -> ํ์ค์ด
์
๋ ฅ ๋ฌธ์ฅ
์์ด ํด์ ๋
์ ๋ง ๋ ๊ฑฐ ๋ณด๋ ์ธ ์์ด์ฐ๋ค
์ ๋ต
์ฌ ํ์ ๋ญ์ด์ด ๋ง ๋ ๊ฑฐ ๋ณด๋, ์ถ์ด ๋ชจ์์ด๋ค.
Upstage Solar ์ถ๋ ฅ
๊ทธ ๋ฐ์์ ๋ฑ์ด ๋ํ๋๋ ๊ฑธ ๋ณด๋๊น ์ ๋ง ๋๋๋ค.
Naver HCX ์ถ๋ ฅ
์ฌ์ ํ์ ๋
์ด๊ฐ ๋ง๊ตฌ ๋ ๊ฒ์ ๋ณด๋ ์ด๋ฆฐ ์๋๋ฌด์
๋๋ค.
GPT-4o ์ถ๋ ฅ
์ ๊ธฐ ๋ฐ์์ ๋
์ฌ๊ฐ ๋ง ๋ํ๋ ๊ฑธ ๋ณด๋๊น ์ ๋ง ๋๋๋ค.
JEJUMA-001 ์ถ๋ ฅ
์ฌ ํ์ ๋ญ์ด์ด ๋ง ๋ ๊ฑฐ ๋ณด๋, ์ถ์ด ๋ชจ์์ด๋ค.
ํ์ค์ด -> ์ ์ฃผ์ด
์
๋ ฅ ๋ฌธ์ฅ
๊ทค๋๋ฌด์ ๊ทธ๋ฅ ๊ฐ์ ๋๋ค ์๋ฒ์ง์ข ์ฐพ์์๋ผ.
๋ฐ์ดํฐ์
๋ฏธ๊นก๋ญ ๊ฒฝ ๊ฐ์ฌ ๋๋ค ์๋ฐฉ ์ข ๋ฐ๋ น
Upstage Solar ์ถ๋ ฅ
๊ทค ๋๋ฌด์ ๊ฐ์ ๋ค ์๋ฒ์ง๋ฅผ ์ข ์ฐพ์์.
Naver HCX ์ถ๋ ฅ
๊ทค๋ญ์ ๊ฐ ๋๋ค ์๋ฐฉ ์ข ๋ฐ๋ น์ค๋ผ.
GPT-4o ์ถ๋ ฅ
๊ทค๋๋ฌด์ ๊ฑ ๊ฐ์ ํ์ ์๋ฐฉ ์ข ์ฐพ์์๋ผ.
JEJUMA-001 ์ถ๋ ฅ
๋ฏธ๊นก๋ญ ๊ฒฝ ๊ฐ์ฌ ๋๋ค ์๋ฐฉ ์ข ์ด์์ค๋ผ.
์ด๋ป๊ฒ ์ฌ์ฉํ๋์?
์ ์๋ ํฌํ๋ฆฟ์์ dialect_to_standard, standard_to_dialect, detect_dialect, detect_dialect_and_convert ์ค ํ๋๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
dialect_to_standard: ๋ฐฉ์ธ์ ํ์ค์ด๋ก ๋ณ๊ฒฝ
standard_to_dialect: ํ์ค์ด๋ฅผ ๋ฐฉ์ธ์ผ๋ก ๋ณ๊ฒฝ
detect_dialect: ๋ฐฉ์ธ ์ข
๋ฅ ๊ฐ์ง
detect_dialect_and_convert: ์๋์ผ๋ก ๋ฐฉ์ธ์ข
๋ฅ๋ฅผ ๊ฐ์งํ์ฌ ํ์ค์ด๋ก ๋ณ๊ฒฝ
import transformers
import torch
model_id = "JEJUMA/JEJUMA-002"
pipeline = transformers.pipeline(
"text-generation" ,
model=model_id,
model_kwargs={"torch_dtype" : torch.bfloat16},
device_map="auto" ,
)
terminators = [
pipeline.tokenizer.eos_token_id,
pipeline.tokenizer.convert_tokens_to_ids("<|eot_id|>" )
]
class DialectPromptTemplate :
@staticmethod
def dialect_to_standard (text, region ):
return [{"role" :"user" , "content" :f"Convert the following sentence or word which is {region} 's dialect to standard Korean: " + text},]
@staticmethod
def standard_to_dialect (text, region ):
return [{"role" :"user" , "content" :f"Convert the following sentence or word which is standard Korean to {region} 's dialect: " + text},]
@staticmethod
def detect_dialect (text ):
return [{"role" :"user" , "content" :"Detect the following sentence or word is standard, jeju, chungcheong, gangwon, gyeongsang, or jeonla's dialect: " + text},]
@staticmethod
def detect_dialect_and_convert (text ):
return [{"role" :"user" , "content" :"Detect the following sentence or word is which dialect and convert the following sentence or word to standard Korean:" + text},]
outputs = pipeline(
DialectPromptTemplate.dialect_to_standard("์์ด ํด์ ๋
์ ๋ง ๋ ๊ฑฐ ๋ณด๋ ์ธ ์์ด์ฐ๋ค" , "jeju" ),
max_new_tokens=512 ,
eos_token_id=terminators,
do_sample=True ,
temperature=0.1 ,
top_p=0.9 ,
)
print (outputs[0 ]["generated_text" ][-1 ])
์ถํ ๊ณํ
JEJUMA-003๋ ๊ตญ๋ด์ ๋ชจ๋ ๋ฐฉ์ธ ๋ฐ์ดํฐ์ ์ด๋ฅผ ์ค๋ช
ํ๋ ํ
์คํฌ๋ฅผ ๋ฐํ์ผ๋ก ๋ฐ์ดํฐ์ ์๋ ๋ฐฉ์ธ(์ฐ๋ณ๋ฐฉ์ธ, ๋ถํ์ด, ์ 3์ ์ธ์ด)๋ฅผ ์ผ๋ถ ๋ฒ์ญํ ์ ์๋๋ก ํ ๊ณํ์
๋๋ค.
JEJUMA-003์ด ๋ณธ ์ฐ๊ตฌ์ ์ต์ข
๋จ๊ณ์ด๋ฉฐ, ์ด๋ฅผ ์ํด ๋ฒ์ญ๋ชจ๋ธ์ด๋ ๋ ์์ ๋ชจ๋ธ์ด ์๋๋ผ 8B ํฌ๊ธฐ์ ์ธ์ด๋ชจ๋ธ์ ์ฌ์ฉํ๊ณ ์์ต๋๋ค.
JEJUMA-002๋ฅผ ํ๋ จํ๊ธฐ ์ํ ๋ฐ์ดํฐ๋ฅผ ์ํ์๋ฉด, [์ด๋ฉ์ผ](mailto: acute.02-durable@icloud.com )๋ก ๊ฐ๋จํ ์์๊ณผ ์ฌ์ฉ ๋ชฉ์ ์ ๋ง์ํด์ฃผ์๋ฉด ๋ด๋ถ ์์ํ ์ ๋ฌ๋๋ฆฌ๊ฒ ์ต๋๋ค.