> 백엔드 개발 > 파이썬 튜토리얼 > 토큰화 이해: 포옹 얼굴을 사용한 토크나이저에 대한 심층 분석

토큰화 이해: 포옹 얼굴을 사용한 토크나이저에 대한 심층 분석

Patricia Arquette
풀어 주다: 2025-01-05 19:25:41
원래의
904명이 탐색했습니다.

Understanding Tokenization: A Deep Dive into Tokenizers with Hugging Face

토큰화는 특히 언어 모델을 다룰 때 자연어 처리(NLP)의 기본 개념입니다. 이 기사에서는 토크나이저의 기능, 작동 방식, Hugging Face의 변환기 라이브러리[https://huggingface.co/docs/transformers/index]를 사용하여 다양한 애플리케이션에 활용할 수 있는 방법을 살펴보겠습니다.

토크나이저란 무엇입니까?

핵심적으로 토크나이저는 원시 텍스트를 토큰이라는 더 작은 단위로 분해합니다. 이러한 토큰은 사용되는 토크나이저 유형에 따라 단어, 하위 단어 또는 문자를 나타낼 수 있습니다. 토큰화의 목표는 사람이 읽을 수 있는 텍스트를 머신러닝 모델이 더 쉽게 해석할 수 있는 형식으로 변환하는 것입니다.

대부분의 모델은 텍스트를 직접 이해하지 못하기 때문에 토큰화가 중요합니다. 대신 예측을 하려면 숫자가 필요합니다. 토크나이저는 텍스트를 가져와서 처리한 후 모델이 사용할 수 있는 수학적 표현을 출력합니다.

이 게시물에서는 Hugging Face의 사전 훈련된 모델을 사용하여 토큰화가 작동하는 방식을 살펴보고, 변환기 라이브러리에서 사용할 수 있는 다양한 방법을 탐색하고, 토큰화가 감정 분석과 같은 다운스트림 작업에 어떻게 영향을 미치는지 살펴보겠습니다.

모델 및 토크나이저 설정

먼저 Transformers 패키지에서 필요한 라이브러리를 가져오고 사전 훈련된 모델을 로드해 보겠습니다. 감성 분석을 위해 미세 조정된 "DistilBERT" 모델을 사용하겠습니다.

from transformers import pipeline
from transformers import AutoTokenizer, AutoModelForSequenceClassification

# Load the pre-trained model and tokenizer
model_name = "distilbert-base-uncased-finetuned-sst-2-english"
model = AutoModelForSequenceClassification.from_pretrained(model_name)
tokenizer = AutoTokenizer.from_pretrained(model_name)

# Create the classifier pipeline
classifier = pipeline("sentiment-analysis", model=model, tokenizer=tokenizer)
로그인 후 복사
로그인 후 복사

텍스트 토큰화

모델과 토크나이저가 설정되면 간단한 문장의 토큰화를 시작할 수 있습니다. 예문은 다음과 같습니다.

sentence = "I love you! I love you! I love you!"
로그인 후 복사
로그인 후 복사

토큰화 프로세스를 단계별로 분석해 보겠습니다.

1. 토크나이저 출력: 입력 ID 및 어텐션 마스크

토큰나이저를 직접 호출하면 텍스트를 처리하고 몇 가지 주요 구성요소를 출력합니다.

  • input_ids: 토큰을 나타내는 정수 ID 목록입니다. 각 토큰은 모델 어휘의 항목에 해당합니다.
  • attention_mask: 모델이 어떤 토큰에 주의를 기울여야 하는지 나타내는 1과 0의 목록입니다. 이는 패딩을 다룰 때 특히 유용합니다.
res = tokenizer(sentence)
print(res)
로그인 후 복사
로그인 후 복사

출력:

from transformers import pipeline
from transformers import AutoTokenizer, AutoModelForSequenceClassification

# Load the pre-trained model and tokenizer
model_name = "distilbert-base-uncased-finetuned-sst-2-english"
model = AutoModelForSequenceClassification.from_pretrained(model_name)
tokenizer = AutoTokenizer.from_pretrained(model_name)

# Create the classifier pipeline
classifier = pipeline("sentiment-analysis", model=model, tokenizer=tokenizer)
로그인 후 복사
로그인 후 복사
  • input_ids: 정수는 토큰을 나타냅니다. 예를 들어 1045는 "나", 2293은 "사랑", 999는 "!"에 해당합니다.
  • attention_mask: 모든 토큰에 주의를 기울여야 함을 나타냅니다. 패딩 토큰이 있는 경우 이 목록에 0이 표시되어 무시해야 함을 나타냅니다.

2. 토큰화

토큰나이저가 문장을 개별 토큰으로 분할하는 방법이 궁금하다면 tokenize() 메서드를 사용하면 됩니다. 그러면 기본 ID가 없는 토큰 목록이 제공됩니다.

sentence = "I love you! I love you! I love you!"
로그인 후 복사
로그인 후 복사

출력:

res = tokenizer(sentence)
print(res)
로그인 후 복사
로그인 후 복사

토큰화에는 문장을 더 작은 의미 있는 단위로 나누는 작업이 포함됩니다. 또한 대소문자를 구분하지 않는 distilbert-base-uncased 모델을 사용하므로 토크나이저는 모든 문자를 소문자로 변환합니다.

3. 토큰을 ID로 변환

토큰이 있으면 다음 단계는 Convert_tokens_to_ids() 메서드를 사용하여 토큰을 해당 정수 ID로 변환하는 것입니다.

{
    'input_ids': [101, 1045, 2293, 2017, 999, 1045, 2293, 2017, 999, 1045, 2293, 2017, 999, 102],
    'attention_mask': [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]
}
로그인 후 복사

출력:

tokens = tokenizer.tokenize(sentence)
print(tokens)
로그인 후 복사

각 토큰에는 모델의 어휘에서 이를 나타내는 고유한 정수 ID가 있습니다. 이 ID는 모델이 처리를 위해 사용하는 실제 입력입니다.

4. ID를 다시 텍스트로 디코딩

마지막으로 decode() 메서드를 사용하여 토큰 ID를 사람이 읽을 수 있는 문자열로 다시 디코딩할 수 있습니다.

['i', 'love', 'you', '!', 'i', 'love', 'you', '!', 'i', 'love', 'you', '!']
로그인 후 복사

출력:

ids = tokenizer.convert_tokens_to_ids(tokens)
print(ids)
로그인 후 복사

디코딩된 문자열은 "대문자 없음" 모델의 표준 동작이었던 대문자 제거를 제외하고 원래 입력과 매우 유사합니다.

특수 토큰 이해

input_ids의 출력에서 ​​101과 102라는 두 가지 특수 토큰을 발견했을 수 있습니다. 이 토큰은 문장의 시작과 끝을 표시하기 위해 많은 모델에서 사용되는 특수 마커입니다. 구체적으로:

  • 101: 문장의 시작을 표시합니다.
  • 102: 문장의 끝을 표시합니다.

이러한 특수 토큰은 모델이 입력 텍스트의 경계를 이해하는 데 도움이 됩니다.

주의 마스크

앞서 언급했듯이 attention_mask는 모델이 실제 토큰과 패딩 토큰을 구별하는 데 도움이 됩니다. 이 경우 attention_mask는 모든 토큰에 주의를 기울여야 함을 나타내는 목록입니다. 패딩 토큰이 있는 경우 마스크에 0이 표시되어 모델이 이를 무시하도록 지시합니다.

토크나이저 요약

요약하자면 토큰화는 텍스트를 머신러닝 모델이 처리할 수 있는 형식으로 변환하는 데 있어 중요한 단계입니다. Hugging Face의 토크나이저는 다음과 같은 다양한 작업을 처리합니다.

  • 텍스트를 토큰으로 변환합니다.
  • 토큰을 고유한 정수 ID에 매핑합니다.
  • 모델이 어떤 토큰이 중요한지 알 수 있도록 주의 마스크를 생성합니다.

결론

사전 훈련된 모델을 효과적으로 활용하려면 토크나이저의 작동 방식을 이해하는 것이 중요합니다. 텍스트를 더 작은 토큰으로 분해함으로써 모델이 구조화되고 효율적인 방식으로 입력을 처리할 수 있습니다. 감정 분석, 텍스트 생성 또는 기타 NLP 작업을 위한 모델을 사용하든 토크나이저는 파이프라인의 필수 도구입니다.

위 내용은 토큰화 이해: 포옹 얼굴을 사용한 토크나이저에 대한 심층 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:dev.to
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿