토큰화는 특히 언어 모델을 다룰 때 자연어 처리(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!"
토큰화 프로세스를 단계별로 분석해 보겠습니다.
토큰나이저를 직접 호출하면 텍스트를 처리하고 몇 가지 주요 구성요소를 출력합니다.
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)
토큰나이저가 문장을 개별 토큰으로 분할하는 방법이 궁금하다면 tokenize() 메서드를 사용하면 됩니다. 그러면 기본 ID가 없는 토큰 목록이 제공됩니다.
sentence = "I love you! I love you! I love you!"
출력:
res = tokenizer(sentence) print(res)
토큰화에는 문장을 더 작은 의미 있는 단위로 나누는 작업이 포함됩니다. 또한 대소문자를 구분하지 않는 distilbert-base-uncased 모델을 사용하므로 토크나이저는 모든 문자를 소문자로 변환합니다.
토큰이 있으면 다음 단계는 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는 모델이 처리를 위해 사용하는 실제 입력입니다.
마지막으로 decode() 메서드를 사용하여 토큰 ID를 사람이 읽을 수 있는 문자열로 다시 디코딩할 수 있습니다.
['i', 'love', 'you', '!', 'i', 'love', 'you', '!', 'i', 'love', 'you', '!']
출력:
ids = tokenizer.convert_tokens_to_ids(tokens) print(ids)
디코딩된 문자열은 "대문자 없음" 모델의 표준 동작이었던 대문자 제거를 제외하고 원래 입력과 매우 유사합니다.
input_ids의 출력에서 101과 102라는 두 가지 특수 토큰을 발견했을 수 있습니다. 이 토큰은 문장의 시작과 끝을 표시하기 위해 많은 모델에서 사용되는 특수 마커입니다. 구체적으로:
이러한 특수 토큰은 모델이 입력 텍스트의 경계를 이해하는 데 도움이 됩니다.
앞서 언급했듯이 attention_mask는 모델이 실제 토큰과 패딩 토큰을 구별하는 데 도움이 됩니다. 이 경우 attention_mask는 모든 토큰에 주의를 기울여야 함을 나타내는 목록입니다. 패딩 토큰이 있는 경우 마스크에 0이 표시되어 모델이 이를 무시하도록 지시합니다.
요약하자면 토큰화는 텍스트를 머신러닝 모델이 처리할 수 있는 형식으로 변환하는 데 있어 중요한 단계입니다. Hugging Face의 토크나이저는 다음과 같은 다양한 작업을 처리합니다.
사전 훈련된 모델을 효과적으로 활용하려면 토크나이저의 작동 방식을 이해하는 것이 중요합니다. 텍스트를 더 작은 토큰으로 분해함으로써 모델이 구조화되고 효율적인 방식으로 입력을 처리할 수 있습니다. 감정 분석, 텍스트 생성 또는 기타 NLP 작업을 위한 모델을 사용하든 토크나이저는 파이프라인의 필수 도구입니다.
위 내용은 토큰화 이해: 포옹 얼굴을 사용한 토크나이저에 대한 심층 분석의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!