Logo Ernie.SG

개발자 일기: 데이터가 부족한 환경의 딥러닝 I

2024년 4월 8일
8분 읽기
사용 가능한 태그가 없습니다
Table of Contents

나를 꽤 많이 혼란스럽게 만든 것 중 하나는, 내 3070에서 말레이 북소리를 재현하려고 Realtime Audio Variational autoEncoder(RAVE)를 훈련할 때 왜 더 많은 데이터가 더 나은 “결과”로 이어지지 않았는가였다. 그러다 깨달았다. 그냥 기초 통계 아닌가. 표본이 작고 분산이 크면, 조금만 이상치인 데이터 포인트 하나가 모델 성능에 과도한 영향을 미친다. 이런 데이터 빈곤 환경은 세계 대부분의 사용 사례에서 기본값이다. 좋은 소식은 늘 그렇듯, 크고 강력한 모델을 가져와 제한된 데이터셋에 맞춰 조정하는 것만으로도 꽤 많은 것을 끌어낼 수 있다는 점이다. 이전에 여기서 보여주었듯이.

무슨 일이 일어나고 있는지에 대한 큰 단서는 내 물총새 소리가 이전의 매우 “드럼 같은” 소리보다 방울이 섞인 하드라풍 소리로 변환된 방식에서 나왔다. 한편으로는 모델이 더 높은 피치의 입력을 편차 기준에서 오차를 최소화하는 무언가로 매핑하고 있으니 더 잘 일반화하고 있다고 말할 수도 있다. 하지만 바로 여기서 내가 듣는 것과 잘 맞지 않는다. 나는 드럼만 들릴 것이라고 기대했는데, 훈련 데이터에서 드럼과 함께 들어 있던 방울 소리 일부를 듣고 있었다. 그 데이터가 표상을 학습하는 데 쓰였기 때문이다. 결국 이것은 창작 방향이 기술 개발을 이끌게 둘 것인지에 관한 또 하나의 선택이다. 우리는 처음의 아주 드럼 같은 훈련 데이터 세트에서 나온 모델로 돌아갔다.

소리의 영역에서는 모델 성능 측정이 보기만큼 단순하지 않다는 점도 언급할 만하다. 손실은 계속 내려갈 수 있지만, 사람의 귀가 소리를 신호로 해석하는 방식은 그런 손실 지표와 항상 깔끔하게 맞지 않는다. 그래서 나는 재구성 결과와 예측 결과를 직접 들어보는 것이 유용하다는 것을 알게 되었다. 가끔 생각해보면 인간이라는 컴퓨터가 얼마나 효율적인지 놀랍다. 신호가 넘쳐나는 세계에서 우리는 어떻게든 매우 빠르게 일반화하고 세부 사항에 집중할 수 있다. 여러 사람이 동시에 이야기하고 있더라도 말이다. 우리의 뇌는 화자 분리 계산을 어떻게든 알아냈고, 그것을 즉석에서 그냥 해낸다.

데이터 빈곤 환경에서 효과적으로 훈련하기 위한 전략

사용한 아키텍처는 내가 잘못 기억하지 않는다면 wasserstein regularisation을 적용한 v2였다. 예제를 그냥 외워버리고 out-of-sample에서 충분히 잘 작동하지 못할 정도로 overfitting되는 위험은 regularisation으로 어느 정도 줄일 수 있고, 그 밖의 전형적인 선택지는 아래와 같다. 뒤의 두 항목을 더 자세히 이야기할 것이다.

  • 데이터 증강

  • 작은 학습 스케줄 또는 더 많은 에폭

  • 더 나은 모델*

  • 전이 학습*

별표가 붙은 두 항목은 모두 특정 영역에서 더 나은 적용을 위해 기존의, 인코딩된 지식을 활용하는 것과 관련된다. A.I.를 빠르게 도입하는 조직을 위한 “공짜 점심”은 사실상 이것이다. 전문성과 GPU가 있다면, 특정 작업을 처리하도록 자신의 데이터로 훈련된 최고 수준의 모델을 사용할 수 있다. 이는 자신의 프로세스에 대한 더 많은 주도권과 통제력을 뜻한다.

LLM은 세계에 대한 지식을 인코딩한다

많은 사람들이 깨닫지 못하는 것은, 현대 A.I. 애플리케이션의 상당 부분이 기반으로 삼는 Transformer 아키텍처가 문제와 데이터 모달리티 전반에서 놀라울 만큼 회복력 있고 견고하다는 점이다.

Transformers: AI 최고의 아이디어 | Andrej Karpathy and Lex Fridman

최근 가장 혼란스러웠던 순간 중 하나는 한 관객이 내게 “The Sound of Stories”를 이야기 1개에서 100개, 혹은 n개로 확장하는 데 얼마나 걸리냐고 물었을 때였다. 답은 내가 그 데이터를 받아 넣는 데 걸리는 시간, 즉 대부분의 경우 아마 1초 미만? “The Sound of Stories”는 애초에 확장 가능하고 어떤 한 모델에 묶이지 않도록 만들었다. 그래서 사용할 설계 패턴을 미리 생각하는 데 많은 투자를 했다(물론 최종 데모에 가까워질수록 코드베이스는 점점 더 지저분해졌다). 나중에 알게 된 것은, 그녀가 내가 A.I.를 특정 문화처럼 생각하도록 훈련했다고 생각했다는 점이다. 그때 나는 A.I. 바깥의 사람들이 Transformer가 맥락 문제를 해결했다는 것, 그리고 이 딥러닝 시대가 이전 시대와 다른 점이 시스템이 훨씬 더 일반적이고 똑똑해지고 있다는 데 있다는 사실을 모를 수도 있겠다고 깨달았다.

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. 사용은 이 범용 기술의 “킬러 앱”이 되어 가고 있다. 나는 그것이 여러 층위에서 흥미롭다. 인터넷과 휴대전화는 우리가 소통하고 정보를 교환하는 방식을 바꿨지만, 비교하면 우리가 일하는 방식은 그만큼 바뀌지 않았다고 할 수 있다. 상사가 프롬프트를 준다. 당신은 그 프롬프트를 뇌에서 처리한다(내부 작동의 weights and biases는 당신에게 보이지 않는다). 몇 가지 변환을 수행한 뒤 출력을 만든다. 우리는 일상적 업무부터 복잡한 다자 협상까지 다양한 과제를 수행하기 위해 인간의 인지와 지능에 의존한다. 혹은 느린 LLM을 전제로 실시간 경험을 전달하는 무상태 마이크로서비스 아키텍처, 그리고 로컬 컴퓨터에서 원격 VM까지 전체 가치 사슬 전반의 수많은 의존성과 움직이는 부분 같은 것에도… :’)

내 A.I. 페어 프로그래머가 없었다면, 나는 “The Sound of Stories”를 여러 A.I. 모달리티를 활용하고 WhatsApp을 통해 실시간으로 제공되는 확장 가능한 경험으로 만들 수 없었을 것이다.

지수적 힘으로서의 지능

내가 궁금해했던 것은, 온갖 일을 할 수 있는 더 큰 모델이 항상 더 작고, 더 구체적이고, 더 빠른 모델보다 나은가였다. 그리고 A.I./LLM으로 만드는 과정에서 아주 분명해진 것은, 아마 이 관점을 다시 잡아야 한다는 점이다. 중요한 것은 매개변수 수가 얼마나 많은지가 아니라, 모델이 얼마나 일반적인 지능을 갖고 있는가이다. 더 일반적인 밑바탕 지능일수록 더 좋다. 왜냐하면 지시를 더 안정적으로 따르고, 제한된 데이터로 더 잘 예측하며, 데이터에 새로운 변환을 수행하고, 다른 영역의 학습을 새 영역으로 전이할 수 있기 때문이다. 즉 인간이 하는 종류의 지능을 수행하는 것이다.

이 중 일부는 그냥 공학이다. 과제를 쪼개고, 처리를 위해 다른 엔드포인트로 분배하고, 모델 앙상블을 활용하는 것. 하지만 더 일반적인 지능(앞서 GPT-4 vs. Claude 3 Opus 사용에서 말했듯)은 항상 더 좋다. 이런 시스템을 알아가는 것은 인간과 사회가 무엇을 할 수 있는지 이해하고 감상하는 가장 좋은 방법 중 하나다.

더 많은 지능은 더 적은 것으로 더 많은 일을 할 수 있다는 뜻이다. Claude 3 Opus 같은 모델이 약 2조 개의 매개변수를 40조 개의 토큰으로 훈련했음에도, 세계에 대한 밑바탕 지식을 가진 이런 모델이 수행하려는 일에 비해 여전히 매개변수가 부족하다는 것이 놀랍지 않은가? 분명 2조 개의 매개변수는 세계 전체 지식의 복잡성을 포착하기에 충분하지 않다. 그래서 모델이 제한된 아키텍처 안에 그렇게 많은 데이터를 압축하고 표현하려 하면서 고차원에서 많은 중첩이 발생한다. 아마 세계 전체에 대한 지식에 접근하는 것은 어떤 한 개인에게도 불가능한 일일 것이고, 모델은 더더욱 그렇다. 그래서 인간 사회의 경우 특정 영역의 다른 체화된 지식 주체(전문가)가 있고, 도서관, 박물관, 외부 지식 저장소, 심지어 일상적 의미에서 노트를 가진 사람에 의존함으로써 우리의 마음을 지탱하고 확장한다. 우리는 그렇게 세계에 대한 지식을 나누고 분산해 왔다.

그리고 우리는 존재했던 것 중 가장 에너지 효율, 샘플 효율, 계산 효율이 높은 생물학적 컴퓨터다. 모델 행동을 원하는 것에 더 잘 맞추기 위해 강화학습, 직접 선호 최적화, Kahneman-Tversky 최적화가 많이 이루어졌지만, 데이터의 희소성은 지속적인 과제다. 이와 대조적으로, 인간인 우리가 신호의 희소성에도 불구하고 사회적 종의 구성원으로 순응하고 작동하는 법을 배운다는 것은 놀랍지 않은가? 어쩌면 미디어와 문화의 전체 역할은 개인의 욕망에 선호의 고유벡터를 주입하는 것일지도 모른다. 진화는 경쟁처럼 아름답다.

잊고, 추상화하고, 유추하고, 상상하고, 계획을 세우는 우리의 능력 등이 현재 A.I. 시스템에서 빠진 조각이며, 그것들이 더 일반적인 학습과 확장을 가로막고 있는 것처럼 보인다. 환경 안에서 탐색하고 실험하며, 우리가 사용할 수 있는 문화적, 사회적, 지적 자원을 조직하고 활용하는 인간의 능력은 비할 데 없다.

그래서 나는 메타 상태에 도달했다. 조금 더 생각했더라면 곧장 뛰어드는 대신 다른 훈련 선택을 했을 것임을 깨달은 상태다. 마찬가지로, LLM이 사고의 사슬 추론을 사용하라고 지시받을 때 더 잘한다는 것이 놀라운 일인가?

다음 후속 글에서는 왜 더 많은 지능이 중요한지, 그리고 개인 사용자, 커뮤니티, 회사가 자신들의 목적을 위해 그런 지능을 어떻게 부트스트랩하고 활용할 수 있는지에 대한 제안을 더 구체화할 것이다. 그 대부분은 이미 이 글에서 논의했다. 고품질의 광범위하고 다양한 데이터셋, 외부 지식 저장소, 인재, 사회적 공유, 연산 자원, 더 나은 모델들이다. 데이터셋에 관한 첫 부분은 내가 다시 다루고 싶은데, 많은 조직이 이미 흥미로운 무언가를 만들 충분한 데이터를 가지고 있다고 의심하기 때문이다. 그들은 단지 교착 상태에 막혀 있을 뿐이다. 특히 이와 관련해 합성 데이터셋을 살펴보고 싶다. 내가 데이터 과학 졸업 프로젝트를 준비할 때 시도했지만 작동하게 만들지 못했던 것이기 때문이다. 다행히 세상은 바뀌었고, 나는 이제 더 많이 안다. ;)


원래 PubPub에 erniesg.pubpub.org/pub/1eogiw8s로 게시되었습니다.