8장. LLM의 기억, 착각, 환각

기억처럼 보이는 압축

LLM의 지식은 데이터베이스의 지식과 다릅니다. 데이터베이스는 어떤 항목을 정해진 자리에 저장하고, 필요할 때 그 값을 꺼냅니다. 유전자 데이터베이스라면 유전자 공식 약어(gene symbol), 염색체(chromosome) 위치, 전사체 식별자(transcript ID), 기능 주석이 각각의 칸에 들어 있습니다. 물론 데이터베이스도 오류가 있을 수 있지만, 적어도 구조는 분명합니다. 반면 모델의 매개변수 안에 들어 있는 지식은 그렇게 정리된 표가 아닙니다. 카파시는 이것을 오래전에 읽은 내용을 어렴풋이 기억하는 것에 비유합니다 (링크). 자주 본 내용은 비교적 안정적으로 떠올리고, 드문 내용은 흐릿하게 떠올립니다. 우리는 사람에게도 비슷한 일을 경험합니다. 유명한 논문이나 자주 쓰는 개념은 바로 설명할 수 있지만, 몇 년 전에 스쳐 지나간 결과는 자신 있게 말하기 어렵습니다. LLM도 많은 경우 그 흐릿한 기억에서 문장을 만듭니다.

용어 메모

유전자 공식 약어(gene symbol): 유전자를 짧게 부르는 공식 표기입니다. TP53, BRCA1 같은 표기가 여기에 해당합니다.

전사체 식별자(transcript ID): 한 유전자에서 만들어지는 RNA 형태를 구분하기 위해 붙인 식별자입니다.

기능 주석: 유전자나 단백질이 어떤 일을 하는지 설명해 둔 기록입니다.

매개변수: 모델 안에 저장된 수많은 숫자입니다. 학습된 흔적이 여기에 남습니다.

자연스럽게 틀리는 문제

문제는 모델이 흐릿함을 항상 흐릿하게 표현하지 않는다는 데 있습니다. 질문을 받았을 때 대화 데이터 안의 어시스턴트들은 대개 자신감 있게 답합니다. 사람이 라벨러(labeler)로서 좋은 답변을 쓸 때도, 모르는 질문을 받으면 검색을 해서 매끄러운 답을 작성합니다. 모델은 그런 답변 양식까지 배웁니다. 그래서 잘 모르는 이름이나 드문 사실을 물어도, “모릅니다”라고 멈추기보다 답변처럼 보이는 문장을 이어갈 수 있습니다. 카파시는 “Orson Kovac”처럼 모델이 알지 못하는 이름을 물었을 때, 오래된 모델이 여러 번 서로 다른 가짜 설명을 만들어내는 장면을 보여줍니다 (링크). 한 번은 작가라고 하고, 다른 번에는 TV 프로그램의 인물이라고 하고, 또 다른 번에는 야구 선수라고 말합니다. 이 답들은 문체만 자연스러울 뿐, 모두 사실이 아닙니다. 우리가 환각(hallucination)이라고 부르는 것은 바로 이런 현상입니다. 모델은 답변의 형식을 배웠지만, 그 형식 안에 들어갈 사실을 충분히 갖고 있지 않을 때도 말을 계속할 수 있습니다.

용어 메모

환각(hallucination): 모델이 사실처럼 보이는 틀린 내용을 만들어내는 현상입니다. 한국어로는 착각, 환각, 지어내기처럼 풀 수 있지만, AI 분야에서는 hallucination이라는 영어도 널리 쓰입니다.

라벨러(labeler): 모델 훈련에 쓸 좋은 답변 예시를 만드는 사람입니다.

의생명과학에서는 이 문제가 특히 위험합니다. 유전자 기능 설명이 논문 초록처럼 보인다고 해서 참인 것은 아닙니다. 질병과 약물의 관계를 그럴듯하게 말한다고 해서 실제 임상 근거가 있는 것도 아닙니다. “이 변이가 병적일 가능성이 높다”는 문장은 환자와 가족에게 큰 의미를 가질 수 있지만, LLM의 매끄러운 문장만으로는 그런 판단을 할 수 없습니다. 희귀질환 이름, 변이 표기, 약물 용량, pathway 해석은 반드시 원자료와 전문 데이터베이스로 돌아가야 합니다. 모델이 자주 본 정보는 잘 말할 수 있지만, 자주 보았다는 사실은 곧 사실이라는 뜻이 아닙니다. 인터넷에 많이 반복된 오류도 함께 학습될 수 있고, 오래된 지식이 최신 지식처럼 나타날 수 있습니다. 따라서 LLM의 답변을 볼 때 첫 번째 질문은 “문장이 자연스러운가”가 아니라 “어디서 확인할 수 있는가”여야 합니다. 특히 생명과 질병을 다루는 글에서는 그 순서가 바뀌면 안 됩니다.

짧은 사례

어떤 학생이 “TP53의 특정 변이가 폐선암에서 흔한지 알려줘”라고 물었다고 합시다. TP53은 암 연구에서 자주 등장하는 유전자 이름입니다. 변이 표기는 보통 c.숫자문자>문자p.아미노산숫자아미노산처럼 생겼고, 숫자와 글자 하나가 달라져도 다른 변이를 가리킬 수 있습니다. 모델은 논문 초록 같은 문체로 “이 변이는 폐선암에서 반복적으로 보고되며 예후와 관련될 수 있습니다”라고 답할 수 있습니다. 하지만 실제로는 변이 표기가 틀렸거나, 다른 암종에서 보고된 변이를 모델이 섞었거나, TP53이라는 유명한 이름 때문에 일반적인 암 설명을 가져왔을 수 있습니다. 이런 답은 문장만 보면 전문적으로 보입니다. 그러나 ClinVar 같은 전문 데이터베이스와 논문 원문에서 해당 변이와 암종을 다시 확인하기 전까지는 과학적 주장으로 쓸 수 없습니다. 지금 ClinVar의 사용법을 외울 필요는 없습니다. 학생이 배워야 할 것은 “TP53은 중요하다”는 일반 지식이 아니라, 특정 표기와 특정 맥락을 확인하는 습관입니다.

모른다고 말하게 하기

환각을 줄이려면 모델이 모르는 것을 모른다고 말할 수 있게 해야 합니다. 카파시는 Meta의 Llama 3 계열에서 사용된 접근을 예로 들어, 모델이 어떤 질문을 아는지 모르는지 경험적으로 조사하고, 모르는 질문에 대해서는 “기억하지 못한다”거나 “모른다”고 답하는 예시를 훈련 예시 묶음(training set)에 추가하는 과정을 설명합니다 (링크). 이 설명이 흥미로운 이유는, 모델 안쪽 어딘가에는 불확실성을 나타내는 신호가 있을 수 있지만, 그 신호가 말로 표현되도록 연결되어 있지 않을 수 있다는 점입니다. 사람이 속으로는 자신이 모른다는 느낌을 갖고도 체면 때문에 답을 지어내는 장면과 조금 닮았습니다. 모델에게도 “이럴 때는 모른다고 말해도 된다”는 행동을 데이터로 가르쳐야 합니다. 이것은 작은 변화처럼 보이지만, 실제 사용에서는 매우 큽니다. 모르는 것을 모른다고 말하는 어시스턴트는 연구와 공부에서 훨씬 안전합니다. 틀린 답을 자신 있게 말하는 어시스턴트보다, 부족함을 표시하는 어시스턴트가 더 믿을 만합니다.

용어 메모

훈련 예시 묶음(training set): 모델을 가르치기 위해 모아 둔 예시 자료입니다.

불확실성: 답이 맞는지 모델이나 사람이 충분히 확신하기 어려운 상태입니다.

눈앞의 자료로 답하게 하기

두 번째 해결책은 도구를 쓰게 하는 것입니다. 사람이 모르는 사실을 물으면 검색을 하듯이, 모델도 자신의 매개변수 안의 흐릿한 기억에만 의존하지 않고 웹 검색이나 데이터베이스 조회를 할 수 있습니다. 카파시는 웹 검색 도구(web search tool)가 어떻게 작동하는지 설명하면서, 모델이 특수 토큰과 정해진 형식으로 검색을 요청하고, 검색 결과의 텍스트가 문맥 창 안으로 들어오면 그 자료를 바탕으로 답변을 생성한다고 말합니다 (링크). 이때 매개변수 안의 지식은 오래된 기억이고, 문맥 창 안의 텍스트는 방금 눈앞에 놓인 자료에 가깝습니다. 사람이 논문을 다시 펴놓고 설명하면 더 정확해지는 것처럼, 모델도 관련 문서를 문맥에 넣어주면 더 안정적으로 답할 수 있습니다. 물론 검색 결과 자체도 평가해야 합니다. 웹에서 찾았다고 해서 모두 믿을 수 있는 것은 아니기 때문입니다. 하지만 적어도 모델이 머릿속에서 지어낸 문장보다, 출처가 있는 자료를 보고 답하게 하는 편이 훨씬 낫습니다.

용어 메모

웹 검색 도구(web search tool): 모델이 웹에서 자료를 찾아 문맥에 가져오도록 돕는 도구입니다.

문맥 창: 모델이 지금 답할 때 눈앞에 놓고 읽을 수 있는 입력 공간입니다.

특수 토큰: 모델에게 "검색을 시작한다" 같은 특별한 역할을 알려주는 표시입니다.

LLM의 자기소개도 조심해서 읽어야 합니다. 모델에게 “너는 어떤 모델이니?”라고 물으면 그 답이 실제 내부 상태의 고백처럼 느껴질 수 있습니다. 그러나 카파시는 그런 질문 자체가 조금 어색하다고 설명합니다. 모델은 사람처럼 지속적인 자아를 가진 존재가 아니라, 대화가 시작될 때마다 문맥과 매개변수를 바탕으로 토큰을 생성하는 시스템입니다. 어떤 모델은 자신이 OpenAI가 만들었다고 잘못 말할 수 있고, 어떤 모델은 시스템 메시지(system message)나 별도의 훈련 데이터(training data)를 통해 자기 이름과 개발자를 말하도록 조정될 수 있습니다 (링크). 그러므로 모델의 자기 설명도 다른 답변과 마찬가지로 생성된 문장입니다. “나는 무엇이다”라는 답변이 나왔다고 해서 그것이 기계의 내면 고백은 아닙니다. LLM을 사람처럼 대화할 수는 있지만, 사람처럼 믿어서는 안 됩니다.

환각을 이해한다는 것은 AI를 두려워하자는 뜻이 아닙니다. 오히려 더 잘 쓰기 위한 조건입니다. 모델은 낯선 개념의 첫 설명을 제공하고, 어려운 문장을 여러 수준으로 풀고, 논문 구조를 잡아주는 데 큰 도움을 줍니다. 그러나 그 도움은 언제나 확인과 함께 가야 합니다. 모르는 질문에는 “모른다”고 말하게 하고, 사실 질문에는 출처를 찾게 하고, 계산 문제에는 코드를 쓰게 하고, 의생명 정보에는 원문과 데이터베이스로 돌아가게 해야 합니다. 이 태도를 익히면 LLM은 위험한 자동답변기가 아니라, 공부의 좋은 동반자가 될 수 있습니다. 매끄러운 문장을 의심하는 일은 냉소가 아닙니다. 그것은 과학을 공부하는 사람이 가져야 할 기본적인 정직함입니다.

문맥 창은 이 문제를 완화하는 중요한 장치입니다. 카파시는 매개변수 안의 지식을 오래된 기억에, 문맥 창 안의 텍스트를 지금 눈앞에 펼쳐놓은 자료에 비유합니다 (링크). 사람도 기억만으로 논문을 설명할 때보다, 논문 원문을 옆에 펼쳐놓고 설명할 때 더 정확해집니다. LLM도 비슷합니다. 모델에게 논문 초록, 표, 그림 설명(figure legend), 방법(methods) 일부를 직접 넣어주면, 모델은 그 텍스트를 보고 답할 수 있습니다. 이때 답변의 근거는 모델의 흐릿한 매개변수 기억보다 훨씬 가까운 곳에 있습니다. 그러나 문맥에 넣었다고 해서 자동으로 안전해지는 것은 아닙니다. 모델이 긴 문서의 중요한 부분을 놓칠 수 있고, 서로 모순되는 문장을 잘못 조합할 수 있으며, 사용자가 넣은 자료 자체가 틀렸을 수도 있습니다. 그래도 문맥을 활용하는 것은 환각을 줄이는 가장 실용적인 방법 중 하나입니다. 논문을 읽을 때는 “이 논문에 대해 알려줘”라고 묻기보다, 실제 초록과 주요 문단을 넣고 “이 문단 안에서만 근거를 찾아 설명해줘”라고 요청하는 편이 훨씬 낫습니다.

여기서 RAG라는 말을 만날 수 있습니다. 검색 보강 생성(Retrieval-augmented generation)은 모델이 답변을 만들기 전에 관련 문서를 검색해 문맥에 넣고, 그 자료를 바탕으로 답하게 하는 방식입니다. 이 장에서는 환각을 줄이는 방법으로 짧게 맛보고, 다음 장에서 문맥 창과 도구 사용의 관점에서 다시 다룰 것입니다. 원리는 어렵지 않습니다. 사람도 보고서를 쓸 때 기억만으로 쓰지 않고, 관련 논문과 데이터베이스를 찾아 책상 위에 펼쳐놓습니다. LLM도 검색된 문서를 보고 답하면 더 근거 있는 문장을 만들 수 있습니다.

하지만 RAG를 마법처럼 생각해서는 안 됩니다. 어떤 문서를 검색했는지, 검색어가 적절했는지, 검색된 문서가 믿을 만한지, 모델이 그 문서의 어느 부분을 근거로 삼았는지 확인해야 합니다. 특히 의생명 분야에서는 학술 데이터베이스의 초록, 데이터베이스 항목(database entry), 진료·연구 지침(guideline), 종설(review article)의 성격이 서로 다릅니다. 단순 블로그 글과 동료 심사를 거친 논문(peer-reviewed paper)을 같은 무게로 놓으면 안 됩니다. RAG는 모델에게 기억을 보충해주는 기술이지만, 출처를 평가하는 일은 여전히 사람의 몫입니다. 좋은 AI 사용자는 “검색했으니 됐다”에서 멈추지 않고, “무엇을 검색했고 무엇을 근거로 답했는가”를 따집니다.

용어 메모

RAG: 관련 자료를 먼저 찾아 문맥에 넣고, 그 자료를 바탕으로 답하게 하는 방식입니다.

데이터베이스 항목(database entry): 데이터베이스 안의 한 항목입니다. 유전자 하나나 논문 하나의 기록처럼 생각하면 됩니다.

지침(guideline): 전문가 집단이 진료나 연구 판단에 참고하도록 정리한 권고문입니다.

동료 심사 논문(peer-reviewed paper): 동료 연구자의 검토를 거쳐 학술지에 실린 논문입니다.

환각은 단지 모델의 결함만이 아니라, 사용자의 질문 방식과도 연결됩니다. 질문이 너무 넓고, 자료가 없고, 최신 사실을 요구하고, 답변 형식만 강하게 요청하면 모델은 빈 공간을 그럴듯한 문장으로 채우기 쉽습니다. “최근 연구를 정리해줘”라는 말은 편하지만 위험합니다. 최근이 언제까지인지, 어떤 데이터베이스를 볼 것인지, 종설과 원 논문을 어떻게 구분할 것인지, 어떤 종과 조직과 질병 맥락으로 제한할 것인지가 빠져 있기 때문입니다. 반대로 “아래 초록 세 개만 근거로, 공통된 주장과 서로 다른 한계를 구분해줘”라고 물으면 훨씬 안전합니다. 모델에게도 일할 재료와 경계가 필요합니다. 학생이 연구실에서 실험을 배울 때도 마찬가지입니다. “세포를 잘 키워봐”라는 지시는 좋은 실험 지시가 아닙니다. 어떤 배지를 쓸지, 세포를 처음 얼마나 담을지, 몇 번 키운 세포인지, 어떤 온도와 시간 조건에서 배양할지, 언제 관찰할지 같은 조건이 있어야 합니다. AI에게 던지는 질문도 실험 조건처럼 다루면 환각이 줄어듭니다.

검증하는 글쓰기

또 하나 중요한 습관은 모델에게 근거의 위치를 요구하는 것입니다. 단순히 “출처를 달아줘”라고 하면 모델이 존재하지 않는 논문 제목이나 그럴듯한 DOI를 만들어낼 수 있습니다. 더 좋은 방법은 사용자가 제공한 텍스트 안에서 근거 문장을 찾아달라고 하거나, 검색 도구를 사용한 경우 링크와 함께 어떤 문장이 어떤 결론을 뒷받침하는지 설명하게 하는 것입니다. 그래도 마지막 확인은 사람이 해야 합니다. 링크가 실제로 열리는지, 제목과 저자가 맞는지, 논문이 주장하는 내용과 모델의 해석이 일치하는지 확인해야 합니다. 이 과정이 번거롭게 느껴질 수 있습니다. 그러나 과학에서 근거 확인은 번거로운 절차가 아니라 지식을 만드는 핵심입니다. LLM은 그 과정을 빠르게 도와줄 수 있지만, 없애지는 않습니다. 오히려 답변이 빨리 나오기 때문에, 근거 확인의 습관이 더 중요해집니다. 빠른 생성은 빠른 검증과 함께 있을 때 공부가 됩니다.

환각을 줄이는 마지막 방법은 모델을 과하게 사람처럼 대하지 않는 것입니다. 대화가 자연스럽기 때문에 우리는 모델이 우리를 이해하고, 자기 생각을 가지고, 기억을 계속 유지한다고 느끼기 쉽습니다. 그러나 많은 경우 모델은 현재 문맥 안에서 다음 토큰을 생성하고 있을 뿐입니다. 물론 서비스에 따라 메모리 기능이나 개인화 기능이 있을 수 있지만, 그것도 별도의 시스템으로 관리되는 정보입니다. 모델 자체가 사람처럼 지난 학기 대화를 마음속에 간직하고 있는 것은 아닙니다. 이 차이를 이해하면 실망도 줄어듭니다. 모델이 어제와 다른 말을 한다고 해서 배신한 것이 아닙니다. 주어진 문맥과 샘플링 방식과 도구 환경이 달라졌을 수 있습니다. 학생은 AI를 친구처럼 편하게 사용할 수 있지만, 과학적 판단에서는 기계로 다루어야 합니다. 편안함과 검증은 함께 갈 수 있습니다. 오히려 그 둘을 함께 붙잡을 때, LLM은 가장 좋은 공부 도구가 됩니다.

환각을 다루는 태도는 학생의 글쓰기에도 영향을 줍니다. AI가 써준 문장을 그대로 가져오면, 그 문장 안에 숨어 있는 불확실성까지 함께 가져오게 됩니다. 문장이 매끄럽기 때문에 읽는 사람은 근거가 탄탄하다고 착각할 수 있습니다. 그래서 AI를 사용해 글을 쓸 때는 먼저 주장과 근거를 분리해야 합니다. “이 문장은 어떤 자료에서 나온 것인가”, “이 문장은 자료의 직접 요약인가, 모델의 해석인가”, “이 문장은 내가 실제로 이해해서 다시 쓸 수 있는가”를 확인해야 합니다. 특히 한글 교재나 보고서에서는 부드러운 설명이 중요하지만, 부드러움이 근거의 자리를 대신해서는 안 됩니다. 좋은 문장은 친절하면서도 정직해야 합니다. 모르는 부분은 모른다고 남기고, 추측은 추측으로 표시하고, 확인한 내용은 출처와 연결해야 합니다. AI 시대의 글쓰기에서 가장 위험한 것은 틀린 문장이 아니라, 틀렸는지조차 알아차리기 어려운 자연스러운 문장입니다. 그러므로 윤문은 마지막 단계이고, 그 전에 검증이 있어야 합니다.

학생에게 권하고 싶은 가장 단순한 방법은 답변을 세 가지 색으로 읽는 것입니다. 실제로 색연필을 쓰지 않아도 됩니다. 마음속으로라도, 원문에서 확인된 내용, 모델이 합리적으로 해석한 내용, 아직 근거를 찾지 못한 내용을 나누어보면 됩니다. 처음에는 한 문단의 대부분이 회색, 곧 확인되지 않은 영역처럼 보일 수 있습니다. 그것이 나쁜 일은 아닙니다. 오히려 공부가 시작되는 지점입니다. 회색 문장을 원문으로 확인하고, 필요한 경우 검색하고, 그래도 모르면 “불확실하다”고 남기는 과정에서 이해가 깊어집니다. LLM은 회색 영역을 빠르게 만들어줍니다. 사람은 그 회색을 검은 근거와 흰 빈칸으로 나누어야 합니다. 이 작업을 반복하면 환각은 막연한 공포가 아니라 관리해야 할 연구 위험으로 보이기 시작합니다. 과학은 위험을 없애는 일이 아니라, 위험을 알고 통제하는 일에 가깝습니다.

이 색 나누기는 보고서나 발표문을 쓸 때도 도움이 됩니다. AI가 만들어준 설명을 그대로 붙여 넣으면 문장이 매끄럽기 때문에 이미 완성된 것처럼 느껴집니다. 그러나 한 문장씩 따져보면 출처가 분명한 문장, 원문에서 직접 나오지는 않았지만 타당해 보이는 해석, 아직 확인하지 못한 추측이 섞여 있습니다. 학생은 이 세 층위를 구분해야 합니다. 원문에서 나온 내용은 근거와 함께 남기고, 해석은 해석이라고 표시하며, 확인하지 못한 추측은 과감히 지우거나 “가능성”으로 낮추어 써야 합니다. 좋은 과학 글은 자신감 있는 문장만으로 만들어지지 않습니다. 자신이 어디까지 알고 어디서 멈추어야 하는지 아는 문장으로 만들어집니다. LLM을 쓰는 시대에는 이 태도가 더 중요해집니다. 모델이 문장을 쉽게 만들어줄수록, 학생은 더 정직하게 문장의 신분을 확인해야 합니다.

이렇게 보면 환각은 AI 시대에 새로 생긴 완전히 낯선 문제가 아닙니다. 사람도 모르는 것을 아는 것처럼 말할 때가 있고, 기억을 잘못 합치고, 읽지 않은 논문을 읽은 듯이 착각하고, 권위 있는 말투로 틀릴 수 있습니다. 다만 LLM은 그 일을 매우 빠르고 유창하게 할 수 있습니다. 그래서 위험이 커집니다. 그러나 대응 원칙은 과학의 오래된 원칙과 닮았습니다. 근거를 묻고, 재현을 요구하고, 출처를 확인하고, 불확실성을 표시하는 것입니다. AI가 등장했다고 해서 과학의 기준이 사라지는 것이 아니라, 그 기준을 더 자주 적용해야 하는 상황이 온 것입니다. 학생은 이 점을 부담으로만 볼 필요가 없습니다. 오히려 LLM은 검증의 중요성을 매일 연습하게 해주는 도구가 될 수 있습니다. 매끄러운 답변 앞에서 잠시 멈추는 습관, 그 습관이 연구자의 기본 자세를 길러줍니다.

학생이 처음부터 모든 환각을 잡아낼 수는 없습니다. 그것은 교수자나 연구자에게도 쉽지 않은 일입니다. 그래서 중요한 것은 완벽한 감별 능력보다 좋은 절차입니다. 원문을 넣고, 근거 문장을 요구하고, 모르는 부분은 모른다고 말하게 하고, 숫자는 코드로 확인하고, 마지막에는 자신의 말로 다시 요약하는 절차입니다. 절차가 있으면 학생은 모델보다 지식이 적어도 위험을 줄일 수 있습니다. 과학은 천재적인 직감만으로 움직이지 않습니다. 누구나 따라 할 수 있는 확인 절차가 있기 때문에 조금씩 단단해집니다. AI와 함께 공부할 때도 같은 원칙이 필요합니다.