금융 데이터 분석가/text-analysis

[NLP Transformers] NLP 작업 순서 - Tokenizer, Model, Post Processing

리치즈 2023. 11. 3. 02:52
728x90

이번 포스트에서는 일반적인 자연어처리 작업의 흐름을 정리합니다.

 

NLP 작업 순서

일반적인 NLP 작업은 3단계를 거치게 됩니다.

: 입력 텍스트를 토크나이징하여 변환하고, 모델에 통과시킨 후, 후처리를 통해 원하는 형태로 출력합니다.

https://huggingface.co/learn/nlp-course/chapter2/2?fw=pt

 

 

Tokenizer

NLP의 첫 단계는 문자를 모델에 입력할 수 있는 숫자로 변환하는 것입니다. 이 때 tokenizer를 사용합니다.

이 때 토크나이저의 목표는 모델에 가장 적합하면서도 가능한 작은 표현을 찾는 것입니다.

 

단어 기반(Word-based), 문자기반(Character-based), 하위단어(Subword) 토크나이저로 구분할 수 있습니다.

교착어인 한국어에서는 Subword Tokenizer가 일반적으로 가장 유용합니다.

 

[ Subword Tokenizer 예시 ]

  • Byte-level BPE, (GPT)
  • WordPiece, (BERT)
  • SentencePiece or Unigram, (multilingual models)

 

 

Model

모델은 전반부인 transformer network와 후반부인 model head를 나눌 수 있습니다.

https://huggingface.co/learn/nlp-course/chapter2/2?fw=pt

Transformer Network

입력 데이터의 맥락을 이해(contextual understanding)하고 내부 표현을 생성하는 부분입니다. 주로 self-attention 메커니즘과 다양한 레이어로 구성되며, 입력 시퀀스의 상호 작용을 모델링하여 텍스트의 맥락적 이해를 제공합니다. 결과로는 hidden states가 생성되며, 이는 주어진 작업을 수행하는 모델 헤드로 전달됩니다.

  • Batch size : 한번에 처리되는 시퀀스 수
  • Sequence length : 숫자로 표현된 시퀀스 길이
  • Hidden size : 각 모델 입력의 벡터 차원(일반적으로 매우 큼)

 

Model Head

모델 헤드는 주어진 딥 러닝 모델의 출력을 특정 작업에 맞게 조정하고 처리하는 역할을 합니다. Hugging Face에서는 Model (retrieve the hidden states), ForCausalLM, ForMaskedLM 등 다양한 작업을 지원합니다.

 

 

Post Processing

모델 출력을 사람이 알아볼 수 있는 형태로 변환하는 작업을 하는 단계입니다.

모델은 로짓(Logits)을 출력하게 되는데, 이를 이해하기 쉬운 확률값으로 변환해주는 작업이 필요합니다.

 

SoftMax 레이어를 통해 확률값으로 변환합니다.

위 예시에서는 모델의 로짓값 [[0.1400, -0.0668]] → 확률값 [[0.5515, 0.4485]] 로 변환했습니다.

 

 

 

 

 

 

※ Transformer 개념과 모델 아키텍처는 이전 포스트를 참고해주세요.

 

※ 참고자료 : HuggingFace NLP course

 

Behind the pipeline - Hugging Face NLP Course

This is the first section where the content is slightly different depending on whether you use PyTorch or TensorFlow. Toggle the switch on top of the title to select the platform you prefer! Let’s start with a complete example, taking a look at what happ

huggingface.co

 

 

 

 

 

 

 

 

 

728x90
LIST