Ultralytics YOLO27: 대기자 명단에 등록하세요.
YOLO 라이선스 받기
Ultralytics 용어집으로 돌아가기

LoRA (Low-Rank Adaptation)

LoRA는 가중치를 고정하고 소규모 저랭크 업데이트 행렬을 학습해 대규모 모델을 파인튜닝하므로, 학습 가능한 파라미터와 메모리, 저장 공간을 줄입니다.

LoRA는 Low-Rank Adaptation의 약자로, 파라미터 효율적 미세 조정(PEFT) 방식입니다. 선택한 레이어와 함께 작은 행렬 쌍을 학습하고 기존 가중치는 고정하여 대규모 사전 학습 모델을 새로운 작업에 맞게 조정합니다. 두 행렬의 곱은 고정된 가중치에 더해지는 저랭크 업데이트이므로, 파라미터 중 극히 일부만 그래디언트를 받습니다. 2021년 Microsoft의 Hu 외 연구진이 도입한 LoRA는 GPT-3 175B의 학습 가능 파라미터를 10,000분의 1로 줄이고, Adam을 사용한 전체 미세 조정과 비교해 학습 GPU 메모리를 3분의 1로 줄였습니다. 동시에 RoBERTa, DeBERTa, GPT-2, GPT-3에서 전체 미세 조정과 동등하거나 더 우수한 품질을 달성했습니다. 현재 LoRA는 적당한 하드웨어에서 대규모 언어 모델(LLM), 확산 모델, 비전 트랜스포머를 맞춤화하는 데 널리 사용됩니다. IoT 기기용 장거리 무선 프로토콜인 LoRa는 이 용어와 관련이 없습니다.

LoRA 작동 방식#

미세 조정은 크기가 d × k인 사전 학습 가중치 행렬 W를 업데이트 ΔW만큼 변경합니다. LoRA는 이 업데이트의 내재적 랭크가 낮다고 가정하므로, 얇은 행렬 두 개의 곱 ΔW = B × A로 표현할 수 있습니다. 여기서 A는 r × k, B는 d × r이며 랭크 r은 d나 k보다 훨씬 작습니다. 레이어 출력은 h = Wx + (α / r) × BAx가 되며, α는 고정된 스케일링 상수입니다. A는 작은 무작위 값으로, B는 0으로 초기화하므로 학습은 사전 학습 모델과 정확히 동일한 상태에서 시작합니다. 역전파 중에는 A와 B만 업데이트되며, 이로 인해 고정된 모든 가중치에 대한 옵티마이저 상태도 제거됩니다.

4096 × 4096 투영의 경우 전체 미세 조정은 약 1,680만 개의 가중치를 학습하지만, 랭크 8 어댑터는 8 × (4096 + 4096) = 65,536개를 학습합니다. 아래 PyTorch 스크립트는 이러한 어댑터를 만들고 고정된 레이어에 병합합니다:

import torch
from torch import nn

# A frozen pretrained 4096 x 4096 projection, like one in a transformer attention block
base = nn.Linear(4096, 4096).requires_grad_(False)

# LoRA's trainable rank-8 update: B @ A, scaled by alpha / r
# B starts at zero, so the adapted layer initially matches the pretrained one
r, alpha = 8, 16
A = nn.Parameter(torch.randn(r, 4096) * 0.01)
B = nn.Parameter(torch.zeros(4096, r))
trainable = A.numel() + B.numel()
total = trainable + sum(p.numel() for p in base.parameters())
print(f"Trainable: {trainable:,} of {total:,} parameters ({trainable / total:.2%})")

# After training, merge the update into the base weight so inference costs nothing extra
nn.init.normal_(B, std=0.01)  # stand-in for trained values
x = torch.randn(2, 4096)
adapted = base(x) + (alpha / r) * (x @ A.T @ B.T)
merged = nn.functional.linear(x, base.weight + (alpha / r) * B @ A, base.bias)
print(f"Merged layer matches adapter output: {torch.allclose(adapted, merged, atol=1e-5)}")

어댑터는 레이어의 파라미터 16,846,848개 중 65,536개, 즉 0.39%를 학습합니다. B × A를 W에 합치면 어댑터를 별도로 실행할 때와 동일한 출력이 나옵니다. 따라서 병합된 LoRA 모델은 원본과 정확히 같은 속도로 실행됩니다. 이는 모든 순전파에 추가 연산을 더하는 기존 어댑터 레이어보다 유리합니다.

실제 환경에서 LoRA 사용하기#

원 논문은 트랜스포머의 어텐션 쿼리 및 값 투영만 조정했지만, 현재는 많은 레시피가 모든 선형 레이어를 대상으로 합니다. 랭크와 α가 주요 하이퍼파라미터입니다. Hugging Face PEFT 라이브러리의 기본값은 r = 8, α = 8입니다. 기본 모델은 변경되지 않으므로 한 번 배포할 때 모델 사본 하나만 유지하고 작업별 소형 어댑터를 교체할 수 있습니다. GPT-3 175B의 쿼리 및 값 투영에 랭크 4를 사용하면 조정된 체크포인트마다 크기가 350GB에서 약 35MB로 줄어 약 10,000배 작아집니다.

  • 언어 모델: 팀은 단일 GPU에서 오픈 LLM을 특정 도메인, 문체 또는 지시 형식에 맞게 조정하며, 종종 LoRA를 지시 튜닝 데이터와 결합합니다.
  • 이미지 생성: LoRA 파일은 Stable Diffusion 및 유사 모델에 캐릭터, 제품 또는 미술 스타일을 학습시키며, 기본 체크포인트와 별도로 공유하고 함께 적용할 수 있습니다.
  • 비전 및 멀티모달 모델: 어댑터는 백본을 재학습하지 않고도 비전 트랜스포머와 비전 언어 모델(VLM)을 의료, 산업 또는 문서 이미지에 맞게 특화합니다.

변형#

  • QLoRA: 기본 모델을 4비트 NormalFloat 정밀도로 고정하고 그 위에서 LoRA 어댑터를 학습합니다. Dettmers 외 연구진은 이를 사용해 48GB GPU 한 대에서 650억 파라미터 모델을 미세 조정하면서 16비트 전체 미세 조정 성능을 유지했습니다.
  • DoRA: 사전 학습된 각 가중치를 크기와 방향으로 분리하고 방향에만 LoRA를 적용합니다. 추론 비용은 동일하게 유지하면서 전체 미세 조정과의 정확도 격차를 줄입니다.
  • 파라미터 효율적 미세 조정: 모델의 일부만 학습하는 방법을 통칭합니다. 레이어 고정은 가장 간단한 방식이며, Ultralytics YOLO에서는 freeze 학습 인수로 사용할 수 있습니다. 이 인수는 YOLO26 모델의 처음 N개 레이어를 사전 학습 가중치로 유지하고 나머지 레이어를 학습합니다.
  • 전체 파인튜닝: 모든 가중치를 업데이트하고 작업마다 모델 전체 크기의 복사본을 저장합니다. 프로그래밍과 수학 작업에서는 전체 파인튜닝이 표준 LoRA보다 상당히 높은 성능을 보였으며, LoRA는 기본 모델의 다른 기술을 치명적으로 덜 망각했습니다.
  • 프롬프트 튜닝: 입력 앞에 추가하는 소프트 프롬프트 임베딩을 학습하며, 모델의 모든 가중치는 고정된 상태로 유지합니다.
  • 전이 학습: 한 작업에서 얻은 지식을 다른 작업에 재사용하는 일반적인 개념입니다. LoRA는 이를 효율적으로 수행하는 한 가지 방법입니다.
  • 모델 병합: 별도로 미세 조정한 모델의 가중치를 결합합니다. 여러 LoRA 어댑터를 하나의 기본 모델에 병합하는 것이 일반적인 사례입니다.

솔루션 살펴보기

스포츠 분야의 컴퓨터 비전

스포츠 분야의 컴퓨터 비전

Ultralytics YOLO가 선수 및 공 추적, 경기력 분석, 코칭 인사이트, 선수 재활을 통해 스포츠 비전을 구현하는 방법을 알아보세요.
자세히 알아보기
항공 이미지 컴퓨터 비전

항공 이미지 컴퓨터 비전

Ultralytics YOLO를 활용해 드론 및 항공 이미지를 농업, 양식업, 보전, 지리 공간 분석을 위한 실시간 인사이트로 전환하세요.
자세히 알아보기
항공우주 분야의 컴퓨터 비전

항공우주 분야의 컴퓨터 비전

Ultralytics YOLO를 활용해 항공기 검사, 활주로 FOD 감지, 공항 지상 운영, 복합재 결함 감지 등 항공우주 분야에 컴퓨터 비전을 적용하세요.
자세히 알아보기
보안 분야의 컴퓨터 비전

보안 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 모든 시설을 보호하세요. Vision AI는 경계 모니터링, 위협 감지, 번호판 인식, 작업장 안전을 지원합니다.
자세히 알아보기
로보틱스 분야의 컴퓨터 비전

로보틱스 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 더 스마트한 머신을 구현하세요. 로보틱스 분야의 Vision AI는 자율 주행, 인식, 객체 추적, 실시간 제어를 지원합니다.
자세히 알아보기
물류 분야의 컴퓨터 비전

물류 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 물류를 간소화하세요. 비전 AI는 화물 검사, 분류, 차량 추적, 실시간 창고 안전 모니터링을 지원합니다.
자세히 알아보기
리테일 분야의 컴퓨터 비전

리테일 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 리테일의 새로운 가능성을 열어 보세요. 비전 AI는 재고 추적, 선반 모니터링, 대기열 관리, 더욱 심층적인 고객 인사이트를 지원합니다.
자세히 알아보기
의료 분야의 컴퓨터 비전

의료 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 의료 솔루션을 구축하세요. 의료 분야의 비전 AI는 의료 영상 판독을 가속화하고, 진단을 개선하며, 환자 모니터링을 지원합니다.
자세히 알아보기
제조 분야의 컴퓨터 비전

제조 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 제조 공정을 최적화하세요. 비전 AI는 품질 관리, 결함 탐지, PPE 규정 준수, 조립 라인 자동화를 지원합니다.
자세히 알아보기
자동차 분야의 컴퓨터 비전

자동차 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 자동차 분야에 컴퓨터 비전을 적용하세요. 비전 AI는 도로 안전, 운전자 지원, 차량 자동화를 개선해 더 스마트한 도로를 구현합니다.
자세히 알아보기
농업 분야의 컴퓨터 비전

농업 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 스마트 농업에 비전 AI를 도입하세요. 작물 모니터링, 가축 추적, 정밀 농업을 지원하여 더 높은 수확량과 더 스마트한 농업을 실현합니다.
자세히 알아보기

함께 AI의 미래를 만들어 가세요!

머신러닝의 미래와 함께 여정을 시작하세요