# 단원 마무리 퀴즈

<CourseFloatingBanner
    chapter={1}
    classNames="absolute z-10 right-0 top-0"
/>

이번 챕터에서는 정말 많은 내용들을 다뤘습니다! 그러니 모든 세부 사항을 다 이해하지 못했다고 해서 좌절하지 마세요. 다음 챕터에서 다루는 내용은 내부 작동 방식을 이해하는 데에 도움이 될거에요.

그래도 우선, 이번 챕터에서 배운 내용에 대해 확인해보는 시간을 갖도록 하겠습니다!


### 1. Hub에서 `roberta-large-mnli` 체크포인트를 검색해 보세요. 이 모델은 어떤 작업을 수행하나요?


<Question
    choices={[
        {
            text: "요약",
            explain: "이 페이지를 다시 확인하세요 <a href=\"https://huggingface.co/roberta-large-mnli\">roberta-large-mnli page</a>."
        },
        {
            text: "텍스트 분류",
            explain: "더 정확하게 말하면, 이 모델은 두 문장이 논리적으로 타당한지 세 가지 레이블(모순, 함의, 중립)로 분류합니다. 이러한 문제를 <em>자연어 추론(natural language inference)</em>이라고 부릅니다.",
            correct: true
        },
        {
            text: "텍스트 생성",
            explain: "이 페이지를 다시 확인하세요 <a href=\"https://huggingface.co/roberta-large-mnli\">roberta-large-mnli page</a>."
        }
    ]}
/>

### 2. 다음 코드는 무엇을 반환하나요?

```py
from transformers import pipeline

ner = pipeline("ner", grouped_entities=True)
ner("My name is Sylvain and I work at Hugging Face in Brooklyn.")
```

<Question
    choices={[
        {
            text: "문장에 대해 \"positive\" 혹은 \"negative\" 로 분류한 레이블과 함께 분류 점수를 반환합니다.",
            explain: "오답입니다 — 이는 <code>sentiment-analysis</code> 파이프라인에 대한 설명입니다."
        },
        {
            text: "이 문장을 완성할, 생성 텍스트를 반환합니다.",
            explain: "오답입니다 — 이는 <code>text-generation</code> 파이프라인에 대한 설명입니다.",
        },
        {
            text: "사람, 기관, 장소 등을 나타내는 단어들을 반환합니다.",
            explain: "이 뿐만 아니라, <code>grouped_entities=True</code>를 사용해 \"Hugging Face\"와 같이 같은 개체에 해당하는 단어들을 그룹화해줍니다.",
            correct: true
        }
    ]}
/>

### 3. 다음 예제 코드에서 ... 대신 무엇이 들어가야 할까요?

```py
from transformers import pipeline

filler = pipeline("fill-mask", model="bert-base-cased")
result = filler("...")
```

<Question
    choices={[
        {
            text: "<mask>",
            explain: "오답입니다. 여기 <code>bert-base-cased</code> 모델 카드를 보시고 다시 도전해보세요."
        },
        {
            text: "[MASK]",
            explain: "정답! 이 모델의 마스크 토큰은 [MASK]입니다.",
            correct: true
        },
        {
            text: "man",
            explain: "오답입니다. 이 파이프라인은 마스킹된 단어를 채워야하기니까 어딘가에는 마스크 토큰이 있어야겠죠?"
        }
    ]}
/>

### 4. 다음 코드가 실행되지 않는 이유는 무엇일까요?

```py
from transformers import pipeline

classifier = pipeline("zero-shot-classification")
result = classifier("This is a course about the Transformers library")
```

<Question
    choices={[
        {
            text: "해당 텍스트를 분류하기 위해서는 파이프라인에 레이블을 넣어주어야 합니다.",
            explain: "맞습니다 — 제대로 작동시키기 위해 다음 코드가 필요합니다. <code>candidate_labels=[...]</code>.",
            correct: true
        },
        {
            text: "한 문장이 아니라, 여러 문장을 파이프라인에 넣어주어야 합니다.",
            explain: "틀렸지만, 다른 파이프라인과 마찬가지로 제대로 사용한다면 물론 여러 리스트의 문장도 입력으로 넣어줄 수 있습니다."
        },
        {
            text: "늘 그렇듯 🤗 Transformers 라이브러리가 또 고장난거 아닌가요?",
            explain: "못 들은 걸로 하겠습니다!"
        },
        {
            text: "위의 문장은 너무 짧아서, 더 긴 문장을 입력해야 합니다.",
            explain: "오답입니다. 매우 긴 텍스트는 파이프라인에서 처리할 때 잘리게 되는 것을 명심하세요."
        }
    ]}
/>

### 5. "전이 학습(transfer learning)"이란 무엇을 의미하나요?

<Question
    choices={[
        {
            text: "동일한 데이터셋으로 학습할 때, 사전 학습된 모델의 지식이 새로운 모델로 전달되는 것",
            explain: "틀렸습니다, 이런 경우 동일한 모델이 두 개 있는 것과 똑같습니다."
        },
        {
            text: "사전 학습된 모델의 가중치로 새로운 모델을 초기화할 때, 사전 학습된 모델의 지식이 전달되는 것",
            explain: "정답: 사전 학습된 모델이 새로운 모델로 지식을 *전이(transfer)*하여 새로운 과제에 대한 학습이 이루어집니다.",
            correct: true
        },
        {
            text: "사전 학습된 모델과 동일한 구조의 모델을 새로 만들 때, 사전 학습 모델의 지식이 전달되는 것",
            explain: "구조(architecture)는 모델이 디자인되는 방식일 뿐, 이러한 경우 지식이 공유되거나 전이되지 않습니다."
        }
    ]}
/>

### 6. 언어 모델은 일반적으로 사전 학습시에 레이블을 필요로 하지 않습니다. 이 문장은 참일까요 거짓일까요?


<Question
    choices={[
        {
            text: "참",
            explain: "사전 학습 과정은 일반적으로 <em>자가 지도(self-supervised)</em> 방식입니다. 이는 다음 단어 예측 혹은 마스킹 된 단어 채우기 등과 같이 입력으로부터 자동으로 레이블을 생성하는 것을 의미합니다.",
            correct: true
        },
        {
            text: "거짓",
            explain: "정답이 아닙니다."
        }
    ]}
/>

### 7. 다음 중 “모델(model)”, “구조(architecture)”, “가중치(weights)”에 대해 가장 잘 설명한 것을 고르세요.

<Question
    choices={[
        {
            text: "모델이 하나의 빌딩이라면, 구조는 청사진이고 가중치는 그 안에 사는 사람들입니다.",
            explain: "이러한 비유대로라면, 가중치는 건물을 짓는데 사용한 벽돌이나 기타 재료들이 더 어울리겠네요."
        },
        {
            text: "구조는 모델 구축을 위한 일종의 지도이고 가중치는 그 지도에 나타난 도시들에 해당합니다.",
            explain: "이 비유의 문제점은, 지도는 보통 하나의 실제 세상만을 나타낸다는 것입니다(한국에는 서울이 하나뿐이죠). 실제로 동일한 구조에 대해서 수많은 다른 가중치를 가질 수 있습니다."
        },
        {
            text: "구조는 모델을 구축하기 위한 수학적 함수의 연속이고 가중치는 그 함수들의 변수(parameters)입니다.",
            explain: "동일한 셋의 수학적 함수(구조)는 서로 다른 변수(가중치)를 사용해 각기 다른 모델을 만들 수 있습니다.",
            correct: true
        }
    ]}
/>


### 8. 다음 중 어떤 모델이 텍스트를 생성하여 프롬프트(prompt)를 완성시키는 데에 가장 적합할까요?

<Question
    choices={[
        {
            text: "인코더 모델",
            explain: "인코더 모델은 전체 문장에 대한 표현을 생성하므로 분류에 더 적합합니다."
        },
        {
            text: "디코더 모델",
            explain: "디코더 모델은 프롬트로부터 텍스트를 생성하는 데에 최적의 모델입니다.",
            correct: true
        },
        {
            text: "시퀀스-투-시퀀스 모델",
            explain: "시퀀스-투-시퀀스 모델은 주어진 프롬트가 아닌, 입력 문장과 관련 있는 문장을 생성하는 데에 더 적합합니다."
        }
    ]}
/>

### 9. 다음 중 어떤 모델이 텍스트 요약에 가장 적합할까요?

<Question
    choices={[
        {
            text: "인코더 모델",
            explain: "인코더 모델은 전체 문장에 대한 표현을 생성하므로 분류에 더 적합합니다."
        },
        {
            text: "디코더 모델",
            explain: "디코더 모델 또한 (요약과 같이) 출력 텍스트 생성을 잘하지만 전체 맥락과 같은 컨텍스트를 활용하여 요약을 할 수는 없습니다."
        },
        {
            text: "시퀀스-투-시퀀스 모델",
            explain: "시퀀스-투-시퀀스 모델은 요약 작업을 수행하는 데에 최적의 모델입니다.",
            correct: true
        }
    ]}
/>

### 10. 다음 중 어떤 모델이 입력 텍스트를 특정 레이블로 분류하는 데에 가장 적합할까요?

<Question
    choices={[
        {
            text: "인코더 모델",
            explain: "인코더 모델은 전체 문장에 대한 표현을 생성하므로 분류 태스크에 최적의 모델입니다.",
            correct: true
        },
        {
            text: "디코더 모델",
            explain: "디코더 모델은 출력 텍스트 파일 생성을 잘하지만, 문장으로부터 레이블을 잘 추출하진 못합니다."
        },
        {
            text: "시퀀스-투-시퀀스 모델",
            explain: "시퀀스-투-시퀀스 모델은 주어진 입력 문장을 기반으로 레이블이 아니라 텍스트를 생성하는 데에 적합합니다.",
        }
    ]}
/>

### 11. 다음 중 모델이 편향성(bias)을 갖게 되는 데에 가장 가능성 있는 원인을 모두 고르세요.

<Question
    choices={[
        {
            text: "모델은 사전 학습 모델의 미세 조정된 버전이고, 여기서 편향성이 따라오게 됩니다.",
            explain: "전이 학습 시 사용되는 사전 학습 모델의 편향성이 미세 조정된 모델로도 전달됩니다.",
            correct: true
        },
        {
            text: "모델 학습에 사용된 데이터가 편향되어 있습니다.",
            explain: "이는 가장 분명한 편향의 원인이지만, 유일한 원인은 아닙니다.",
            correct: true
        },
        {
            text: "모델이 최적화한 메트릭(metric)이 편향되어 있습니다.",
            explain: "모델 학습 방식은 편향이 발생되는 불분명한 원인 중 하나입니다. 모델은 어떤 메트릭을 고르든 아무 생각 없이 그에 맞춰 최적화를 합니다.",
            correct: true
        }
    ]}
/>


<EditOnGithub source="https://github.com/huggingface/course/blob/main/chapters/ko/chapter1/10.mdx" />