문득 이런 걱정이 떠올랐습니다.
llama.cpp로 학습된 xwin-mlewd-13b-v0.2.Q8_0.gguf 에 내가 만든 토크나이저를 추가 했다고 합시다.
번역기 느낌인데 제가 한국어 토크나이저를 추가했으니 자연스러워 질거라는 확신은 안 섭니다.
소설 약 150개 정도로 가능할지는 모르겠습니다.
지금 상태는 번역기 느낌이 강합니다.
import sys
from tokenizers import Tokenizer
from tokenizers.models import BPE
from tokenizers.trainers import BpeTrainer
from tokenizers.pre_tokenizers import Whitespace
def train_tokenizer(file_path):
# 토크나이저 모델 초기화
tokenizer = Tokenizer(BPE())
# 토크나이저 트레이너 초기화
trainer = BpeTrainer(
special_tokens=["[UNK]", "[CLS]", "[SEP]", "[PAD]", "[MASK]"])
# 공백으로 토크나이저 설정
tokenizer.pre_tokenizer = Whitespace()
# 토크나이저 훈련
tokenizer.train(files=[file_path], trainer=trainer)
return tokenizer
def tokenize_text(tokenizer, text):
# 텍스트 토큰화
output = tokenizer.encode(text)
# 토큰화된 텍스트 반환
return output.tokens
if name == "main":
# 파일 경로
file_path = sys.argv[1]
# 토크나이저 훈련
tokenizer = train_tokenizer(file_path)
# 토크나이저 저장
tokenizer.save("tokenizer.json")
텍스트 파일 읽기
with open(file_path, 'r', encoding='utf-8') as f:
lines = f.readlines()
# 각 줄을 개별적으로 토큰화
for line in lines:
tokens = tokenize_text(tokenizer, line.strip())
print(tokens)
위의 코드가 제가 만든 건 아니지만 인공지능이 절 위해서 만든 코드입니다.
{
"version": "1.0",
"truncation": null,
"padding": null,
"added_tokens": [
{
"id": 0,
"content": "",
"single_word": false,
"lstrip": false,
"rstrip": false,
"normalized": true,
"special": true
},
{
"id": 1,
"content": "",",
"single_word": false,
"lstrip": false,
"rstrip": false,
"normalized": true,
"special": true
},
{
"id": 2,
"content": "
"single_word": false,
"lstrip": false,
"rstrip": false,
"normalized": true,
"special": true
}
],
"normalizer": {
"type": "Sequence",
"normalizers": [
{
"type": "Prepend",
"prepend": "▁"
},
{
"type": "Replace",
"pattern": {
"String": " "
},
"content": "▁"
}
]
},
"pre_tokenizer": null,
"post_processor": {
"type": "TemplateProcessing",
"single": [
{
"SpecialToken": {
"id": "",
"type_id": 0
}
},
{
"Sequence": {
"id": "A",
"type_id": 0
}
}
],
"pair": [
{
"SpecialToken": {
"id": "",
"type_id": 0
}
이게 남이 만든 토크나이저의 내용이고요.
내용이 많아서 일부만 제공합니다.
전 걱정입니다.
위의 코드로 남이 만든 토크나이저 학습이 되는지 만약 된다고해도 내용을 망치지 않을지 걱정입니다.
데이터 추가가 파인튜닝이라고 했습니다.
제 데이터셋 추가로 인해 언어모델이 망가지지 않을지 걱정입니다.