AI

0.ai 시작하기

대게 2025. 8. 17. 15:42

0. ai 시작하기

Sunday, August 17, 2025 at 2:01 PM
 
LLM(Large Language Model) 개요
정의
LLM의 동작 원리 개요

LLM 동작 원리 세부 과정
2.1 Tokenizing (토큰화)
2.2 Embedding (임베딩)
2.3 신경망 처리 (Transformer)
2.4 텍스트 생성 (Generation)

언어모델은 어떻게 기능을 수행하는가?
기본 기능: 텍스트 이해·생성
Tool과의 상호작용 예시 (날씨 API 사례)

MCP (Model Context Protocol)
정의
역할 및 특징


RAG (Retrieval Augmented Generation)
정의 
"검색"에 대한 오해와 정확한 의미
RAG의 동작 과정
Query 입력
Query 벡터화
Retrieval (외부 데이터 검색)
Context 보강
응답 생성


예시: "서울 날씨" 
총정리
 

LLM(Large Language Model)

 
 LLM은 인간의 언어나 데이터들을 해석할 수 있을 만큼 방대한 데이터를 학습한 인공지능 모델이다. 
LLM(Large Language Model)은 대규모 데이터를 학습해 언어를 이해하고 생성하는 AI 모델 자체를 뜻한다.
ChatGPT 같은 서비스는 LLM을 활용해 만들어진 응용 프로그램이다.
 
 

LLM의 동작 원리 개요

1. 토큰화(Tokenizing): 입력 문장을 토큰 단위로 나눔
2. 벡터화(Embedding): 각 토큰을 수치 벡터로 변환
3. 신경망 처리: Transformer 구조로 문맥을 이해하고 다음 토큰의 확률 계산
4. 텍스트 생성: 확률이 높은 토큰을 순서대로 선택해 문장 완성

1. Tokenizing

:Tokenizing은 문자열(문장,코드,데이터 등)을 더 작은 단위(token)으로 쪼개는 과정을 의미한다.
 
  • Token : 의미를 가지는 최소 단위
"사과, 바나나, 포도"
-> ["사과", "바나나", "포도"]

"파스타 먹자"
-> ["파스타", "먹", "자"]
 
 
인간이 쓰는 자연어를 컴퓨터가 처리하기 위해 컴퓨터가 이해할 수 있는  구조로 변환해야한다.
이런 입력된 텍스트(자연어)를 모델에서 처리할 수 있는 데이터로 변환하기 위해 작은 단위로 쪼개는 과정을 토큰화라고 한다. 
 

이런 토큰화되는 방식을 볼 수 있는 사이트가 있다 https://platform.openai.com/tokenizer

 

2. Embedding : 각 토큰을 수치 벡터로 변환한다

 
우리가 글로 쓰는 텍스트, char문자 형식도 컴퓨터는 결국 숫자로 받아들이기 때문에   토큰을 컴퓨터가 직접 이해할 수는 없다. 
 
예를들어 "사과, 바나나, 포도"라는 문장이 있다. 이를 컴퓨터에게 입력한다고 생각해보자.
가장 쉽게 생각할 수 있는 방법은 ',' 단위로 끊어 세 문자열을 받아들이는 것이다.
"사과, 바나나, 포도"
-> ["사과", "바나나", "포도"]

사과: 0
바나나: 1
포도: 2
그럼 컴퓨터는 각 단어들의 인덱스로 이들을 구분할 수 있다.
 
그럼 이제 이 단어가 매우 많아지고 그 의미가 필요한 경우를 생각해보자.
"사과, 바나나, 포도, 오렌지, 자동차, 자전거, 오토바이, 비행기, 헬리콥터, 과일 , 식칼"
  1      2      3      4       5       6       7       8       9      10     11
 
우리는 사과, 바나나, 포도, 오렌지가 과일이란 것과 과일을 손질할 때 식칼을 쓴다는 것을 생각할 수 있다.
하지만 컴퓨터는 1,2,3,4가 10과 관련이 있다는 것과 11(식칼)이 1(사과)과 관련있다는 것을 알 수 없다.
단순히 숫자로 표현하는 방식으로는 컴퓨터가 데이터를 정리할 수는 있어도 그 단어들의 의미를 이해할 수는 없다. 
 
그래서 단어들간의 관계성을 표현하기 위해 차원을 늘린다.
대충 이런 식으로 각 단어들의 관계성을 따라 배치하면 각 단어들 사이의 거리를 구할 수 있다.
자동차와 사과의 거리보다 식칼과 사과의 거리가 짧다. -> 즉 식칼이 자동차보다 사과와 더 관련이 있다는 것을 알 수 있다.
 
이렇게 단어를 고차원 공간에 배치해 의미적 유사성을 벡터 거리로 표현해 컴퓨터가 이해할 수 있게 숫자로 변환하는데 이 과정을 Embedding이라고 한다.
 
당연히 이정도 2차원 수준이 아닌 768차원, 1572차원, 그 이상의 고차원으로 표현하여 거리로 구분한다.
 
 

3.신경망 처리와 4.텍스트 생성은 안 배웠다.
대충 2의 결과를 통해 가까운 관계인 단어들을 연결짓고 다시 자연어로 텍스트를 생성한다는 뜻인 것 같다..
 
 

3. 언어모델은 어떻게 기능을 수행하는가? 

위에서 계속 말했듯 LLM자체는 텍스트를 이해하고 분석하는 일을 한다. 
이 자체로도 언어모델은 질문에 답하거나, 글을 쓰거나, 번역하는 것이 가능하다.
그런데 우리가 흔히 사용하는 요즘의 ai들을 보면 사용자의 요청에 따라 검색, 이미지 생성, 코드 생성, 데이터 분석 등  "언어"의 범위나 학습된 범위를 벗어난 다양한 "기능"도 수행한다.
이는 언어모델이 다른 도구(tool)과 상호작용해서 수행한다.
사용자: 오늘 날씨 어때?
-> "현재 날씨 정보에는 접근할 수 없지만 일반적으로 여름에는 덥고 습합니다"

사용자: 오늘 날씨 어때?
-> LLM이 파악: 사용자의 의도는 오늘의 날씨를 아는 것
-> tool 사용: 날씨 API 호출
-> 결과 종합: 응답 생성
-> 응답: " 현재 서울은 30도이며, 날씨는 맑습니다"
 
 내가 공부할 부분이 이거!
즉, 언어모델에 내가 필요한 도구를 제공하면 더 다양한 활용이 가능해진다.
 
앞에서 LLM에 대해 간단하게 살펴봤다면 이제부터는 그걸 어떻게 활용할지에 대해 살펴보자.
 
 

4. MCP(Model Context Protocol)

MCP는 애플리케이션이 LLM에 컨텐스트를 제공하는 방법을 표준화하는 개방형 프로토콜이다.
 
MCP는 LLM이 외부 도구, 서비스, 데이터 소스에 일관된 방식으로 접근할 수 있게 해준다
 
MCP 개념: 모델이 외부 리소스/도구를 표준 방식으로 호출하고, 클라이언트가 실행해서 결과를 모델 컨텍스트에 다시 주입하는 상호작용 규약.
 
이 부분은 추후 직접 해보면서 따로 정리하겠다.
 

5. RAG( Retrieval Augmented Generation )

 
 
RAG에 대한 설명을 여기저기서 가져와봤다.
  • 외부 소스에서 가져온 정보로 생성형 AI모델의 정확성과 신뢰성을 향상시키는 기술
  • 대규모 언어 모델(LLM)의 출력을 최적화하여 응답을 생성하기 전에 학습 데이터 소스 외부의 신뢰할 수 있는 지식 베이스를 참조하도록 하는 프로세스 기술
  • 대규모 언어 모델(LLM)에서 질문에 대한 답변이나 텍스트를 생성하기 전에 광범위한 문서 집합에서 관련 정보를 검색하고, 이를 이용하여 응답을 생성하는 방법
   "생성형 AI가 답을 만들기 전에 관련 자료를 검색(retrieval)하여 이를 참고한 후 답변을 생성(generation)하는 방식"
 
한국에서 검색 기반 생성(검색 증강 생성)이라고 번역한 자료가 많다. 
검색이라는 단어 때문에 구글  검색창 같은 곳에서 검색을 한다고 생각하기 쉬운데 여기서의 "검색"은 단순히 구글 검색창에서 찾는 것이 아니라 벡터DB나 API 같은 데이터 소스에서 유의미한 정보를 가져오는 과정에 가깝다.
 
RAG는 개념적으로는 "검색 기반 응답 생성"이라는 방법론을 뜻한다.
기술적으로는 벡터DB 같은 저장소와 Retrieval 모듈을 함께 지칭하는 경우도 있고, 이를 통째로 RAG라고 부르기도 한다.
작게 생각하는 게 이해하기는 편한듯?
 
간단하게 이 동작 방식을 살펴보면 
  1. Query 입력
    사용자가 질문(Query)을 입력한다.
    이때 단순히 텍스트만 모델에 들어가는 것이 아니라,
    시스템 메시지, 대화 이력(context), 지시문 등이 합쳐져 Prompt라는 형태가 된다.
  2. Query 벡터화 (입력 코딩)
  3. 사용자의 입력은 임베딩 모델을 거쳐 숫자 벡터로 변환된다.
    이 벡터는 검색을 위한 키(key) 역할을 한다.
  4. Retrieval (외부 데이터 검색)
    변환된 벡터를 기반으로 벡터DB나 외부 API에서 관련 정보를 검색한다.
  5. Context 보강
    검색된 정보를 Prompt에 추가해 LLM이 참고할 수 있도록 한다.
    → 즉, 원래의 사용자 질문 + 검색된 자료가 하나의 새로운 Prompt가 된다.
  6. Generation (응답 생성)
    보강된 Prompt를 기반으로 LLM이 자연스러운 답변을 생성한다.
 
 
LLM은 인간의 언어나 기타 복잡한 데이터를 인식하고 해석할 수 있을 만큼 충분한 예제를 제공받은 컴퓨터 프로그램이다. 
하지만 당연히 이 세상의 모든 데이터를 가지고 있을 수는 없다. 이런 한계를 보완하기 위해 추가적인 데이터베이스(벡터DB)를 붙이는데 이걸 RAG라고 볼 수 있다.
 
 

6. 예시

아래의 짧은 대화를 예시로 분석해보자. 
 
 

1. 사용자의 Query 입력

사용자 입력

“서울 날씨”라는 채팅을 쳤다. 이는 Query가 된다.
하지만 이는 LLM이 이해할 수 있도록  시스템 메시지, context, 지시문과 합쳐서 Prompt로 만들어진다. 
 

prompt로 확장된 형태

시스템: 너는 친절한 대화형 비서야. 
context: 사용자가 내일 한강에 놀러갈 계획이라고 말함. 
사용자: 서울 날씨
 
 

2. query 벡터화(입력 코딩)

“서울 날씨”라는 텍스트는 임베딩 모델을 통해 숫자벡터로 변환된다.
서울, 날씨, 예보 같은 그 벡터공간에서 가까운 데이터를 검색하는 기준이 된다.
 
 

3. 외부 데이터 검색(retrievel)

벡터 DB, 혹은 외부 API에서 “서울”, “날씨”와 가까운 정보를 가져온다. 
여기서는 날씨 웹 검색 API가 호출되었을 것이다.
 

4. Context를 보강한다.

검색된 날씨에 대한 데이터를 Prompt에 추가한다.
시스템: 너는 친절한 대화형 비서야.
context: 사용자가 내일 한강에 놀러갈 계획이라고 말함.
사용자: 서울 날씨
참고 정보: 
- 8월 16일(금) 오전 11:00 기준
- 현재 31°, 구름 많음
- 폭염 주의보 발령
- 이번 주 최고 33°, 최저 24°
- 월~목 오전 중 소나기 가능
 
 

5. 응답 생성(Generation)

위의 결과를 통해 자연스러운 답변을 생성한다.
이때 사용자가 내일 한강에 가겠다는 정보를(context)제공했었다.
따라서 LLM은 내일의 날씨(글 쓰던 시점 기준 8월 17일, 사용자가 한강에 가겠다고 한 날)를 제공하고 모자, 선크림, 음료를 챙기라는 내용까지 추가해서 답변한다.
이번 주 서울의 날씨를 요약해 드릴게요:

- 전반적으로 덥고 습한 기운이 이어집니다. 최고 기온은 30~33°C, 최저 기온은 24~25°C 수준입니다.  
- 월요일부터 목요일까지는 오전에 소나기가 있을 수 있습니다.  
- 폭염 주의보가 발령 중이니, 낮 12시 전후에는 야외 활동을 피하시고, 한강 나들이 시에는 모자, 선크림, 시원한 음료를 챙기시면 좋습니다.
 
 
 
[User: "서울 날씨"]
      │
      ▼
[LLM: 의도 파악 → 최신성↑ → 툴 필요]
      │
      ├─▶ [툴콜: weather({location:"Seoul", tz:"Asia/Seoul"})]
      │        └─ 클라이언트 실행 → 결과(현재/예보/특보)
      ▼
[LLM: 결과 요약(근거) + 한강 맞춤 팁(생성)]
      ▼
[최종 응답]
 
 
 
 
 
 

총정리

LLM(Large Language Model)의 본질

언어모델은 인간의 자연어를 컴퓨터가 이해할 수 있는 형태(토큰, 벡터) 로 변환하여 처리한 뒤, 다시 사람이 읽을 수 있는 언어로 생성하는 시스템이다.
기본적으로는 학습된 방대한 텍스트 데이터를 바탕으로 확률적 단어 예측을 통해 답변을 만든다.

핵심 과정 요약
토큰화(Tokenizing): 텍스트를 모델이 처리 가능한 작은 단위로 분해
임베딩(Embedding): 단어·문장을 의미 공간에서 수치 벡터로 변환
맥락 처리(Context Handling): 이전 대화·검색 결과·시스템 메시지 등을 종합하여 입력 보강
생성(Generation): Transformer 기반 신경망이 확률적으로 가장 적절한 토큰을 이어붙여 문장을 만듦

Prompt, Query, Context의 구분
Query: 사용자가 실제로 입력하는 요청 (예: "서울 날씨 알려줘")
Context: LLM이 답을 더 잘하도록 제공되는 추가 정보 (검색 결과, 대화 이력, 지식 베이스 등)
Prompt: Query와 Context, 시스템 메시지, 지시어 등을 포함해 LLM에 최종적으로 전달되는 입력

한계와 확장
LLM은 세상의 모든 지식을 담고 있지 않음 → 최신 정보, 개인 데이터, 전문 지식은 부족할 수 있다.
이를 보완하기 위해 RAG(Retrieval Augmented Generation), MCP(Model Context Protocol), 외부 툴(API) 과 같은 방법이 사용된다.
RAG: 외부 데이터베이스에서 검색한 결과를 Context로 추가하여 응답 강화
MCP: LLM이 여러 툴과 표준화된 방식으로 연결될 수 있도록 하는 프로토콜
Tool 사용: 날씨 API, 코드 실행기, 이미지 생성기 등과 연동
 
  • LLM = 뇌(언어 능력)
  • Prompt = 질문+조건(입력 형태)
  • Context = 배경지식(외부 정보 포함)
  • RAG/MCP/Tool = 감각기관과 손발(현실 세계와의 연결)
 
 
 
 
 
 
 
 
 

'AI' 카테고리의 다른 글

0930까지 기록  (0) 2025.10.01