Frontier Labs들이 거대한 강화학습 체육관과 큰 컴퓨터로 새로운 기능들을 제공하는 것 만으로도 사회에 엄청 큰 변화가 생기고 있다. 12년부터 Ilya는 OpenAI에서 딥러닝의 교주로 Scaling이 돌파구라는 것을 알아냈고 Scaling의 시대가 왔다. 모두가 같은 레이스를 할 때 Ilya는 스케일링 Law가 끝나는 새로운 세상을 보고 있다. 일리아도 안드레도 인간이 학습 혹은 진화로 가지게 된 특별한 능력 (계속 학습할 수 있는 능력, 생존을 위한 가치 함수)을 반영한 시스템은 아직 만들어지지 않았다고 보고 그 무언가를 만들고 있다.
모델의 불균형성
모델들이 경제적 영향력에 비해 겉보기엔 더 똑똑해 보이는 것 같은데요. 평가(evals)에서는 그렇게 잘하는데, 이 사실을 어떻게 받아들여야 할까요?
예를 들어 '바이브 코딩(vibe coding)'으로 뭔가 한다고 칩시다. 버그가 생겼어요. 모델에게 "이 버그 좀 고쳐줄래?"라고 합니다. 모델은 "어머 세상에, 당신 말이 딱 맞아요. 버그가 있네요. 고칠게요."라고 하고선 두 번째 버그를 만듭니다. 그래서 "새로운 두 번째 버그가 생겼어"라고 하면, "어머 세상에, 제가 왜 그랬죠? 또 맞으셨어요"라며 다시 첫 번째 버그를 가져옵니다. 이 둘 사이를 계속 오가죠. 어떻게 이게 가능할까요?
두 가지 가능한 설명이 있습니다. 좀 더 엉뚱한 설명은 강화 학습(RL) 훈련이 모델을 너무 외골수(single-minded)로 만들고 시야를 좁게 만들어서, 어떤 면에서는 똑똑해지지만 기본적이고 뻔한 것들을 인지하지 못하게 만든다는 겁니다.
하지만 다른 설명도 있습니다. 예전에 사전 학습(pre-training)을 할 때는 '어떤 데이터로 훈련할까'에 대한 답이 정해져 있었습니다. 답은 '모든 것'이었으니까요. 사전 학습을 할 때는 모든 데이터가 필요하죠. 그래서 이 데이터냐 저 데이터냐 고민할 필요가 없습니다. 하지만 RL 훈련을 할 때는 생각을 해야 합니다. "이 작업을 위해 이런 RL을, 저 작업을 위해 저런 RL을 해야지"라고요. 듣기로는 모든 회사에 새로운 RL 환경을 만들어 훈련 믹스에 추가하는 팀들이 있다고 합니다. 문제는 그게 뭐냐는 겁니다. 자유도가 너무 높고 만들 수 있는 환경이 너무 다양하죠.
여기서 무심코 행해지는 일 중 하나가 사람들이 '평가(evals)'에서 영감을 얻는 것입니다. "출시 때 모델 성능이 정말 좋았으면 좋겠어. 평가 점수가 잘 나오게 하려면 어떤 RL 훈련이 도움이 될까?"라고 생각하는 거죠. 저는 이런 일이 실제로 일어나고 있고, 이것이 많은 것을 설명해 줄 수 있다고 봅니다.
이것이 모델의 실제 일반화 능력 부족과 결합되면, 평가 점수와 실제 성능 사이의 괴리, 즉 우리가 오늘날 제대로 이해조차 못 하고 있는 이 현상을 설명할 수 있습니다.
Q: 저는 '진짜 보상 해킹(reward hacking)'을 하는 주체가 평가 지표에 너무 집중한 인간 연구자들이라는 아이디어가 마음에 드네요.하나는, 단순히 코딩 대회에서 초인적인 능력을 발휘한다고 해서 모델이 자동으로 코드를 개선하는 데 있어 더 좋은 취향과 판단력을 갖게 되는 건 아니라는 점입니다. 그렇다면 단순히 코딩 대회 성적만 테스트할 게 아니라, X나 Y, Z 같은 애플리케이션을 최적으로 만드는 능력도 테스트할 수 있도록 환경의 종류를 확장해야 합니다. 다른 하나는, 아마 당신이 암시하는 것일 수도 있는데, "애초에 왜 코딩 대회에서 초인적이 되는 것이 전반적으로 더 감각 있는 프로그래머가 되는 것으로 이어지지 않는가?"라고 묻는 것입니다. 어쩌면 환경의 양과 다양성을 계속 쌓을 게 아니라, 한 환경에서 배워서 다른 무언가에서 성능을 향상시키는 접근 방식을 찾아야 할지도 모릅니다.
A: 인간에 빗대어 도움이 될 만한 비유가 있습니다. 언급하신 경쟁 프로그래밍(Competitive Programming)을 예로 들어보죠. 두 학생이 있다고 칩시다. 한 명은 최고의 경쟁 프로그래머가 되기로 결심하고 그 분야에 1만 시간을 투자합니다. 모든 문제를 풀고, 증명 기법을 암기하고, 모든 알고리즘을 빠르고 정확하게 구현하는 데 매우 숙련됩니다. 그렇게 해서 최고 중 하나가 되었습니다. 두 번째 학생은 "오, 경쟁 프로그래밍 멋지네" 하고 100시간 정도만, 훨씬 적게 연습했지만 꽤 잘합니다. 나중에 커리어에서 누가 더 잘할까요?
두 번째 학생이겠죠.
맞습니다. 제 생각엔 지금 벌어지고 있는 일이 기본적으로 그렇습니다. 모델들은 첫 번째 학생과 훨씬 비슷하지만, 그 정도가 더 심합니다. 우리는 "모델이 경쟁 프로그래밍을 잘해야 해. 그러니 모든 경쟁 프로그래밍 문제를 다 가져와. 그리고 데이터 증강(data augmentation)을 해서 더 많은 문제를 만들고 훈련시켜."라고 합니다. 그러면 훌륭한 경쟁 프로그래머가 탄생하죠.
이 비유를 드니 더 직관적이네요. 네, 그렇게 훈련받았다면 모든 알고리즘과 증명 기법이 손끝에 있겠죠. 그리고 이런 수준의 준비 방식으로는 다른 분야로 반드시 일반화되지 않을 것이라는 점도 더 직관적으로 다가옵니다.
Q: 그렇다면 두 번째 학생이 100시간의 미세 조정(fine-tuning)을 하기 전에 하고 있는 것에 해당하는 비유는 무엇인가요?
그들에게는 "그것(it)"이 있습니다. "It" 팩터죠. 제가 학부생일 때 같이 공부하던 학생 중에 그런 친구가 있어서 실제로 존재한다는 걸 압니다.
Q: "그것"을 사전 학습(pre-training)이 하는 역할과 구별하는 게 흥미롭네요. 아까 사전 학습 때는 데이터를 고를 필요가 없다고 하신 말씀을 이해하는 한 가지 방법은, 그것이 사실 1만 시간의 연습과 다르지 않다고 보는 겁니다. 단지 그 1만 시간의 연습이 사전 학습 분포 어딘가에 이미 들어있기 때문에 공짜로 얻는다는 점만 다를 뿐이죠. 하지만 당신은 사전 학습에서 얻는 일반화가 실제로는 그리 크지 않다고 시사하는 건가요? 사전 학습에 데이터가 엄청나게 많지만, 반드시 RL보다 더 나은 일반화를 보장하는 건 아니라고요?
A: 사전 학습의 주된 강점은 A: 양이 엄청나게 많다는 것, B: 어떤 데이터를 넣을지 깊게 고민할 필요가 없다는 것입니다. 매우 자연스러운 데이터이고, 사람들이 하는 많은 것들, 즉 사람들의 생각과 특징들이 포함되어 있습니다. 사람들이 텍스트로 투영한 전 세계와 같은 것이고, 사전 학습은 방대한 데이터를 사용해 그것을 포착하려고 합니다.
사전 학습은 추론하기가 매우 어렵습니다. 모델이 사전 학습 데이터에 의존하는 방식을 이해하기 너무 어렵기 때문입니다. 모델이 실수를 할 때마다, 우연히 사전 학습 데이터에 의해 덜 지지받았기 때문일까요? "사전 학습에 의한 지지"라는 말도 좀 모호한 표현이긴 합니다만. 이 부분에 대해 더 유용한 말을 덧붙일 수 있을지 모르겠네요.
