Tokenization
토큰화가 원시 텍스트와 이미지를 AI가 처리할 수 있는 데이터로 어떻게 변환하는지 살펴보세요. Ultralytics YOLO26과 같은 모델에서 사용되는 NLP 및 컴퓨터 비전 방식을 배우세요.
토큰화는 텍스트, 이미지, 오디오 같은 원본 데이터 스트림을 토큰이라는 더 작고 관리하기 쉬운 단위로 분할하는 알고리즘적 프로세스입니다. 이 변환은 비정형 입력을 인공지능 (AI) 시스템이 해석할 수 있는 수치 형식으로 변환하여 데이터 전처리 파이프라인에서 중요한 가교 역할을 합니다. 컴퓨터는 본질적으로 인간의 언어나 시각적 장면을 이해할 수 없으며, 계산을 수행하기 위해 수치 표현이 필요합니다. 엔지니어는 데이터를 토큰으로 분할함으로써 신경망이 이러한 단위를 의미적 의미를 포착하는 벡터 표현인 임베딩에 매핑할 수 있도록 지원합니다. 이 근본적인 단계가 없다면 머신러닝 모델은 패턴을 식별하거나, 문맥을 학습하거나, 최신 훈련에 필요한 방대한 데이터셋을 처리할 수 없을 것입니다.
토큰화와 토큰#
딥러닝 논의에서 두 용어가 종종 함께 사용되지만, 워크플로를 이해하려면 방법과 결과를 구분하는 것이 유용합니다.
- **토큰화**는 프로세스(동사)입니다. 이는 데이터를 분할하는 데 사용되는 특정 규칙 또는 알고리즘 모음을 나타냅니다. 텍스트의 경우, NLTK나 spaCy 같은 라이브러리를 사용하여 한 단위가 끝나고 다른 단위가 시작되는 위치를 결정하는 작업이 포함될 수 있습니다.
- **토큰**은 출력(명사)입니다. 이는 단일 단어, 서브워드, 문자 또는 픽셀 패치와 같이 프로세스에 의해 생성된 개별 단위입니다.
분야별 방법론#
토큰화 전략은 데이터의 양식에 따라 크게 달라지며, 파운데이션 모델이 세상을 인식하는 방식에 영향을 미칩니다.
NLP에서의 텍스트 토큰화#
자연어 처리 (NLP)에서 목표는 의미를 보존하면서 텍스트를 분할하는 것입니다. 초기 방법들은 단어를 공백으로 분리하거나 불용어를 제거하는 것과 같은 단순한 기법에 의존했습니다. 그러나 최신 대형 언어 모델 (LLM)은 Byte Pair Encoding (BPE)나 WordPiece와 같은 더 정교한 서브워드 알고리즘을 활용합니다. 이러한 알고리즘은 빈도가 가장 높은 문자 쌍을 반복적으로 병합하여, 모델이 희귀 단어를 친숙한 하위 구성 요소로 분해하여 처리할 수 있도록 합니다(예: "smartphones"가 "smart" + "phones"로 변환됨). 이 접근 방식은 어휘 크기와 복잡한 언어를 표현하는 능력 사이의 균형을 유지합니다.
컴퓨터 비전에서의 시각적 토큰화#
전통적으로 CNN과 같은 컴퓨터 비전 (CV) 모델은 슬라이딩 윈도우를 사용하여 픽셀을 처리했습니다. Vision Transformer (ViT)의 도입은 이미지에 토큰화를 적용하여 이러한 패러다임을 바꿨습니다. 이미지는 고정 크기 패치(예: 16x16 픽셀)로 잘게 나뉘며, 이는 평탄화되고 선형 투영됩니다. 이러한 "시각적 토큰"을 통해 모델은 Transformer가 문장을 처리하는 방식과 유사하게 셀프 어텐션 메커니즘을 활용하여 이미지 전체의 글로벌 관계를 학습할 수 있습니다.
실제 애플리케이션 사례#
토큰화는 오늘날 프로덕션 환경에서 사용되는 많은 AI 애플리케이션의 이면에 있는 보이지 않는 엔진입니다.
-
개방형 어휘 객체 검출(Open-Vocabulary Object Detection): YOLO-World와 같은 고급 아키텍처는 멀티모달 모델 접근 방식을 채택합니다. 사용자가 "빨간 모자를 쓴 사람"과 같은 프롬프트를 입력하면 시스템은 이 텍스트를 토큰화하고 시각적 데이터와 동일한 피처 공간에 매핑합니다. 이를 통해 제로샷 학습이 가능해지며, 텍스트 토큰을 시각적 피처와 일치시켜 명시적으로 훈련되지 않은 객체도 모델이 검출할 수 있습니다.
-
생성 예술 및 디자인: 텍스트-투-이미지 생성에서는 확산 프로세스를 가이드하기 위해 사용자 프롬프트가 토큰화됩니다. 모델은 이러한 토큰을 사용하여 생성을 조건화하며, 결과 이미지가 토큰화 단계에서 추출된 의미 개념(예: "일몰", "해변")과 일치하도록 보장합니다.
Python 예제: 토큰 기반 탐지#
다음 예제는 ultralytics 패키지가 YOLO-World 워크플로 내에서 텍스트 토큰화를 암시적으로 활용하는 방법을 보여줍니다. 사용자 정의 클래스를 정의함으로써 모델은 이러한 문자열을 토큰화하여 특정 객체를 동적으로 검색합니다.
from ultralytics import YOLO
# Load a pre-trained YOLO-World model capable of text-based detection
model = YOLO("yolov8s-world.pt")
# Define custom classes; these are tokenized internally to guide the model
# The model will look for visual features matching these text tokens
model.set_classes(["backpack", "bus"])
# Run prediction on an image
results = model.predict("https://ultralytics.com/images/bus.jpg")
# Show results (only detects the tokenized classes defined above)
results[0].show()모델 성능에 미치는 영향#
토큰화 전략의 선택은 정확도와 연산 효율성에 직접적인 영향을 미칩니다. 비효율적인 토큰화는 NLP에서 "어휘 외(out-of-vocabulary)" 오류로 이어지거나 이미지 분석에서 세부적인 디테일의 손실을 초래할 수 있습니다. PyTorch 및 TensorFlow 같은 프레임워크는 이 단계를 최적화할 수 있는 유연한 도구를 제공합니다. 최첨단 YOLO26과 같은 아키텍처가 진화함에 따라 효율적인 데이터 처리를 통해 모델은 강력한 클라우드 GPU부터 엣지 디바이스에 이르기까지 다양한 하드웨어에서 실시간 추론을 실행할 수 있습니다. 이러한 복잡한 데이터 워크플로를 관리하는 팀은 종종 Ultralytics Platform을 활용하여 데이터셋 주석, 모델 훈련 및 배포를 간소화합니다.






