107억개 파라미터 ‘SOLAR-10.7B’가 대표적, LLM 최신 기법
‘머지키트’로 두 개 이상 모델 병합, 'ties', 'linear' 등 활용 한 개 모델로
DPO…RLHF 알고리즘 업데이트, ‘보상 함수 없이 바로 선호데이터 학습’

사진은 본문과 직접 관련은 없음.
사진은 본문과 직접 관련은 없음.

[애플경제 전윤미 기자]  최근 일부 국내 개발자들은 LLM 구축을 위해 머지(Merge, 병합)와 ‘DPO(Direct Peference Optimization)를 많이 쓰고 있는 것으로 알려졌다. 습니다. 얼마 전 공개된 깊이 업스케일링(Depth-Up Scaling, DUS) 기반으로 구축딘 107억개의 파라미터를 지닌 LLM ’SOLAR-10.7B’가 그 대표적인 경우다. ‘머지’와 DPO 등은 LLM 구축의 최신 기법으로, 생성AI의 최첨단 기법을 보여주는 것이어서 주목을 끈다.

머지, CPU계산만으로 빠르게 수행

Merge는 두 개 이상의 모델을 섞어서 하나의 모델로 만드는 방법이다. 앞서 ‘SOLAR’는 ‘instruction tuning’과 ‘alignment tuning’으로 학습한 모델들을 머지하여 성능을 높일 수 있었다. 한 인공지능 개발자 사이트는 “다만 Merge는 학습이 아니기 때문에 CPU 계산만으로 매우 빠르게 수행할 수 있다는 장점이 있다.”고 규정했다.

AI개발자들에 의하면 우선 머지 과정은 병합 키트(mergekit)이 기본이다. 이는 연결, 선형 및 병합을 포함한 다양한 방법을 사용하여 사전 훈련된 언어 모델을 병합하기 위한 툴킷이다 이 툴킷을 사용하면 레이어에서 언어 모델을 조각별로 조립할 수 있다.

다음으로 파일 구성이다. 이는 ‘merge_method’, 즉 모델 병합에 사용할 방법을 지정하는데, 'ties', 'linear', 'slerp' 또는 'passthrough' 중 하나를 선택할 수 있다. ‘조각’은 다양한 모델의 레이어 조각을 정의한 것으로 그 필드는 모델과 상호 배타적이다.

‘모델’은 병합에 사용할 전체 모델을 정의하며, 역시 이 필드는 조각과 상호 배타적이다. ‘베이스 모델’은 일부 병합 방법에 사용되는 기본 모델을 지정한 것이다. 특히 ‘매개변수’의 경우 다양한 수준이 구성 과정에서 지정할 수도 있는 가중치, 밀도 등 다양한 매개변수를 보유한다.

‘type’, 즉 머지 작업에 대한 데이터 유형을 지정하며, 병합된 모델에 대한 토크나이저를 구성하는 방법, 즉 ‘tokenizer_source’를 결정한다. 또한 매개변수는 유연하며 다양한 우선순위로 설정할 수 있다. “텐서 이름 필터를 사용하여 조건부로 지정할 수 있으며, 이를 통해 주의 헤드와 완전 연결 레이어를 구별하는 등 더 미세한 제어가 가능하다”는 설명이다.

매개변수 지정의 방법론 다양

전문개발자들에 의하면 매개변수는 다음과 같이 지정할 수 있다.

우선 단일 부동 소수점 값인 ‘스칼라’, 그라데이션을 지정하는 부동 소수점 값 목록인 ‘그라데이션’ 등이다.

또한 매개변수는 다음과 같이 우선순위를 낮추면서 다양한 수준으로 설정할 수 있다.

즉, 특정 입력 슬라이스에 적용(Slices.*.sources.parameters)하거나, 특정 출력 슬라이스에 적용(Slices.*.parameters)하거나, 특정 입력 모델에서 나오는 모든 텐서에 적용(input_model_parameters)하는 등이다.

또 매개변수는 기본 모델이 필요한데, 이 경우 유지할 기본 모델과의 차이에 대한 가중치 비율인 ‘밀도’와, 특정 입력 모델에서 나오는 모든 텐서에 적용한 가중치, 텐서에 기여하는 모든 모델의 가중치의 정규화 등이다. 위와 동일한 정의로 매개변수 가중치를 적용하고 정규화하는 것이다.

여기서 ‘SLERP’(SSpherical Linear Interpolation)의 경우 정확히 두 개의 모델이 필요하며 그 중 하나는 기본 모델이어야 한다. 즉 하나의 매개변수(t)를 취하되, 이는 기본 모델에서 보조 모델까지의 보간 계수를 말한다.

또한 구성 파일의 ‘tokenizer_source’ 필드가 병합된 모델에서 사용되는 토크나이저를 결정한다. 이는 임베딩과 언어 모델 헤드가 병합되는 방식에도 영향을 미친다.

사진은 본문과 직접 관련은 없음.
사진은 본문과 직접 관련은 없음.

.모든 토큰의 토크나이저로 ‘머지킷’ 설정

즉, 기본 모델의 토크나이저를 사용하고, 모든 모델의 모든 토큰으로 토크나이저를 구성하며, 특정 모델의 토크나이저를 사용하기도 한다.

이렇게 설정된 경우 ‘머지킷’(mergekit)은 각 모델의 어휘와 출력 토크나이저 간의 매핑을 찾아낸다. 이를 통해 다른 어휘나 추가된 토큰이 있는 모델을 의미 있게 병합할 수 있다.

이때 ‘tokenizer_source’는 모든 병합 방법과 호환되지만, ‘lm_head/embed_tokens’가 선형적으로 병합된다. 두 모델 병합의 경우 ‘embed_slerp’ 매개변수를 ‘true’로 설정, 대신 SLERP를 사용할 수 있다.

‘tokenizer_source’ 필드가 설정되지 않은 경우 ‘머지킷’(mergekit)은 레거시 기본 동작으로 돌아간다. 이때 기본 모델(또는 기본 모델이 지정되지 않은 경우 병합의 첫 번째 모델)에 대한 토크나이저가 출력 디렉터리에 복사된다. 또한 ‘lm_head/embed_tokens’의 매개변수 행렬은 병합에 있는 가장 작은 크기로 분해된다.

이처럼 머지킷은 YAML 구성 파일을 생성한 후 구성 파일과 출력 경로를 인수로 사용하여 mergekit-yaml을 실행하게 된다.

모델 파인튜닝 과정서 DPO로 RLHF 대체

한편 DPO(Directly Preference Optmization)는 RLHF(Reinforcement Learning from Human Feedback)를 대체할 수 있는 방법이다. RLHF는 같은 질문에 대해 여러 LLM의 대답 중 사람이 선택한 데이터로 보상 함수를 만든다. 그리고 보상 함수로 강화학습을 수행하여 모델 성능을 향상시킨다. DPO 역시 선호 데이터를 사용하지만 보상 함수 없이 바로 학습을 한다.

DPO는 RLHF(Reinforcement Learing with Human Feeback) 계열의 알고리즘을 업데이트한 내용이다. 최근 LLM 학습은 우선 LM에 사람이 라벨링을 한 데이터로 모델 파인튜닝을 하고, 그런 파인튜닝 과정에서 RLHF 알고리즘을 접목하는게 보통이다. 챗GPT나, 라마(LLMA2)2 모두 RLHF 기반의 학습으로 언어모델을 완성시킨 것들이다.

최근엔 또 모델 파인튜닝 과정에서 RHLF 대신 DPO를 사용한다. 이는 강화학습 폴리시를 사용하지 않고, 보상 모델링이 없으며, 보상 함수와 본 폴리시만을 매핑, 사람에 의한 HPD(Human Preference data)에 최적화할 있는 것이다. 이는 RLHF로 파인튜닝한 모델에 비해, 요약과 단순 정리 등에서 더 뛰어난 성능을 보인다.

RLHF는 보상 모델(Reward model)을 위해 인간이 선호도를 매긴 데이터셋을 이용, 강화학습을 통해 다시 선호도를 학습하게 한 것이다. 이는 높은 보상을 주는 데이터에 가깝게 학습할 수 있도록, LM을 최적화한다.

SFT, RHLF 적용 등 파인튜닝 방법 2가지

파인튜닝 방법은 크게 2가지다. 첫 번재인 SFT(Supervised Fine Tuning)은 LM을 데이터셋으로 간단히 학습시키는 것이다.

두 번째부터 RLHF가 등장한다. SFT로 학습한 모델이 인간의 마음에 들도록 잘 답변하게 튜닝하는 것이다. 그러기 위해선 SFT에서 특정 입력에 대해 답변한 출력들에 점수를 매기고, 가장 인간의 마음에 든 입력이 높은 점수를 받고, 그렇지 않으면 낮은 점수를 받도록 보상을 설정한다.

DPO는 최종 로스(loss)를 보상(reward)을 받아서, PPO로 업데이트하는 과정을 없앴다. RLHF의 보상 모델 구문(Reward modeling phase)에서 바로 언어모델을 학습하는 형태로 변형시킨다. 그래서 보상 모델링을 선호 모델링(Preference modeling) 과정으로 치환한다. 여기서 ‘reward’는 강화학습에서 쓰는 단어이므로, DPO는 강화학습을 쓰지않음을 강조하기위해 ‘Preference modeling’이라고 명명했다.

DPO는 RLHF를 쓸 때에 비해, 컴퓨팅 비용이나 구현이 비교적 쉽다. 그러나 학습한 데이터 외에는 취약하다는 문제가 있어, 현업에 바로 적용하려면 어느 정도 성숙되어야 사용할 수 있다는게 정설이다. 그래도 강화학습을 접목시킨 LLM 흐름에서 나름 신선하다는게 일부 개발자들의 평가다.

저작권자 © 애플경제 무단전재 및 재배포 금지