사전학습 vs 파인튜닝 vs 정렬
모델이 어떻게 만들어지는지 설명할 때 세 단어가 뭉뚱그려집니다. 이들은 각기 다른 일을 하는 다른 단계입니다. 각각이 무엇을 하는지 짚어 봅니다.
현대 언어 모델이 어떻게 만들어지는지를 설명할 때, 세 단어가 거의 같은 뜻처럼 쓰입니다. 사전학습(pretraining), 파인튜닝(fine-tuning), 그리고 정렬(alignment)입니다. 이들은 같은 것이 아닙니다. 순서대로 이루어지는 세 개의 별개 단계이며, 각각 목표가 다르고, 데이터의 종류가 다르며, 최종 모델에 미치는 효과도 다릅니다. 이들을 혼동하면 모델이 무엇을 할 수 있고 왜 그렇게 행동하는지에 대한 기대도 혼란스러워집니다.
전체 구도는 이렇습니다. 사전학습은 모델에 날것의 지식과 유창함을 주고, 파인튜닝은 특정 과제를 유용한 형태로 수행하도록 가르치며, 정렬은 모델이 어떻게 행동하고 무엇을 거절할지를 빚어냅니다. 지식, 기량, 행동. 이 세 가지 다른 것이 세 번의 과정으로 쌓여 올라갑니다.
사전학습: 텍스트로부터 세계를 배우기
사전학습은 첫 번째이자 단연 가장 큰 단계입니다. 모델은 엄청난 양의 텍스트를 보고, 겉보기에는 단순한 하나의 과제를 받습니다. 다음에 무엇이 올지 예측하라는 것이죠. 상상하기 어려운 분량의 자료에 걸쳐, 모델은 다음 텍스트 조각을 거듭 추측하고 틀릴 때마다 자신을 조정합니다.
사소하게 들리지만, 인간이 써 온 모든 것에 걸쳐 다음 단어를 잘 예측하려면, 모델은 그 과정에서 어마어마한 양을 흡수해야 합니다. 문법, 사실, 문체, 추론 패턴, 논증의 구조, 대화의 리듬 같은 것들 말이죠. 다음 단어 예측이 과제이지만, 폭넓은 역량은 그 부산물입니다. 바로 여기서 모델은 유창함과, 자신이 아는 것의 대부분을 얻습니다.
사전학습의 핵심은 그것이 의도적으로 초점을 두지 않는다는 점입니다. 모델은 도움이 되는 법이나, 질문에 답하는 법이나, 지시를 따르는 법을 배우는 것이 아닙니다. 그것은 온갖 종류의 텍스트를 이어 가는 법을 배웁니다. 갓 사전학습을 마친 모델은 엄청나게 박식하지만 거의 쓸 수 없습니다. 질문을 던지면 더 많은 질문으로 이어 갈 수도 있는데, 그것이 모델이 본 텍스트의 그럴듯한 이어짐이기 때문입니다. 지능의 원재료는 갖추었지만 예의범절은 전혀 없는 셈입니다.
파인튜닝: 지식을 쓸 수 있는 기량으로 바꾸기
파인튜닝은 폭넓게 유능하지만 초점이 없는 사전학습된 모델을 받아, 특정하고 유용한 방식으로 행동하도록 가르칩니다. 구별 없는 텍스트의 바다 대신, 모델은 원하는 행동을 보여 주는 더 작고 엄선된 예시들을 봅니다. 좋은 답이 짝지어진 질문, 올바른 응답이 짝지어진 지시, 알맞은 출력 형태가 짝지어진 과제 같은 것들이죠.
모델은 사전학습으로부터 이미 아주 많은 것을 압니다. 파인튜닝은 새로운 사실을 가르친다기보다, 아는 것을 어떻게 활용할지를 가르칩니다. 모델은 텍스트가 질문처럼 보이면 기대되는 이어짐이 답이라는 것, 지시는 따라 읊는 것이 아니라 수행해야 한다는 것, 요약 요청은 요약을 요구한다는 것을 배웁니다. 날것의 역량은 이미 거기 있었습니다. 파인튜닝은 그것을 쓸 수 있는 형태로 물길을 냅니다.
이 단계는 사전학습보다 훨씬 작고 저렴한데, 모델을 새로 만드는 것이 아니라 이미 있는 모델의 방향을 잡아 주기 때문입니다. 또한 대부분의 과제별 적응이 일어나는 곳이기도 합니다. 같은 사전학습 토대를 비싼 첫 단계를 다시 거치지 않고도 서로 다른 방향으로, 즉 도움이 되는 어시스턴트로, 코딩 도구로, 좁은 전문가로 파인튜닝할 수 있습니다.
정렬: 행동, 가치, 판단을 빚어내기
정렬은 모델이 일단 유능하고 유용해진 뒤에 어떻게 행동하는가에 관한 것입니다. 파인튜닝된 모델은 질문에 답하고 지시를 따를 수 있지만, 그것만으로는 충분하지 않습니다. 우리는 모델이 모르는 것에 대해 정직하기를, 해로운 요청을 거절하기를, 사실을 확신에 차서 지어내지 않기를, 그리고 단지 그럴듯한 것이 아니라 진정으로 도움이 되는 어조로 응답하기를 바랍니다. 정렬은 이런 자질들을 다루는 단계입니다.
정렬을 규정하는 어려움은, 원하는 행동을 예시만으로 명세하기가 어렵다는 점입니다. 수학 문제에 올바른 답을 쓰는 것은 쉽지만, 모호하거나 민감하거나 적대적인 요청을 모델이 정확히 어떻게 다뤄야 하는지를 예시 하나하나로 적어 내는 것은 훨씬 어렵습니다. 그래서 정렬은 종종 다른 신호에 의존합니다. 두 응답 중 어느 쪽이 더 나은지에 대한 인간의 판단을 사용해, 고정된 정답표가 아니라 선호되는 행동에 대한 일반적인 감각을 모델에 가르치는 것이죠.
그 결과는 기량뿐 아니라 성향, 즉 도움이 되려는 태도, 신중함, 불확실성에 대한 정직함까지 빚어진 모델입니다. 잘 만들어진 어시스턴트가 위험한 일에 협력하기를 거절하고, 확신이 없을 때 그렇다고 인정하며, 곁길로 새지 않고 과제에 머무는 것은 바로 정렬 덕분입니다. 그것은 어떤 일을 할 수 있는 모델과, 그 일을 실제로 맡길 만큼 신뢰할 수 있는 모델의 차이입니다.
순서가 왜 중요한가
이 단계들은 서로 바꿔 쓸 수 없으며, 반드시 이 순서로 일어나야 합니다. 아직 기량이 없는 모델을 정렬할 수 없고, 지식이 없는 모델에 기량을 줄 수 없습니다. 각 단계는 그 아래 층 위에 쌓입니다.
사전학습은 지식과 유창함이라는 날것의 토대를 공급합니다. 그 위에서 작동하는 파인튜닝은 그것을 유용한 일을 하는 도구로 빚습니다. 그 위에서 작동하는 정렬은, 실제 사용이 던지는 열린 결말의 어수선한 상황에서 그 도구가 어떻게 행동할지를 다스립니다. 토대를 건너뛰면 이후 단계는 다룰 것이 없고, 이후 단계를 건너뛰면 예의범절도 판단도 없는 날것의 역량만 남습니다.
왜 그토록 많은 지식이 첫 단계에서 오는가
흔한 오해는 모델이 파인튜닝이나 정렬 중에 사실을 배운다는 것입니다. 대체로 그렇지 않습니다. 모델이 아는 것의 압도적 다수는 사전학습 중에, 즉 자신의 데이터 대부분을 보는 동안에 새겨집니다. 이후 단계들은 비교적 미미하며, 새로운 정보를 적재하는 것이 아니라 행동과 형태에 관한 것입니다.
여기에는 실용적인 함의가 있습니다. 모델에 지식이 빠져 있다면, 가령 최근 사건이나 당신의 비공개 문서에 대해서라면, 파인튜닝과 정렬은 대개 해결책이 아닙니다. 지식이 들어오는 곳이 아니기 때문입니다. 더 나은 도구는 질문하는 시점에 모델에 정보를 주는 것이거나, 막대한 비용을 들여 지식이 집약된 첫 단계의 일부를 다시 거치는 것입니다. 어느 단계가 무엇을 하는지 이해하면 어느 손잡이를 잡아야 할지 알 수 있습니다.
이 단계들 중 무엇도 보장하지 않는 것
세 단계 모두의 한계를 분명히 해 둘 가치가 있습니다. 그중 무엇도 모델을 무오류로 만들지 않습니다. 사전학습은 데이터에 있는 오류와 편향을 흡수할 수 있습니다. 파인튜닝은 모델을 과제에 유창하게 만들면서도 정확하게 만들지는 못할 수 있습니다. 정렬은 학습된 경우에서는 행동을 빚되, 학습되지 않은 경우에서는 틈을 남길 수 있습니다. 이 단계들은 문제를 줄이지, 없애지 않습니다.
특히 잘 정렬되고 잘 파인튜닝된 모델도 여전히 확신에 차고 유창하면서 틀린 답을 내놓을 수 있습니다. 유창함과 진실은 다른 것이고, 직접 학습되는 것은 앞의 것뿐이기 때문입니다. 이 3단계 과정은 오늘날 가장 유능하고 가장 잘 행동하는 모델들이 만들어지는 방식이지만, 그것은 보장을 설치하는 것이 아니라 경향을 빚는 과정입니다. 그 출력을 구조적으로 신뢰할 수 있는 것으로 취급하는 것이야말로, 이 과정 자체가 막을 수 없는 실수입니다.
정리
사전학습, 파인튜닝, 정렬은 세 가지 일을 하는 세 단계입니다. 지식, 기량, 그리고 행동. 사전학습은 모델이 유창하고 박식해지되 초점이 없을 때까지 텍스트를 들이붓습니다. 파인튜닝은 그 날것의 역량을 유용한 과제 행동으로 빚습니다. 정렬은 실제 사용이 요구하는 열린 결말의 상황에서 모델이 어떻게 처신할지를 다스립니다. 이들은 순서대로 서로 위에 쌓이고, 모델이 아는 것의 대부분은 첫 단계에서 도착합니다. 이 셋을 구별해 두면, 모델이 할 수 있는 것과 할 수 없는 것에 관한 많은 혼란이 풀립니다.
