한국어
AI 관련 학습 메모

AI 관련 학습 메모

ai 관련 작업이 많아지면서 알게 된 내용들

모델명 읽는 법

  1. 개발사 / 모델명 (Gemma 4)

  2. 전체 파라미터 (26B)

  3. MoE 구조 (A4B, Active 4B)

  4. 학습 유형 (Instruct)

  5. 포맷 (GGUF)

    • GGUF: 가장 많이 쓰는 모델, 윈도우/리눅스 지원, CPU 추론 강함

    • MLX: 애플 실리콘 지원 모델

    • Safetensors: 원본 모델

    • TensorRT: 엔비디아 GPU, 오프로드 없이 GPU에 모델이 다 들어가야 성능이 좋음

  6. 양자화 방식 (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으로 남겨두게 되는데 이걸 남겨둔 정도

파인 튜닝 관련 용어 정리

  1. 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를 별도의 파라미터로 분리해서 관리

  1. 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?

댓글 작성

게시글에 대한 의견을 남겨 주세요.

댓글 0