본문 바로가기

반응형

전체 글

(148)
딥러닝 기본 파이프라인 예제 (pytorch) 1. 데이터셋 로드 및 전처리from torchvision import datasetsfrom torchvision.transforms import ToTensortraining_data = datasets.FashionMNIST( root='data', train=True, download=True, transform=ToTensor())test_data = datasets.FashionMNIST( root='data', train=False, download=True, transform=ToTensor())  FashionMNIST는 의류 이미지 데이터셋 (28x28 흑백)transform=ToTensor() : 이미지를 [0, 1] 범위의 텐서로 변환2. DataLoader로 배치 생성b..
PyTorch DataLoader: 실무에 가까운 고급 사용법과 예제 DataLoader는 단순히 데이터를 배치 단위로 나눠주는 것 이상으로,데이터 전처리부터 성능 최적화까지 다양한 역할을 할 수 있어요.이번 글에서는 다음과 같은 심화 기능들을 다뤄볼 거예요: 🧠 다룰 내용collate_fn으로 배치 구성 방식 커스터마이징num_workers로 데이터 로딩 속도 높이기불균형 데이터에 대응하기 위한 WeightedRandomSampler시퀀스 길이가 다른 텍스트 데이터 패딩 처리(보너스) persistent_workers, pin_memory 등 옵션 이해1. 🧩 collate_fn: 배치 구성 방식을 직접 정의collate_fn은 DataLoader가 개별 데이터를 배치로 묶을 때 묶는 방식을 커스터마이징할 수 있게 해줘요.💡 예제: 텍스트 길이에 따라 패딩 추가하기..
CSV 파일 DataLoader로 불러오기 🧾 CSV 파일도 DataLoader로 불러올 수 있어? 당연하지!이전 포스트에서는 PyTorch의 DataLoader로 MNIST 이미지 데이터를 불러와봤어요.그런데 실제 프로젝트나 대회에서 만나는 데이터는 대부분 .csv, .txt, 혹은 직접 만든 데이터셋이죠?그래서 오늘은:CSV 파일 데이터를 불러오는 방법Dataset 클래스를 상속해서 커스터마이징하는 방법그리고 실습 예제까지 깔끔하게 정리해드릴게요.📦 목표: Titanic 생존자 예측 데이터를 DataLoader로 불러오자 Kaggle의 대표 입문용 데이터셋, Titanic 데이터를 사용하겠습니다.  ✅ Step 1. CSV용 커스텀 Dataset 클래스 만들기import pandas as pdimport torchfrom torch.uti..
PyTorch에서 DataLoader를 쓰는 이유는 뭘까? 딥러닝 공부를 하다 보면 꼭 등장하는 녀석이 있습니다. 바로 DataLoader.처음엔 그냥 "데이터를 한 번에 여러 개 불러와주는 도구인가보다~" 하고 넘어가지만,실제로는 학습 효율성, 성능, 확장성까지 책임지는 핵심 유틸리티라는 걸 알게 되죠.오늘은 왜 PyTorch에서 DataLoader를 써야 하는지, 그리고 어떻게 사용하는지 예제와 함께 살펴볼게요.✅ DataLoader란?PyTorch의 DataLoader는 데이터셋을 배치 단위로 나눠서, 하나씩 모델에 전달할 수 있게 도와주는 데이터 관리 도구입니다.좀 더 정확하게 말하면:데이터를 작은 묶음(batch) 으로 잘라서,필요할 때마다 (iterator처럼) 꺼내쓰고,데이터를 랜덤으로 섞거나, 병렬로 불러오거나,GPU 학습이 원활하도록 메모리도 최..
오차 측정 (Loss Measurement) 각 손실 함수(Loss Function)는 딥러닝 모델의 출력이 정답(label)과 얼마나 차이가 있는지를 측정해주는 지표입니다. 사용되는 손실 함수는 **문제의 종류(회귀, 분류, 임베딩 등)**에 따라 달라지며, 그에 따라 학습 방향도 달라집니다. 아래는 각 손실 함수의 개념 설명과 **사용 시점(사례)**을 정리한 내용입니다.✅ 오차 측정 (Loss Measurement)개념: 모델 예측값과 실제 정답값 간의 차이(오차)를 수치로 나타내는 함수.목적: 손실을 최소화하는 방향으로 파라미터를 업데이트함으로써 모델 성능을 향상시키기 위함.🔹 1. L1Loss (Mean Absolute Error, MAE)개념: 예측값과 실제값의 절대 오차의 평균을 계산.L1Loss=1n∑i=1n∣yi−y^i∣L1Los..
AI 모델 경량화와 효율화를 위한 3가지 핵심 기술 비교 💡 AI 모델 경량화와 효율화를 위한 3가지 핵심 기술 비교Quantization, LoRA, SLLM 개념 정리 및 장단점 비교 🧮 1. 양자화 (Quantization)항목내용🎯 목적모델 크기 축소 및 실행 효율성 향상⚙️ 방법모델 파라미터를 32-bit → 8-bit 또는 4-bit 등 저비트로 변환✅ 장점- 연산 속도 향상- 메모리/전력 소모 감소- 모바일 및 엣지 디바이스에 적합⚠️ 단점- 정확도 손실 가능- 고정소수점 연산 시 품질 저하 우려- 양자화 인식 훈련(QAT) 필요 가능성🪛 2. LoRA (Low-Rank Adaptation)항목내용🎯 목적기존 LLM에 대한 효율적 파인튜닝⚙️ 방법원본 파라미터는 고정하고, 일부 레이어에 저차원 행렬(A·B)을 추가하여 조정✅ 장점- 전체 ..
파인튜닝의 대안: PEFT (Parameter-Efficient Fine-Tuning) 🔄 파인튜닝의 대안: PEFT (Parameter-Efficient Fine-Tuning)전체 모델 파라미터를 업데이트하지 않고, 일부만 학습시켜 효율적으로 모델을 튜닝하는 방식입니다.1️⃣ PEFT란?기존 모델의 대부분 파라미터는 그대로 유지아주 적은 수의 파라미터만 추가/수정하여 튜닝→ 메모리 효율적, 빠른 학습 가능, 안정적2️⃣ 핵심 개념구분설명🎯 목적적은 리소스로 효과적인 파인튜닝💡 방식기존 모델에 Adapter 모듈 삽입 or 특정 Layer만 업데이트✅ 장점- 원본 모델 보존- 학습 파라미터 1% 미만- 버전 관리 쉬움- Multi-adapter 구성 가능3️⃣ 대표 기법: LoRA (Low-Rank Adaptation)가장 널리 쓰이는 PEFT 알고리즘입니다.📘 LoRA 기본 아이디..
Continuous Pretraining이란? 🔄 Continuous Pretraining이란?사전 훈련된 언어 모델을 특정 도메인에 맞게 계속 학습시키는 과정입니다.🧠 Continuous Pretraining 개요기존의 언어 모델(BERT, GPT 등)은 대규모 범용 코퍼스를 기반으로 학습되어 제공됩니다.하지만 우리가 해결하고자 하는 문제나 데이터가 특정 도메인에 치우쳐 있다면?→ 모델이 그 도메인에 익숙해지도록 사전 훈련을 계속 이어주는 작업이 필요합니다.이를 Continuous Pretraining 또는 **Domain-Adaptive Pretraining(DAPT)**이라고 합니다.⚙️ Continuous Pretraining 실습 단계1️⃣ 모델 선택 및 환경 설정원하는 사전 훈련 모델을 선택합니다.(예: bert-base, gpt2, ..

반응형