버트는 문장을 구별하기 위해 1과 0을 사용합니다. 즉, 문장이 바뀔 때마다 0에서 1로 바뀌고, 또다시 문장이 바뀌면 1에서 0으로 바뀝니다. 예를 들어 [0, 0, 1, 1, 1, 0, 0, 0]이라는 결과가 있다면 이것은 세 개의 문장으로 구성되었음을 의미합니다.

    예제에서는 하나의 문장으로 인식시키기 위해 33개의 토큰에 벡터 1을 부여합니다.

    코드 10-55 문장 인식 단위 지정

    segments_ids = [1] * len(tokenized_text)
    print(segments_ids)

    다음은 각각의 토큰에 1이 할당되어 있음을 보여 줍니다.

    [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]

    인덱스와 토크나이징 결과를 텐서로 변환합니다.

    코드 10-56 데이터를 텐서로 변환

    tokens_tensor = torch.tensor([indexed_tokens])
    segments_tensors = torch.tensor([segments_ids])

    사전 훈련된 버트 모델을 내려받습니다. 특히 한국어 훈련을 위해 ‘bert-base-multilingual-cased’ 모델을 내려받습니다.

    코드 10-57 모델 생성

    model = BertModel.from_pretrained('bert-base-multilingual-cased', output_hidden_states=True) ------ ①
    model.eval() ------ 모델을 평가 모드로 설정
    신간 소식 구독하기
    뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.