로컬 AI 기초 · 글 11편로컬 AI 기초
  1. 로컬 AI 학습 순서 한눈에 보기
  2. 로컬 AI와 클라우드 AI는 무엇이 다른가
  3. 로컬에서 AI를 돌리는 이유와 한계
  4. 내 PC 사양으로 돌릴 수 있는 모델 고르기
  5. 토큰, 컨텍스트 윈도우, 파라미터, 환각
  6. 공개 모델 계열과 모델 이름 읽는 법
  7. 양자화란 무엇인가
  8. CPU, GPU, 메모리가 하는 일
  9. 작업별로 로컬 모델과 온라인 모델 고르기
  10. 작은 모델에서 더 중요한 프롬프트 기본기
  11. 업무에서 AI를 쓸 때의 안전 습관

이 글에서 다루는 것로컬 모델을 고르고 설정할 때 계속 마주치는 네 가지 용어를 뜻과 실무에서의 의미로 나누어 설명합니다.

언어 모델이 하는 일

LLM(거대언어모델)은 아주 많은 글을 읽고 “이 다음에 올 말”을 맞히도록 학습한 프로그램입니다. 질문을 넣으면 그 뒤에 이어질 가능성이 높은 말을 한 조각씩 붙여 나가며 답을 만듭니다. 요약, 번역, 분류, 코드 작성이 모두 이 방식으로 이루어집니다.

이 원리를 알면 아래 네 가지 용어가 쉽게 이해됩니다.

토큰: 모델이 글을 세는 단위

모델은 글을 글자나 단어 단위로 보지 않고 토큰이라는 조각으로 봅니다. “안녕하세요”는 사람에게 한 단어지만 모델에게는 “안녕”과 “하세요” 두 조각일 수 있습니다. 영어는 단어 하나가 대체로 한두 조각이고, 한국어는 한 단어가 여러 조각으로 나뉘는 일이 많습니다.

토큰이 중요한 이유는 세 가지입니다.

  • 속도: 로컬 모델의 속도는 “초당 몇 토큰”으로 말합니다. 답이 길수록 그만큼 오래 걸립니다.
  • 요금: 온라인 모델을 프로그램에서 부르면 토큰 수로 요금을 매깁니다. 로컬 모델은 이 요금이 없습니다.
  • 길이 제한: 모델이 한 번에 다룰 수 있는 양도 토큰으로 정해져 있습니다. 다음 항목이 이 이야기입니다.

컨텍스트 윈도우: 한 번에 볼 수 있는 양

컨텍스트 윈도우는 모델이 한 번의 대화에서 다룰 수 있는 입력과 출력의 최대 길이입니다. 사람이 한 번에 머리에 담을 수 있는 분량과 비슷합니다. 짧으면 메모 한 장, 길면 책 한 권입니다.

여기에는 내가 지금 넣은 질문만 들어가는 것이 아닙니다.

  • 시스템 프롬프트(모델에게 준 역할과 규칙)
  • 지금까지 주고받은 대화 전체
  • 붙여 넣은 문서
  • 모델이 쓰고 있는 답

이 모두를 합친 것이 한도 안에 들어와야 합니다. 넘치면 앞부분이 잘려 나가고, 모델은 잘린 내용을 모르는 채로 답합니다. 대화가 길어졌을 때 앞에서 정한 규칙을 잊어버리는 것이 이 때문입니다.

로컬에서 알아 둘 점이 있습니다.

  1. 모델이 지원하는 최대 길이와 실행 도구가 실제로 잡아 주는 길이는 다를 수 있습니다. Ollama에서는 num_ctx라는 설정값으로 정합니다.
  2. 길이를 늘리면 메모리를 더 씁니다. 사양이 낮은 PC에서 무작정 키우면 느려지거나 모델이 올라가지 않습니다.
  3. 작은 모델은 긴 글을 넣을수록 지시를 놓치기 쉽습니다. 꼭 필요한 부분만 넣는 것이 결과가 좋습니다.

설정하는 방법은 Modelfile과 파라미터로 업무용 모델 만들기에 있습니다.

파라미터: 모델의 크기

파라미터(매개변수) 는 모델이 학습하면서 조정한 숫자입니다. 모델 이름 뒤의 1b, 4b, 12b가 이 숫자의 개수(십억 단위)입니다. 온라인 서비스의 대형 모델은 수천억 개 이상이고, PC에서 돌리는 작은 모델은 대략 10억~100억 개 수준입니다.

파라미터가 클수록 파라미터가 작을수록
복잡한 지시를 더 잘 따름 단순한 일에 맞음
파일이 크고 메모리를 많이 씀 파일이 작고 가벼움
답이 느림 답이 빠름

같은 크기라도 모델마다 성능이 다릅니다. 학습 방법과 자료의 질에 따라 작은 모델이 몇 배 큰 모델보다 나은 경우도 있습니다. 숫자는 출발점으로만 쓰고, 내 업무의 실제 문장으로 시험해 보고 고르는 것이 맞습니다.

같은 “파라미터”라는 말이 다른 뜻으로도 쓰입니다. Ollama에서 temperature, top_p처럼 답의 성향을 조절하는 설정값도 파라미터라고 부릅니다. 구분하려고 이쪽은 하이퍼파라미터라고도 합니다.

설정값 하는 일
temperature 낮을수록 같은 질문에 같은 답, 높을수록 다양한 답
num_predict 답의 최대 길이
num_ctx 컨텍스트 윈도우 크기
seed 같은 값을 주면 결과를 다시 재현하기 쉬움

분류나 추출처럼 답이 일정해야 하는 일에는 temperature를 낮게 둡니다.

환각: 그럴듯하게 틀린 답

환각은 모델이 사실이 아닌 내용을 자신 있게 만들어 내는 현상입니다. 모르는 것을 모른다고 하지 않고, 학습한 글의 패턴으로 빈자리를 메웁니다. 존재하지 않는 판례 번호, 지어낸 통계 수치, 가짜 인용문이 대표적인 예입니다.

“다음에 올 말을 맞히는” 원리에서 나오는 현상이므로 완전히 없앨 수는 없습니다. 줄이는 방법은 있습니다.

  • 근거를 같이 넣기: 답에 필요한 문서를 프롬프트에 붙이고 “아래 자료 안에서만 답하라”고 지시합니다. 문서를 검색해 자동으로 넣어 주는 방식이 RAG입니다.
  • 모른다고 말할 길을 열어 두기: “자료에 없으면 ’확인 후 안내드리겠습니다’라고 답하라”처럼 정해 줍니다.
  • 두세 개 모델에 같은 질문 하기: 답이 서로 다르면 확인이 필요하다는 신호입니다.
  • 사람이 확인하기: 숫자, 날짜, 법령, 고유명사는 원문과 대조합니다.

강의에서 반복하는 원칙은 하나입니다. AI의 답을 결재 문서에 그대로 올리지 않습니다. 작은 로컬 모델은 큰 모델보다 환각이 잦으므로 이 원칙이 더 중요합니다.

네 용어를 한 번에 쓰는 예

“4B 모델을 받았는데 긴 회의록을 넣으면 앞부분 지시를 무시한다”는 상황을 이 용어들로 풀어 보면 이렇습니다.

  1. 4B는 파라미터 수입니다. 작은 모델이므로 긴 지시에 약합니다.
  2. 회의록이 길어 토큰 수가 많습니다.
  3. 설정된 컨텍스트 윈도우를 넘어서 앞부분이 잘렸을 수 있습니다.
  4. 잘린 채로 답하면서 없는 결정 사항을 만들어 냈다면 환각입니다.

대응도 같은 순서로 정리됩니다. 회의록을 나누어 넣고, 지시를 글의 끝에 다시 적고, num_ctx를 PC가 감당하는 범위에서 늘리고, 결과의 결정 사항은 원문과 대조합니다.

다음에 읽을 글