blah/Mini-Journal

AI의 한계에 대해 생각하기

이고란. 2024. 6. 8. 16:49

AI에 대해서는 오래 전부터 들어왔다. 중력파의 노이즈를 AI로 제거한다느니, 주가 데이터를 학습시킨 모델로 투자를 한다느니. 그러한 변화 중 제일 놀랐던 건 Stable Diffusion이었다. 그림을 생성하는 생성형 AI. 당시의 나는 "감상 시간이 짧은 예술일수록 빨리 정복당하겠구나"라고 생각했었다. 지금도 그 생각은 여전하다.

 

많은 것들이 AI에게 정복 당할 듯하다. 우리가 할 수 있는 건 현재 주어진 가능성에서 가장 덜 영향을 받는 역량을 기르고 그러한 분야로 방향을 트는 것 정도라고 생각한다. 더 나아가서는 AI를 잘 활용해야겠지. 그러기 위해서는 AI의 한계에 대해 이해해야 할 것이다. 물론 이 알량한 게시글이 그 한계를 잘 파악할지는 모르겠지만ㅎㅎㅎ

 

기본적으로는 두 가지에 대해 알아야 할 것이다. 얼마나 빠르게 발전할 것인가? 어디까지 해낼 수 있을 것인가? 즉 발전 속도와 도달 상한이다. 발전 속도는 지금까지 그래왔듯 지수적이라고 가정하자. 그렇다면 도달 상한이 중요해질 것이다.

 

우선 멱법칙(power law)에 대해 알아야 하지 않을까? '조작 변인이 선형적으로 변화하면 통제 변인이 지수적으로 변화하는 현상'에 대한 이 법칙은 자연현상은 물론이고 사회 곳곳에서 발견할 수 있다. 파레토 원리(a.k.a. 80:20 규칙) 또한 멱법칙의 사례 중 하나다. 이때 조작하고 통제할 대상을 뒤바꾸면 조작 변인의 지수적인 변화가 통제 변인의 선형적인 변화를 야기하는 경우를 가리키게 된다.

 

neural scaling law는 뉴럴 네트워크에서 적용되는 (경험적인) 멱법칙이다. 단순히 말하자면 데이터셋의 지수적인 증가가 모델 퍼포먼스의 선형적인 상승을 불러온다는 것이다. 하지만 현재 인류가 갖고 있는 데이터셋에는 상한이 있다. 이 상한이 곧 AI의 상한이라고 생각한다. 물론 Transformer 아키텍처보다 더 나은 방식이 개발되면 이 논의는 처음부터 재구성되어야겠지만.

 

현재 AI가 잘하는 일과 그렇지 못한 일에 대해 생각해보는 것도 중요할 것이다. AI의 강점은 연산력, 즉 빠른 처리 속도다. 사람이라면 엄두도 내지 못할 방대한 양의 데이터를 분석하고 패턴을 추출하여 예측을 내놓는 것. 테드 창의 칼럼에서는 'ChatGPT는 웹을 손실 압축한 결과다'라고 말하지만, 나는 ChatGPT가 그 이상을 해낼 수 있다고 생각한다. 정확히는 그 손실 압축 알고리즘 자체에도 가치가 있다고 본다. 혹은 레퍼런스 기반의 RAG(retrieval augmented generation)로 그 손실을 제어할 수도 있고.

 

반대로 말해 데이터와 레퍼런스가 없는 분야에 대해서는 AI가 약할 수밖에 없다. 또한 맥락과 방향성이 명시적으로 주어지지 않은 경우에 대해서도 그렇다. 흔히들 말하는 "창의성"이 필요한 문제 해결들. zero-shot 학습이나 open-endedness 같은 주제들은 많이 연구되었고 탐구되고 있는 분야지만 창의성의 구현은 아직 먼 얘기 같다.

 

또한 Transformer 아키텍처는 근본적으로 통계적인 모델이라 논리적 무결성과는 거리가 있다. 예를 들면 아직도 ChatGPT는 복잡한 사칙연산을 잘 못한다. 개인적으로는 Mathematica 같은 "한정된 자유도"에 대해 학습하게 된다면 얼마 안 가 극복할 거라고 생각하지만, 하여간.

 

AI의 자체적인 한계를 알아보았으니 이제 AI를 사용하는 입장에서의 한계에 대해서도 알아봐야 할 것이다. AI가 자립하려면 아직 시간이 더 필요한 것 같으니, 사용 방법을 잘 알아야만 할 테니까.

 

기본적으로 AI는 블랙박스다. 프롬프트 엔지니어링이라는 게 존재하는 것부터가 그렇다. 같은 요구를 할 때에도 몇 마디를 추가하거나 빼는 것만으로 답변의 퀄리티가 달라진다. 답변의 temperature가 존재한다는 사실도 많이들 모르는 것 같더라(내 주변에서만 그럴 수도 있지만). AI의 조작 가능성에 대해 잘 알아야만 한다.

 

프로그래밍 개발도 다른 창작과 마찬가지로 적절한 인출(retrieval)이 필수적이다. 주어진 상황에서 '무슨 코드를 쳐야할지' 알아야만 한다. 그러한 인식과 실제 인출과 손끝으로 구현해내는 과정은 신속하고 정확할수록 좋다. 전문성에는 판단과 실행의 프로세스를 정확하게 갖추면서 프로세스 사이사이에 존재하는 lagging을 줄이는 것이 포함된다.

 

AI의 한계과 이용 방법을 모르면, 그리고 자신의 업무 프로세스에 대해 잘 숙지하고 있지 않다면 AI의 효용은 떨어질 수밖에 없다. 복잡도를 분절하거나 질문 방식을 잘 구축하지 않는다면 그냥 자신이 혼자서 하는 게 더 빠른 경우도 생기는 것이다. 이는 반대로 말하자면 어떤 분야가 별다른 숙련도가 없어도 신속함과 정확도에 있어서 AI를 쓰는 게 더 우월하다면 그 분야는 초토화될 가능성이 높다는 뜻이기도 하다.

 

물론 세상에는 결정 피로(decision fatigue)나 선택의 역설(paradox of choice)이라는 개념이 있다. 이런 거 알아봐야 괴롭기만 하지 실제 선택은 더 나빠질 가능성도 있다. 하지만 아예 모르는 것이 최선이 아니라는 점 또한 확실하다. 균형을 잘 잡아야겠지.