Dify 입문 (1): 효율적인 LLM 사용을 위해 LLM의 원리 알아보기

LLM의 원리, 그리고 LLM을 효율적으로 활용하는 방법
Dec 12, 2025
Dify 입문 (1): 효율적인 LLM 사용을 위해 LLM의 원리 알아보기

AI에 대한 관심이 몹시 뜨겁습니다. 젠슨 황 엔비디아 CEO는 업무에 AI를 반드시 활용하라는 지시를 했다지요. 여러분들도 AI를 일상 생활에서 사용하고 계실 겁니다. 그런데 여러분은 LLM에 대해서 얼마나 잘 알고 계신가요? 다음 문항을 체크해보세요.

  • 채팅의 주제가 바뀌어도 새 채팅을 시작하지 않고, 이전 채팅 세션에 이어서 묻는다.

  • 채팅의 길이가 굉장히 길다.

  • ChatGPT이 내 정보를 ‘기억’하는 원리가 뭔지 모른다.

  • ChatGPT가 대답한 내용을 검증 없이 믿은 적 있다(”챗지피티가 그러던데?”).

하나라도 해당되는 경우, AI를 비효율적으로 사용하고 있을 수 있습니다. 지피지기면 백전백승이라는 말처럼 AI에 대해 잘 알아야 AI를 잘 활용할 수 있습니다.

LLM의 기초 원리

LLM(Large Language Model=대규모 언어 모델)은 방대한 양의 텍스트 데이터를 학습한 언어 모델입니다. 모든 LLM의 원리는 같습니다. 주어진 텍스트 토큰을 기반으로, 다음에 올 텍스트를 예측하는 거죠. 즉 LLM의 기능은 “텍스트 완성”입니다.

실제 예를 들어 설명해 보겠습니다. 한국어 텍스트를 학습한 LLM이라면 다음과 같은 출력을 만들어낼 수 있습니다.

입력 텍스트: "안녕하세요, 만나서"
출력 텍스트: " 반갑습니다. 저는 LLM입니다."

그런데 ChatGPT 같은 채팅 LLM은 위와 같은 형태가 아니라,

사용자: "안녕하세요가 영어로 뭐야?"
AI: "안녕하세요는 영어로 Hello입니다."
사용자: "그럼 안녕히 가세요는?"
AI: "안녕히 가세요는 영어로 Goodbye입니다."

이런 형태인데요? 라고 생각하실 수 있습니다. 하지만 이것은 사실,

입력 텍스트:
"사용자의 입력: 안녕하세요가 영어로 뭐야?
AI의 응답: 안녕하세요는 영어로 Hello입니다.
사용자의 입력: 그럼 안녕히 가세요는?"
위의 텍스트 뒤에 이어질 내용을 작성하세요.

출력 텍스트:
"AI의 응답: 안녕히 가세요는 영어로 Goodbye입니다."

위와 같은 식으로 작동합니다. 채팅 형태로 활용하는 것은 단지 사용상의 편의를 위한 눈속임일 뿐입니다.

💡

채팅 모델

채팅 형태의 LLM들은 텍스트 생성 모델을 기반으로, 하나의 응답만 출력하는 데 최적화한 모델들입니다. 관련 내용은 OpenAI의 ChatGPT 소개 글에 잘 설명되어 있습니다.

LLM의 성능 높이기

위에서 말씀드린 것과 같이, LLM은 단순히 주어진 텍스트 뒤에 이어질 내용을 예측하는 계산식에 불과합니다. 그 예측은 LLM이 학습한 데이터의 양과 질에 큰 영향을 받습니다. 그렇다면 주어진 텍스트가 어떤 형태여야 뒤의 내용을 잘 예측할 수 있을까요?

  • 영어로 쓴 글 vs 한국어로 쓴 글

    • 대부분의 상용 LLM은 영어 데이터를 압도적으로 많이 학습했으므로, 영어로 쓴 글이 좋습니다.

  • 대충 쓴 글 vs 자세히 쓴 글

    • 자세히 쓴 글이 뒤의 내용을 예측하기 쉽겠죠. 두루뭉실하고 애매모호한 글 뒤에는 두루뭉실하고 애매모호한 글이 이어지기 마련입니다. 사람이 프롬프트만 보고도 업무를 수행할 수 있을 수준으로 적는 것이 좋습니다.

  • 학습 데이터에 있는 내용 vs 학습 데이터에 없는 내용

    • 학습 데이터에 없는 내용이라는 것은 말하자면 LLM이 모르는 내용입니다. 이런 것을 물어보는 경우 틀린 대답을 할 가능성이 높습니다(다만 최근의 LLM들은 모르는 것에 대해서 “모른다”고 답변하도록 학습되고 있기는 합니다. 완벽하지는 않지만요).

어떤 글을 입력해야 좋은 출력을 낼 수 있는가? 라는 연구가 곧 프롬프트 엔지니어링입니다.

LLM의 기억

위의 대화 예시를 다시 보겠습니다.

사용자: "안녕하세요가 영어로 뭐야?"
AI: "안녕하세요는 영어로 Hello입니다."
사용자: "그럼 안녕히 가세요는?"
AI: "안녕히 가세요는 영어로 Goodbye입니다."

“그럼 안녕히 가세요는?” 이라는 질문에, AI는 영어 번역문으로 대답했습니다. 어떻게 영어 번역을 묻는 건지 알았을까요? AI가 사용자의 질문을 기억한 걸까요?

LLM은 기억하지 않습니다. ChatGPT가 이전 대화 내용을 "기억"하는 것처럼 보이는 이유는, 매번 새로운 질문을 할 때마다 이전 대화 내용 전체를 입력 텍스트에 포함시켜 전달하기 때문입니다.

# 첫 번째 채팅

입력 텍스트:
"사용자의 입력: 안녕하세요가 영어로 뭐야?"
출력 텍스트:
"AI의 응답: 안녕하세요는 영어로 Hello입니다."

# 두 번째 채팅

입력 텍스트:
"사용자의 입력: 안녕하세요가 영어로 뭐야?
AI의 응답: 안녕하세요는 영어로 Hello입니다.
사용자의 입력: 그럼 안녕히 가세요는?"
출력 텍스트:
"AI의 응답: 안녕히 가세요는 영어로 Goodbye입니다."

대화가 길어지면 초반의 내용이 컨텍스트 윈도우(최대로 처리할 수 있는 토큰의 수)를 벗어나게 되어 LLM이 "잊어버리는" 것처럼 보입니다. 주제가 바뀔 때 새 채팅을 시작해야 하는 이유입니다. 불필요하게 긴 대화 기록은 컨텍스트 윈도우를 낭비하여 AI의 성능을 저하시킵니다.

💡

컨텍스트 윈도우 최적화

ChatGPT나 Claude Code 등 상용 LLM 서비스는 대화가 너무 길어지는 경우 이전 대화를 요약해서 토큰 수를 줄이는 최적화를 수행하기도 합니다.

LLM의 한계

환각(Hallucination) 현상

뒤에 올 그럴듯한 텍스트를 예측한다는 LLM의 특성 상, 사실이 아닌 정보를 그럴듯하게 생성할 수 있습니다. 이를 “환각” 이라고 합니다.

최신 정보 부족

LLM에는 지식 단절(knowledge cutoff)이 있습니다. 학습이 완료된 시점 이후에 발생한 일에 대해서는 알지 못한다는 뜻입니다. GPT-5.1은 2024년 9월 30일, Gemini 3 Pro는 2025년 1월입니다. 그런데 ChatGPT에 최신 정보를 물어봐도 대답을 잘 할 겁니다. 그것은 인터넷 검색 기능이 통합되어있기 때문입니다.

API를 활용할 때는 모델의 지식 단절 시점을 확인하고, 최신 정보가 필요할 경우 검색 기능을 구현하거나 API에 내장된 웹 검색(Browsing) 도구 기능을 활성화하여 사용하는 것을 고려하세요.

효율적인 LLM 활용 방법

위의 한계를 잘 이해하셨으니, 이제 LLM을 어떻게 하면 효율적으로 사용할 수 있는지 알아봅시다.

명확한 프롬프트 작성

LLM에게 원하는 바를 구체적으로 작성하세요. 어떤 말투를 써야 하는지, 답변의 길이는 어느 정도여야 하는지.

예시를 작성하세요. LLM가 답변하는 데 참고할 수 있습니다.

💡

작업 나누기

이것도 하고 저것도 하고 요것도 하고… 하는 식으로 한번에 모든 일을 끝내는 것보다는, 한 단계씩 처리하는 것이 좋습니다. 각 단계별로 AI가 정확하게 작업을 수행했는지 확인하기에도 좋습니다.

개선 방법 물어보기

종종 작업 수행 결과가 마음에 들지 않는 경우가 있습니다. 그러면 그냥 “다시 해.” 라고만 하는 대신, “나는 이러이러한 결과를 원하는데, 너는 저러저러한 결과를 줬어. 뭐라고 지시하면 이러이러한 결과를 받을 수 있어?”라고 물어보세요.

적절한 작업

LLM은 계산기를 갖고 있지 않습니다. 인터넷에 접속할 수도 없죠. 그러니 1. 최신 정보나 2. 정확한 계산이 필요한 작업은 잘못된 값을 낼 가능성이 큽니다. 대신 텍스트 요약이나 번역 등은 LLM이 잘 수행하는 영역입니다.

사실 확인하기

중요한 정보는 반드시 다른 신뢰할 수 있는 출처로 교차 검증합니다. 특히 날짜, 통계, 인용문 등은 주의 깊게 확인해야 합니다.

오픈네트웍시스템 변재우

Share article