모델 선정 이유
- Orion 모델은 2.5T 토큰으로 한국어, 일본어, 중국어, 영어 등 다양한 언어들로 학습을 하였고, 한국어 토큰은 OpenSource기준, 가장 많은 토큰으로 학습을 하여 양질의 한국어를 생성합니다.
- Flash_attention을 사용하여 유사한 쿼리는 클러스터링하고, 특수한 쿼리만 따로 처리하여 처리 성능면에서도 우수하여 채택하게 되었습니다.
# 의미없이 반복되는 텍스트 제거
def remove_duplicates(text):
unique_tokens = set()
filtered_text = []
for token in text.split():
if token not in unique_tokens:
filtered_text.append(token)
unique_tokens.add(token)
return ' '.join(filtered_text)
# 정규표현식을 통한 데이터 세트에 존재하는 특수문자 제거
def preprocessing(text):
text['답변'] = text['답변'].str.replace(r'\r\n|\r|\n','')
# Simhash를 이용한 중복 제거 방법
import pandas as pd
import re
import hashlib
def simhash(text):
# 전처리: 소문자 변환, 구두점 제거, 공백 제거
text = re.sub(r'[\W_]+', '', str(text).lower())
# 해시 함수 선택 (sha-1 사용)
hash_func = hashlib.sha1
# 문자열을 해시 값으로 변환
hashed_text = [hash_func(token.encode('utf-8')).hexdigest() for token in [text[i:i+4] for i in range(0, len(text), 4)]]
# 이진 해시 값 생성
hash_value = ''.join([bin(int(h, 16))[2:].zfill(32) for h in hashed_text])
# SIMHASH 값 계산
simhash_value = ''.join(['1' if hash_value.count('1', i, i+32) > 16 else '0' for i in range(0, len(hash_value), 32)])
return int(simhash_value, 2)
# 사용 방법입니다.
def generate_prompt(example):
output_texts = []
for i in range(len(example['instruction'])):
messages = [
{"role": "user",
"content": "{}".format(example['instruction'][i])},
{"role": "assistant",
"content": "{}".format(example['response'][i])}
]
chat_message = tokenizer.apply_chat_template(messages, tokenize=False, add_generation_prompt=False)
output_texts.append(chat_message)
return output_texts
1) QLoRA
2) Unsloth
git clone https://github.com/Beomi/ko-lm-evaluation-harness
cd ko-lm-evaluation-harness
pip install -r requirements.txt
./run_all.sh 모델이름 'GPU번호들'
# ex) ./run_all.sh beomi/llama-2-ko-7b '0,1' # 이렇게 하면 GPU0,1번에 'beomi/llama-2-ko-7b' 모델을 쪼개서 올리고 평가한다.
모델 명칭 | Average n=0 n=5 | HellaSwag n=0 n=5 | COPA n=0 n=5 | BooIQ n=0 n=5 |
---|---|---|---|---|
KoGPT | 58.2 63.7 | 55.9 58.3 | 73.5 72.9 | 45.1 59.8 |
Polyglot-ko-13B | 62.4 68.2 | 59.5 63.1 | 79.4 81.1 | 48.2 60.4 |
LLaMA 2-13B | 45.2 60.5 | 41.3 44.0 | 59.3 63.8 | 34.9 73.8 |
Baichuan 2-13B | 52.7 53.9 | 39.2 39.6 | 60.6 60.6 | 58.4 61.5 |
QWEN-14B | 47.8 66.4 | 45.3 46.8 | 64.9 68.9 | 33.4 83.5 |
Orion-14B-Chat | 68.8 73.2 | 47.0 49.6 | 77.7 79.4 | 81.6 90.7 |
kor-resume-Orion | 69.7 74.6 | 48.2 51.2 | 77.9 81.3 | 83.1 91.2 |