가설연역법은 인간의 사고과정을 한 마디로 표현한 것입니다. 인간은 어떤 대상과 상호작용하기에 앞서 먼저 그것이 무엇에 기반하는지를 판단하는데 그것을 철학에서 귀납이라고 부릅니다. 가설 혹은 가정을 세우는 것이죠. 이는 흔히 우리가 선입견이라고 부르는 것과 같은 것입니다. 인간은 일단 선입견을 가져야 대상을 인지할 수 있습니다. 일상에서는 선입견을 없애자고 말하지만, 그건 나쁜 선입견을 없애자는 것이고, 선입견이라는 한자의 뜻에서도 알 수 있듯이, 그게 없으면 인간은 원천적으로 판단 자체를 할 수 없습니다. 정확히 말하면 대상의 인지 그 자체가 선입견 혹은 가정 혹은 가설입니다.
일단 가설을 세우고 나면 그 가설을 실험하여 검증해야 합니다. 바로 연역입니다. 연역하여 가설이 재현되는 지를 판단하는 겁니다. 귀납이 여러 증거에서 범인을 추리는 과정이라면, 연역은 특정 범인이 여러 증거를 똑같이 남기는 지를 확인하는 과정입니다. 이때 귀납과 연역이 단순히 뒤집힌 관계라고 생각할 수 있지만, 실제로는 연역이 더 복잡한 추론 과정을 거칩니다. 귀납은 과정이 없지만 연역은 과정이 있기 때문입니다. 귀납은 단순히 공통점을 찾아가는 과정이지만 연역은 일반적인 지식에서 특수한 지식을 뽑아내고자 모든 과정을 검토하는 과정이 있기 때문입니다.
이러한 귀납과 연역의 관점에서 앞서 오리님께서 소개한 미국의 OpenAI(머스크 출자)에서 만든 챗봇을 평가하자면, chatGPT는 연역없이 귀납만으로 만들어졌다고 말할 수 있습니다. 구조론에서 매번 비판하던 바로 그 지점에 있는 인공지능 알고리즘입니다. 개사진(증거)을 보고 개(추상화지식)라는 것을 아는 수준에 그친다는 것이죠. 그러므로 이러한 귀납에 기반한 chatGPT는 검증이 안 됩니다. 검증 과정 자체가 없기 때문입니다. 그러면 인간은 어떻게 검증을 거칠까요?
일반적인 인간은 스스로 어떤 지식을 검증하기가 어렵습니다. 특별한 훈련을 받은 사람이라면 어느정도 내부 검증을 할 수 있겠지만 그건 특별한 경우고 일반적인 인간은 검증을 내부가 아닌 외부에 의합니다. 이발사의 역설입니다. 물론 특별한 사람도 외부에 의한 검증을 하는데, 그건 개인 내부에 사회를 만든 특별한 경우입니다. 마치 천사와 악마가 나의 판단에 잔소리를 하는 상황인 것이죠. 어쨌든 대부분의 인간은 자신의 판단이 맞는지 외부에 의해 검증받습니다. 그럼 누가 검증할까요?
바로 대화 상대입니다. 내가 찾으려는 지식의 반은 나에게 반은 상대에 있습니다. 내가 어떤 것에 문제제기를 하고 상대방이 그것에 대응하거나 반박하는 과정에서 내가 찾으려는 지식이 점점 명확해집니다. 제가 말을 거창하게 했지만, 실제로 이 과정은 모든 인간이 매일 일상에서 하는 행위입니다. "대화"죠. 제목에는 상호작용이라고 더 보편화된 단어를 선정한 이유는 대화나 상호작용이나 같은 것이기 때문입니다. 우리는 망치와도 대화하고 사람과도 상호작용합니다. 손으로 하는지 말로 하는지 정도의 차이가 있을뿐이죠.
상호작용이라는 검증을 거치는 시스템에서 필수적인 것은 연역입니다. 사실 인공지능 바닥에서는 이미 이것이 상용화되어 있습니다. 바로 알파고입니다. 알파고의 시뮬레이션이 곧 연역이기 때문입니다. 구조론에서는 알파고를 비판했지만, 그건 계산량이 많다는 것에 대한 것이고, 연역 그 자체에 대한 것은 아닐 것입니다. 연역을 비판할 수 없으니깐요. 인공지능 바닥에서 연역이 흔한 것이 됐음에도 불구하고 챗봇과 같은 자연어 분야에 적용이 되지 않은 것은 두 분야의 연구자가 상당히 격리되어 있기 때문입니다.
그간에는 각각의 분야가 나름 체계를 갖추고 있어 서로 품을 수 없는 분야라고 생각했거든요. 강화학습(Reinforcement Learning)과 자연어처리(Natural Language Process)를 하나의 관점으로 볼 수 없었던 것이죠. 그런데 그게 2022년에 들어 급속히 진행되고 있습니다. 코로나의 영향이 아닐까 생각합니다. 흑사병이 창궐할 때 뉴턴이 미적분을 만든 것과 같은 것이죠. 물론 OpenAI와 같은 거대 연구집단에서는 진지하게 보지 않는 것 같지만. 매우 소규모의 연구자 집단들은 RL 기반 자연어처리를 진행하고 있으며, 그게 바로 귀납과 연역을 순차적으로 사용하는 챗봇입니다.
귀납만 하면 원리적으로 팩트에 오류가 생길 수밖에 없습니다. 왜냐고요? 귀납이 원래 그렇기 때문입니다. 짧은 생각으로 보면 맥락에 오류가 생길 것 같지만, 좀더 생각하면, 검증을 하지 않으므로 맥락이 아니라 팩트에 오류가 생길 수밖에 없다는 것을 알게 됩니다. 귀납을 하여 맥락을 추론하므로 맥락은 무조건 맞추지만(경험에 의해 알게된 지식 안에서만 맥락을 검증하므로), 이러한 귀납추론의 과정은 반드시 과거의 경험에 기반하기 때문에 현재 내 눈앞에 펼쳐진 사건이 과거의 그 사건과 완벽히 동일하지 않다면 팩트는 반드시 틀리는 겁니다. 이는 제목만 보고 파일을 검색해서 그것을 쓰려다가 내용물이 다른 것을 보고 깜짝 놀라는 것과 같습니다.
내용물이 맞는지, 그리고 최종적으로 그 맥락 또한 유효한지는 반드시 연역이라는 검증을 거쳐야 하는 겁니다. 그리고 이러한 연역을 하려면 반드시 지속적인 대화라는 과정을 거쳐야 합니다. 일단 외부를 만들어 상호작용을 하는 환경을 만들어놓고, 그 안에서 가설연역을 수행할 수 있는 알고리즘을 두어야 한다는 것이죠. 가장 쉽게 생각할 수 있는 환경은 전화상담입니다. 콜센터죠. 하여간 이러한 과정을 거치는 챗봇을 만들면 인간이 처한 대부분의 문제는 해결할 수 있습니다만, 아직 진짜 문제가 남아있습니다.
진짜 문제는 새로운 지식의 생성입니다. 구조론에서 주로 다루는 영역이죠. 제가 소개한 방법의 한계는 귀납의 한계와 정확히 일치합니다. 연역을 하더라도 귀납의 범위를 벗어날 수 없다는 것이죠. 새로운 사건이 생길 때 전문가가 틀리는 이유가 여기에 있습니다. 지식의 범위, 즉 맥락을 벗어나므로 전문가가 오히려 무조건 틀리는 현상이 생기는 것이죠. 그렇다고 일반인이 더 잘 맞춘다는 건 아니고, 일반인은 아는 게 없으므로 찍습니다.
일단은 이러한 한계가 있다는 것 정도를 아는 선에서 이 글을 마칩니다. 일단 제가 말한 부분을 먼저 만들어놓고 그 다음에 대한 해법을 생각하는게 순서에 맞을 거라 생각하기 때문입니다. 코딩하는 사람들이 힘들어해서.. chatGPT 정도에 전세계 과학자와 기술자 들이 환호를 하고 있는데, 그것보다 더 좋은 게 나오면 사람들이 굉장히 좋아할까요, 아니면 굉장히 화를 낼까요? 저는 그게 궁금합니다.