AI 와 빅데이터 분석 전문 기업인 Linkbricks(www.linkbricks.com)의 데이터사이언티스트인 지윤성 박사(Saxo)가 llama3 기본 Tokenizer(128,257 토큰)에
한국어 토큰 17만개를 추가한 토크나이저로 llama3 계열 파인튜닝시 기존 llama3 토크나이저 대신 사용할 수 있도록 tokenzier_config.json과 special_tokens_map.json 은 수정 없이
tokenzier.json에 vocab과 merges 만 append한 토크나이저이다.
한글 코퍼스 약 6억건에서 frequency>2 이상만 추출한 토큰들로서 과학, 예술, 사회, 문화, 뉴스, 리뷰, 소셜, 채팅 등을 대부분 커버한다.
참고로 llama2가 워드피스센텐스계열 토크나이저라면 이번 llama3에서는 바이트레벨 bpe로 변경되어 기본 토크나이저를 바이트레벨bpe로 하고 프리토크나이저와 노멀라이저 파이프라인들은 기존 llama3 토크나이저와 동일하게
설정하였습니다.
토크나이저 품질 비교
example = "Tokenizers 라이브러리는 위의 개별 단계에 대해 여러 옵션을 제공할 수 있도록 만들어졌으며, 이러한 옵션들은 목적에 따라 짜맞춰서 활용할 수 있습니다. 이 섹션에서는 섹션 2에서 설명했던 기존 토크나이저에서 새로운 토크나이저를 학습하는 것과는 달리 아예 처음부터 토크나이저를 구축하는 방법을 볼 것입니다. 이를 통해서, 생각할 수 있는 모든 종류의 토크나이저를 만들 수 있습니다!"
llama3_Linkbricks_korean_tokenzier_stem1 : vocab size = 296,890
['Token', 'izers', 'ĠëĿ¼ìĿ´ë¸Į룬리ëĬĶ', 'ĠìľĦìĿĺ', 'Ġê°ľë³Ħ', 'Ġëĭ¨ê³ĦìĹIJ', 'ĠëĮĢíķ´', 'ĠìŬ룬', 'Ġìĺµìħĺ', 'ìĿĦ', 'Ġìłľê³µ', 'íķł', 'ĠìĪĺ', 'ĠìŀĪëıĦë¡Ŀ', 'Ġë§Įëĵ¤ìĸ´ì¡Įìľ¼ë©°', ',', 'ĠìĿ´ëŁ¬íķľ', 'Ġìĺµìħĺ', 'ëĵ¤ìĿĢ', 'Ġ목ìłģ', 'ìĹIJ', 'ĠëĶ°ëĿ¼', 'Ġì§ľ', 'ë§ŀ', '춰ìĦľ', 'ĠíĻľìļ©', 'íķł', 'ĠìĪĺ', 'ĠìŀĪìĬµëĭĪëĭ¤', '.', 'ĠìĿ´', 'ĠìĦ¹ìħĺ', 'ìĹIJìĦľëĬĶ', 'ĠìĦ¹ìħĺ', 'Ġ', '2', 'ìĹIJìĦľ', 'ĠìĦ¤ëªħ', 'íĸĪëįĺ', 'Ġ기존', 'ĠíĨ', 'łí', 'ģ¬', 'ëĤĺìĿ´', 'ìłĢ', 'ìĹIJìĦľ', 'ĠìĥĪë¡ľìļ´', 'ĠíĨ', 'łí', 'ģ¬', 'ëĤĺìĿ´', 'ìłĢ를', 'ĠíķĻìĬµíķĺëĬĶ', 'Ġê²ĥê³¼ëĬĶ', 'Ġëĭ¬ë¦¬', 'ĠìķĦìĺĪ', 'Ġì²ĺìĿĮë¶ĢíĦ°', 'ĠíĨ', 'łí', 'ģ¬', 'ëĤĺìĿ´', 'ìłĢ를', 'Ġ구ì¶ķíķĺëĬĶ', 'Ġë°©ë²ķìĿĦ', 'Ġë³¼', 'Ġê²ĥìŀħëĭĪëĭ¤', '.', 'ĠìĿ´ë¥¼', 'ĠíĨµíķ´ìĦľ', ',', 'ĠìĥĿê°ģíķł', 'ĠìĪĺ', 'ĠìŀĪëĬĶ', 'Ġ모ëĵł', 'Ġì¢ħë¥ĺìĿĺ', 'ĠíĨ', 'łí', 'ģ¬', 'ëĤĺìĿ´', 'ìłĢ를', 'Ġë§Įëĵ¤', 'ĠìĪĺ', 'ĠìŀĪìĬµëĭĪëĭ¤', '!']
llama3_original : vocab size = 128,257
['Token', 'izers', 'ĠëĿ¼ìĿ´', 'ë¸Į', '룬', '리ëĬĶ', 'ĠìľĦ', 'ìĿĺ', 'Ġê°ľ', 'ë³Ħ', 'Ġëĭ¨', 'ê³Ħ', 'ìĹIJ', 'ĠëĮĢíķ´', 'ĠìŬ룬', 'Ġìĺ', 'µ', 'ìħĺ', 'ìĿĦ', 'Ġìłľê³µ', 'íķł', 'ĠìĪĺ', 'ĠìŀĪëıĦë¡Ŀ', 'Ġë§Įëĵ¤ìĸ´', 'ì¡Į', 'ìľ¼ë©°', ',', 'ĠìĿ´ëŁ¬íķľ', 'Ġìĺ', 'µ', 'ìħĺ', 'ëĵ¤ìĿĢ', 'Ġ목', 'ìłģ', 'ìĹIJ', 'ĠëĶ°ëĿ¼', 'Ġì§', 'ľ', 'ë§ŀ', 'ì¶', '°', 'ìĦľ', 'ĠíĻľìļ©', 'íķł', 'ĠìĪĺ', 'ĠìŀĪìĬµëĭĪëĭ¤', '.', 'ĠìĿ´', 'ĠìĦ', '¹', 'ìħĺ', 'ìĹIJìĦľëĬĶ', 'ĠìĦ', '¹', 'ìħĺ', 'Ġ', '2', 'ìĹIJìĦľ', 'ĠìĦ¤ëªħ', 'íĸĪëįĺ', 'Ġ기', 'ì¡´', 'ĠíĨ', 'łí', 'ģ', '¬', 'ëĤĺ', 'ìĿ´', 'ìłĢ', 'ìĹIJìĦľ', 'ĠìĥĪë¡ľìļ´', 'ĠíĨ', 'łí', 'ģ', '¬', 'ëĤĺ', 'ìĿ´', 'ìłĢ', '를', 'ĠíķĻ', 'ìĬµ', 'íķĺëĬĶ', 'Ġê²ĥ', 'ê³¼', 'ëĬĶ', 'Ġëĭ¬', '리', 'ĠìķĦ', 'ìĺĪ', 'Ġì²ĺìĿĮ', 'ë¶ĢíĦ°', 'ĠíĨ', 'łí', 'ģ', '¬', 'ëĤĺ', 'ìĿ´', 'ìłĢ', '를', 'Ġ구', 'ì¶ķ', 'íķĺëĬĶ', 'Ġë°©ë²ķ', 'ìĿĦ', 'Ġë³¼', 'Ġê²ĥìŀħëĭĪëĭ¤', '.', 'ĠìĿ´ë¥¼', 'ĠíĨµ', 'íķ´ìĦľ', ',', 'ĠìĥĿê°ģ', 'íķł', 'ĠìĪĺ', 'ĠìŀĪëĬĶ', 'Ġ모ëĵł', 'Ġì¢ħ', 'ë¥ĺ', 'ìĿĺ', 'ĠíĨ', 'łí', 'ģ', '¬', 'ëĤĺ', 'ìĿ´', 'ìłĢ', '를', 'Ġë§Įëĵ¤', 'ĠìĪĺ', 'ĠìŀĪìĬµëĭĪëĭ¤', '!']['Token', 'izers', 'ĠëĿ¼ìĿ´', 'ë¸Į', '룬', '리ëĬĶ', 'ĠìľĦ', 'ìĿĺ', 'Ġê°ľ', 'ë³Ħ', 'Ġëĭ¨', 'ê³Ħ', 'ìĹIJ', 'ĠëĮĢíķ´', 'ĠìŬ룬', 'Ġìĺ', 'µ', 'ìħĺ', 'ìĿĦ', 'Ġìłľê³µ', 'íķł', 'ĠìĪĺ', 'ĠìŀĪëıĦë¡Ŀ', 'Ġë§Įëĵ¤ìĸ´', 'ì¡Į', 'ìľ¼ë©°', ',', 'ĠìĿ´ëŁ¬íķľ', 'Ġìĺ', 'µ', 'ìħĺ', 'ëĵ¤ìĿĢ', 'Ġ목', 'ìłģ', 'ìĹIJ', 'ĠëĶ°ëĿ¼', 'Ġì§', 'ľ', 'ë§ŀ', 'ì¶', '°', 'ìĦľ', 'ĠíĻľìļ©', 'íķł', 'ĠìĪĺ', 'ĠìŀĪìĬµëĭĪëĭ¤', '.', 'ĠìĿ´', 'ĠìĦ', '¹', 'ìħĺ', 'ìĹIJìĦľëĬĶ', 'ĠìĦ', '¹', 'ìħĺ', 'Ġ', '2', 'ìĹIJìĦľ', 'ĠìĦ¤ëªħ', 'íĸĪëįĺ', 'Ġ기', 'ì¡´', 'ĠíĨ', 'łí', 'ģ', '¬', 'ëĤĺ', 'ìĿ´', 'ìłĢ', 'ìĹIJìĦľ', 'ĠìĥĪë¡ľìļ´', 'ĠíĨ', 'łí', 'ģ', '¬', 'ëĤĺ', 'ìĿ´', 'ìłĢ', '를', 'ĠíķĻ', 'ìĬµ', 'íķĺëĬĶ', 'Ġê²ĥ', 'ê³¼', 'ëĬĶ', 'Ġëĭ¬', '리', 'ĠìķĦ', 'ìĺĪ', 'Ġì²ĺìĿĮ', 'ë¶ĢíĦ°', 'ĠíĨ', 'łí', 'ģ', '¬', 'ëĤĺ', 'ìĿ´', 'ìłĢ', '를', 'Ġ구', 'ì¶ķ', 'íķĺëĬĶ', 'Ġë°©ë²ķ', 'ìĿĦ', 'Ġë³¼', 'Ġê²ĥìŀħëĭĪëĭ¤', '.', 'ĠìĿ´ë¥¼', 'ĠíĨµ', 'íķ´ìĦľ', ',', 'ĠìĥĿê°ģ', 'íķł', 'ĠìĪĺ', 'ĠìŀĪëĬĶ', 'Ġ모ëĵł', 'Ġì¢ħ', 'ë¥ĺ', 'ìĿĺ', 'ĠíĨ', 'łí', 'ģ', '¬', 'ëĤĺ', 'ìĿ´', 'ìłĢ', '를', 'Ġë§Įëĵ¤', 'ĠìĪĺ', 'ĠìŀĪìĬµëĭĪëĭ¤', '!']
상업적 이용시 허가 필요합니다.