인턴은 처음이라

정유준 Pick | 럭비로 설명하는 온톨로지

‘인턴은 처음이라’는 갓 입사한 신입 인턴의 눈높이에서 모비젠의 기술을 하나씩 탐구해가는 시리즈입니다.

안녕하세요! 모비젠의 신입 인턴, 정유준입니다.

제가 입사한 첫 날부터 계속 귓전으로 들리던 단어가 있었습니다. 바로 ‘온톨로지’였는데요,

처음엔 “간단한 개념이겠지” 하고 찾아보았지만 애초에 개념 자체가 너무 어렵다 보니 쉽게 이해되지 않았습니다.

하지만 며칠간의 웹서핑과 직원분들께 자문을 구한 뒤 지금은 온톨로지를 이해했다고 말할 수 있습니다!

저는 이 단어를 처음 접하실 많은 분들이 온톨로지에 대해 저보다 쉽고 빠르게 이해하면 좋을 것 같았습니다.

그래서 지금, 온톨로지를 제가 이해한 방식 그대로 쉽게 풀어서 설명해보려고 합니다.

온톨로지가 필요한 이유

저는 평소에 AI를 자주 쓰는데요, 간단한 질문부터 문서 작업까지, 거의 제 일상을 공유하는 친구 같은 느낌입니다.

그만큼 많이 쓰다 보니 고질적인 문제도 발견했는데요, 가끔 잘못된 정보를 자신 있게 나열한다는 점입니다.

그럴 때마다 저는 단순히 프로그램 오류라고 단정짓고 컴퓨터를 재부팅하곤 했습니다.

궁금해서 알아보니, 이것은 단순한 프로그램 오류라기보다 LLM의 작동 방식과 관련이 있었습니다.

LLM은 한국어로 ‘거대언어모델’이라는 뜻으로, 학습된 데이터에 기반하여 다음 단어를 예측해서 문장을 만드는 AI 기술입니다.

쉬운 말로, AI는 사실 자신이 하는 말이 진짜인지 아닌지는 판별하지 못하고, 그저 ‘그럴듯한 말’을 계속 이어붙이는 ‘단어 예측기’에 불과하다는 거죠.

다음 단어를 예측해 문장을 잇는 LLM의 작동 방식

그래서 AI가 가끔가다 잘못된 정보를 알려주는 것은, 실수가 아닌 한계점이에요.

하지만 저는 지금까지 AI를 무의식적으로 계산기처럼 생각하고 대하곤 했어요.

정해진 정답을 기대하게 되는 계산기 비유

계산기에 “1+2”를 넣으면 항상 정확한 정답 “3”이 나오듯,

AI에게 질문해도 당연히 정해진 정답이 나올 거라고 생각했죠.

사실 LLM은 계산기처럼 정해진 정답을 알려주도록 디자인된 도구가 아닌데도 말이에요.

하지만 단점 때문에 쓰지 않기에는 AI가 가지고 있는 장점이 너무 많아요.

그래서 모비젠은 이런 문제를 보완하기 위해 LLM에 온톨로지를 접목했어요.

문제는, 온톨로지는 아직 제게 너무 어려운 단어였다는 거예요.

그래서 검색을 하고 자문을 구하러 다녔는데, 그러다 알게 된 게 있어요.

모비젠에서는, 어려운 기술도 각자의 경험과 언어로 쉽게 설명하시더라고요.

그래서 저도, “내가 가장 자신있는 언어로 설명하면 되겠구나”라는 생각이 들더라고요.

지금부터 그 어려운 온톨로지를 제가 좋아하는 운동에 비유해서 보다 쉽게 이해하도록 해드릴게요.

좋아하는 럭비에 빗대어 온톨로지를 설명

저는 중학교 즈음 캐나다에서 럭비(Rugby)를 처음으로 접했는데요,

그때부터 럭비를 너무 좋아하게 되어 한 시즌도 빠지지 않고 고등학교 졸업까지 쭉 선수로 활동했습니다.

그런 제 열정을 알아주었는지, 마지막에는 팀 내 MVP로 선정되었습니다.

그럼 과연 제가 좋아하는 럭비는 온톨로지와 어떤 관련이 있을까요?

온톨로지(Ontology)는 한국어로 직역하면 ‘존재론’이라고 하지만,

직역한 뜻과는 조금 다르게 실제 쓰이는 온톨로지는 ‘설계도’의 개념과 비슷해요.

아무리 세계 최고의 럭비 선수들을 모아도 ‘팀’이라는 체계가 잡혀 있지 않다면 경기에서 승리하기 힘들지 않을까요?

하나의 완성된 팀으로 움직이려면, 팀 내 각 포지션이 어떤 역할을 수행할지 정리되어 있어야 합니다.

AI도 비슷한 원리예요!

AI가 세상을 더 정확하게 이해하기 위해선, 우리가 먼저 세상을 체계적으로 정리한 ‘설계도’를 만들어 주어야 하는 거죠.

럭비(Rugby)의 룰

럭비로 온톨로지를 더 잘 이해하기 위해선 일단 럭비의 기본적인 룰을 아셔야 해요.

럭비에서는, 공을 자신 앞으로 패스하지 못하고 오직 뒤에 있거나 자신의 동일 선상에 있는 선수에게만 패스할 수 있어요. 그래서, 공격하려면 선수들이 직접 공을 들고 뛰어서 전진해야 해요.

뒤 또는 동일 선상으로만 패스하는 럭비의 규칙

그러면 수비는 어떻게 할까요?

전진하는 상대를 수비하기 위해 선수들은 태클(Tackle)을 합니다.

전진하는 상대를 막는 태클

상대 팀의 태클로 넘어진 선수는 땅에 있는 공을 뒤로 내주고, 9번 등번호를 단 스크럼 하프(Scrum Half)가 공을 확보해 경기 상황을 빠르게 판단한 뒤 패스하며 공격을 전개해요.

혹시 9번이라는 숫자가 낯이 익지 않으신가요?

앞의 사진에서 이미 등번호를 봐서 아시겠지만, 이 포스팅을 쓰는 제 포지션이 바로 9번 스크럼 하프(Scrum Half)입니다!

럭비 속 온톨로지(Ontology)

럭비에 대해 이해했으니, 이제 온톨로지를 마스터할 준비가 되셨어요!

온톨로지는 럭비의 각 포지션을 큰 분류(Class), 그 포지션을 플레이하는 각 선수 개체(Instance)라고 지정해요.

예를 들어 제가 플레이하는 포지션인 ‘9번 스크럼 하프(Scrum Half)’를 하나의 큰 분류(Class)라고 볼 수 있어요.

포지션은 분류(Class), 선수는 개체(Instance)

또한 온톨로지에는 관계(Relation)와 속성(Property)이라는 두 가지 개념이 더 있습니다.

관계(Relation)는 말 그대로 큰 분류(포지션) 혹은 개체(선수) 사이의 관계를 나타내요.

럭비에서의 관계(Relation)는 선수들이 서로 어떻게 연결되어 움직이는지를 나타내는 것과 같아요.

온톨로지 속 럭비가 현실과 비슷한 체계를 갖추기 위해선 각 포지션과 선수 사이의 행동을 나타내는 ‘관계’가 존재해야 합니다.

관계가 없다는 건, 누가 누구에게 패스하고 누가 누구를 태클하는지 표현할 수 없다는 뜻이기 때문이에요.

또한 관계(Relation)는 온톨로지 안에서 저절로 정해지는 것이 아니라, 어떤 관계로 연결할지 미리 정의해야 합니다.

관계(Relation)를 정의하는 예시 ① 관계(Relation)를 정의하는 예시 ②

“9번 스크럼 하프(Scrum Half)가 상대 윙(Wing)을 태클한다”와 같이 선수 사이의 관계가 성립되어야 비로소 온톨로지 세계에서도 현실의 럭비팀이 어떻게 움직이는지를 표현할 수 있어요.

선수 사이의 관계가 성립된 모습

속성(Property)은 개체마다 가지고 있는 특징이에요.

저, 정 인턴이라는 개체에는 키 170cm, 몸무게 70kg과 같은 속성이 있는 것처럼, 한 개체를 더욱 구체적으로 설명하는 정보가 속성(Property)입니다.

이 모든 걸 하나로 합치면 어떻게 될까요?

온톨로지라는 ‘설계도’에 따라 실제 데이터를 연결하면 하나의 큰 지도가 되는데요, 이것을 지식 그래프(Knowledge Graph)라고 불러요.

아래 그림은 럭비의 포지션과 선수들의 관계를 온톨로지로 표현해 만든 지식 그래프입니다.

럭비 포지션과 선수의 관계를 온톨로지로 표현한 지식 그래프

럭비와 온톨로지는 겉으로는 정반대의 주제 같습니다.

하지만 조사를 하며, 두 주제는 여러 가지 유사점이 있다는 사실을 알게 되었습니다.

처음에는 어렵기만 하던 주제도, 제가 좋아하는 것과 연결지어 생각해보니 조금씩 이해할 수 있었습니다.

이 포스팅을 통해, 사람들에게 아직 조금은 생소한 ‘럭비’와 ‘온톨로지’가 여러분에게는 조금은 친숙한 개념으로 남았기를 바랍니다!