본문 바로가기
C.W.K.
Stream
Lesson 03 of 07 · published

토크나이저

~8 min · keras-nlp

Level 0Keras 도제
0 XP0/97 lessons0/20 achievements
0/120 XP to next level120 XP to go0% complete

토크나이저는 모델의 필수 구성요소야

모델은 텍스트를 직접 보지 않고 정수만 받아. 토크나이저가 문자열을 하위 단어 조각으로 나누고 각 조각을 모델의 고정 어휘에 있는 ID로 바꾸는 다리 역할을 해. 어휘가 가중치의 임베딩과 맞물리므로 토크나이저와 모델은 반드시 같은 짝이어야 해. 한쪽만 바꾸면 ID가 엉뚱한 임베딩을 가리키고 오류 없이 그럴듯한 잘못된 출력이 나올 수 있어.

세 알고리즘은 같은 문제를 다르게 풀어

모델 계열마다 WordPiece(BERT), BytePair/BPE(GPT 계열), SentencePiece(T5, Llama, Gemma)를 사용해. 모두 어휘에 없는 단어를 더 작은 조각으로 나눠 어떤 문자열도 표현하지만 분할 규칙이 달라. 현대 KerasHub 구현은 순수 Python으로 실행돼 TensorFlow에 의존하지 않으므로 PyTorch나 JAX 프로젝트에 토크나이저 때문에 TensorFlow 묶음을 추가할 필요가 없어.

실전에서는 토크나이저를 직접 만드는 경우가 드물어. Preprocessor.from_preset()을 불러오면 짝이 맞는 토크나이저가 안에 따라와. 원시 vocabulary=로 직접 만드는 방식은 새 어휘를 처음부터 학습하는 특별한 경우에만 사용해.

Code

원시 어휘로 만들기와 프리셋 토크나이저 불러오기·python
# Tokenizers are included with model presets
tokenizer = keras_hub.tokenizers.WordPieceTokenizer(
    vocabulary=vocab_data,
)

# Or use the tokenizer that comes with a preset
preprocessor = keras_hub.models.BertPreprocessor.from_preset(
    "bert_base_en",
    sequence_length=128,
)

External links

Exercise

BERT 토크나이저로 'Hello, world! 안녕!'을 토큰화하고 토큰 ID와 다시 해석한 문자열을 출력해. BERT-base-en이 한국어를 바이트 수준 조각으로 나눌 가능성을 포함해 처리 결과를 기록해.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.