🧩 BE

LLM 기초

Date
2026/04/06
Category
AI
Tag
LangChain
Detail
Learning LangChain
목차
2022년 11월 ChatGPT를 시작으로 다양한 산업 전반에서 생성형 AI를 활용한 서비스들과 업무 방식이 점점 더 발전하고 있다. 특히 소프트웨어 엔지니어는 코드 작성 및 디버깅 전용 AI에 이르기까지 다양한 애플리케이션을 사용할 수 있게 되었다. 때문에 안정적인 방식으로 AI를 사용하고, 최소한의 프롬프트로 최적의 결과를 뽑아낼 수 있는 능력이 무엇보다 중요해졌다.

LLM

LLM(Large Language Model)은 ML을 기반으로 방대한 텍스트 데이터를 학습한 크고 범용적인 언어 모델을 말한다.
내부적으로, LLM은 이전 단어열이 주어지면, 단어나 단어열의 발생 확률을 추정한다. 정확히는, 단어가 아닌 토큰을 기준으로 확률을 추정한다.

Token

토큰이란 텍스트의 원자 단위를 나타낸다. 예시로 GPT-3.5의 토크나이저는 ‘good morning dearest friend’라는 문장을 토큰 5개로 분리한다.
Good: 토큰 ID 19045
_morning: 토큰 ID 6693
_de: 토큰 ID 409
arest: 토큰 ID 15795
_friend: 토큰 ID 4333
토크나이저의 학습 목표는 흔하게 사용되는 단어를 하나의 토큰으로 인코딩하는 것이다. 예시로 morning이라는 단어는 6693이라는 토큰으로 인코딩한다. 덜 흔한 단어 또는 영어가 아닌 다른 언어의 단어는 여러 개의 토큰으로 인코딩한다. dearest라는 단어는 409, 15795라는 두 개의 토큰으로 인코딩된다. 토큰 하나는 평균적으로 영문자 4개 정도를 차지한다.
LLM의 예측력을 좌우하는 핵심은 트랜스포머 신경망 아키텍처다. 트랜스포머 구조는 문장이나 코드 등 데이터의 연속체를 처리하며, 연속체에서 가장 가능성이 높은 다음 단어를 예측한다.

프롬프트 엔지니어링

LLM에 제공하는 지침과 입력 텍스트는 프롬프트(prompt)라 하며, 프롬프트는 LLM의 출력 품질에 상당한 영향을 미친다. 좋은 출력을 만드는 프롬프트를 작성하는 과정을 프롬프트 디자인 or 프롬프트 엔지니어링 이라고 한다.

프롬프트 작성기법

제로샷 프롬프트 - 단순한 질문
사고의 연쇄(CoT, Chain of Thought) - 단계별로 사고하도록 지시문 제공
검색 증강 생성(RAG, Retrieval Augmented Generation) - 연관된 텍스트 조각인 컨텍스트를 프롬프트에 포함하여 응답 개선. CoT와 결합하는 것을 권장
툴 호출 - 외부 툴 결합
퓨샷 프롬프트 - 예제와 정답을 몇 개 제공하여 추후 답변을 올바른 방향으로 튜닝
→ 프롬프트 작성 기법은 서로 결합시켰을 때 최적의 결과를 뽑을 수 있다.

랭체인

랭체인은 LLM + 프롬프트 구성 요소 + 툴을 제공하는 오픈소스 라이브러리이다. 모든 요소를 신뢰성 있게 결합해 더 큰 애플리케이션을 만들 수 있도록 지원한다.
각 주요 프롬프트 작성 기법을 간단한 추상화로 제공하여 프롬프트를 더 쉽게 결합한다. 또한 다양한 LLM 모델, 임베딩 모델, 벡터 저장소, 벡터 인덱스 등 과의 통합을 제공한다.

프롬프트 템플릿 추상화

랭체인은 프롬프트 템플릿 추상화를 통해 프롬프트를 여러번 재사용할 수 있다. 프롬프트 템플릿을 전달하면 전달할 고정된 텍스트의 특정 위치에 플레이스홀더를 적용한다. 해당 플레이스홀더의 변수값을 바꿔 일정한 틀 안에서 다양한 값을 얻을 수 있다.

에이전트 추상화

랭그래프 라이브러리를 통해 사고의 연쇄(CoT)를 통한 추론과 툴 호출을 결합하여 에이전트 추상화를 제공한다.
1.
문제를 해결할 단계를 추론
2.
각 단계를 외부 툴 호출로 변환
3.
툴 호출의 결과를 받음
4.
작업이 완료될 때까지 반복

왜 랭체인인가?

사전 구현한 공통 패턴: 가장 일반적인 LLM 애플리케이션 패턴에 따른 구현을 제공
상호 교환 가능한 구성 요소: 모든 구성 요소(LLM, 채팅 모델, 출력 파서 등)는 공통된 명세를 따르므로, 손쉽게 다른 대안으로 교체할 수 있다. 때문에 버전업이나 수정된 요구사항에 쉽게 대응할 수 있다.
→ LLM 애플리케이션 개발의 프레임워크 역할을 충실히 수행