pad_token_id 관련 이슈
monologg opened this issue · 0 comments
monologg commented
안녕하세요:)
청와대 민원 분류 코드에서 아래와 같은 함수가 있는데, KoBERT에서는 [UNK]가 0, [PAD]가 1로 매핑이 되어 있는 것으로 알고 있습니다.
def convert_data(data_df):
global tokenizer
SEQ_LEN = 512 #SEQ_LEN : 버트에 들어갈 인풋의 길이
tokens, masks, segments, targets = [], [], [], []
for i in tqdm(range(len(data_df))):
# token : 문장을 토큰화함
token = tokenizer.encode(data_df[DATA_COLUMN][i], max_length=SEQ_LEN, pad_to_max_length=True)
# 마스크는 토큰화한 문장에서 패딩이 아닌 부분은 1, 패딩인 부분은 0으로 통일
num_zeros = token.count(0)
mask = [1]*(SEQ_LEN-num_zeros) + [0]*num_zeros
위의 코드의 num_zeros = token.count(0)
을 num_zeros = token.count(tokenizer.pad_token_id)
로 바꾸는게 맞을 것 같아 이슈 올리게 되었습니다.
혹시나 잘못된 부분이 있거나 하면 알려주세요!
좋은 코드 감사합니다:)