Pytorch
TensorFlow

#
단원 마무리 퀴즈

###
1. 언어 모델링 파이프라인은 어떤 순서로 진행될까요?

먼저, 모델이 텍스트를 처리하고 원시 예측 결과를 출력합니다. 이어서 토크나이저가 이 예측 결과를 이해하고 텍스트로 변환합니다. 먼저, 토크나이저가 텍스트를 처리하고 ID를 반환합니다. 모델은 ID를 이용해 텍스트로 된 예측 결과를 출력합니다. 토크나이저가 텍스트를 처리하고 ID를 반환합니다. 모델은 ID를 이용해 예측 결과를 출력합니다. 그리고 토크나이저를 다시 사용해 예측 결과를 일부 텍스트로 변환할 수 있습니다.

###
2. 기본 Transformer 모델에 의해 만들어지는 텐서의 출력은 몇 차원이며, 각 텐서가 무엇을 의미하나요?

2: 문장 길이, 배치 크기 2: 문장 길이, 은닉 크기 3: 문장 길이, 배치 크기, 은닉 크기

###
3. 서브워드 토큰화 예시에 해당하는 것은 무엇인가요?

WordPiece 문자 기반 토큰화 공백과 구두점을 기준으로 나누기 BPE Unigram 해당하는 것이 없습니다.

###
4. 모델 헤드가 무엇인가요?

A component of the base Transformer network that redirects tensors to their correct layers Also known as the self-attention mechanism, it adapts the representation of a token according to the other tokens of the sequence An additional component, usually made up of one or a few layers, to convert the transformer predictions to a task-specific output

###
5. AutoModel이 무엇인가요?

데이터를 자동으로 학습하는 모델입니다. 체크포인트에 기반하여 적합한 구조를 반환하는 객체입니다. 적합한 가중치를 불러오기 위해 입력에 사용된 언어를 자동으로 감지하는 모델입니다.

###
6. 길이가 다른 시퀀스를 하나의 배치로 만들 때 신경써야 할 부분은 무엇일까요?

잘라내기 텐서 반환하기 패딩 추가하기 어텐션 마스킹

###
7. 시퀀스 분류 모델의 로짓 출력 결과에 소프트맥스 함수를 적용하는 핵심적인 이유는 무엇일까요?

소프트맥스 함수는 더 신뢰성 있는 로짓 결과를 만들기 위해 정규화를 수행합니다. 소프트맥스 함수는 상한과 하한을 적용해서 로짓 결과를 이해하기 쉽게 만듭니다. 출력 결과의 총 합이 1이므로 확률적으로 해석이 가능합니다.

###
8. 토크나이저 API의 가장 핵심적인 메서드는 무엇일까요?

텍스트를 ID로 인코딩하고 ID를 예측 결과로 인코딩하는 `encode`입니다. 토크나이저 객체를 바로 호출하는 메서드입니다. `pad` 메서드입니다. `tokenize` 메서드입니다.

###
9. 아래 코드 예시에서 `result` 변수가 포함하고 있는 것은 무엇일까요?

    from transformers import AutoTokenizer

    tokenizer = AutoTokenizer.from_pretrained("bert-base-cased")
    result = tokenizer.tokenize("Hello!")

문자열 리스트로, 각 문자열은 토큰입니다. ID 리스트입니다. 모든 토큰을 포함하고 있는 문자열입니다.

###
10. 아래 코드에서 잘못된 부분이 있을까요?

    from transformers import AutoTokenizer, AutoModel

    tokenizer = AutoTokenizer.from_pretrained("bert-base-cased")
    model = AutoModel.from_pretrained("gpt2")

    encoded = tokenizer("Hey!", return_tensors="pt")
    result = model(**encoded)

아니요, 모두 제대로 되어 있습니다. 토크나이저와 모델은 같은 체크포인트를 사용해야 합니다. 토크나이저를 이용해 패딩을 추가하거나 시퀀스 길이를 잘라내는 것은 모든 입력이 배치로 처리될 때 좋은 방법입니다.