LoRA(저순위 적응)란 무엇인가요?

작성자

Joshua Noble

Data Scientist

LoRA란 무엇인가요?

저순위 적응(LoRA)은 머신 러닝 모델을 새로운 맥락에 적응시키는 데 사용되는 기술입니다. 전체 모델을 변경하지 않고 원래 모델에 경량 부품을 추가하여 대형 모델을 특정 용도에 맞게 조정할 수 있습니다. 데이터 과학자는 완전히 새로운 모델을 구축할 필요 없이 모델을 사용할 수 있는 방법을 빠르게 확장할 수 있습니다.

이 기술은 원래 Edward Hu, Yelong Shen 및 공동 연구자들이 논문 LoRA: Low-Rank Adaptation Of Large Language Models1에서 발표했습니다. 이 논문에서 그들은 LoRA를 사용하여 축소 및 재훈련된 모델이 다양한 벤치마크 작업에서 기본 모델보다 성능이 뛰어났다는 것을 보여주었습니다. 완전한 미세 조정이 필요하지 않고 훨씬 적은 수의 훈련 가능한 모델 매개변수를 사용하여 모델 성능을 개선할 수 있습니다.

전문가가 전하는 최신 AI 트렌드

가장 중요하고 흥미로운 AI 뉴스에 대한 선별된 인사이트를 확인하세요. 주간 Think 뉴스레터를 구독하세요. IBM 개인정보 보호정책을 참조하세요.

감사합니다! 구독이 완료되었습니다.

구독은 영어로 제공됩니다. 모든 뉴스레터에는 구독 취소 링크가 있습니다. 여기에서 구독을 관리하거나 취소할 수 있습니다. 자세한 정보는 IBM 개인정보 보호정책을 참조하세요.

LoRA는 무슨 역할을 하나요?

ChatGPT같은 대규모 언어 모델(LLM)에 사용되는 것과 같이 크고 복잡한 머신 러닝 모델은 설정하는 데 오랜 시간과 많은 리소스가 소요됩니다. 여기에는 특정 값으로 설정된 수조 개의 매개변수가 있을 수 있습니다. 이 프로세스가 완료되면 모델은 일반적으로 강력하고 정확할 수 있지만 특정 작업을 수행하기 위해 반드시 미세 조정되어야 하는 것은 아닙니다.

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

예를 들어, GPT-3 모델을 완전히 미세 조정하려면 훈련 데이터 세트의 크기 때문에 1,750억 개의 매개변수를 훈련해야 합니다. LoRA를 사용하면 GPT-3에 대한 훈련 가능한 매개변수를 약 1,800만 개의 매개변수로 줄일 수 있으며, 이를 통해 GPU 메모리 요구 사항을 약 2/3로 줄일 수 있습니다.

LoRA만이 효율적인 미세 조정 방법은 아닙니다. LoRA의 변형으로는 고정밀 컴퓨팅 기술과 저정밀 스토리지 방식을 결합한 미세 조정 기술인 양자화 LoRA(QLoRA)가 있습니다. 이렇게 하면 모델 크기를 작게 유지하면서도 여전히 높은 성능과 정확성을 유지할 수 있습니다.

Mixture of Experts | 12월 12일, 에피소드 85

AI 디코딩: 주간 뉴스 요약

세계적인 수준의 엔지니어, 연구원, 제품 리더 등으로 구성된 패널과 함께 불필요한 AI 잡음을 차단하고 실질적인 AI 최신 소식과 인사이트를 확인해 보세요.

LoRA 작동 방식

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

LoRA는 저순위 행렬의 개념을 활용하여 모델 훈련 프로세스를 매우 효율적이고 빠르게 만듭니다. 기존에는 LLM을 미세 조정하려면 전체 모델을 조정해야 했습니다. LoRA는 계산 및 메모리 오버헤드를 줄이기 위해 더 작은 매개변수 하위 집합(저순위 행렬)을 수정하는 데 중점을 둡니다.

다이어그램은 LoRA가 행렬 A와 B를 업데이트하여 순위 r의 더 작은 행렬을 사용하여 사전 훈련된 가중치의 변화를 추적하는 방법을 보여줍니다. LoRA 훈련이 완료되면 사전 훈련된 모델의 원래 가중치를 수정할 필요 없이 더 작은 가중치가 새로운 가중치 행렬로 병합됩니다.

저순위 적응이 모델 크기를 줄이는 방법을 보여주는 이미지

LoRA는 대규모 모델이 본질적으로 저차원 구조를 가지고 있다는 이해를 바탕으로 구축되었습니다. LoRA는 저순위 행렬이라고 하는 더 작은 행렬을 활용하여 이러한 모델을 효과적으로 조정합니다. 이 방법은 중요한 모델 변경 사항을 더 적은 매개변수로 표현할 수 있으므로 적응 프로세스를 보다 효율적으로 만들 수 있다는 핵심 개념에 중점을 둡니다.

행렬은 머신 러닝 모델과 신경 네트워크의 작동 방식의 중요한 부분입니다. 저순위의 행렬은 더 크거나 높은 순위의 행렬보다 작고 값이 훨씬 적습니다. 많은 메모리를 차지하지 않고 더하거나 곱하는 데 더 적은 단계가 필요하므로 컴퓨터가 더 빠르게 처리할 수 있습니다.

고순위 행렬은 두 개의 저순위 행렬로 분해될 수 있고, 4 x 4 행렬은 4 x 1 및 1 x 4 행렬로 분해될 수 있습니다.

4x4 행렬을 1x4 및 4x1 행렬로 축소하는 방법을 보여주는 이미지

LoRA는 고정된 원래 머신 러닝 모델에 저순위 행렬을 추가합니다. 저순위 행렬은 기본 모델의 가중치를 수정하지 않고 미세 조정 중에 경사 하강을 통해 업데이트됩니다기 이러한 행렬에는 결과를 생성할 때 모델에 적용할 새로운 가중치가 포함되어 있습니다. 곱해진 변경 행렬을 기본 모델 가중치에 추가하여 최종적으로 미세 조정된 모델을 얻습니다. 이 프로세스는 최소한의 컴퓨팅 성능과 훈련 시간으로 모델이 생성하는 아웃풋을 변경합니다.

본질적으로 LoRA는 원본 모델을 변경하지 않고 모델의 각 계층에 작고 변경 가능한 부품을 추가합니다. 이를 통해 모델의 훈련 가능한 매개변수와 훈련 프로세스에 대한 GPU 메모리 요구 사항을 크게 줄일 수 있으며, 이는 대규모 모델을 미세 조정하거나 훈련할 때 또 다른 중요한 과제입니다.

Python과 PyTorch를 사용하여 HuggingFace로 LoRA 미세 조정을 구현하기 위해 개발자는 매개변수 효율적인 미세 조정(PEFT) 라이브러리를 사용하여 LoRA 어댑터를 모델에 주입하고 업데이트 행렬로 사용할 수 있습니다. 이 라이브러리는 HuggingFace 또는 GitHub을 통해 무료로 사용할 수 있습니다. 이 라이브러리는 모델에 대한 LoRA 매개변수를 구성하는 방법을 제공합니다. 가장 일반적으로 사용되는 매개변수는 다음과 같습니다.

r: 업데이트 행렬의 순위로, 정수로 표현됩니다. 순위 분해가 낮을수록 훈련 가능한 매개 변수가 적고 업데이트 행렬이 작아집니다.

target_modules: LoRA 업데이트 행렬을 적용할 모듈(예: 주의 블록)입니다.

lora_alpha: LoRA 스케일링 계수입니다.

LoRA의 장점

LoRA의 주요 장점 중 하나는 기본 모델을 공유하고 새로운 작업을 위한 많은 작은 LoRA 모듈을 구축하는 데 사용할 수 있다는 것입니다. 공유 모델은 고정되어 사용자가 LoRA 가중치 행렬을 대체하여 작업을 전환할 수 있습니다. 두 개의 서로 다른 모델이 필요한 대신 단일 모델을 서로 다른 작업에 사용하면서 미세 조정의 성능 향상을 유지할 수 있습니다.

LoRA는 사용자가 대부분의 매개변수에 대해 경사를 계산하거나 옵티마이저 상태를 유지할 필요가 없기 때문에 훈련을 보다 효율적으로 만들고 하드웨어 진입 장벽을 낮춥니다. 대신 이 프로세스에서는 훨씬 더 작은 저순위 행렬만 최적화하면 됩니다.

LoRA의 선형 설계를 통해 데이터 과학자는 배포 시 훈련 가능한 행렬을 고정된 사전 훈련된 모델 가중치와 병합할 수 있으므로 구성별로 완전히 미세 조정된 모델에 비해 추론 지연 시간이 발생하지 않습니다.

LoRA는 접두사 튜닝과 같은 모델 성능을 개선하기 위해 다른 기술과 결합하여 유연하게 만들 수 있습니다.

장단점

LoRA는 훈련 가능한 매개변수 수를 크게 줄이지만 장단점도 있습니다. 이 프로세스는 행렬 분해 중에 정보 손실을 생성합니다. LoRA는 전체 중량 행렬을 더 작은 구성 요소로 줄이기 때문에 프로세스에서 일부 세부 정보가 손실될 수 있습니다. 이는 모델 과적합과 비슷합니다. 그러나 LLM의 경우 딥 러닝 모델이 너무 과도하게 매개변수화되어 작업에 필요한 것보다 더 많은 매개변수를 포함하기 때문에 손실이 최소화되는 경우가 많습니다. '과도하게 매개변수화'되었다는 것은 이러한 모델이 훈련 데이터에 필요한 것보다 더 큰 경우가 많다는 것을 의미합니다. 모든 매개변수가 중요한 것은 아닙니다. 매개변수에는 중복성, 견고성 및 복원력이 있습니다. 이 복원력을 제거하면 모델의 정확도가 떨어질 수 있으므로 업데이트 행렬의 순위를 LoRA 프로세스의 일부로 조정할 수 있습니다.

관련 솔루션
파운데이션 모델

watsonx 포트폴리오의 IBM 파운데이션 모델 라이브러리에 대해 자세히 알아보고 비즈니스를 위한 생성형 AI를 자신 있게 확장하세요.

watsonx.ai에 대해 알아보기
인공 지능 솔루션

업계 최고의 AI 전문성과 솔루션 포트폴리오를 보유한 IBM과 함께 AI를 비즈니스에 활용하세요.

AI 솔루션 살펴보기
AI 컨설팅 및 서비스

AI 추가를 통해 중요한 워크플로와 운영을 혁신함으로써 경험, 실시간 의사 결정 및 비즈니스 가치를 극대화하세요.

AI 서비스 살펴보기
다음 단계 안내

IBM watsonx 포트폴리오의 IBM 파운데이션 모델 라이브러리에 대해 자세히 알아보고 비즈니스를 위한 생성형 AI를 자신 있게 확장하세요.

watsonx.ai에 대해 알아보기 IBM Granite AI 모델 살펴보기
각주

1. Hu, Edward, et al, LoRA: Low-Rank Adaptation of Large Language Models, 2021년