Buckets:

rtrm's picture
|
download
raw
10.3 kB
# 단원 마무리 퀴즈
<CourseFloatingBanner
chapter={8}
classNames="absolute z-10 right-0 top-0"
/>
이 챕터에서 배운 내용을 테스트해 봅시다!
### 1. 파이썬 traceback을 어떤 순서로 읽어야 할까요?
<Question
choices={[
{
text: "위에서 아래로",
explain: "다시 풀어보세요. -- 대부분의 다른 프로그래밍 언어는 위에 예외를 인쇄하지만 Python은 점에서 특별합니다."
},
{
text: "아래에서 위로",
explain: "정답! 아래에 예외를 표시하는 Python traceback의 장점 하나는 터미널에서 작업할 디버그하기가 쉽고 마지막 줄에 표시된다는 점입니다.",
correct: true
}
]}
/>
### 2. 최소한의 재현 가능한 예는 무엇일까요?
<Question
choices={[
{
text: "리서치 기사를 통해 Transformer 아키텍처를 간단하게 구현하는 ",
explain: "자신만의 Transformer 모델을 처음부터 구현하는 것이 매우 교육적이지만 여기에서 이야기하는 내용은 아닙니다."
},
{
text: "비공개 파일이나 데이터에 대한 외부 종속성 없이 실행할 있는 작고 완성된 코드 블록",
explain: "정답! 최소한의 재현 가능한 예제는 라이브러리 메인테이너가 문제를 재현하는 도움이 되므로 솔루션을 빨리 찾을 있습니다.",
correct: true
},
{
text: "파이썬 traceback의 스크린 ",
explain: "다시 풀어보세요. -- 문제를 제출할 직면한 에러의 스크린샷을 포함하고 싶겠지만 이렇게 하면 다른 사람이 에러를 재현하기가 매우 어렵습니다."
},
{
text: "에러와 관련 없는 부분을 포함하여 전체 분석이 포함된 노트북",
explain: "정답은 아닙니다. 에러를 표시하는 Google Colab 노트북을 공유하는 것이 도움이 있지만 짧고 관련 코드만 포함해야 합니다."
}
]}
/>
### 3. 에러가 발생하는 다음 코드를 실행하려고 한다고 가정합니다.:
```py
from transformers import GPT3ForSequenceClassification
# ImportError: cannot import name 'GPT3ForSequenceClassification' from 'transformers' (/Users/lewtun/miniconda3/envs/huggingface/lib/python3.8/site-packages/transformers/__init__.py)
# ---------------------------------------------------------------------------
# ImportError Traceback (most recent call last)
# /var/folders/28/k4cy5q7s2hs92xq7_h89_vgm0000gn/T/ipykernel_30848/333858878.py in <module>
# ----> 1 from transformers import GPT3ForSequenceClassification
# ImportError: cannot import name 'GPT3ForSequenceClassification' from 'transformers' (/Users/lewtun/miniconda3/envs/huggingface/lib/python3.8/site-packages/transformers/__init__.py)
```
다음 중 도움을 요청하기 위한 포럼 게시글의 제목으로 적합한 것은 무엇일까요?
<Question
choices={[
{
text: "<code>ImportError: cannot import name 'GPT3ForSequenceClassification' from 'transformers' (/Users/lewtun/miniconda3/envs/huggingface/lib/python3.8/site-packages/transformers/__init__.py)</code>",
explain: "Traceback의 마지막 줄을 포함하는 것은 설명적일 수 있지만 주제의 본문에 더 적합합니다. 다시 풀어보세요!"
},
{
text: "문제가 있습니다. <code>from transformers import GPT3ForSequenceClassification</code>",
explain: "다시 풀어보세요. 유용한 정보를 제공하지만 텍스트의 본문용으로 사용하는 것이 가장 좋습니다.",
},
{
text: "왜 <code>GPT3ForSequenceClassification</code> import가 안될까요? ?",
explain: "훌륭한 선택입니다! 이 제목은 간결하고 독자에게 무엇이 잘못되었는지에 대한 단서를 제공합니다(GPT-3는 🤗 트랜스포머에서 지원되지 않음).",
correct: true
},
{
text: "🤗 Transformers에서 GPT-3가 지원되나요?",
explain: "잘했습니다! 질문을 주제 제목으로 사용하는 것은 문제를 커뮤니티에 전달하는 좋은 방법입니다.",
correct: true
}
]}
/>
### 4. `trainer.train()`을 실행하려고 시도했는데 정확히 어디서 에러가 발생했는지 알려주지 않는 알 수 없는 에러에 직면했다고 가정합니다. 다음 중 학습 파이프라인에서 에러를 찾아야 하는 첫 번째 위치는 어디일까요?
<Question
choices={[
{
text: "그래디언트를 계산하고 역전파를 수행하는 최적화 단계",
explain: "옵티마이저에 버그가 있을 있지만 이것은 일반적으로 학습 파이프라인의 여러 단계이므로 먼저 확인해야 다른 사항이 있습니다. 다시 풀어보세요!"
},
{
text: "메트릭을 계산하는 평가 단계",
explain: "평가는 일반적으로 전체 epoch에 대한 학습 후에 수행하는 작업이므로 학습 파이프라인의 초기 부분에서 먼저 확인해야 합니다.",
},
{
text: "데이터셋",
explain: "정답! 텍스트가 적절하게 인코딩되었는지, 예상되는 기능이 있는지 등을 확인하기 위해 거의 항상 데이터를 살펴보는 것이 가장 먼저 해야 일입니다.",
correct: true
},
{
text: "데이터 로더",
explain: "다시 풀어보세요. 가장 먼저 확인해야 사항과 매우 비슷합니다. 데이터 로더에 어떤 개체를 전달했는지 기억하시나요?"
}
]}
/>
### 5. CUDA 에러를 디버그하는 최고의 방법은 무엇일까요?
<Question
choices={[
{
text: "포럼이나 GitHub에 에러 메시지를 게시하기.",
explain: "CUDA 오류 메시지는 일반적으로 정보가 매우 없기 때문에 누구에게도 도움이 되지 않습니다."
},
{
text: "CPU에서 같은 코드로 실행하기",
explain: "정답!, CPU에서 실행하면 정확한 에러 메세지를 받을 있습니다!",
correct: true
},
{
text: "Traceback을 읽고 에러의 원인을 찾기.",
explain: "다른 에러에 대해 수행하는 작업이지만 대부분의 CUDA 작업은 비동기식이므로 CUDA 에러는 일반적으로 해당 위치에서 발생하지 않습니다."
},
{
text: "배치 사이즈 줄여보기",
explain: "배치 크기를 줄이는 것은 일반적으로 CUDA 메모리 부족 에러를 처리하는 좋은 전략이지만 특정 문제에는 그렇지 않습니다. 다시 풀어보세요!"
},
{
text: "주피터 커널 재시작하기",
explain: "다시 풀어보세요. 커널을 다시 시작해도 에러가 사라지지 않습니다!",
}
]}
/>
### 6. GitHub에서 문제를 해결하는 가장 좋은 방법은 무엇일까요?
<Question
choices={[
{
text: "버그의 전체 재현 가능한 예를 게시하기.",
explain: "정답!, 메인테이너가 버그를 찾는 도움이 되는 가장 좋은 방법입니다. 무엇을 있을까요?",
correct: true
},
{
text: "매일 업데이트 요청하기",
explain: "여러분에게 도움을 같지 않습니다. 사람들은 아마 당신을 무시할 겁니다.",
},
{
text: "버그 주변의 소스 코드를 검사하고 버그가 발생하는 이유를 찾아서 문제의 결과를 게시하기.",
explain: "분명히 메인테이너에게 도움이 것입니다! 그리고 버그의 원인과 수정 사항을 찾으면 리퀘스트를 수도 있습니다. 무엇을 있을까요?",
correct: true
}
]}
/>
### 7. 하나의 배치에 과적합하는 것이 일반적으로 좋은 디버깅 기술인 이유는 무엇일까요?
<Question
choices={[
{
text: "그렇지 않습니다. 과적합은 항상 좋지 않으며 피해야 합니다.",
explain: "전체 데이터 세트에 대해 학습할 과적합은 실제로 모델이 새로운 예에 일반화되지 않는다는 신호일 있습니다. 그러나 디버깅을 위해 일반적으로 전체 데이터 세트에 대해 학습하지는 않습니다. 다시 풀어보세요!"
},
{
text: "모델이 손실을 0으로 줄일 있는지 확인할 있습니다.",
explain: "정답! 예가 개밖에 되는 작은 배치로 모델이 학습할 있는지 빠르게 확인할 있습니다.",
correct: true
},
{
text: "이를 통해 입력 레이블의 텐서 모양이 올바른지 확인할 있습니다.",
explain: "다시 풀어보세요. 텐서 모양이 잘못 정렬되면 단일 배치에서도 훈련할 없습니다.",
}
]}
/>
### 8. 🤗 Transformers 저장소에서 새 이슈를 생성할 때 `transformers-cli env`를 사용하여 컴퓨팅 환경에 대한 세부 정보를 포함하는 것이 좋은 이유는 무엇일까요?
<Question
choices={[
{
text: "이를 통해 메인테이너는 사용 중인 라이브러리의 버전을 이해할 있습니다.",
explain: "정답! 라이브러리의 주요 버전은 API에 변경 사항이 있을 있으므로 사용 중인 특정 버전을 알면 문제를 좁히는 도움이 있습니다. 다른 이점은 무엇이 있을까요?",
correct: true
},
{
text: "이를 통해 메인테이너는 Windows, macOS 또는 Linux에서 코드를 실행 중인지 여부를 있습니다.",
explain: "정답! 사용 중인 특정 운영 체제로 인해 때때로 오류가 발생할 있으며 이를 알고 있으면 메인테이너가 에러를 로컬에서 재현하는 도움이 됩니다. 하지만 그게 유일한 이유는 아닙니다.",
correct: true
},
{
text: "이를 통해 메인테이너는 코드를 GPU에서 실행하는지 CPU에서 실행하는지 있습니다.",
explain: "정답! 장에서 살펴본 것처럼 GPU 또는 CPU에서 실행되는 코드는 다른 결과 또는 오류를 생성할 있으며 사용 중인 하드웨어를 알면 메인테이너의 주의를 집중하는 도움이 있습니다. 하지만 이점은 이뿐만이 아닙니다...",
correct: true
}
]}
/>
<EditOnGithub source="https://github.com/huggingface/course/blob/main/chapters/ko/chapter8/7.mdx" />

Xet Storage Details

Size:
10.3 kB
·
Xet hash:
e7e4c6a9e8652615419918fc6fd548bfaeafb49a8fef466cd5ffcbd39c93adbe

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.