널리 알려진 프롬프팅 기법 중 하나인 Chain-of-Thought에 대한 논문을 읽다가 emegence라는 개념이 잠깐 언급되어 이에 대해 다룬 Emergent Abilities of Large Language Models를 읽고 정리해보았습니다. 우리말로는 창발이라고 하는데, 하위 계층에서는 존재하지 않던 특성이 상위 계층에서 자발적으로 돌연 출현하는 현상을 의미합니다. 지난 달에 참여한 EOST 2023이라는 컨퍼런스에서 LLM의 창발에 대해서 처음으로 알게 되었는데, 당시에는 LLM이 명시적으로 학습하지 않은 능력을 자연스럽게 갖추게 되는 현상이라고 막연하게만 이해하고 있었습니다. 실제로 논문에서 다룬 개념도 크게 다르진 않은데, 저자가 창발이라는 현상을 어떻게 이해하고 분석했는지 한 번 알아보겠습니다. 참고로 Discussion 부분은 제가 임의로 편집하였기 때문에 생략된 내용이 다수 있습니다. 구체적인 내용은 논문 본문을 참고해주세요. 번역을 통해 오히려 이해가 어려워지거나, 원문의 표현을 사용하는 게 원래 의미를 온전히 잘 전달할 것이라고 생각하는 표현은 원문의 표기를 따랐습니다. 오개념이나 오탈자가 있다면 댓글로 지적해주세요. 설명이 부족한 부분에 대해서도 말씀해주시면 본문을 수정하겠습니다.
1. Overview
최근 몇 년간 자연어 처리의 역사는 언어 모델에 대한 연구와 함께 빠르게 발전했습니다. 이제는 언어 모델의 규모가 커질수록 모델의 성능과 학습 효율(sample efficiency)가 향상된다는 사실이 널리 알려졌습니다. 참고로 sample efficient하다는 것은 적은 학습 데이터로도 뛰어난 성능을 보임을 의미합니다. 모델의 규모에 따른 성능은 많은 경우 규모의 법칙(scaling laws)에 의해 설명될 수 있습니다. 반면에 일부 다운스트림 태스크에 대한 성능은 규모와 선형적인 관계를 갖지 않기 때문에 사전에 성능을 예측하기가 어렵습니다.
이처럼 대규모 언어 모델에서 발생하는 예측 불가능한 현상을 창발이라고 하는데, 이 논문에서는 창발적인 능력(emergent ability)에 대해 다룹니다. 창발이란 물리학, 생물학, 컴퓨터 과학 등 여러 분야에서 오랫동안 논의된 개념입니다. 논문에서는 창발의 일반적인 정의로 다음과 같은 표현을 사용했습니다.
Emergence is when quantitative changes in a system result in qualitative changes in behavior.
우리말로 하면 창발이란 ‘어떤 시스템 안에서 일어난 양적인 변화가 시스템의 동작에 질적인 변화를 불러일으키는 것’을 의미합니다. 논문에서는 훈련 시 연산량과 모델 파라미터의 개수를 바탕으로, 모델 규모에 따른 창발 현상에 대해 분석합니다. 구체적으로 이 논문에서 대규모 언어 모델의 창발 현상은 규모가 작은 모델은 갖지 못하지만 대규모 언어 모델만이 갖는 특별한 능력을 의미합니다.
2. Emergent Abilities Definition
언어 모델의 창발성은 단순히 규모의 법칙을 확장하는 것만으로는 예측하기 어렵습니다. 규모와 창발성의 관계를 시각화해보면 매우 뚜렷한 패턴을 보입니다. 모델 규모에 대해 어떤 임곗값까지는 무작위적인 성능을 보이지만 그 지점을 넘어서면 성능이 기하급수적으로 증가합니다. 이런 질적인 변화를 상변화(phase transition)라고 불리기도 합니다.
언어 모델의 크기는 연산량, 모델 파라미터 수, 학습 데이터셋의 크기로 총 세 가지 요인에 의해 결정됩니다. 논문에서는 규모 곡선(scaling curve)의 $x$축을 FLOPs하여 모델을 분석합니다. FLOPs는 Floating Point Operations Per Second로 초당 이루어지는 부동 소수점의 연산량을 의미합니다. 이 연구는 연산량과 모델 사이즈의 관계에 초점이 맞추어져 있지만 이 방법이 최선인 것은 아닙니다. 예를 들어 Chinchilla는 Gopher에 비해 파라미터 개수가 1/4밖에 되지 않지만 두 모델의 훈련 과정에서 요구되는 연산량은 거의 비슷합니다. 따라서 창발은 모델 규모 뿐만 아니라 복잡하게 얽혀있는 다양한 요인에 의한 함수로 이해해야 합니다. 또한 논문의 실험에 의해 최초로 창발이 관측되는 지점이 어떤 고정적인 경계라고 생각하면 안됩니다. 더욱 품질이 좋은 데이터로 학습된 모델은 적은 연산으로도 창발적인 능력을 가질 수 있기 때문입니다.
3. Few-Shot Prompted Tasks
저자는 먼저 GPT-3에 의해 널리 알려진 프롬프팅 패러다임(prompting paradigm)에 대한 창발을 연구하였습니다. 사전 훈련된 언어 모델에 어떤 태스크에 대해 자연어로 된 명령어인 프롬프트가 주어지면 모델은 추가적인 학습 없이 어떤 응답을 만들어냅니다. GPT-3 논문에서는 퓨샷 프롬프팅이라는 기법이 제안되었는데, 이는 모델의 입력에 태스크에 대한 입력-출력 예시를 몇 개 포함하여 학습 과정에서 보지 못한 태스크를 수행하게 하는 것입니다. 예를 들면 다음 그림과 같습니다.
만약 퓨샷 프롬프팅에 대한 성능이 특정 규모 이하의 모델에서는 불규칙적이지만, 이후 급격하게 증가한다면 이는 창발 현상의 일종이라고 생각할 수 있습니다.
저자는 BIG-Bench, TruthfulQA, Grounded conceptual mappings, Multi-task language understanding, Word in Context 벤치마크에 대해 모델 규모에 따른 퓨샷 프롬프팅 성능을 측정하였습니다.
모든 모델이 모든 벤치마크에서 특정한 규모까지는 무작위적으로 낮은 성능을 보이다가, 어떤 임계점을 넘어서면 성능이 급격하게 증가하는 것을 볼 수 있습니다. 이는 퓨샷 프롬프팅을 수행하는 능력이 창발의 한 예시임을 의미합니다.
4. Augmented Prompting Strategies
퓨샷 프롬프팅은 현재 알려진 대규모 언어모델과 상호작용하는 가장 흔한 기법이지만, 최근에는 모델 성능을 향상하기 위한 다양한 프롬프팅과 파인튜닝 전략이 제안되었습니다. 이러한 기법들 또한 규모가 충분히 커지기 전까지는 특별한 이점을 갖지 못하다가, 어느 순간부터 폭발적으로 모델 성능의 향상을 불러일으킨다면 창발적인 능력의 일종이라고 생각할 수 있습니다.
여러 단계를 거쳐야 하는 추론 과제는 언어 모델에게 어려운 과제였습니다. 그런데 최근 chain-of-thought과 같은 프롬프팅 전략이 이런 문제를 해결하는 데 도움이 된다고 밝혀졌습니다. 이와 비슷하게 태스크에 대한 예시(few-shot examples) 없이 지사 사항만 읽고 명령을 따르는 것 또한 난이도 높은 과제입니다. 이는 InstructGPT와 같이 instruction-finetuning 기법으로 성능을 크게 향상시킬 수 있습니다. 이를 비롯해 8자리 덧셈(program execution), 모델의 성능과 정답에 대한 confidence의 관계 측정(model calibration)에 대해 모델의 창발성을 테스트하기 위한 실험이 수행되었습니다.
5. Discussion
앞선 실험을 통해 우리는 모델이 충분히 큰 규모에 도달하고 나서야 비로소 수행할 수 있는 다양한 태스크에 대해서 살펴보았습니다. 이처럼 창발은 단순히 작은 규모의 모델 성능을 측정함으로써 예측할 수 있는 속성이 아닙니다. 그런데 이러한 현상은 나아가, 모델의 규모를 지금보다 훨씬 크게 할 경우 또 다른 능력이 나타날 것인지에 대한 의문을 갖게 합니다.
창발 현상의 원인에 대해서는 다양한 논의가 있지만 논문에서는 크게 두 가지를 설명합니다. 먼저 여러 단계를 거쳐 추론해야 하는 과제가 최소 $l$번의 순차적인 연산을 필요로 한다면, 모델의 깊이도 이에 따라 최소 $O(l)$개의 레이어를 가져야 할 것입니다. 또한 특정 배경 지식을 전제로 하는 태스크는 모델이 충분히 많은 파라미터를 가질 것을 요구할 것입니다. 예를 들어 closed-book 질문 답변 태스크에서는 모델이 지식 베이스를 적절하게 압축하고 그 정보를 잘 사용할 수 있도록 충분한 규모를 갖추어야 합니다.
또 다른 하나는 측정 지표의 문제입니다. 적절한 측정 지표가 사용되지 못했을 경우에는 규모가 작은 모델의 능력을 제대로 평가하지 못하고 있었을 수도 있습니다. 예를 들어 exact match와 같은 지표는 부분 점수를 고려하지 않기 때문에 모델에 따라 유불리가 크게 작용할 수 있습니다. 대안은 크로스 엔트로피 손실을 사용하는 것입니다. 하지만 이러한 분석도 모든 상황에 적용되는 것은 아니기 때문에 창발의 원인을 파악하기 위한 추가적인 연구가 필요합니다.
결국 프로그램의 규모만 무작정 늘리는 데에는 분명히 한계가 있습니다. 언젠가는 하드웨어 제약에서 자유롭지 못할 것이며 그 때부터는 새로운 능력이 창발되지 못할 것입니다. 맹목적으로 모델 규모를 키우는 것이 항상 기대한 성능을 가져다 줄 것이라는 보장도 없습니다. 언어 모델의 크기가 커질수록 이전에는 생각하지 못한 위험을 가져오기도 합니다. 모델이 편향을 갖거나 잘못된 정보를 생성하는 등, 사회적으로 영향을 미칠 수 있는 문제를 초래하기도 합니다.
따라서 단순히 모델의 규모를 키우는 데 그치는 것이 아니라 모델 아키텍처와 훈련 방법을 개선하거나, 데이터의 품질을 향상하는 방법에 대한 연구가 이루어져야 합니다. 프롬프팅에 대한 이해와 연구도 수반되어야 하며 언어 모델이 아직도 잘 수행하지 못하는 수많은 과제에 대한 연구도 필수적입니다. 이 논문에서는 창발에 대한 최초의 분석을 수행하였지만, 아직도 연구되어야 할 것들이 많이 남아 있습니다. 창발을 이해한다면 미래의 모델은 어떤 능력을 가질지, 그리고 어떻게 대규모 모델을 잘 훈련할 지에 대한 인사이트를 얻을 수 있을 것입니다.
6. Reflection
창발의 원인과 발생 과정에 대해서는 현재로써는 알 수 없지만, 대규모 언어 모델이 이와 같은 능력을 갖는다는 것 자체만으로도 매우 흥미로웠습니다. 넓은 의미에서 AI가 결국에는 인간이 갖는 모든 능력을 언젠가는 모방할 수 있다고 생각해왔는데, 창발도 그러한 능력의 일종이라고 생각되어 정말 신기했습니다. 일반적으로 모델 성능은 규모의 법칙을 따를 것이라고 예상하는데 어떤 임계점을 넘어서면 비약적으로 능력이 향상되는 것이 의외였습니다. 사람의 학습 곡선도 보통은 완만한 경사를 갖는다기보다는, 계단을 올라서는 것처럼 어떤 지점에 도달하면 폭발적으로 성장하는데 이런 점이 특히 더 놀라운 것 같습니다. 창발의 원인을 아직은 정확히 알지 못하지만, 그리고 이러한 현상이 사실은 모델을 분석하는 잘못된 방법론에서 비롯된 오해라고 해도, 현재로써는 결국 AI가 인간의 지능을 모방하는 방향으로 발전하고 있다는 점에서 굉장히 획기적이고 주목할만한 현상이라고 생각합니다. 딥러닝 모델은 인간의 뇌와 같이 작동 원리를 분석하기 정말 어렵지만, 언젠가는 이런 현상에 대한 연구를 통해 인간을 이해하는 연구에도 큰 기여를 하게 되었으면 좋겠다는 생각이 들기도 합니다. 뜬금없지만, 논문과 Chain-of-Thought Prompting Elicits Reasoning in Large Language Models 논문이 서로를 인용하고 있는데, 저자가 둘 중 하나의 논문을 발표 이후 수정한 것인지, 아니면 동시에 수행된 연구가 함께 발표된건지에 대해 사소한 의문이 들었습니다.
댓글