Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |
Tags
- queue
- DP
- 스택/큐
- LLM
- 알고리즘
- Weaviate
- javascript
- 파이썬
- python
- InfluxDB
- Stack
- React
- VectoreStore
- Algorithm
- typescript
- retriever
- mcp.tool()
- OpenAI
- 프로그래머스
- chroma
- AI
- javascirpt
- dfs
- 완전탐색
- heapq
- max_heap
- Two Pointer
- modbus
- frontend
- 코딩테스트
Archives
- Today
- Total
DM Log
[AI 개념 및 이해 #1] LLM(Language Model) 이해: GPT의 동작 본문
LLM의 중요성
- LLM은 자연어를 이해하고 생각하는 법용 엔진
- 검색, 요약, 번역, 코딩 보조, 지식질의 등 텍스트가 있는 곳이면 적용 가능
- "어떻게 동작하는지"를 모르면, 환각 / 최신성 / 프롬프트 민감성 같은 한계를 제대로 다룰수 없음
언어 모델의 개념
- LLM은 다음에 올 단어를 예측 하는 것
- 확률적 정의
- 문장 w1, w2, …, wT 의 확률을 최대화
- 즉, 매 순간 이전까지의 문맥을 보고 다음 토큰의 분포를 출력
- 학습은 대규모 텍스트 말뭉치에서 정답(실제 다음 토큰)과 모델 예측 분포의 차이를 줄이는 방향으로 진행 (교차 엔트로피 손실)
[확률 기반 언어 모델의 등장 (n-gram 등)]
1) n-gram 모델
- 개념: 바로 앞의 n-1개만 보고 다음 단어 예측 (마코프 가정)
- 장점: 단순하고 빠름
- 한계:
- 장기 의존성 취약
- 희소성 문제(드문 조합은 확률 추정이 어려움)
- 표기 변형/문맥 다양성에 취약
2) Class-based n-gram
- 단어 자체가 아니라 단어의 클래스 (품사, 의미군) 단위로 예측
- 희소성 완화 효과
3) Cache-based Language 모델
- 최근 등장한 단어가 다시 등장할 가능성이 높다는 가정
- 최근 단어를 캐시에 넣어 확률 보정
4) Maximum Entropy (MaxEnt) 모델
- 다양한 특성을 활용하는 모델
- n-gram보다 더 일반화된 모델링 가능
[딥러닝 기반 LLM의 변화]
- RNN / LSTM / GRU: 순차적으로 문맥을 흘려보내 장기 의존성 일부 개선 / 병렬화 문제 및 긴 시쿼스에서 기울기 소실 / 폭발 문제
- Transformer: 어텐션으로 모든 위치를 서로 직접 참조 (병렬 처리). 대규모 데이터 / 모델 학습이 가능
GPT 핵심 아이디어
[Transformer 구조 소개]
- Self-Attention: 토큰이 다른 모든 토큰을 얼마나 참고할지 가중치(어텐션)을 학습
- 문장 안의 단어가 얼마나 관련 있는지 계산하는 메커니즘
- 예: 나는 사과를 먹었다에서 사과는 먹었다와 강하게 연결(큰 가중치) 나는과는 약하게 연결
- 멀티-헤드: 서로 다른 관점(문법/의미/참조 등)으로 문맥을 병렬 파악
- Attention을 여러 세트로 병렬 학습하여, 다른 관계를 확인
- 예: 한 헤드는 문법적 관계(주어-동사)를 다른 헤드는 의미적 연결(사과-먹다)를 본다고 생각
- 포지셔널 인코딩: 단어 순서 정보를 벡터에 주입
- Self-Attention만 사용시 단어 순서를 확인 불가능
- 단어 벡터에 위치 정보(사인, 코사인 패턴)을 더해 순서 확인
- 디코더 전용: GPT 계열은 미래 토큰을 가리지 않고 보면 안되므로 마스킹된 self-attention만 사용
- 텍스트 생성 시, GPT는 왼쪽에서 오른쪽 단어만 예측
- 나는 오늘까지 보고 다음 단어 예측 필요 미래 단어를 가리는 마스크를 사용
[다음 단어 예측 원리]
- 입력 문장(토큰열)을 벡터로 변환(임베딩)
- 마스킹된 self-attention으로 토큰이 과거 토큰들만 참조하도록 설정
- 마지막 레이어에서 어휘 전체에 대한 확률분포 출력
- 가장 높은 토큰 선택, 샘플링 / 탑-k / 탑-p 등으로 다양성을 주어 토큰 생성
- 새 토큰을 입력 뒤에 붙이기 반복하여 문장 생성
LLM의 한계
- 맥락 길이 제한
- 한 번에 볼 수 있는 토큰 수(컨텍스트 윈도우)가 제한
- 긴 문서 / 다수 문서 처리 시 요약 / 슬라이딩 윈도우 / RAG가 필요
- 환각(Hallucination) 문제
- 사실이 아닌 내용을 말할 수 잇음
- 출처 근거 제시, 검색 보강(RAG), 도메인 제약, 체크리스트 프롬프트 진행
- 최신 정보 부족
- 사전 학습 데이터 시점 한계로 인해 최근 이슈나 데이터 반영 어려움
- 외부 검색 / 도구 호출, 사내 DB 연결, 파인 튜닝 / 업데이트 진행
LLM 활용 예시
- 대화형 에이전트: 고객지원, 내부 지식 질의 응답
- 코딩보조: 자동완성, 리팩토링, 테스트 코드 생성
- 문서 작업: 요약, 초안 작성, 번역, 톤 조정
- 검색 보조: 쿼리 확장, 결과 요약, 다문서 통합 정리
- 업무 자동화: 외부 툴 / 데이터베이스 / 클라우드 API와 결합하여 에이전트 워크플로
(부록) 용어 정리
- 토큰(Token): 모델이 처리하는 최소 단위(단어/서브워드/문자).
- 임베딩(Embedding): 토큰/문장을 고정 길이 벡터로 표현한 것.
- 어텐션(Attention): 토큰 간 참조 강도를 학습하여 중요한 문맥에 더 집중.
- 마스킹된 어텐션(Causal Masking): 미래 토큰을 보지 못하게 가리는 기법.
- 컨텍스트 윈도우(Context Window): 한 번에 넣을 수 있는 최대 토큰 길이.
- 환각(Hallucination): 실제 근거 없이 생성된 사실오류 텍스트.
- 샘플링/탑-k/탑-p: 다음 토큰 선택 시 다양성/안정성을 조절하는 방법.
'개발공부 > AI' 카테고리의 다른 글
[AI 실습 #1] Chroma 실습: 벡터DB를 활용한 문서 검색 (0) | 2025.09.13 |
---|---|
[AI 개념 및 이해 #5] RAG: 검색과 생성을 결합하는 기술 (0) | 2025.09.07 |
[AI 개념 및 이해 #4] LangChain: LLM 오케스트레이션 프레임워크 (0) | 2025.09.07 |
[AI 개념 및 이해 #3] 벡터 DB(Vector Database) 개념: Chroma, Pinecone, Weaviate 비교 (0) | 2025.09.07 |
[AI 개념 및 이해 #2] 임베딩(Embedding) 이해: 텍스트-벡터 변환 기술 (0) | 2025.09.06 |