반응형

전체 글 134

모델 압축·배포 최적화 시리즈 3편: Pruning (가중치 가지치기)

"신경망에서 정말 모든 weight가 필요할까?"Pruning은 중요도가 낮은 weight, 뉴런, 채널을 제거해 모델을 가볍게 만드는 기법입니다. Pruning이란?Pruning(가지치기)은 신경망의 불필요한 파라미터를 제거하여 모델 크기를 줄이고 추론 속도를 높이는 방법입니다.학습이 끝난 모델의 weight 중요도를 측정중요도가 낮은 weight → 0으로 만들거나 제거모델 sparsity 증가 → 연산량 감소왜 중요한가?모델 크기 줄이기 (저장 공간, 메모리 사용량 절약)추론 속도 향상 (특히 하드웨어가 sparsity 가속 지원 시)Overfitting 감소 → 일반화 성능이 더 좋아질 수도 있음Pruning의 종류Unstructured Pruning개별 weight 중요도 기준으로 0으로 만듦 ..

모델 압축·배포 최적화 시리즈 2편: Quantization (양자화)

"모델 크기 4배 줄이고, 추론 속도는 2배 이상 높인다?"Quantization은 weight와 activation을 저비트로 변환해 모델을 경량화하는 핵심 기법입니다. Quantization이란?Quantization은 모델의 weight와 activation 값을 낮은 정밀도(bit) 로 표현하는 기법입니다.일반적으로 학습된 모델은 FP32 (32-bit float)양자화 시 → FP16, INT8, INT4 등으로 변환메모리 차지 공간이 줄고, 정수 연산을 사용해 추론 속도가 빨라짐왜 중요한가?모델 크기 줄이기: 저장 공간 & 메모리 사용량 감소추론 속도 향상: INT 연산은 float 연산보다 빠르고 에너지 효율 높음엣지/모바일 배포 가능: 작은 디바이스에서도 대형 모델 구동 가능Quantiza..

모델 압축·배포 최적화 시리즈 1편: Knowledge Distillation

"큰 모델이 배운 지식을 작은 모델에 전수할 수 없을까?"Knowledge Distillation(지식 증류)은 Teacher-Student 방식으로 모델을 압축하는 대표적인 기법입니다. Knowledge Distillation이란?Knowledge Distillation(KD)은 큰 모델(Teacher) 이 예측한 soft output(로짓, 확률분포)을작은 모델(Student) 이 모방하도록 학습시키는 방법입니다.이 방식으로 Student 모델은:라벨 정보(정답)뿐 아니라,Teacher가 가진 클래스 간 유사성, 결정 경계 정보까지 학습결과적으로 작고 가벼운 모델이 Teacher 모델 수준의 성능을 재현할 수 있습니다.왜 필요한가?대형 모델은 학습/추론에 비용이 많이 듦 → 모바일/엣지 디바이스 배포..

AI 모델 경량화 시리즈 5편: QLoRA (Quantized LoRA)

"단일 GPU로 13B 모델 파인튜닝 가능?"QLoRA는 4-bit 양자화와 LoRA를 결합해 메모리 사용을 극도로 줄여주는 혁신적인 기법입니다. QLoRA란?QLoRA(Quantized LoRA)는 기존 LoRA 기법을 저비트 양자화(4-bit quantization) 와 결합한 방식입니다.모델 weight는 4-bit quantized 형태로 GPU 메모리에 올림LoRA 저랭크 파라미터(A, B)만 FP16 혹은 BF16 precision으로 학습즉, 원본 모델은 4-bit로 압축 + LoRA delta만 학습 → 메모리 사용량과 연산량이 크게 줄어듦.왜 필요한가?LLaMA, Falcon, Mistral 등 7B~70B급 모델은 full precision로 로드 시 VRAM이 40GB~300GB 이상..

AI 모델 경량화 시리즈 4편: BitFit (Bias-Only Fine-Tuning)

"모델의 bias만 학습해도 성능이 꽤 괜찮다?"BitFit은 PEFT 기법 중 가장 단순하고, 가장 가벼운 방법입니다. BitFit이란?BitFit은 말 그대로 모델의 bias 파라미터만 학습하는 방법입니다.LayerNorm, Attention, FFN 등의 weight는 전부 동결(freeze)하고,각 layer에 존재하는 bias term (b 값들)만 업데이트합니다.왜 이런 아이디어가 나왔나?대형 Transformer 모델에서 파라미터 대부분은 weight matrix (W)bias는 전체 파라미터의 0.1~0.5% 수준밖에 안 됨그런데도 bias를 미세조정하면 surprisingly good 성능이 나오는 것을 발견 → 연구로 이어짐동작 원리 (수식)기본적으로 선형 계층: y = W x + b ..

AI 모델 경량화 시리즈 3편: Adapters

"모델을 통째로 다시 학습하지 않고, 중간에 작은 모듈만 추가해 학습한다!"Adapters는 PEFT(파라미터 효율적 파인튜닝) 기법 중 가장 범용적으로 쓰이는 방법입니다. Adapters란?Adapter는 Transformer 블록 사이에 작은 Bottleneck 네트워크를 추가하고이 부분만 학습하는 기법입니다.원본 모델의 weight는 전부 freeze하고,추가된 Adapter layer만 학습하기 때문에 파라미터 수를 크게 줄이면서도기존 모델의 일반화 성능을 유지할 수 있습니다.왜 필요한가?대형 모델은 Full Fine-Tuning 시 GPU 메모리, 학습 시간 부담이 매우 큼LoRA, Prompt-Tuning은 주로 Attention projection 계층이나 입력 쪽만 바꿈Adapter는 모델..

AI 모델 경량화 시리즈 2편: Prefix-Tuning & Prompt-Tuning

프롬프트만 바꿔서 모델을 새로운 태스크에 적응시킨다?LoRA보다 더 가볍게, 심지어 파라미터 몇 퍼센트만 학습하는 방법. Prefix-/Prompt-Tuning이란?Prefix-Tuning 과 Prompt-Tuning 은 Pretrained 모델의 파라미터는 그대로 두고,입력에 붙는 "프롬프트 벡터"만 학습하는 방법입니다.즉, 모델 내부는 전혀 건드리지 않고 입력에 추가적인 learnable embedding을 붙여서모델이 원하는 태스크 방향으로 출력을 내도록 유도합니다.왜 필요한가?대형 LLM(수십억~수천억 파라미터)은 전체 파인튜닝이 사실상 불가능한 경우 많음LoRA도 내부 레이어 일부를 학습하지만, 여전히 weight update 연산 필요Prefix/Prompt-Tuning은 파라미터 효율이 극단..

AI 모델 경량화 시리즈 1편: LoRA(Low-Rank Adaptation) 완벽 가이드

대형 모델 파인튜닝을 위한 가장 효율적이고 핫한 방법 LoRA란 무엇인가?LoRA(Low-Rank Adaptation)는 대형 모델 파인튜닝(transfer learning) 을 훨씬 가볍고 효율적으로 만들기 위해 고안된 방법입니다.기존에는 파인튜닝 시 모델 전체 파라미터를 업데이트해야 했습니다.하지만 대형 모델(수억~수십억 파라미터)을 이런 식으로 학습하려면:VRAM 엄청 필요 (A100 여러 장…)학습 시간이 오래 걸림모델 버전을 여러 개 저장하기 힘듦LoRA는 이런 문제를 해결합니다.핵심 아이디어는 “기존 가중치는 그대로 두고, 아주 작은 저랭크 행렬만 학습한다” 입니다.수식으로 보는 LoRA기존 선형 계층(예: Attention의 Q, K, V projection)은 다음과 같습니다:y = W..

TPM 2.0 켜고 Windows 11 설치하기

TPM 2.0 켜고 Windows 11 설치하기 (i5-6600 시스템) “TPM 2.0만 켜면 Windows 11 되는 줄 알았는데, CPU 때문에 막힌다면?”저처럼 오래된 PC에서 Windows 11을 설치하고 싶으신 분들을 위해 과정 전체를 기록해봤습니다. 1. 현재 PC 환경 확인CPU : Intel Core i5-6600 (Skylake, 6세대)메모리 : 8GB저장장치 : SSD 256GB메인보드 : GIGABYTE (UEFI DualBIOS)Windows 10에서 설정 → 업데이트 및 보안 → Windows 11 소개 메뉴로 들어가 보니“시스템 요구 사항을 충족하지 않는다”는 메시지가 떴습니다. 2. BIOS에서 TPM 2.0 활성화하기TPM 2.0은 대부분의 최신 보드에 내장되어 있습니다..

[항해커톤 2024] AI 항해커톤 참가 후기

항해커톤 2024 후기 팀 스파르타에서 진행한 항해커톤 2024에서 10:1의 경쟁률을 뚫고 최종 50인에 선발되어, 3명의 개발자와 함께 '헬렌켈러'라는 팀명으로 참가하게 되었습니다. 우리의 목표는 저시력 시각장애인이 원하는 물건을 찾고, 주변 환경을 인식할 수 있도록 돕는 AI 서비스를 만드는 것이었습니다. 팀원들과 함께 무박 2일간 열심히 달려 완성한 프로젝트에 대해 이야기해보려 합니다. [우리의 도전과 목표] 우리 팀은 시각장애인의 실제 불편함을 해결하기 위한 AI 솔루션을 찾는 데 주력했습니다. 특히 저시력 시각장애인을 위해, 그들이 원하는 물건을 찾고 주변 환경을 인식하는 데 도움을 줄 수 있는 AI 서비스를 개발하는 것이 목표였습니다. 저는 저희 팀에서 FastAPI를 사용해 AI와 백엔드 ..

카테고리 없음 2024.05.31
반응형