'추리'는 없어 보이려나 ?
워낙 여러 일들이 정신 없이 벌어지는 AI 업계에서 언젠가부터 선수와 코치로 지내고 있는데, 그래서 더 많은 배울 것들이 있고, 더불어 '다 된다'는 주장들과 '아직 그럴 리 없다'는 주장들로 헷갈려 한다. 속이거나 속지 않으려고 더 많이 공부를 해야 하고, 오늘의 단어는 '추론'.
아마도 일본식 한자로 수학 혹은 논리학을 배웠고, 그 수학의 일부로 귀납법, 연역법 등의 고리타분한 이야기들을 배울 때부터 접하게 된다. 사전적 의미로는 이미 알고 있는 것으로부터 결론을 도출하는 행위 또는 과정, 특정한 명제에서 다른 명제를 이끌어내는 사고과정을 말한다. 수학의 정석에도 있던, 명제로 들어가면 그걸로 true or false 아닌가 하면서도 갑갑해 했던 기억들도 있지만, 꽤 추론이라는 말은 무의식적으로 썼던 기억이고, 단순하게는 (과정은 모르겠고) 결론을 만들어 내는 방법 등의 의미로 쓰여 왔다.
방정식을 푸는 것도 추론, 미지의 값을 예측하는 통계적 방법도 추론, IF / THEN / ELSE 도 추론이라 배웠다. 한자이긴 하지만, 추론(推論)의 한자로서의 뜻은 자세히 보면 꽤 잘 정의된 것이어서 결론을 이끌어 내는 행위를 나타낸다 하겠고, 문제를 푸는 모든 행동을 이야기하는 것이라 하겠다. 다른 대체할만한 단어들이 있을까 생각도 해 보았지만, 그러기엔 너무 오래전부터 썼던 단어라 한편으로 억지로 다른 말들을 여기 대체하기도 힘들다는 생각이다.
신조어들 나올 때마다 오래된 한자어들을 굳이 싶긴 한데... 개인적으로는 통계학과 이산수학을 한자로 배우고 영어로 이후에 배워서 큰 이질감이 없긴 하지만, 그래도 고전부터 전해 내려오던 단어들에 대해서는 흠칫 거려지긴 한다. 최근 LLM 해석들을 보면서 뜬금없이 내삽(Interpolation), 외삽(Extrapolation) 등이 보이는데.. 한편으로는 다행이다 싶은 게 이렇게 처음 보는 낯선 단어일 수록 오해는 많이 적다 하겠다.
Machine learning 이 방법론으로 자리잡을 때 training 의 반대(?) 개념으로 inference 라는 단어가 꽤 쓰이게 되고, 이를 한글로 번역하면서 자연스레 inference의 한글 해석으로 추론이 이용되어 왔다. 모델 혹은 서비스의 로직을 준비하는 개념으로 training 이 쓰여 왔고, 만들어 져 있는 것을 수행하는 방식으로서 inference 가 쓰여 왔고, 이를 추론으로 불러 왔다. 상대적으로 초기인 2010년대 정도까지만 하더라도 신경망, 곱신경망 등 번역된 한자 위주의 용어들을 찾아 쓰기도 했지만, 이후에 너무나 다양한 것들이 나올때마다 일일이 한글로 번역하기도 모호하고 Large Language Model 은 거대 언어 모델이냐 거대와 초거대는 무슨 차이냐 등의 불필요한 이야기들도 나오곤 했다. 이게 뭔가 싶을 때마다 새로운 개념들이 나오는데, 꽤 신기하게 새로 나오는 개념들은 있던 단어들의 조합들로 구성되곤 한다.
주로 training 과의 반대의 개념이었기에 거기에 맞는 requirement 들이 있었고, '실행'에 초점이 맞춰진 행위들을 inference 로 불려 왔다. training 이 write 연산에 방점이 더 찍혀 있고, inference 는 특히 language model을 이용하는 경우에 모델의 내부에서 연산 결과들이 copy 되는 정도의 제약들이 있지만, 주로 read 연산에 특화되어 왔다. 뭔지 모르지만 freezing 되어 있는 연산 장치에 값들을 흘려 보내어 결과를 얻어 내는 행위 정도에 가까웠고, 반도체 혹은 서비스들도 이 기준에 맞게 강조되어 왔다.
생각해 보면 training 이 그렇다고 '교육', '훈련'으로 불리지 않았던 거 보면 이 때부터 어설프더라도 inference 라는 단어들을 계속 써야 하지 않았을까 싶은 개인적인 생각이다.
ChatGPT 이후 LLM을 여러 방식으로 응용하는 과정에서, 특히 AI 엔진, 채팅 서비스 등이 더 많은 일들을 하게 되면서 '될 때까지 일을 하는' 방법으로 reasoning 이 주요 키워드로 세상에 나오게 되고, 이도 역시 한글로 '추론'이라 번역되어 쓰아고 있다. 여기서 꽤 진지한 헷갈림이 있게 되는데, 이전 시대에 inference 의 추론이 단순한 행렬 변환에 준하는 난이도에서도 한 번에 뚝딱거리면 다 될 거 같은 것들에 비해서 reasoning 의 추론은 될 때까지 반복해 본다는 의미가 꽤 강하게 들어 있다.
굳이 사전들에서 찾아 보면 어색하지만 '추리'가 조금 더 맞는 표현이고, '왜' 혹은 '어떻게'라는 질문을 할 때 이해할 수 있는 방식으로 구현되는 모습에 더 가깝다 하겠다. 각각의 서비스들이 내부를 구성하는 데는 비밀이 많고, 요즘 에이전틱 관련해서는 LLM 에게 판단을 맡기면서 여러 방식으로 정답을 구할 때까지 다양한 일들을 구성하게 하는데, 그래서 복잡한 일들을 어떻게든 해내는 것과 같은 오해를 준다. 그래서인지, 개인적으로 inference 를 reasoning 과 섞어 쓰면 사기라는 생각이다.
아예 반도체나 시스템쪽으로까지 내려오면 살짝 자연스레 inference 는 주어진 weight 의 모델에 데이터를 흘려 보내는 정도의 것을 이야기하고, reasoning 은 그런 과정들을 만족 할 때까지 반복시키는 일련의 과정들을 이야기한다. 엄연히 다를테다. '추리'라고 하기에는 셜록홈즈나 김전일, 코난 등이 어른거렸을까 ?