정렬과 스케일링

by 이준영

저는 조직의 AI 업무를 크게 두 가지로 봅니다. 바로 정렬과 스케일링입니다. 이런 관점은 LLM에만 국한되는 이야기가 아닙니다. 저는 추천 업무에서도, Trust & Safety 업무에서도 똑같이 정렬과 스케일링의 관점으로 접근합니다.


정렬이란, 우리가 만드는 모델이 실제 비즈니스 지표와 연결되게 만드는 과정을 의미합니다. 추천 시스템을 이야기할 때, 클릭률 예측기의 loss를 줄여도 비즈니스 지표인 리텐션이 개선되지 않는다고 말하는 사람들이 많습니다. 그럴 수 있습니다. 클릭률 예측기의 loss가 줄어드는 것과 리텐션이 올라가는 것이 정렬되지 않았기 때문입니다. 리텐션을 올리고 싶다면 어떤 loss 함수를 설계해야 하는지 깊이있게 고민해야 합니다. 저희는 이를 정렬 과정이라고 부릅니다. 저희 과거 테크 블로그를 보시면 3년 전에 primitive한 방식으로 정렬을 시도했던 흔적을 확인하실 수 있고, 저희가 5년 전에 CVPR에 냈던 논문에서도 비슷한 시도를 확인하실 수 있습니다.


정렬이 제대로 되었다면 그 다음 단계는 스케일링입니다. 모델의 loss는 (몇 가지 가정 아래) 크게 세 가지 요소로 나눌 수 있습니다: bias, variance, 그리고 irreducible error 입니다. 데이터 사이즈를 키우면 variance를 줄일 수 있고, 모델 사이즈를 키우면 bias를 줄일 수 있습니다. irreducible error는 더 많은 feature를 모델의 입력에 포함시켜 줄일 수 있습니다. 데이터와 모델 사이즈를 키우고 더 많은 feature를 모델의 입력에 포함시키는 것을 우리는 스케일링이라고 부릅니다. 모델이 잘 정렬되었다면 스케일링이 직접적으로 비즈니스 임팩트로 직결됩니다.


물론 정렬은 매우 어려운 과정입니다. 저는 제품에 기여하는 AI 연구에서 가장 어려운 점이 정렬이라고 생각합니다. 스케일링은 외부 연구들에서 힌트를 많이 얻을 수 있지만, 정렬은 그렇지 못한 경우가 많습니다. 회사마다 다른 제품을 다루기에 다른 제약 조건이 생깁니다. 제약 조건 때문에 문제가 어려워지기도 하고 때론 쉬워지기도 합니다. 정렬 문제는 오롯이 그 회사가 풀어야 하기에 어렵습니다.


예를 들면, 추천 업무에서의 Hyperconnect AI의 목표는 추천 모델의 출력이 “이 유저에게 이 아이템을 추천했을 때 회사의 장기 매출이 얼마나 늘어날지”가 되도록 정렬하는 것입니다. 이렇게만 된다면 우리가 모델의 loss를 N% 개선할 때마다 장기 매출이 M% 증가하는 구조를 만들 수 있습니다. 하지만, 이 방향으로의 정렬은 강화학습 혹은 인과 추론이 필요한데 탐색(exploration)이 충분히 되어야 하면서도 제품의 현재 비즈니스 지표에 영향을 최대한 주지 않아야 하기에 쉽지는 않습니다.


AI 조직이 비즈니스 성과를 내려면 결국 정렬에서 스케일링으로 이어지는 구조를 만들어야 합니다. Hyperconnect AI 조직은 저희 조직이 만들고 운영하는 수십 개의 모델들을 더 잘 정렬하고, 잘 정렬된 모델은 스케일링하는 데 집중하고 있습니다.


머신 러닝 모델의 정렬(alignment)


머신 러닝 모델은 본 것만 잘합니다.


모델은 학습 과정에서 본 것만 잘합니다. 보지 못한 걸 못하는 건 당연한 일이고, 만약 본 적 없는 것을 잘한다면 오히려 신기한 일입니다. (요즘은 emergent abilities라는 용어도 있죠.) 그래서 모델이 학습하지 않은 데이터를 추론에 쓸 때는 반드시 주의가 필요합니다. 제품에서의 AI 연구에서 이 부분이 자주 간과되곤 합니다.


웹에서 수집한 데이터로 학습된 모델이 있다고 가정해봅시다.

이 모델이 우리 서비스에서 그대로 잘 동작할까요?

하나에 베팅해야 한다면, "아니다"에 베팅하는 게 맞습니다. 결국 우리 서비스에 가장 잘 맞는 모델은 우리 서비스에서 수집된 데이터로 학습한 모델입니다. 물론 서비스 데이터가 없을 때 외부 데이터를 초반에 활용하는 건 자연스러운 일이지만요.


다른 예시들도 많습니다. PNG로만 학습된 모델이 JPG로 압축된 이미지를 받으면 성능이 떨어집니다. 포맷이 달라지면 반드시 신경 써야 합니다. 프로필 이미지로 학습된 모델을 화상 채팅에 그대로 쓴다면 동작하지 않는다고 가정해야 합니다. 운이 좋아서 잘 되면 다행이지만요. 또, Imbalanced 데이터에서 binary classification 문제를 푼다고 해봅시다. 이 경우에 몇몇 연구자들은 무조건 업샘플링이나 다운샘플링을 하기도 합니다. 하지만 우리가 추론해야 하는 상황과 올리고자 하는 지표를 고려하면, 오히려 원래 분포 그대로 학습하는 것이 더 나을 때도 있습니다.


추천 문제는 이 문제가 더 심합니다. short-form 영상 추천에서 시청 시간을 예측해 가장 오래 볼 영상을 딱 하나 추천하는 문제를 푼다고 해봅시다. 우리가 가진 데이터는 추천으로 노출된 영상에 대해서만 수집된 것입니다. 하지만 추론은 전체 영상에 대해서 합니다. 이 괴리를 줄이려면 이상적으로는 랜덤으로 추천한 데이터로만 학습한 모델을 써야 하지만, 현실적으로는 쉽지 않습니다. 랜덤 추천으로 인해 추천 품질이 극도로 떨어질 수 있기 때문입니다. 그래서 결국 학습과 추론 분포 차이를 줄이는 다양한 방법을 고민해야 하고, 만약 어렵다면 최소한 그 차이를 체크해야 합니다.


학습과 추론의 분포가 다르면 모델이 제대로 동작하지 않을 수 있다는 가정을 항상 가져야 합니다. 모든 상황에서 완벽히 맞출 수는 없지만, 그 차이를 의식하고 적어도 모니터링해야 합니다.


정렬(alignment)되지 않은 모델은 제품에 사용하지 않습니다.


비지도 학습(unsupervised learning)이나 자기지도학습(self-supervised learning)은 매력적으로 보입니다. 레이블이나 목표를 따로 주지 않아도 데이터 속 패턴을 스스로 찾아내고, 우리가 원하는 태스크를 수행하는 것이 신기하기도 하고 때로는 효율적으로 느껴지기도 하니까요.


하지만 Hyperconnect AI에서는 목표에 정렬(alignment)되지 않은 모델은 제품에 사용하지 않는다는 원칙을 가지고 있습니다.


그 이유는 단순합니다. 모델이 우리가 정의한 목표로 학습되지 않았다면, 겉보기엔 잘 작동하는 것 같아도 실제로는 엉뚱한 방향으로 갈 수 있기 때문입니다.


모델을 목표에 정렬시키는 가장 확실한 방법은 supervision을 주는 것입니다. 지도 학습(supervised learning)은 입력과 출력이 명확히 짝지어져 있어서, 모델이 우리가 원하는 방향으로 학습되도록 직접 제어할 수 있습니다.


예를 들어 어떤 아이템의 상세 페이지 하단에 ‘유사한 아이템’을 추천한다고 해봅시다. 많은 엔지니어/PM들은 이런 시도를 할 가능성이 높습니다. 협업 필터링(collaborative filtering)이나 다른 추천 알고리즘으로 아이템 임베딩을 만든 뒤, 코사인 유사도가 높은 아이템을 노출하는 로직을 짤겁니다. 하지만, 이 방법은 우리가 기대한 ‘비슷한 아이템’이 잘 나오지 않는 경우가 많습니다.


이유는 명확합니다. 우리가 진짜로 원하는 건 ‘비슷한 아이템’이 아니라 ‘유저가 다음으로 클릭할 가능성이 높은 아이템’인 경우가 많기 때문입니다. 하지만, 이 목표가 모델에 명확히 주어지지 않았던 거죠. Hyperconnect AI에서는 이런 경우 “모델을 목표에 어떻게 정렬할 수 있을까?”를 먼저 고민합니다.


그럼 “아직 기능을 출시하지도 않았는데 어떻게 지도학습을 하냐”는 질문이 나올 수 있습니다. 하지만 데이터가 없다고 해서 목표 정렬을 만들 수 없는 건 아닙니다. 우리가 원하는 입력과 출력을 명확히 정의하고, 그에 맞는 데이터를 만들면 됩니다. 유저가 입력해준 데이터 없어도 직접 엔지니어/PM들이 데이터를 레이블링해서 지도 학습을 할 수 있습니다. 이렇게 만들어진 모델이 충분히 좋지 않다고 판단하면, 필요한 데이터를 더 만들어주면 됩니다. 이렇게 하면 기능을 출시하기 전이라도 꽤 괜찮은 모델을 만들 수 있습니다.


Hyperconnect AI는 모델에 목표를 주지 않은 채 무작정 튜닝하는 데 시간을 쓰기보다는, 목표를 명확히 정의하고 정렬 구조를 설계하는 데 더 많은 시간을 씁니다. 이것이 우리가 추구하는 principled approach입니다.


이 원칙은 LLM을 사용할 때도 동일하게 적용됩니다. LLM은 우리가 달성하려는 목표로 학습된 모델이 아니기 때문에, 우리의 목표에 맞는 프롬프트를 작성하는 것이 정렬을 시도하는 간단한 방법 중 하나입니다. 프롬프트를 짜고 우리가 원하는 입력에 대해 괜찮은 출력이 나오는지를 확인하기 보다는, 현실적으로 가능한 입력과 그에 대응하는 출력을 미리 정해두고, 프롬프트를 이에 맞게 변경하는 방식으로 일하는 것이 principled approach입니다.


결국 중요한 건 같습니다. 모델은 본 것만 잘합니다. 우리가 명확히 보여주지 않은 목표는 스스로 찾지 못합니다. 그래서 Hyperconnect AI는 언제나 모델이 정렬되어 사용될 수 있도록 ML 시스템을 설계합니다.

작가의 이전글Hyperconnect AI 채용에 대한 FAQ