HomeAboutMeBlogGuest
© 2025 Sejin Cha. All rights reserved.
Built with Next.js, deployed on Vercel
장지원 페이지/
📕
2024 UGRP
/
Member Page
Member Page
/
장지원
장지원
/
#34. ToDo: 해올거

#34. ToDo: 해올거

태그
연구
날짜
Nov 19, 2024
상태
완료
  1. table 채우
  1. AI 코드 짜오기
  1. t-ene 분석 법 알아오기
 
lora_config = LoraConfig( r=8, # rank of low-rank matrices lora_alpha=16, # scaling factor for LoRA target_modules=["q_proj", "v_proj"], # LoRA will be applied to attention projections lora_dropout=0.1, # dropout rate for LoRA layers bias="none", # no bias terms in LoRA layers )
 
# LoRA 적용 config = LoraConfig( r=8, lora_alpha=32, lora_dropout=0.1, target_modules=["visual_projection"] ) model = get_peft_model(model, config)
 
설명

1. r (Rank of Low-Rank Matrices)

  • 설명: LoRA는 기본적으로 원래의 가중치 행렬을 두 개의 저차원(low-rank) 행렬로 분해하여 학습합니다. r은 이 두 저차원 행렬의 행렬 차원을 설정합니다.
  • 역할:
    • 더 작은 r 값은 메모리 및 계산량을 줄이지만, 모델이 표현할 수 있는 정보의 양도 줄어듭니다.
    • 더 큰 r 값은 더 많은 정보 학습이 가능하지만, 메모리 및 계산량이 증가합니다.
  • 추천 값: 일반적으로 4~32 사이에서 설정.

2. lora_alpha (Scaling Factor)

  • 설명: LoRA에서 학습된 저차원 가중치의 출력을 스케일링하기 위한 계수입니다.
  • 역할:
    • LoRA 출력에 lora_alpha를 곱해 모델의 업데이트 강도를 조절합니다.
    • 큰 값은 업데이트를 확대하고, 작은 값은 더 작은 변화만 허용합니다.
  • 공식: LoRA output=α⋅(A×B) 여기서 A와 B는 저차원 행렬입니다.
    • LoRA output=α⋅(A×B)\text{LoRA output} = \alpha \cdot (A \times B)
      AA
      BB
  • 추천 값: 일반적으로 r과 비례하여 설정합니다. rα​를 일정하게 유지하는 것이 일반적입니다.
    • αr\frac{\alpha}{r}

3. target_modules

  • 설명: LoRA가 적용될 모델의 특정 모듈을 지정합니다.
  • 역할:
    • 모델 내에서 LoRA가 저차원 학습을 적용할 부분을 설정합니다.
    • 여기서는 q_proj(쿼리 투영)과 v_proj(값 투영) 모듈에 적용합니다.
    • 주로 attention layer에서 사용되는 모듈입니다.
  • 적용 범위:
    • 일반적으로 Transformer 기반 모델의 self-attention 구조에 사용됩니다.

4. lora_dropout

  • 설명: LoRA 레이어에서 적용되는 드롭아웃(dropout) 비율입니다.
  • 역할:
    • 학습 중 일부 뉴런의 출력을 랜덤하게 0으로 설정하여 과적합을 방지합니다.
    • 0.0으로 설정하면 드롭아웃을 적용하지 않습니다.
  • 추천 값: 보통 0.1~0.3 사이에서 설정.

5. bias

  • 설명: LoRA 레이어에 bias term(편향)을 추가할지 여부를 결정합니다.
  • 가능 값:
    • "none": 편향 추가하지 않음.
    • "all": 모든 LoRA 레이어에 편향 추가.
    • "lora_only": LoRA의 저차원 가중치에만 편향 추가.
  • 역할:
    • 모델의 편향 학습 필요 여부에 따라 설정.

요약

  • r: 저차원 행렬의 차원, 모델 학습 효율성과 성능 조절.
  • lora_alpha: LoRA 출력 스케일링, 학습 강도 조절.
  • target_modules: LoRA 적용 대상 모듈, 주로 Transformer의 attention 모듈.
  • lora_dropout: 드롭아웃 비율, 과적합 방지.
  • bias: 편향 추가 여부 결정.
이 설정들은 모델의 미세 조정 시 메모리 효율성과 성능 간의 균형을 맞추는 데 중요한 역할을 합니다.
r = 8 or 16
알파 = 16 or 32
 
  • visual_projection:
    • 이미지의 특징 투영 과정에 집중적으로 개선이 필요할 때 사용.
    • CLIP 모델이 처리하는 특정 시각적 데이터셋(예: 스케치, 미술 작품 등)에 더 적합하게 만들고자 할 때 효과적.
  • q_proj, v_proj:
    • 모델의 어텐션 메커니즘을 효율적으로 개선.
    • 특정 시퀀스 데이터(텍스트 또는 이미지 패치 간의 관계)를 잘 학습하도록 조정할 때 유용.
4o