LLM 이란?
대규모 텍스트 데이터를 학습하여 자연어를 이해하고 생성할 수 있는 AI모델이다. 기본적으로 자연어 처리(NLP)의 다양한 작업, 예를 들면 번역, 질문 응답, 텍스트 생성(소스코드 등) 등을 할 수 있다.
▼ 주요 기능
- 자연어 이해(NLU) : 질문이나 명령을 이해하고 적절히 응답하는 능력
- 텍스트 생성 : 기존 데이터를 바탕으로 자연스러운 텍스트를 생성
- 번역 및 요약 : 다른 언어로 번역하거나 긴 텍스트를 요약
- 질문 응답 시스템(Q&A) : 사용자의 질문에 정확하게 답변하는 기능
▼ 동작 원리
- 학습 (Training)
LLM은 대규모 텍스트 데이터셋을 이용해 학습한다. 여기서 중요한 것은 '패턴 인식'이다. 수많은 텍스트에서 단어와 문장의 패턴을 찾아내어, 새로운 문장이나 답변을 생성할 때 그 패턴을 적용한다. - 추론 (Inference)
학습된 LLM은 질문이나 입력을 받으면, 그에 맞는 추론을 통해 답변을 생성한다. 이때, 이전의 맥락을 기억하고 활용하면서 답을 만들어낸다. - 미세 조정 (Fine-tuning)
LLM은 특정 도메인이나 용도에 맞춰 추가 학습(미세 조정)할 수 있다. 예를 들어, 의료나 법률과 같은 특수한 분야에 맞는 데이터를 추가로 학습시키면 해당 분야에 대한 답변의 정확성이 높아진다.
▼ 랜덤성과 조건성
√ 랜덤성 (Randomness)
LLM은 기본적으로 확률에 기반하여 문장을 생성한다. 즉, 같은 질문을 하더라도 매번 동일한 답변을 주지 않는다. 이 랜덤성이 모델은 새로운 문장을 만들어내는 능력을 키워주는 핵심 요소이다. 결과를 생성할 때, 토큰의 확률 분포를 계산하여 그 중에서 높은 확률을 가진 토큰을 선택해 문장을 만든다. 이때 '온도(temperature)'라는 매개변수가 랜덤성에 영향을 미치게 되는데
- 온도 값이 낮으면 : 모델은 더 일관되고 예측 가능한 답변을 생성한다.(더 적은 랜덤성)
- 온도 값이 높으면 : 답변이 창의적이고 예측하기 어려운 결과가 나올 수 있다.(더 많은 랜덤성)
▶ 예시
질문 : "오늘 날씨는 어때?"
- 온도 낮음 : "오늘 날씨는 맑습니다."
- 온도 높음 : "오늘은 하늘이 쾌청하고, 약간의 바람이 불어요."
√ 조건성 (Conditioning)
LLM은 조건부 확률을 기반으로 결과를 만들어 낸다. 즉, 모델은 이전의 입력 내용에 따라 문장을 조건부로 생성하게 되는데, 이를 컨텍스트라고도 한다. 이 과정에서 중요한 두 가지 요소가 있다.
- 프롬프트 : 입력된 문장이나 질문이 무엇인지에 따라 결과가 달라진다.
- 맥락 기억 : LLM은 대화를 나누는 동안 이전 문장이나 대화 흐름을 기억하고 그에 맞춰 답변을 생성한다.
▶ 예시
- 프롬프트에 따른 차이 : "고양이에 대해 말해줘." -> "고양이는 애완동물로서 인기가 많습니다.""고양이의 장점에 대해 말해줘." -> "고양이는 혼자서도 잘 지내는 동물이어서 바쁜 사람들에게 적합합니다."
▼ 원리를 알아야 하는 이유
동작 원리를 이해하면 더 효율적으로 사용할 수 있다.
- 정확한 프롬프트를 작성할 수 있게 되어, 원하는 답변을 더 쉽게 얻을 수 있다.
- LLM의 한계를 알면, 적절한 상황에서 더 나은 도구를 선택할 수 있다.
- 성능 개선을 위한 기술 요소들(RAG, LangChain 등)을 효과적으로 도입할 수 있다 .
▼ 원리 요약
- 대규모 데이터 학습으로 많은 데이터를 바탕으로 언어 패턴을 학습
- 문맥 기반 추론을 사용해 입력된 텍스트의 맥락을 파악해 가장 적절한 답변을 생성
- 랜덤성과 조건성으로 다양한 확률과 조건에 따라 결과가 달라짐
- 미세 조정으로 특정 용도나 도메인에 맞춰 추가 학습 가능
√ RAG (Retrieval-Augmented Generation)
LLM이 스스로 모든 답을 생성하는 대신, 데이터베이스에서 정보를 검색하고 그것을 기반으로 답변을 생성하는 기법이다. (LLM의 한계를 극복할 수 있는 방법 중 하나)
√ Vector DB
벡터 데이터베이스는 텍스트를 벡터 형태로 변환하여 유사한 의미를 가진 텍스트를 효율적으로 검색할 수 있게 도와주는 기술이다. LLM과 결합하면 더 강력한 검색 및 응답 기능을 구현할 수 있다.
'Coding > TIL & 배운것들' 카테고리의 다른 글
OpenAI Playground (0) | 2024.11.13 |
---|---|
RAG, Vector DB, LangChain (1) | 2024.11.13 |
24-11-12 베이직반 수업 (0) | 2024.11.12 |
FastAI 사전 학습된 모델 실습 (1) | 2024.11.12 |
Ultralytics YOLO활용 (1) | 2024.11.12 |