목표
- 튜토리얼에서 배울 내용과 학습 방법 이해
- 로컬 또는 클라우드에서 첫 번째 트랜스포머 데모 실행
- 이후 장에서 사용할 Python 환경 및 주요 도구 설정
0.1 학습 계획과 예상 성과
| 단계 | 키워드 | 주요 결과 |
|---|---|---|
| 0 | 환경, 체험 | 영어 시 한 편 생성 및 공유 성공 |
| 1–3 | 어텐션, 인코더, 디코더 | 최소 버전 트랜스포머 코드 읽고 수정 가능 |
| 4–8 | NLP / CV / 음성 사례 | 실제 비즈니스 케이스 3개 이상 숙지 |
| 9–10 | LLM 파인튜닝, 최적화 | 오픈소스 대형 모델을 맞춤 지식베이스에 통합 |
| 11 | 종합 프로젝트 | 상호작용 가능한 미니 채팅봇 출시 |
학습 패턴 제안: "먼저 실행 ➜ 깊게 연구 ➜ 즉시 변경" 세 가지 순환 과정을 따르세요.
0.2 필수 도구 설치 및 설정
0.2.1 Python 및 conda 환경
- Miniconda 설치 (권장)
- https://docs.conda.io/en/latest/miniconda.html 에서 해당 운영체제의 설치 파일 선택.
- 모든 단계를 "Next"로 진행하고 Add Miniconda to my PATH 확인.
- 독립적인 환경 생성 (패키지 충돌 방지)
conda create -n transformer-study python=3.10 -y
conda activate transformer-study
0.2.2 PyTorch + CUDA
| 상황 | 명령어 |
|---|---|
| GPU (NVIDIA) | pip install torch torchvision --index-url https://download.pytorch.org/whl/cu121 (cu121은 CUDA 12.1 의미; 구형 드라이버일 경우 cu118로 변경 가능) |
| CPU 전용 | pip install torch torchvision |
| 빠른 검증 | python -c "import torch; print('CUDA:', torch.cuda.is_available(), 'GPU:', torch.cuda.get_device_name(0) if torch.cuda.is_available() else '없음')" |
팁:
- 로컬 GPU가 없거나 설정이 복잡한 경우 CUDA 생략하고 Google Colab이나 Kaggle Notebook 활용.
- 이후 코드는 CPU와 완전 호환되지만 속도가 느릴 수 있음.
0.2.3 기타 자주 사용하는 패키지 일괄 설치
pip install transformers datasets accelerate sentencepiece einops tqdm jupyterlab
transformers 4.40 이상, datasets 2.19 이상을 사용하면 이후 예제와 동일함 보장.
0.2.4 IDE 및 플러그인
| 도구 | 용도 | 권장 플러그인 |
|---|---|---|
| VS Code | 가벼운 개발 | Python, Jupyter, GitLens |
| PyCharm Community | 완전한 IDE | IdeaVim (선택사항) |
| JupyterLab | 빠른 실험 노트북 | jupyterlab-vim, jupyterlab_code_formatter |
0.3 클라우드 옵션: Colab & Hugging Face Spaces
| 옵션 | 무료 GPU | 주요 절차 |
|---|---|---|
| Google Colab | T4 / L4 / A100 (랜덤) | https://colab.research.google.com/ 열기, GPU 선택; !pip install transformers==4.40.0 |
| Kaggle Notebook | T4 | https://www.kaggle.com/code 열기, Settings → GPU → On |
| Hugging Face Spaces | CPU (무료) | GPU (유료) | New Space → Gradio / Streamlit → Chat Demo 배포 |
0.3 첫 번째 "작은 성취" — 한 줄로 영어 시 생성하기
- 터미널 또는 Colab에서 실행:
from transformers import pipeline
generator = pipeline("text-generation", model="gpt2")
result = generator("Under the silent moonlight,", max_length=40, num_return_sequences=1)
print(result[0]["generated_text"])
- 출력 예시
Under the silent moonlight, whispers of ancient trees
echo softly through the forest, carrying secrets of time.
- 실습해보기
model="gpt2"를"distilgpt2"나"meta-llama/Llama-2-7b-chat-hf"로 바꿔보기 (최소 16GB VRAM 필요).max_length,temperature조정해 다양한 스타일의 텍스트 생성 확인.
- 과제
- 생성된 시를 한국어로 번역.
0.4 일반적인 설치 문제 해결 방법
| 증상 | 원인 | 해결책 |
|---|---|---|
torch.cuda.is_available() == False |
CUDA 버전 불일치 | nvidia-smi로 드라이버 확인 후 PyTorch cuXXX 버전 설치 |
ImportError: libc10.so |
이전 버전의 torch 존재 | pip uninstall torch -y && pip cache purge && pip install torch==2.2.1 |
| 모델 다운로드 속도 저하 | 기본 Hugging Face 소스 위치 해외 | 清华 미러 설정: export HF_ENDPOINT=https://hf-mirror.com |
| Colab 특정 버전 설치 실패 | Colab 내장 torch 버전 충돌 | pip install --upgrade --force-reinstall torch==2.2.1 |
0.5 본 장 요약 및 고민 과제
본 장 학습 성과
- Python & conda 환경, PyTorch, Transformers 설치 완료.
- 첫 번째 텍스트 생성 예제 실행하여 어텐션 모델의 마법 경험.
- GPU/CPU 선택 및 클라우드 대체 옵션 익힘.
고민 과제
- 왜 GPU가 딥러닝 훈련 속도를 크게 향상시키는지 "행렬 병렬 계산" 관점에서 간단히 설명하세요.
- CPU만 사용해야 할 경우 어떻게 "그래디언트 누적" 또는 "모델 크기 축소"를 통해 대형 모델 파인튜닝을 수행할 수 있을까요? 아이디어를 작성하세요.
- "시 생성" 작업을 명령줄 스크립트
generate_poem.py로 캡슐화하고--prompt,--length매개변수를 지원하며 GitHub에 업로드하세요.
준비가 되셨다면 이제 **부분 1 "기초 개념 소개"**로 넘어가겠습니다 —— 우리는 이제 어텐션 메커니즘을 분해할 차례입니다! 행운을 빕니다 ❤️