AI에서 큰 한 획을 그은 논문이 있었다. 그건 "Attention is all you need"하는 논문이었다. 그 때 나온 "어텐션"이란 모델은 지금 LLM의 가장 핵심적인 아이디어다.
하지만 그건 기술자, 연구자들에게나 중요한거고.
일반인이 이해해야 하는 건 매우 기초적인 컨셉 부분 뿐이다. 나머지는 모두 전세계의 영리한 사람들이 라이브러리로 구현해 놓았다.
Attention, 부분에 집중하라.
어텐션 모델의 가장 핵심은, 맥락에 따라 특정 부분에 집중하도록 하는 메커니즘이다. 이전의 AI모델은 모두 모든 입력들을 나열해놓고, 그것이 아웃풋과 연관되는 관계식에서 가중치를 구하는 것이었다. 들어오는 위치가 같으면 가중치도 같다. 하지만 어텐션은 입력값을 분석해 가중치를 따로 또 계산해두고 출력을 모델링한다. 이건 언어 뿐만이 아니라 다양한 분야에서 매우 쿨한 아이디어였고, 또 효과적이었다.
그 이전에 언어 분석의 대세는 RNN(Recurrent Neural Network) 였다. AI연구자들도 바보가 아니다. 언어란 게, 여러 문법 요소들마다 중요도가 다르다는 건 알고 있었다. 거기에 길이도 제각각이지. 그래서 쭉 스캔하면서 정보를 축적해 해석하려고 한 결과 나온 모델이 RNN이다. 하지만 이건 불안정하고 학습도 어려운 문제가 있었다. 그 와중에 나온게 어텐션. 이건 판도를 바꿨다.
현재 LLM 모델의 기반으로서 대세는 "트랜스포머"란 모델이다.

이거 아니고.
트랜스포머의 기초도 어텐션이고, 그래서 LLM은 모두 어텐션의 특징을 가진다.
여기까지가 구질구질한 기술 이야기고, 그래서 일반인들에게 필요한건...
한마디로, 요즘의 LLM은 입력된 글의 전체를 보지 않는다는 것이다. 다음 글을 계속 써내기 위해 핵심적인 포인트만 본다. 이는 매우 효율적이다. 우리도 글을 쓸 때 앞의 글 정보를 모두 한번에 고려해서 한 단어 한 단어 선택하지 않는다. 의미적인 맥락에서 앞의 문장이나 문단의 핵심문장이라든가, 쓰고있는 글의 핵심 키워드라든가, 문장을 완성하기 위해서는 해당 문장의 다른 구성요소만 신경쓴다. 이를테면.
주어를 썼으니 다음은 목적어나 서술어를 써야지, 하는 것.
그리고 그건 때때로 오류를 일으킨다. 챗GPT도 써보면 가끔 얘가 이상한 단어 하나에 꽂혀서 집착하는 모습을 볼 수 있다. 내가 보기엔 별로 중요한 단어가 아닌데 지 혼자 신나서 그 단어를 남발한다거나, 그 단어의 의미와 엮어서 막 글을 싸지른다거나 하는 일 말이다. 그럴 때가 있다.
그래서 '데이터가 많으면, 정보가 많으면 좋겠지?'라며 막 넣어주면 안된다. 엉뚱한 단어에 꽂혀서 이상한 소리를 한다.
하지만 너무 걱정하지 마라. 보통은 잘못된 데이터가 섞여있어도 저 어텐션 메커니즘으로 필요한 것만 잘 골라서 답변해준다.
그걸 알고 나면 챗GPT답변도 다르게 보일 것이고, 이놈을 어떻게 부려먹어야 할지 좀 더 감이 올 것이다.
Hallucination (환각)은 영원한 적.

이거 아니고.
항상 기억하고, 잊지 않고, 가슴에 새겨야 할 건 우리나라 근대에 2번이나 있었던 국난의 기억 뿐만이 아니다. 그건.
AI는 당신의 질문에 답해줄 생각이 없다는 것. 이거 중요하다. 액자로 만들어 집안에 걸어둬야한다.
얘는 단순히 그럴싸하게 문장 완성해주는 기계일 뿐이다. 답을 하는 것 처럼 보이는 건 단순히, 질문 뒤에는 답변이 와야 한다고 배웠기에, 질문에 답변이 달리는게 그럴싸하기에, 그럴싸한 답변을 써재낄 뿐이다. 그럼 결과적으로 답변 해주는 거 아니냐고 생각하겠지만, 아니다. 이건 그냥 술취해서 주절거리는 거랑 다를 바가 없다. 그저 그거보다는 맥락을 더 고려할 뿐.
우리는 답변을 할 때, 이 내용이 사실인지를 떠올리며 사실과 맞추려 하지만 얘는 안 그런다. 완전 헛소리라도 문장으로서 그럴싸하면 그걸로 만족하는 것이다. 그런데 얘가 꽤나 잘 정답을 말하는 건, 어쨌거나 정답이 가장 자연스러운 답변이기 때문일 뿐이다. 그런데 정답이 없다면? 헛소리를 시작한다. 왜냐하면 얘는 뭐라도 답변이 있는 게 자연스럽다고 배웠기 때문이다.
그게 구라면 안된다는 걸 이해하지 못한다.
요즘은 그래도 모르는 건 모른다고 답변하게 하는 다양한 학습들을 적용했을 것이다. 관련 논문들도 잔뜩 나오고 있고. 하지만 그래도 한계가 있다. 문제는, 얘는 자기가 모른다는 사실을 모른다. 어떤 개념을 모르는지 검증할 방법이 없다. 저거 잘못 학습하면 아는 것도 모른다고 답변할 수 있다. 다 모른다고 답변하는 모델을 만들면 아무도 그 서비스를 쓰지 않을테니 그렇게 하기도 어렵다.
그리고 때때론 창작이 필요한 일들이 있다. 그걸 구분해주는 것도 대단히 까다로운 일이다. 때때론 정답을 요구하는 것 처럼 묻지만 거짓을 답해야 할 때가 있으니까. 예를 들어 상사가 진행되지 못한 일의 진행상황을 물어볼 때 처럼...
...응?
사실 '환각'이란 것 자체가 대단히 인간적인 개념이다. 왜냐하면 LLM 모델에는 정보와 기억과 언어의 문법요소의 구분이 없기 때문에 환각이란 것 자체가 정의가 안되기 때문이다. 오히려 LLM 입장에선, 자기가 답하는 건 모두 데이터에 기반한 완벽하게 올바른 최선의 답일 수도 있다. 사실이 그렇다. 단지 환각이 나오는 건 그 입력값에 맞는 정답값이 들어온 적이 없을 뿐일 수 있다. 대개 그렇다.
세상의 모든 질문과 정답을 학습시킬 수는 없으니까. 배운것과 완벽하게 일치하는 질문이 들어오는 일도 없으니까.
따라서 LLM 은 언제나 배운 것과 유사한 질문에 대한 답변과 유사하게 대답할 수밖에 없고, 거기서 환각이 발생한다. 유사한 건 유사할 뿐이기 때문이다. 그리고 그건 인간도 마찬가지다.
가짜뉴스가 아니더라도, 뭔가 착각해서 엉뚱한 대답을 하는 경우도 있다. 알고 있던 사실이 왜곡되어 잘못 생각하는 경우도 있다. 사람의 기억이 쉽게 교란된다는 사실은 심리학 실험으로도 여러 차례 증명된 바가 있다.
근본적으로, 현실에 '진실'이라 확신할 수 있는 정보는 없다. 그리고 그래서 어떤 문서를 '진실'이라고 한다면.
그 문서를 그대로 검색해 출력하는 게 아니라면 당연히 '왜곡'이 발생한다. 말을 만드는 과정 자체가 결국 '왜곡'이다. 변형을 가했는데 완벽하게 동일할 수는 없으니까.
문서 내부의 '정보'에 대해서는 결국, 사람이 생각하는 '동일성'과 기계가 인식하는 '동일성'에도 언제나 차이가 존재할 수 밖에 없다. 애초에 사람조차도 거기에선 의견이 갈리기 마련이니까. LLM 이 발전할수록 LLM 의 성능, 품질에 대해서는 결국 '주관성'이 들어간다. 어떤 사람은 간결하게 대답하는 걸 좋아하고, 어떤 사람은 장황하게 주변 사실들까지 대답하길 원하면, 모델이 어떻게 대답하는게 성능이 좋은건지 평가할 기준이 애매해져버리니까. 그러니까 결국 '사실'에 대해서도 어디선가 '모호함'이 남아있기 마련이고, 그건 사람마다 다르며, 기계가 그걸 받아들이는 것에도 괴리가 생긴다.
결국 LLM은 환각에서 벗어날 수 없다. 우리가 언제나 진실과 거짓 사이에서 갈등하듯이. 이건 AI의 본질적 문제가 아니라 우리가 이해하는 '지능'의 본질적 문제다.
하지만 적어도, AI의 환각을 우리의 이해 범주에서, 객관화 할 수 있는 영역에서 환각을 최소화하는 방법은 있다.
RAG (Retrieval-Augmented Generation, 검색증강생성)
사실과 거짓을 구분할 수 있다면, 무언가를 사실로 정해놓으면 된다. 사실이 적시되어 있는 문서들을 기준으로 하면 된다. 언어 형식을 이해하는 능력과 정보를 구별할 수 없다면 구별 시키면 된다. 그것이 바로 RAG다. RAG라고 하든 래그라고 하든 라그라고 하든 아무튼 그거다.
검색 증강 생성
검색해서 그걸 바탕으로 생성하는 것.
원래는 학습에 대단히 큰 코스트가 드는 모델이, 새로운 정보에 대해서도 답변할 수 있게 검색기를 붙인 기술이다. 하지만 일반적인 키워드 기반으로 검색하려면 맥락에 맞는 정보를 찾아오기 힘들기 때문에 특별한 DB와 검색기를 사용하는 방식이다. 아무튼, 요즘 LLM으로 챗봇을 구축한다고 하면 기본적으로 따라붙는 기술이다. DB 안 붙은 웹 페이지가 반쪽짜리듯 RAG 안 붙은 LLM 챗봇도 반쪽짜리다. 간단한 것들이야 처리할 수 있지만 좀 더 본격적인 정보는 무조건 RAG가 붙어야 한다.
정보든 언어구조든, 사람은 '학습한다'고 한다. 그리고 그게 맞다. '학습'이란 건 내재화다. 도서관에 책을 들여놓는다고 그걸 도서관이 학습했다고 하지 않는다. DB에 새로운 정보를 저장했다고 DB를 학습했다고 하지 않는다. 그건 그냥 창고이고, 필요할 때 꺼내 쓸 뿐 그 정보를 응용하고 활용할 수 없기 때문이다. 활용하는 건 다른 개체다. 사람이 서고에서 그 책을 꺼내야 활용이고, 웹서버가 DB에서 그 정보를 꺼내야 활용이다. 하지만 이것도 학습이라고 하진 않는다. 꺼내 쓸 뿐 그걸 언제고 활용할 수 있게 내재화하는 게 아니니까.
RAG는 그래서 학습이 아니다. 꺼내 쓰는 구조다. 꺼내서 활용할 수 있도록 서고에다가 저장해두는 구조다. 이때 RAG 시스템에서 정보를 저장하는 곳을 벡터DB (VectorDB)라고 한다. 문서와 매칭되는 검색 키워드나 인덱스에 따라 저장해두는 게 아니라, 문서의 의미를 담은 벡터를 인덱스로 하여 저장하기 때문에 그런 이름이 붙었다.
키는 정확히 거기에 맞물리는 자물쇠에만 들어간다. 하지만 벡터 DB에서 키는 비슷하게 생기면 들어간다. 그래서 딱 맞진 않아도 적당히 비슷한 정보들을 검색할 수 있다. 그런 유연한 DB가 벡터 DB이고, 그런 벡터 DB와 LLM을 연동시켜 유연하게 사람의 요청에 대응할 수 있도록 한게 RAG라는 시스템이다.
그리고 이건 여러 면에서 LLM의 약점을 보완한다. 첫째로, LLM의 학습에는 매우 많은 비용이 들지만 RAG를 사용하면 학습하지 않아도 새로운 정보에 대해 답변이 가능하다. 이건 RAG가 학습하지 않기 때문이다. RAG는 필요한 문서를 책장에 정리해두는 개념이기 때문에 새로운 정보를 받아들이는 데 더 효율적이며, 정보를 더 명확하게 관리할 수 있다.
명확하게 관리할 수 있다는 건 업데이트와 수정이 용이하다는 것이다. LLM이 잘못된 정보, 옛날 정보를 학습하고 나면 학습 이전 모델을 다시 불러오지 않는 한 잊어버릴 수 없다. 새로운 정보를 덧씌워 뭉갤수는 있지만 어떤 맥락에선, 특정한 상황에선 과거 정보가 튀어나올 수 있다. 이는 사람이 이해할 수 있는 구조로 정보를 축적하는 게 아니라 모델 전반에 내재화되어있기 때문이다. 이런 정보의 내재화는 정보의 활용 측면에서 훨씬 강력하지만 지속적인 업데이트가 필요한 경우, 일시적으로만 사용될 정보, 교란되선 안될 중요한 정보의 처리에서는 한계를 보인다.
한편 RAG를 통해 구축된 정보는 관리가 가능하다. 정보를 RAG를 통해 관리한다면 LLM의 학습은 언어능력에 치중하면 된다. LLM이 거짓말을 하는지, 환각을 말하는지를 판별하는 기준도 검색된 자료 기준으로 말하는지로 명확하게 판가름된다. 문서에서 답변을 만들 때 얼마나 왜곡되는지는 사람이 기준을 가지고, 그에 맞는 학습 데이터를 만들어 튜닝하면 된다. 그리고 모르는 것에 대해 '모른다'라고 답하게 하려면, 참고 문서가 검색되지 않으면 설령 모델에 내재되어 있어도 '모른다'고 답하게 가르치면 그만이다.
정보와 기능의 분리가 바로 RAG의 핵심이다.
따라서 LLM 을 도입하는 개인, 조직, 시스템에서 가장 중요한 것은 내부 정보들을 RAG화하여 구축하는 것이다. 그래야 LLM과도 연동할 수 있고, LLM이 아니더라도 다양한 AI 기술에서 활용하기 용이하다.
기존의 DB는 필요한 정보를 찾기 위해 철저하게 구조화하고 정형화해야 했다. 물론 여전히 그래야 하는 정보들도 많다. 하지만 결국 텍스트 데이터의 경우 그렇게 구조화하는 데 한계가 있는 모호한 영역이 있고, 그 부분은 언제나 DB에 들어가더라도 검색과 활용에 어려움이 있었다. 하지만 벡터DB에 축적시킴으로서 그런 한계점을 보완할 수 있다. 벡터 DB는 완전히 새로운, 기존의 DB를 대체하는 개념이 아니라 보완하는 개념이며, LLM 챗봇과 별도로 정보를 구조화하는 중요한 툴이다. 그리고 그 툴을 현재로서는 제일 효과적으로 사용할 수 있는 어플리케이션이 바로 LLM 챗봇인 것이다.
여기에 내가 제목을 저렇게 쓴 이유가 있다. 벡터 DB와 RAG의 구성, 그것이 지금 조직들이 1차로 해야 할 AI의 첫발이다. 마치 DB라는 게 나왔을 때 내부 정보를 DB화하는게 디지털 전환의 핵심이었던 것과 같다. LLM 챗봇을 도입해야 AI 시대에 따라갈 수 있고 그런 게 아니고, LLM 챗봇을 도입하면 업무 효율이 혁신적으로 개선된다거나 그런 것도 아니고,
저걸 해야 다음 단계의 AI 어플리케이션 도입에서, 문서와 같은 비정형 데이터를 어떻게 해볼 수라도 있다는 거다.
그러니까 챗봇이 답변을 잘 못하느니, 업무용 문서를 못만드느니 그런 건 다 사소한거다. 최대한의 정보를 효율적이며 확장 가능한 형태로 벡터DB화 하는 것이 AI 사업의 1차 목표가 되어야 한다. 그게 안 되면 다음 스텝으로 나아가질 못한다.
개인들도 다양한 챗봇 서비스를 이용해보며 느꼈을 것이다. 얘 왜 대답을 이렇게 해? 왜 내 상황을 몰라줘? 당연하다. 그 챗봇은 당신에 대해 아무것도 모른다. 알 방법이 없다. 모델도 인터넷에 퍼져있는 다양한 정보들을 긁어다 학습시킨 거고, 당연히 당신 개인은 물론이고 학습되지 않은 최신 정보들에 대해서도 쥐뿔도 모른다. 그나마 챗GPT같은 고성능의 상용 챗봇들이 최신 정보들에 답해줄 수 있는 건 인터넷 검색을 하기 때문이다.
AskUp
ChatGPT를 카톡에서! 업스테이지에서 제공하는 이미지 글씨도 이해하는 눈뜬 챗GPT를 만나보세요
pf.kakao.com
업스테이지가 만든 '아숙업'이다. 카카오톡 연동이 가능한 챗봇이다. 이걸 써보면 얼마나 LLM 챗봇이 멍청하고 무쓸모한지 알 수 있을 것이다. 근데 그건 이들의 기술이 떨어져서가 아니다. 그냥 인터넷이 안되서, 정보가 없기 때문이다.
AI 비서? 그것의 최소조건은 바로 '내 데이터'를 AI가 접근할 수 있는지다. 그 다음 조건이 '웹 데이터'를 접근할 수 있는지다. 그 2개만 되어도 어지간한 무료 모델로도 제법 그럴싸한 답변을 해줄 수 있다. 그게 안되면 말짱 황이다. 그러니까.
AI 사업에서 가장 중요한 건 이러한 정보를 모으고 구조화하고 축적하며, 장기적으로 계속 축적하여 확장 가능하게 만드는 것이다. 쓸데없이 겉에 보이는 기능들에 집중해봐야 아무 쓸모가 없다. 기능은 없어도 적응하면 된다. 기계가 멍청하면 사람이 숙련되면 된다. 하지만 데이터가 없으면 그냥 답이 없다.
당신이 챗봇을 쓸때도, 왠지 이 녀석이 쓸모없어보인다면 문제는 바로 이거다. 내 정보를 넣어줘야 한다. 일반적으로는 챗봇이 대화 히스토리를 저장하도록 되어 있기 때문에 대화하다보면 개선되는 영역도 있다.
아무것도 붙지 않은 LLM은 그냥 장난감일 뿐이다. 우리나라에서는 이 수준에 머무는 기업들이 허다하다.
LLM에 인터넷을 붙이면 인터넷 검색기일 뿐이다. 뭐, 여기까지만 와도 꽤나 쓸만하다. 내가 아는 바로는 네이버의 클로버 X, 이스트소프트 앨런 정도가 이 정도 되는 걸로 알고 있다. 하지만 이 정도 일은 사람이 직접 해도 큰 차이 없다. 이미 발달된 검색엔진에 의존하는 서비스니까, 그냥 그 검색엔진을 이용해도 충분히 가능하다.
진짜로 일을 하려면 개인화된 정보가 필요하다. 다른 서비스들은 많이 안 써봐서 모르겠고, 일단 챗GPT는 개인 RAG구성이 가능하며 답변하는 걸 보면 여태까지의 대화 히스토리를 참고해서 답변하는 것으로 보인다. 이 정도는 되어야 이걸로 '일'을 할 수 있다. 그게 안되면 그저 신기하네 하고 마는 수준으로 끝날 뿐이다.
이건 대단히 고도화된 수준도 아니다. 인터넷에서 오픈소스 긁어다가도 만들 수 있다. 하지만 그렇다고 그 서비스를 구축하는 게 쉬운 일도 아니다. 개인별 RAG구성을 위해 필요한 컴퓨팅 리소스, 저장공간, 개인자료를 사용하는 LLM 파이프라인 등등을 설계하고, 실험하고, 검증하며, 안정화시켜야 제품이 나온다. 그건 상당한 양의 개발과 노하우가 필요한 작업이다. 기술은 이미 나와있지만 제품화에는 할일이 많다 이거다.
국내 기업들이 자기들이 벤치마크에서 얼마나 점수를 올렸네 하는 기사들은 쌔고 쌨다. 하지만 실제 제품화하지 못하면 말짱 헛거다. 그리고 그걸 제품화하기 위한 기술과 경험 수준은 형편없이 떨어진다. 그런데 현장에다가는 오픈소스로 있는 애셋들 그냥 끼워맞추면 되지 않느냐고 사람부터 보낸다. 될 리가 없다. 개인 RAG는 구성도 못하고 고객사 사내 자료로 RAG를 구성하는 것도 기반 기술과 경험이 없다. 그러니 답변이 잘 나올 리가 없다.
모델 튜닝? 사치다. 우리나라는 미국같이 GPU가 남아도는 나라가 아니다. 불모지다. RAG와 프롬프트만 잘 갖춰도 어찌어찌 쓸만한 시스템이 나온다. 훨씬 비용도 덜 든다. 연구거리가 없는 것도 아니다. 오히려 많다. 산업계에서는 더욱 중요한 일이다. LLM 모델은 더 좋은 게 나오면 교체하면 그만이지만 RAG는 데이터체계다. 그거 잘못 구축해서 나중에 교체하려면 어마어마한 작업이 들어간다. 그러니까 잘해야하고, 그러니까 기술이 있어야 하며, 철저하게 준비하고 다양하게 해봐야 한다. 근데 안하고 들어간다. 대충 임기응변으로 땜빵한다. 결국 다음 과제에서 처음부터 다시 하게 된다.
고객들이 이것만 알아도 그런 낭비적인 의사결정은 안할 텐데, 하는 안타까운 마음에 정리해본다.
'스터디 > AI' 카테고리의 다른 글
| AI썰 - AI? 머신러닝? 딥러닝? (8) | 2025.07.23 |
|---|---|
| AI교과서... 네놈, 대체 정체가 뭐냐... (를 GPT에 물어보았습니다.) (5) | 2025.06.27 |
| 로봇 사업, 우리가 할 수 있어? (10) | 2025.06.19 |
| 로봇 연구 동향 (5) | 2025.06.17 |
| LLM 성능 Benchmark (3) | 2025.06.15 |