Low-rank adaptation(LoRA)이란?

Low-rank adaptation(LoRA)은 전체 모델을 재훈련하지 않고 특정 용도에 맞게 대규모 머신 러닝 모델을 조정하는 방법입니다.

학습 목표

이 글을 읽은 후에 다음을 할 수 있습니다:

  • "low-rank adaptation"(LoRA)의 정의
  • LoRA의 작동 원리 쉽게 설명하기
  • LoRA 사용의 이점 이해하기

글 링크 복사

Low-rank adaptation(LoRA)이란?

Low-rank adaptation(LoRA)은 머신 러닝 모델을 새로운 컨텍스트에 적합하도록 빠르게 조정하는 기술입니다. LoRA는 거대하고 복잡한 머신 러닝 모델을 특정 용도에 훨씬 더 적합하게 만드는 데 도움이 됩니다. 모델 전체를 변경하하는 대신 원래 모델에 간단한 요소를 추가하는 방식으로 작동합니다. LoRA는 개발자가 구축한 머신 러닝 모델의 사용 사례를 빠르게 확장할 수 있도록 지원합니다.

LoRA의 기능은?

ChatGPT와 같은 대규모 언어 모델(LLM)에 사용되는 것과 같은 크고 복잡한 머신 러닝 모델을 설정하려면 상당한 시간과 자원이 필요합니다. 이러한 모델에는 특정 값으로 설정된 수조 개의 매개 변수가 있을 수 있습니다. 이 프로세스가 완료되면 모델은 보통 성능이 뛰어나고 정확할 수 있지만, 특정 작업을 수행하기 위해 반드시 미세 조정될 필요는 없습니다.

특정 컨텍스트에서 모델을 작동하게 하려면 모든 매개 변수를 변경하는 것과 같이 많은 재훈련이 필요할 수 있습니다. 이러한 모델에는 매개 변수가 많기 때문에 이러한 재훈련 작업은 비용과 시간이 많이 소요됩니다. LoRA는 모델을 재학습하지 않고 빠르게 조정할 수 있는 방법을 제공합니다.

Jim이 유럽에서 북미로 이사했는데 두 지역의 전기 플러그 표준이 다르기 때문에 모든 가전제품(전자레인지, 커피포트 등)이 새 집의 콘센트와 호환되지 않는다고 가정해 보겠습니다. Jim에게는 두 가지 옵션이 있습니다. 집의 모든 콘센트를 뜯어내고 가전제품에 맞게 교체하여 플러그에 끼울 수 있습니다. 또는 저렴한 콘센트 어댑터 몇 개를 구입하여 가전제품에 연결할 수도 있습니다.

LoRA는 Jim에게 두 번째 옵션과도 같습니다. LoRA를 사용하면 모델을 처음부터 완전히 재학습하는 가볍고 수정 가능한 구성 요소를 추가하여 새로운 컨텍스트에 맞게 모델을 조정할 수 있습니다. AI 개발자에게 이 접근 방식은 훨씬 더 빠르고 리소스 집약도가 낮습니다. Jim이 철물점에서 어댑터 몇 개를 구매하는 것이 시공업체를 고용하여 전기 콘센트를 교체하는 것보다 훨씬 저렴했던 것처럼 말입니다.

Low-Rank Adaptation(LoRA)은 머신 러닝 모델에 어떤 영향을 미칠까요?

머신 러닝 모델은 머신 러닝 알고리즘과 데이터 세트의 조합입니다. 이 조합을 통해 이전에 접해보지 못한 데이터 세트에서도 패턴을 파악하고, 개체를 찾거나, 항목 간의 관계를 도출할 수 있는 컴퓨터 프로그램을 생성합니다.

텍스트 생성, 이미지 생성 또는 기타 최첨단 머신 러닝 앱 실행과 같은 복잡한 작업의 경우 모델은 방대한 데이터를 바탕으로 매우 복잡한 알고리즘을 활용합니다. 알고리즘이나 데이터 세트를 약간만 수정해도 모델이 다른 결과를 생성할 수 있습니다. 그러나 특정 컨텍스트에 필요한 종류의 결과를 얻으려면 많은 학습을 거쳐야 할 수 있습니다.

LoRA는 전체 모델을 다시 구축하는 대신 모델의 가중치* 와 매개 변수를 그대로 고정합니다. 그런 다음 원래의 모델 위에 저차원 행렬이라는 간단한 요소를 추가한 다음, 새로운 입력에 적용하여 컨텍스트에 맞는 결과를 얻습니다. 저차원 행렬은 원래 모델의 가중치를 조정하여 출력이 원하는사용 사례와 일치하도록 합니다.

*머신 러닝 모델에서 '가중치'는 다양한 유형의 입력의 중요성을 결정하는 데 도움이 되는 수학적 값입니다.

LoRA에서 저차원 행렬이란?

수학에서 행렬은 다음과 같은 숫자의 배열 또는 집합입니다.

저차원 행렬 예시: 첫 번째 열 2 4 6, 두 번째 열 4 8 12, 세 번째 열 6 12 18

행렬은 머신 러닝 모델과 신경망의 작동하는 방식에서 중요한 부분입니다. 이러한 용도로 사용할 경우 행렬은 예시의 규모보다 훨씬 클 수 있습니다. LoRA의 경우 이해해야 할 중요한 점은 저차원 행렬은 큰 행렬에 비해 크기가 작고 훨씬 적은 수의 값을 갖습니다. 메모리를 많이 차지하지 않으며 덧셈과 곱셈과 같은 연산에 필요한 계산 단계가 적습니다. 따라서 컴퓨터가 더 빠르게 처리할 수 있습니다.

LoRA는 고정된 원래 머신 러닝 모델에 저차원 행렬을 추가합니다. 이 행렬에는 결과를 생성할 때 모델에 적용할 수 있는 새로운 가중치가 포함되어 있습니다. 이 프로세스에서는 최소한의 컴퓨팅 성능과 훈련 시간으로 모델이 생성하는 출력이 변경됩니다.

앞서 사용한 비유에서 Jim은 가전제품을 벽에 연결하기 위해 저렴한 어댑터를 구입했습니다. 마찬가지로, 저차원 행렬은 저렴한 가격의 어댑터와 유사하며, 전원 콘센트는 원래의 머신 러닝 모델과도 같습니다.

머신 러닝은 어떻게 작동할까요?

머신 러닝은 사람의 명시적인 지시를 받지 않고도 데이터에서 패턴을 찾는 방법을 학습할 수 있는 일종의 통계 알고리즘을 지칭하는 용어입니다. 머신 러닝은 예시를 일반화하여 이전에 본 적이 없는 데이터를 분류할 수 있습니다. 머신 러닝은 많은 유형의 인공 지능(AI) 앱의 기반입니다.

Cloudflare는 개발자가 다음과 같은 서비스를 통해 인기 있는 머신 러닝 모델을 신속하게 통합할 수 있도록 지원합니다.

Cloudflare for AI 전체에 대해 자세히 알아보세요.