AI 관련 학습 메모
ai 관련 작업이 많아지면서 알게 된 내용들
모델명 읽는 법
-
개발사 / 모델명 (Gemma 4)
-
전체 파라미터 (26B)
-
MoE 구조 (A4B, Active 4B)
-
학습 유형 (Instruct)
-
포맷 (GGUF)
-
GGUF: 가장 많이 쓰는 모델, 윈도우/리눅스 지원, CPU 추론 강함
-
MLX: 애플 실리콘 지원 모델
-
Safetensors: 원본 모델
-
TensorRT: 엔비디아 GPU, 오프로드 없이 GPU에 모델이 다 들어가야 성능이 좋음
-
-
양자화 방식 (UD-Q4_K_XL)
-
UD: Unsloth Dynamic (Unsloth 자체 양자화 방식), Dynamic 정책 슬롯
-
실제 데이터 입력 기반으로 양자화 전후 성능 하락을 판별
-
텐서별 양자화 여부를 측정 기반으로 휴리스틱하게 처리
-
-
Q4: 4bit (IQ, AWQ와 같은 중요도 기반의 양자화 방식도 있음)
-
FP32 (Floating Point 32): 기본 float 자료형, 32비트 사용
-
FP16 (Floating Point 16): 축약 float 자료형, 16비트 사용 (1 / 5 / 10비트 배치)
-
BF16 (Brain Floating Point 16): 축약 float 자료형, 16비트 사용 (1 / 8 / 7비트 배치)
-
INT2 ~ INT8: 축약 int 자료형
-
-
K: K-Quant 계열
-
XL: 프로파일
-
텐서 보존 정밀도로 S ~ XL까지 갈림
-
중요한 일부 텐서를 BF16/FP16으로 남겨두게 되는데 이걸 남겨둔 정도
-
-
파인 튜닝 관련 용어 정리
- PEFT (Parameter-Efficient Fine-Tuning)
-
Low Rank Adaptation (LoRA): 저순위 적응
-
학문적 근간은 Low Rank Approxymation (큰 행렬 1개를 작은 행렬 2개의 곱으로 근사)
-
대표적으로 SVD가 있음
-
LLM 가중치 행렬이 기본적으로 매우 큼
-
모델이 W (기존 모델) + ΔW로 이루어지고 ΔW가 튜닝값이라고 보는 상황
-
기존에는 파인튜닝을 위해 ΔW = M x N (M과 N이 풀 사이즈) 전체를 진행
-
ΔW = A x B (A = M x R, B = R x N) 로 분해, O(MN) -> O(R(M + N)) 으로 감소하는 효과가 있음
-
-
QLoRA (Quantized LoRA)
- 모델 자체를 4비트 등으로 양자화하여 거대 모델 튜닝을 목표로 하는 기술
-
DoRA (Weight-Decomposition Low-Rank Adaptation)
-
ΔW = A x B 학습 과정에서 가중치 의도가 하나로 섞여서 학습됨
-
따라서 magnitude를 별도의 파라미터로 분리해서 관리
-
- Alignment
-
RLHF (Reinforcement Learning from Human Feedback)
-
모델의 답변을 사람이 순위를 매겨서 Reward Model 구축
-
강화학습을 통해 모델이 보상을 많이 받는 방향으로 답변하도록 훈련
-
-
DPO (Direct Preference Optimization)
- 보상 모델을 따로 만드는 것을 생략하고, 데이터셋의 선호도를 직접적으로 최적화
사용 옵션값 설명
-
GPU Offload: Transformer Layer GPU에 몇 개 올릴지 결정
-
CPU Thread Pool Size: CPU 스레드 사용 갯수
-
Evaluation Batch Size: 프롬프트를 얼마나 크게 한 번에 처리할지 결정하는 옵션
- 클수록 vram 사용량 증가, prompt ingest가 빨라짐
-
Max Concurrent Predictions: 동시 생성할 수 있는 답변 갯수, lm studio 기준 1이면 충분할 듯?
-
RoPE Frequency Base / Scale: 모델의 학습된 컨텍스트 길이보다 더 길게 읽게 하고 싶을 때 조절하는 값, 기본 Auto
-
Offload KV Cache to GPU Memory: 대화 내용을 GPU 메모리에 올릴지 결정하는 옵션
-
Keep Model in Memory: 모델을 메모리에서 내리지 않고 계속 유지할지 여부
-
Try mmap0: 메모리 매핑 방식을 활용한 모델 로드, RAM이 넉넉할 때 로딩 속도와 효율을 높여주는 효과
-
Number of Experts: MoE (Mixture of Experts) 모델에서 활성화할 전문가의 수
-
Number of layers for to force MoE weights onto CPU: 일부 레이어의 가중치를 CPU로 강제로 넘기는 설정
-
Flash Attention
-
행렬을 하드웨어 가속이 가능한 SRAM에 들어갈만한 타일 단위로 쪼갠 뒤 연산
-
따로 Attention 행렬을 저장하지 않기 때문에 메모리를 절약하고, 속도를 비약적으로 높일 수 있음
-
-
KV Cache Quantization
- KV 캐시 양자화를 통한 메모리 절약, 기본은 보통 FP16
TODO
-
Transformer 아키텍쳐 분석
-
RNN과의 비교
-
Self Attention?
댓글 작성
게시글에 대한 의견을 남겨 주세요.