3070에서 Realtime Audio Variational autoEncoder(RAVE)를 학습시켜 말레이 북소리를 재현하려고 했을 때, 나를 꽤 오래 헷갈리게 한 것이 있었다. 데이터가 더 많아졌는데 왜 “결과”가 더 좋아지지 않는가. 그러다 깨달았다. 이거 그냥 기초 통계 아닌가. 표본 크기가 작고 분산이 크면, 조금만 이상치에 가까운 데이터 포인트 하나도 모델 성능에 과도한 영향을 준다. 세상의 대부분의 사용 사례에서 이런 데이터 부족 환경은 예외가 아니라 기본값이다. 늘 그렇듯 좋은 소식은, 크고 강력한 모델을 가져다가 우리의 제한된 데이터셋에 맞게 조정하는 것만으로도 상당히 많은 것을 부트스트랩할 수 있다는 점이다. 예전에 여기서 보여준 것처럼.
무슨 일이 벌어지고 있는지 알려준 큰 단서 하나는, 내 물총새 소리가 예전의 아주 “북 같은” 소리보다 종이 섞인 hadrah 느낌의 소리로 더 많이 변환됐다는 점이었다. 한편으로는 모델이 더 높은 음역의 입력을 편차 기준으로 오차가 작아지는 쪽에 매핑하고 있으니 더 잘 일반화한다고 말할 수도 있다. 그런데 내가 실제로 듣는 것과는 잘 맞아떨어지지 않는다. 나는 북소리만 들리기를 기대하는데, 표현 학습에 쓰인 훈련 데이터에서 북과 함께 들어 있던 종소리 일부가 귀에 걸린다. 결국 이것도 창작 방향이 기술 개발을 어디로 몰고 가게 할지에 관한 또 하나의 선택이다. 우리는 처음에 썼던, 아주 북소리답던 훈련 데이터 묶음의 모델로 되돌아갔다.
소리의 영역에서는 모델 성능을 재는 일이 보기보다 단순하지 않다는 점도 말해둘 만하다. 손실값은 계속 내려가고 있을 수 있지만, 인간의 귀가 소리를 신호로 해석하는 방식은 그런 손실 지표와 늘 깔끔하게 맞물리지 않는다. 그래서 나는 복원 결과를 직접 듣고 예측 결과를 귀로 확인하는 편이 유용하다고 느꼈다. 가끔 생각해보면 인간이라는 컴퓨터가 얼마나 효율적인지 좀 미쳤다 싶다. 신호가 범람하는 세계에서 우리는 어찌 됐든 아주 빠르게 일반화하고, 또 구체적인 것에 초점을 맞춘다. 여러 사람이 동시에 말하고 있어도 그렇다. 우리 뇌는 어찌어찌 화자 분리 계산을 이미 알아내서, 그냥 실시간으로 해버린다.
데이터가 부족한 환경에서 효과적으로 학습시키는 전략
기억이 틀리지 않았다면 사용한 아키텍처는 그냥 v2에 wasserstein 정규화를 붙인 것이었다. 예시를 그냥 외워버려서 표본 밖에서는 충분히 잘 작동하지 못하는 과적합의 위험은 정규화로 어느 정도 줄일 수 있고, 그 밖의 흔한 가능성은 아래와 같다. 뒤의 두 가지는 조금 더 자세히 이야기하겠다.
-
데이터 증강
-
더 보수적인 학습 스케줄 또는 더 많은 에폭
-
더 나은 모델*
-
전이 학습*
별표를 붙인 두 항목은 모두 이미 존재하고 인코딩된 지식을 특정 도메인에 더 잘 활용하는 문제와 관련이 있다. A.I.를 빠르게 도입하는 조직이 누릴 수 있는 “공짜 점심”은 사실상 이것이다. 전문성, GPU, 그리고 약간의 데이터에 접근할 수 있다면, 자신의 데이터로 학습한 최고 수준의 모델이 특정 업무를 처리하게 만들 수 있다. 이는 곧 자기 조직의 프로세스에 대해 더 많은 주도권과 통제력을 갖는다는 뜻이다.
LLM은 세계에 대한 지식을 인코딩한다
많은 사람이 잘 모르는 사실이 있다. 현대 A.I. 애플리케이션 상당수가 기대고 있는 트랜스포머 아키텍처는 문제의 종류와 데이터 양식을 넘나들며 놀랄 만큼 탄력적이고 견고하다.
트랜스포머: AI 최고의 아이디어 | Andrej Karpathy와 Lex Fridman
최근에 가장 혼란스러웠던 순간 중 하나는, 관객 한 분이 “The Sound of Stories”를 이야기 1개에서 100개, 혹은 n개로 확장하려면 얼마나 걸리느냐고 물었을 때였다. 답은 이렇다. 내가 그 데이터를 읽어들이는 데 걸리는 시간만큼, 그러니까 대부분의 경우 아마 <1초? 나는 “The Sound of Stories”를 애초에 확장 가능하고 특정 모델 하나에 묶이지 않도록 만들었다. 그래서 사용할 디자인 패턴을 미리 깊게 생각하는 데 시간을 많이 들였다. 물론 마지막 데모가 가까워질수록 코드베이스는 점점 더 지저분해졌지만. 나중에 알고 보니 그분은 내가 A.I.를 특정 문화 하나처럼 생각하도록 훈련시켰다고 이해하고 있었다. 그때 깨달았다. A.I. 바깥에 있는 사람들은 트랜스포머가 맥락 문제를 어떻게 풀었는지, 그리고 이번 딥러닝 시대가 이전 시대와 갈라지는 지점이 시스템이 얼마나 범용적이고 똑똑해지고 있느냐에 있다는 사실을 아직 잘 모를 수도 있겠구나.
GPT-4를 해고하고 Claude 3 Opus로 갈아탔을 때, 나는 이야기 진행을 공들여 설계할 필요가 없었다. 그렇게까지 언어학적으로 굴 만큼 부지런하지 않아서, 그냥 무지막지하게 큰 프롬프트 하나를 넣고 assistant와 user 응답을 API 호출에 계속 덧붙였다. 그걸 반복하면서, 모델에게 사용자와 상호작용하고 적절히 끝내라고 지시했을 뿐이다. 그전의 GPT-4는 사용자가 뜬금없는 응답을 하면 무시하거나 뭘 해야 할지 몰라 했는데, Opus는 지금까지 실제로 더 똑똑하고 훨씬 더 이중언어적이라는 걸 증명했다. 출력한 중국어 응답도 충분히 괜찮아서, 내가 조사했던 중국어 LLM을 굳이 쓸 필요를 느끼지 못했다.
인터넷 규모 데이터로 학습된 거대 오픈 모델이 이렇게 많이 나와 있고, 이를 파인튜닝과 추가 학습에 쓸 수 있는 상황에서, 가장 빠르게 움직이는 회사들은 더 나은 마진과 새로운 역량으로 앞서갈 것이다. 그러지 못하는 회사들은 곧 곤란해질지도 모른다. 사실 A.I.의 캄브리아기 대폭발 같은 이 국면에서 계속 두드러지는 주제는, 사용자 쪽에서 아래로부터 올라오는 도입이 얼마나 많으냐는 점이다. 오늘날의 젊은 사람들이 일할 나이가 되었을 때 A.I. 공룡 같은 회사에서 일하고 싶어 하지는 않을 것 같다. 그리고 그건 멋진 일이다. 경쟁은 아름답다.
업무 활용은 A.I.의 돌파구가 된 사용 사례다
그래서 나는 다국어 번역을 확장하거나 서로 다른 데이터 양식을 리믹스하는, 손만 뻗으면 닿는 구현을 가로막는 유일한 것이 어쩌면… 조직의 관성 아닐까 생각한다. 이 싸움은 조직이 스스로 질 수 있는 싸움이다. 우리는 이미 자기만의 최고 수준 모델을 만들 재료를 모두 갖고 있기 때문이다. 다시 말하지만 인재, GPU, 그리고 어느 정도의 데이터가 있다는 전제에서다. 이번에는 사용자 행동도 우리 편이다. 사람들이 자기 손에 쥔 A.I.로 얼마나 많은 일을 하고 있는지 그 신호만 읽어도 그렇다. 다행히, 바라건대, 이 A.I. 도입 경쟁에서 누가 이기고 누가 지는지는 시장이 가려주게 둘 수 있을 것이다.
최종 사용자 입장에서 보면, 업무에 A.I.를 쓰는 일이 이 범용 기술의 “킬러 앱”으로 자리 잡아가는 중이다. 나는 이게 여러 층위에서 흥미롭다. 인터넷과 휴대전화는 우리가 소통하고 정보를 주고받는 방식을 바꿨지만, 그에 비하면 우리가 일하는 방식은 그다지 크게 바뀌지 않았다고도 할 수 있다. 상사가 당신에게 프롬프트를 준다. 당신은 그 프롬프트를 머릿속에서 처리한다. 당신 내부 작동 방식의 가중치와 편향은 당신 자신도 들여다볼 수 없다. 몇 가지 변환을 수행한 뒤 출력을 내놓는다. 우리는 일상적인 업무부터 복잡한 다자 이해관계 협상까지 전 범위의 일을 인간의 인지와 지능에 기대어 처리한다. 혹은, 느으린 LLM을 전제로 실시간 경험을 제공하는 무상태 마이크로서비스 아키텍처처럼, 로컬 컴퓨터에서 원격 VM까지 수많은 의존성과 맞물린 요소를 잔뜩 달고 굴러가는 셈이다… :’)
내 A.I. 페어 프로그래머가 없었다면, 여러 A.I. 양식을 활용하고 WhatsApp을 통해 실시간으로 제공되는 확장 가능한 경험으로 “The Sound of Stories”를 바꾸지는 못했을 것이다.
지능이라는 지수적 힘
내가 궁금해했던 것 중 하나는, 온갖 일을 할 수 있는 더 큰 모델이 더 작고, 더 구체적이고, 더 빠른 모델보다 언제나 나은가 하는 문제였다. 그런데 A.I./LLMs로 무언가를 만들다 보니 점점 더 분명해진 것은, 이 관점을 다시 잡아야 할지도 모른다는 점이다. 중요한 건 파라미터 수가 얼마나 많으냐가 아니라, 모델이 얼마나 범용적으로 지능적인가다. 바탕에 깔린 범용 지능은 많을수록 좋다. 지시를 더 안정적으로 따르고, 제한된 데이터로도 더 잘 예측하고, 데이터에 새로운 변환을 적용하고, 다른 도메인에서 배운 것을 새 영역으로 옮겨올 수 있기 때문이다. 그러니까 인간이 하는 바로 그 종류의 지능을 수행하는 것이다.
이 중 일부는 그냥 엔지니어링이다. 작업을 쪼개서 서로 다른 엔드포인트에 나눠 처리하게 하고, 모델 앙상블을 활용하는 식이다. 하지만 앞서 GPT-4와 Claude 3 Opus를 비교하며 말했듯, 더 범용적인 지능은 언제나 더 낫다. 이런 시스템을 알아가는 일은 인간과 사회가 무엇을 할 수 있는지 감사하게 배우는 가장 좋은 방법 중 하나다.
지능이 더 많다는 것은 더 적은 것으로 더 많은 일을 할 수 있다는 뜻이다. 그런데 Claude 3 Opus 같은 모델이 약 2조 개의 파라미터를 40조 토큰으로 학습했는데도, 세계에 대한 바탕 지식을 가진 이런 모델들이 자신들이 수행하려는 일에 비하면 여전히 파라미터가 부족하다는 게 좀 미치지 않았나? 당연히 2조 개의 파라미터로 세계 지식의 전체 복잡성을 담아내기에는 부족하다. 그래서 모델은 제한된 아키텍처 안에 그 많은 데이터를 압축하고 표현하려고 하면서 고차원 공간에서 많은 중첩을 만들어낸다. 어쩌면 세계 전체에 대한 지식에 접근한다는 일은 어떤 개인에게도 불가능한 과제일지 모른다. 하물며 모델 하나라면 더 말할 것도 없다. 그래서 인간 사회에는 특정 도메인의 지식을 몸에 지닌 다른 행위자들, 즉 전문가들이 있고, 우리는 도서관, 박물관, 외부 지식 저장소, 심지어 노트를 들고 다니는 사람이라는 일상적인 의미에서까지, 마음을 받쳐주고 확장하는 온갖 발판에 기대어 산다. 그렇게 우리는 세계에 대한 지식을 쪼개고 분산해왔다.
그리고 우리는 지금까지 존재한 생물학적 컴퓨터 가운데 에너지, 표본, 연산 효율이 가장 높은 존재다. 모델 행동을 원하는 방향에 더 잘 맞추기 위해 강화학습, Direct Preference Optimisation, Kahneman-Tversky Optimisation이 많이 수행됐지만, 데이터의 희소성은 계속되는 난제다. 그와 대조적으로, 신호가 이렇게 희소한데도 인간이 사회적 종의 일원으로 맞춰 살고 작동하는 법을 배운다는 건 놀랍지 않은가? 어쩌면 미디어와 문화의 역할 전체가 개인의 욕망 속에 선호의 고유벡터를 주입하는 것일지도 모른다. 진화는, 경쟁처럼, 아름답다.
잊고, 추상화하고, 유추하고, 상상하고, 계획하는 우리의 능력 같은 것들이 현재 A.I. 시스템의 더 깊은 범용 학습과 확장을 가로막는 빠진 조각들처럼 보인다. 환경 속에서 탐색하고 실험하며, 우리가 손에 쥔 문화적·사회적·지적 자원을 조직하고 활용하는 인간의 능력은 비할 데가 없다.
그래서 나는 한 번 더 생각해봤다면 곧장 뛰어들기보다 다른 학습 선택을 했을 거라는, 그런 메타 상태에 도달했다. 비슷하게, LLM이 Chain-of-Thought 추론을 쓰라고 지시받았을 때 더 잘하는 것이 그렇게 놀랄 일인가?
다음 글에서는 왜 더 많은 지능이 중요한지 더 근거를 붙여 이야기하고, 개인 사용자와 커뮤니티, 회사가 그런 지능을 자기 목적에 맞게 부트스트랩하고 활용할 방법을 몇 가지 제안하려 한다. 그중 대부분은 이미 이 글에서 다뤘다. 품질 좋고 넓고 다양한 데이터셋, 외부 지식 저장소, 인재, 사회적 공유, 연산 자원, 더 나은 모델. 이 중 데이터셋에 관한 첫 부분을 이어서 보고 싶은데, 많은 조직이 이미 흥미로운 것을 만들 만큼 충분한 데이터를 갖고 있지만 교착 상태에 막혀 있을 뿐이라고 의심하기 때문이다. 특히 이와 관련해 합성 데이터셋을 살펴보고 싶다. 데이터 과학 졸업 프로젝트를 준비할 때 시도했지만 제대로 굴리지 못했던 것이기 때문이다. 다행히 세상은 바뀌었고, 나도 이제는 더 많이 안다. ;)
원래 PubPub의 erniesg.pubpub.org/pub/1eogiw8s에 게시됐다.