"개떡같이 질문했는데, 어떻게 찰떡같이 대답하지?" AI와 대화를 하다 보면 세심한 배려에 감동할 때가 많다. 한 번이라도 되물을 법도 한데 본인이 알고 있는 정보에서 어떻게든 답을 하려고 한다. (물론 말도 안 되는 답변을 할 때도 있지만)
그렇다면 AI는 어떻게 학습하고 내 질문을 알아듣고 답변을 해줄까?
1. 벡터 임베딩 : 단어를 숫자로 바꾸는 마법
챗봇에게 질문을 하고 답변을 얻기 위해 우선 학습을 해야 합니다. 인간이 제공하는 데이터를 답변을 하기 가장 좋게 학습하려면 벡터 임베딩이라는 기술이 필요합니다.
벡터 임베딩은 단어를 고차원의 숫자 공간에 매핑하는 기술이며 단어들을 숫자로 이루어진 좌표로 변환하는 작업입니다.
예를 들어 아래와 같은 답변을 학습시키면 서로 비슷한 형식이지만 필요한 정보가 다르므로 각각 다른 벡터로 변환되어 배치됩니다.
답변 1) "주문 상태를 확인하려면 고객번호와 주문번호가 필요합니다."
이 문장은 주문 상태와 고객번호, 주문번호라는 정보를 포함하고 있습니다.
벡터 임베딩 결과: [0.45, 0.20, 0.65, -0.25, ...]
(여기서 "주문 상태", "고객번호", "주문번호"는 중요한 의미를 가지므로 이 값들이 벡터에 반영됩니다.)
답변 2) "배송 상태를 확인하려면 주문번호와 배송번호가 필요합니다."
이 문장은 배송 상태와 주문번호, 배송번호라는 정보를 포함하고 있습니다.
벡터 임베딩 결과: [0.42, 0.18, 0.62, -0.22, ...]
(여기서 "배송 상태", "주문번호", "배송번호"가 중요한 의미를 반영합니다.)
그리고 질문을 했을 때 챗봇은 질문 벡터와 답변 벡터를 비교하여 가장 적합한(유사한) 답변을 선택합니다.
질문 1) 주문 상태가 궁금해요. = [0.45, 0.22, 0.60, -0.21, ...]
질문 2) 배송 언제 받을 수 있어요? = [0.41, 0.18, 0.57, -0.16, ...]
질문 1의 질문 벡터는 답변 1의 벡터와 유사도가 더 높기 때문에 답변 2가 아닌 답변 1이 적합한 답변이라 판단하고 해당 내용을 안내하게 될 것입니다.
벡터 임베딩은 이렇게 단어의 의미를 수치화하고, 비슷한 의미를 가진 단어들을 가까운 위치에 배치하는 방식으로 AI가 학습 데이터를 이해하는데 중요한 역할을 합니다. 이 과정을 통해 우리가 원하는 대답을 찾아낼 수 있게 되는 겁니다.
https://aws.amazon.com/ko/what-is/embeddings-in-machine-learning/
임베딩이란 무엇인가요? - 기계 학습에서의 임베딩 설명 - AWS
ML 모델은 원시 형식의 정보를 명확하게 해석할 수 없으며, 입력으로 숫자 데이터를 필요로 합니다. 신경망 임베딩을 사용하여 실제 정보를 벡터라는 숫자 표현으로 변환합니다. 벡터는 다차원
aws.amazon.com
2. 자연어 처리(NLP) : 인간의 언어를 이해하는 AI의 비밀
그래서 어떻게 찰떡같이 이해하는 건데?
벡터 임베딩을 통해 유사도를 이용하는 것도 중요하지만 단어들만 숫자로 변환한다고 해서 AI가 인간의 언어로 받은 질문을 이해하고 또다시 인간의 언어로 답변을 할 수 있는 것은 아닙니다.
사람처럼 문장을 이해하고 분석하여 의미를 파악하는 기술이 필요하고, 바로 그것이 자연어 처리(NLP)입니다.
나는 배가 고프다.
배가 고프다는 문장에서 "배"는 물 위에 떠다니는 배가 아니라, 신체 부위인 배를 의미하며, "배고픔"을 뜻하는 것이죠.
여기서 중요한 것은 문맥을 파악하는 것입니다. NLP는 이러한 문맥을 이해하고 단어의 의미를 정확하게 해석하는 역할을 합니다.
내일 우산을 들고 외출해야 할까?
또 다른 예시를 들어보면 AI는 "우산을 들고 외출한다"는 말의 의도를 정확히 파악해야 합니다.
이 문장에서 내일의 날씨에 대해 궁금해하는 것이지, "우산을 들고 다니는 것을 좋아한다."거나 "새로 산 우산을 자랑하고 싶다"는 뜻은 아닙니다. AI는 단순히 질문을 넘어 사용자가 원하는 정보를 정확히 제공해야 하기 때문에, 의도 분석이 중요한 역할을 합니다.
결국 AI가 사람처럼 자연스러운 대화를 이어가고 개떡같이 말해도 찰떡같이 알아듣는 것도 결국 이 과정 덕분입니다. NLP 기술 덕분에 AI는 단순히 단어를 나열하는 것을 넘어 내 말을 이해하고 마찬가지로 내가 이해할 수 있게 답변을 할 수 있는 것입니다.
https://youtu.be/elYGlyTCehc?si=Y_V6KKyJXTKRlY7F
3. 대규모 언어 모델(LLM) : 심심이 선배님 인사드립니다
학습한 정해진 답변만 하는 인공지능 챗봇에서 범위를 좀 더 넓히면 대규모 언어 모델(LLM)이 등장합니다. LLM은 많은 양의 데이터와 학습을 바탕으로 인간의 언어를 이해하고 생성하는 능력을 갖춘 모델인데, 우리가 던지는 질문에 대해 고정된 답변을 넘어서 더 유연하고 자연스러운 답변을 생성할 수 있습니다.
요즘에 흔히 쓰는 chatGPT, 구글의 Gemini, 네이버의 클로바 X와 같은 모델들이 LLM의 대표적인 예입니다.
예를 들어, ChatGPT에게 "고양이는 왜 야옹하나요?"라는 질문을 던지면, 고양이가 의사소통을 위해 소리를 낸다는 사실을 바탕으로 "고양이는 사람과 의사소통을 하기 위해 야옹하고 울어요. 특히 배고플 때나 관심을 끌고 싶을 때 야옹하는 경향이 있죠."라는 답변을 얻을 수 있습니다. 이 답변은 단순히 고양이가 야옹하는 이유를 나열하는 것이 아니라, 문맥에 맞는 정보와 설명을 제공하며, 질문에 대해 적절하게 반응합니다.
또 다른 예로, 구글의 Gemini에게 "오늘 날씨 어때?"라고 묻는다면, Gemini는 현재 위치의 날씨 정보를 기반으로 "오늘은 맑고 기온은 약 20도입니다. 가벼운 옷을 입고 외출하기 좋겠어요."와 같이 실제 날씨 정보를 반영한 답변을 제공할 수 있습니다. 이 모델은 단순히 고정된 답변을 반복하는 것이 아니라, 실시간 데이터를 기반으로 유연하게 답변을 생성하는 능력을 보여줍니다.
https://www.elastic.co/kr/what-is/large-language-models
대규모 언어 모델이란 무엇인가? | LLM 종합 안내서
대규모 언어 모델을 정의하고, 언어 모델의 작동 방식, 이점 및 과제를 이해하고, 대규모 언어 모델의 예를 살펴보세요....
www.elastic.co
4. 그럼에도 불구하고, 가끔 엉뚱한 대답을 하는 이유
하지만 AI도 가끔은 엉뚱한 대답을 합니다. 첫 번째 이유는 학습 데이터 부족입니다. 내가 질문한 분야에 대한 데이터를 충분히 학습하지 못했다면 그에 대한 답변을 잘못할 수 있습니다. 요즘은 다양한 방법으로 스스로 학습을 하는 모델들도 있지만 그 데이터들도 항상 완벽한 것은 아니니까 정보가 부족하면 어색하거나 엉뚱한 대답이 나올 수 있습니다.
두 번째 이유는 AI는 사람처럼 이해하지 못하기 때문입니다. 문장을 통해 문맥을 이해하고 의도를 파악한다고 했지만 사실 AI는 우리가 생각하는 것처럼 '이해'를 하는 게 아니라, 수많은 데이터에서 패턴을 찾아 그 패턴에 맞는 대답을 하는 것입니다.
그렇기 때문에 사람만 이해할 수 있는 비유나 은유, 농담과 진담 등을 구분하기 어렵습니다.
가끔은 엉뚱한 대답을 하더라도 결국엔 우리가 더 나은 대화를 할 수 있도록 돕기 위한 과정들입니다.
벡터 임베딩, 자연어 처리, 대규모 언어 모델 같은 기술 덕분에 AI는 점점 더 사람처럼 대화를 이어나갈 수 있게 되는 거죠.
이 기술들은 우리가 원하는 대답을 찾아내는 데 중요한 역할을 하며 더욱 자연스러운 대화를 가능하게 만들어가고 있습니다. 완벽하다고 할 순 없지만, AI와 대화하는 날이 갈수록 이해도와 대화 능력은 더 '찰떡같이" 될 것은 분명합니다.