Julia Turc의 LoRA 실험에서 랭크 1과 랭크 16은 정확도 차이가 거의 없었습니다 | DAKER 커뮤니티
Julia Turc 유튜브 채널이 10월 25일 올린 21분짜리 영상 「This question inspired LoRA fine-tuning」은 대형 언어 모델을 미세조정할 때 가장 많이 쓰는 LoRA가 왜 아주 작은 랭크로도 잘 동작하는지를 그림과 실험으로 설명합니다. 영상 후반의 실험이 특히 실용적입니다. Qwen 3.8-27B를 질문 난이도 분류기로 미세조정했더니 LoRA 랭크 1과 랭크 16의 검증 정확도가 둘 다 학습 전 48%에서 70%대 중반까지 올랐고, 두 설정 사이에 의미 있는 차이가 없었습니다. 작은 모델을 대회용으로 다듬는 참가자에게 바뀌는 점은 분명합니다. 랭크를 키우는 데 GPU 메모리와 시간을 쓰기 전에, 가장 작은 랭크가 이미 충분한지부터 확인해야 합니다. 오늘 바로 할 일은 고정된 검증 세트 하나를 만들고 랭크 1과 랭크 16을 같은 조건으로 한 번씩 돌려 보는 것입니다.

영상은 왜 프롬프트 대신 미세조정을 고르는지부터 묻습니다
영상은 먼저 질문 하나를 던집니다. 이렇게 성능 좋은 언어 모델이 많은데, 새 작업을 굳이 미세조정해야 합니까? 프롬프트에 작업 설명을 잘 쓰면 되지 않습니까? Julia Turc는 Cursor의 자동 모드를 예로 듭니다. 자동 모드는 사용자의 요청을 처리할 수 있는 가장 저렴한 모델로 보내는 라우터입니다. 버튼 색을 바꾸는 요청이면 작은 모델로 충분하고, 여러 서비스에 걸친 경쟁 상태를 추적하는 요청이면 더 큰 모델이 필요합니다.
이 라우터를 기성 언어 모델에 1점부터 5점까지 채점 기준을 주고 판단하게 만드는 방법도 있습니다. 문제는 라우터 자체가 싸야 한다는 점입니다. 라우터가 비싸면 저렴한 모델로 보내는 의미가 사라집니다. 그런데 작은 모델은 절대 점수를 매기는 일에 약합니다. 영상이 소개한 연구에 따르면 Qwen 3 8B 계열 모델은 프롬프트의 점수 목록 순서를 임의로 바꾸기만 해도 질문의 35%에서 답을 바꿨고, 점수를 내림차순으로 나열하면 46%에서 답을 바꿨습니다. 프롬프트의 사소한 차이가 결과를 크게 흔드는 셈입니다.
Julia Turc는 미세조정을 설명 대신 보여 주는 방식이라고 정리합니다. 정답 점수가 붙은 질문 수천 개를 보여 주면 모델은 2점이나 4점이 무슨 뜻인지 설명문이 아니라 예시에서 배웁니다. 프롬프트에 예시를 직접 넣는 방법, 곧 인컨텍스트 학습도 가능합니다. 다만 그러면 라우터에 질문이 들어올 때마다 그 예시 토큰 값을 다시 냅니다. 미세조정은 학습 비용을 한 번만 냅니다. 영상은 Cursor가 실제로 미세조정을 택했고, 60만 건이 넘는 실제 요청으로 라우터를 학습했다고 전합니다.
전체 미세조정은 얼마나 비쌉니까
전체 미세조정은 모델의 모든 가중치를 고칩니다. 영상은 이를 손실 지형 위를 굴러 내려가는 공으로 그립니다. 바닥의 각 점은 가중치 조합 하나이고, 높이는 그 조합이 작업을 얼마나 못하는지를 뜻합니다. 공은 기울기의 반대 방향으로 조금씩 움직여 사전학습 모델에서 미세조정된 모델까지 이동합니다. 이 전체 이동량을 영상은 적응(adaptation)이라고 부르고, 미세조정의 핵심은 이 적응을 찾는 일이라고 설명합니다.
문제는 비용입니다. 전체 미세조정은 매 단계마다 모든 가중치의 기울기를 계산하고 저장합니다. Adam 같은 최신 옵티마이저는 기울기 외에 추가 정보를 저장해 필요한 공간을 두세 배로 늘립니다. 영상은 2.8조 개 파라미터를 가진 Kimi K3 규모의 모델을 전체 미세조정하려면 중간 계산 결과를 빼고도 최소 30테라바이트의 GPU 메모리가 필요하다고 설명합니다. 그래서 일부 파라미터만 학습하는 방법들이 나왔고, 이를 묶어 파라미터 효율적 미세조정(PEFT)이라고 부릅니다. 그중 가장 널리 쓰이는 방법이 LoRA, 곧 저랭크 적응입니다.
LoRA는 가중치 변화를 두 개의 작은 행렬로 나눕니다
LoRA는 트랜스포머의 각 가중치 행렬마다 따로 적용됩니다. 예를 들어 한 층의 쿼리, 키, 밸류, 출력 행렬이 각자 자기 적응을 갖습니다. 가중치 행렬 W의 크기가 M×N이면 그 변화량도 같은 크기입니다. 영상에 따르면 Kimi K3에서는 행렬 하나가 2억 4,200만 개 값에 이릅니다. 층 하나의 행렬 하나가 그렇습니다.
LoRA는 이 변화량을 하나하나 찾지 않고, 중간 차원이 R인 두 행렬 B와 A의 곱으로 제한합니다. 영상의 예시에서 R을 10으로 두면 학습할 값은 약 40만 개로 줄어들고, 이는 원래 행렬의 0.2%도 되지 않습니다. 학습하는 동안 사전학습 가중치는 고정하고 B와 A만 기울기를 따라 움직입니다. 그래서 영상 첫머리에서 말하듯, 거대한 모델에도 모델 크기의 0.2%보다 적은 가중치를 학습해 새 기술을 가르칠 수 있습니다.
영상은 이 제한을 기하학으로 풀어 설명합니다. 전체 미세조정은 공이 기울기가 가리키는 어느 방향으로든 갈 수 있게 둡니다. LoRA는 몇 개의 방향을 학습하고, 각 방향으로 얼마나 움직일지를 정하는 방식입니다. B×A를 합으로 다시 쓰면, A의 각 행은 허용된 이동 방향을 정하고 B의 각 열은 그 방향으로 얼마나 움직일지를 정합니다. 하이퍼파라미터 R은 이렇게 쓰는 방향의 수이자 변화량 행렬 랭크의 상한입니다. 방향 중 일부는 다른 방향의 합으로 만들 수 있어 중복될 수 있기 때문에, 실제 랭크는 R보다 작을 수 있습니다.
2018년 실험은 작업의 난이도를 숫자로 쟀습니다
왜 R을 그렇게 작게 잡아도 됩니까? 영상은 그 답을 2018년 Uber 연구진의 논문에서 찾습니다. 이 연구는 효율적인 미세조정 방법을 찾으려던 것이 아니라 작업이 얼마나 어려운지를 숫자로 재려 했습니다. 방법은 이렇습니다. 무작위로 초기화한 약 20만 개 파라미터의 완전연결 신경망을 준비하고, 20만 개 값을 가진 무작위 방향 여러 개를 고정합니다. 그다음 각 방향의 계수만 학습해, 제약 없이 학습한 모델 성능의 90% 이상에 도달하려면 방향이 몇 개 필요한지를 찾습니다. 그 최소 개수를 작업의 내재 차원이라고 부릅니다.
영상이 소개한 값은 다음과 같습니다. 거꾸로 선 진자 균형 잡기는 4, 아타리 퐁은 약 6,000, CIFAR-10 이미지 분류는 약 9,000이었습니다. 손글씨 숫자 인식인 MNIST는 750, 관절 모터 17개를 제어해 걷는 시뮬레이션 휴머노이드는 700이었습니다. ImageNet은 50만을 넘긴 지점에서 계산 자원이 바닥나 값을 얻지 못했습니다. Julia Turc는 이 숫자가 모델 구조와 손실 함수에 따라 달라지므로 작업끼리 완벽하게 비교할 수는 없다고 덧붙입니다. 그래도 어떤 작업은 생각보다 훨씬 적은 방향만으로 학습된다는 요점은 남습니다.
Julia Turc는 영상에서 「이것은 모델 크기의 백만분의 일에 불과합니다」라고 말합니다. 3억 5,500만 개 파라미터의 사전학습 모델을 분류기로 바꾸는 데 무작위 방향 322개면 충분했다는 결과를 두고 한 말입니다.
이 결과는 2020년 Facebook 연구진의 후속 실험에서 나왔습니다. 연구진은 사전학습된 RoBERTa large를 두 문장이 같은 뜻인지 판별하는 분류기로 미세조정하며 내재 차원을 쟀고, 그 값이 322였습니다. LoRA 저자들은 이 아이디어에서 실용적 가능성을 봤습니다. 무작위 방향 수백 개로 거대한 모델을 적응시킬 수 있다면, 학습된 방향 몇 개로는 더 잘할 수 있지 않겠느냐는 것입니다. 영상은 LoRA가 방향을 학습 가능하게 만들고 행렬마다 각 행이 자기만의 양으로 움직이게 하므로, R이 1이어도 무작위 방향 322개보다 더 많은 자유도를 준다고 설명합니다.
Qwen 3.8-27B 라우터 실험에서 랭크 1과 16은 차이가 없었습니다
영상 후반은 이 이론을 직접 확인합니다. Julia Turc는 Qwen 3.8-27B를 질문 난이도를 1점부터 5점으로 매기는 라우터로 미세조정합니다. 데이터는 Hugging Face에 공개된, 여러 분야의 프롬프트에 난이도 점수를 붙인 데이터셋입니다. 프롬프트의 약 50%가 2점이므로, 늘 2점만 답하는 단순 모델도 정확도 50%가 나옵니다. 이것이 첫 기준선입니다. 시험용 예시 200개를 따로 떼어 두고 다른 기준선도 잽니다.
- 기성 모델에 채점 기준을 오름차순과 내림차순으로 준 두 프롬프트는 정확도가 26%와 48.5%로 크게 갈렸습니다. Julia Turc는 2점 설명이 프롬프트 끝쪽에 놓이면 모델이 2점을 더 많이 답하는 최근성 편향을 원인으로 추정합니다.
- 점수마다 예시 2개를 넣은 인컨텍스트 학습은 59.5%로 가장 뚜렷한 개선을 보였습니다. 대신 요청 길이가 2.5배가 되어 매 질문마다 추가 토큰 값을 냅니다.
- LoRA는 랭크 1과 랭크 16으로 각각 학습했습니다. 27B 모델 기준 학습 한 번에 약 2~3달러와 200개 평가 비용 몇 센트가 들었다고 합니다.
결과는 이렇습니다. 10단계마다 정확도를 쟀더니 두 설정 모두 학습 전 48%에서 70%대 중반까지 빠르게 올랐습니다. 가장 좋은 체크포인트는 76%로 모든 기준선보다 높았습니다. 그리고 랭크 1과 랭크 16 사이에는 의미 있는 차이가 없었습니다. Julia Turc는 이 76%가 검증 정확도이므로 엄밀하게는 새 시험 세트에서 다시 재야 한다고 직접 밝힙니다.
그는 한 걸음 더 들어갑니다. 랭크 16으로 학습한 적응 행렬을 들여다보면 정말 16개 방향이 다 필요했는지 알 수 있습니다. 학습은 부동소수점 잡음이 쌓이는 과정이어서 실제 랭크는 거의 항상 최댓값인 16이 됩니다. 그래서 잡음을 걸러 내는 지표인 안정 랭크(stable rank)를 씁니다. 특잇값 분해로 행렬을 서로 직교하는 방향과 그 계수로 나누고, 가장 에너지가 큰 방향 몇 개를 모아야 전체 에너지와 같아지는지를 셉니다. 448개 적응 행렬의 안정 랭크는 대부분 1에서 7 사이였고 중앙값은 3이었습니다. 16개 방향 중 첫 번째 방향이 전체 에너지의 약 3분의 1을 차지한다는 뜻이고, 랭크 16이 이 작업에는 필요 이상으로 컸다는 근거가 됩니다.
대회 참가자에게 바뀌는 점
대회에서 작은 모델을 미세조정하는 팀은 흔히 성능이 기대에 못 미치면 랭크부터 올립니다. 이 영상은 그 순서를 뒤집어 보라고 말합니다. 적어도 분류처럼 출력이 정해진 작업에서는 랭크 1도 충분히 경쟁력이 있을 수 있고, 랭크를 키워도 정확도가 오르지 않을 수 있습니다. 그렇다면 남는 GPU 메모리와 시간은 데이터 품질, 검증 세트 설계, 학습 단계 수 조정에 쓰는 편이 낫습니다.
프롬프트만으로 해결하려는 팀에게도 교훈이 있습니다. 같은 모델에 같은 기준을 줬는데 나열 순서 하나로 정확도가 26%와 48.5%로 달라졌습니다. 채점 기준이나 선택지를 프롬프트에 넣는다면, 순서를 바꾼 두 버전으로 결과가 얼마나 흔들리는지 먼저 재 보십시오. 흔들림이 크다면 예시를 넣거나 미세조정을 검토할 신호입니다.
실행 환경이 정해진 대회라면 이 판단이 더 중요합니다. 지금 DAKER에서 열려 있는 제주 AI·빅데이터 활용 AI Agent 개발 챌린지는 대회 페이지에 센터 Agent 운영 PC 최소사양을 Intel Core i7-8700, GTX 1060, RAM 32GB로 적어 두었고, 기획서의 Agent 개발 구성에 사용 모델을 쓰도록 요구합니다. 10월 28일 오전 확인 기준으로 참가자는 74명이고, 총상금은 500만 원입니다. 이런 환경에서는 큰 모델을 그대로 올리기보다 작은 모델에 작은 LoRA 어댑터를 붙이는 구성이 현실적인 후보가 됩니다. 다만 영상의 실험은 27B 모델을 클라우드 학습 API로 다룬 것이므로, 어떤 모델이 위 사양에서 실제로 돌아가는지는 각 팀이 직접 확인해야 합니다.
오늘 바로 할 일
- 지금 미세조정 중인 작업에서 학습에 쓰지 않는 검증 세트를 고정합니다. 영상처럼 200개 정도라도 매번 같은 세트로 재야 설정끼리 비교할 수 있습니다.
- 항상 가장 많은 정답만 답하는 단순 기준선과 프롬프트 기준선을 먼저 기록합니다. 기준선이 없으면 LoRA가 실제로 얼마나 도움이 됐는지 말할 수 없습니다.
- 다른 조건은 모두 같게 두고 랭크 1과 랭크 16을 한 번씩 학습해 같은 간격으로 검증 정확도를 기록합니다.
- 두 결과에 차이가 없다면 작은 랭크를 기본값으로 정하고, 아낀 자원을 데이터 정제나 학습 단계 수 조정에 씁니다.
- 시간이 남으면 랭크 16 어댑터의 행렬마다 특잇값 분해로 안정 랭크를 계산해, 실제로 쓰인 방향 수가 몇 개인지 확인합니다.
영상에 없는 것과 확인할 점
이 영상은 하나의 분류 작업에서 랭크 1과 랭크 16을 비교한 실험입니다. 생성형 작업, 긴 답변을 쓰는 작업, 새 지식을 많이 넣어야 하는 작업에서도 같은 결과가 나온다는 근거는 영상에 없습니다. 영상이 사용한 데이터셋도 코딩만이 아니라 여러 분야의 프롬프트를 담고 있어, Julia Turc 스스로 실제 라우팅 작업의 대리 지표라고 설명합니다. 76%는 검증 정확도이고 새 시험 세트로 다시 잰 값은 아닙니다. 비용 수치는 영상 협찬사인 Fireworks의 서버리스 학습 API를 쓴 경우이며, 직접 GPU를 빌리는 환경에서는 달라집니다. 내재 차원 값들도 모델 구조와 손실 함수에 따라 바뀌므로 작업 간 비교는 참고용으로만 보십시오.
출처: Julia Turc 유튜브 채널 「This question inspired LoRA fine-tuning」(2026년 10월 25일 공개, 21분 6초), 영상에서 소개한 2018년 Uber 연구진의 내재 차원 논문과 2020년 Facebook 연구진의 사전학습 모델 내재 차원 실험, DAKER 제주 AI·빅데이터 활용 AI Agent 개발 챌린지 대회 페이지(10월 28일 확인).