티스토리 뷰
반응형
HuggingFace의 transformers를 사용하여 Bert의 입력값을 만들어 보자.
1. 사전 학습된 모델 로드
from_pretrained()를 사용함으로써 pretrained된 모델을 사용할 수 있다.
from transformers import BertTokenizer
tokenizer = BertTokenizer.from_pretrained("bert-base-uncased", do_lower_case=True)
print(tokenizer)
PreTrainedTokenizer(name_or_path='bert-base-uncased',
vocab_size=30522,
model_max_len=512,
is_fast=False,
padding_side='right',
truncation_side='right',
special_tokens={'unk_token': '[UNK]', 'sep_token': '[SEP]', 'pad_token': '[PAD]', 'cls_token': '[CLS]', 'mask_token': '[MASK]'})
2. Bert의 입력값 만들기(batch_encode_plus)
Bert의 입력값에는 기본적으로 3가지가 입력되어야한다.
1) input_ids
문장을 토크나이즈해서 인덱스 값으로 변환하는 것이다. 일반적으로 버트에서는 단어를 subword 단위로 변환 시키는 워드 피스 토크나이저로 활용을 한다.
2) attention_mask
패딩된 부분에 대해 학습에 영향을 받지 않기 위해 처리해 주는 입력값이다. 버트 토크나이저에서는 1은 어텐션에 영향을 받는 토큰을 나타내고, 0은 영향을 받지 않는 토큰을 나타낸다.
3) token_type_ids
두 개의 시퀀스 입력으로 활용할 때 0과 1로 문장의 토큰 값을 분리한다. [CLS]는 문장의 시작을 의미하고, [SEP]는 문장이 분리되는 부분을 의미하는 토큰이다.
예를 들어 두개의 문장이 들어오면 0,0,0,0,0,0 1,1,1,1,1,1,1, 이렇게 표시된다.
transformers의 batch_encode_plus 메소드를 사용해서 위의 입력값을 리턴받을 수 있다.
max_length = 128
def bert_tokenizer(sentense_pairs):
encoded = self.tokenizer.batch_encode_plus(
sentense_pairs),
add_special_tokens=True,
max_length=max_length,
return_attention_mask=True,
return_token_type_ids=True,
pad_to_max_length=True,
return_tensors="tf",
)
input_ids = np.array(encoded["input_ids"], dtype="int32")
attention_masks = np.array(encoded["attention_mask"], dtype="int32")
token_type_ids = np.array(encoded["token_type_ids"], dtype="int32")
return input_ids, attention_masks, token_type_ids
반응형
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 보안
- 자료구조
- synflooding
- t-test
- 정보보안
- FastAPI
- 리눅스
- 시간초과
- 딥러닝
- linux
- 코딩테스트
- lightsail
- 우선순위큐
- t검정
- 백준
- 프로그래머스
- 카카오페이
- 다이나믹프로그래밍
- 파이썬
- 분산시스템
- LangChain
- springboot
- 그리디
- java
- 보안기사
- Ai
- 카카오페이면접후기
- llm
- Python
- 정보보안기사
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
글 보관함