본문 바로가기
Coding/TIL & 배운것들

LLM (Large Language Model)

by 코딩짜는 머글 2024. 11. 13.

LLM 이란?

대규모 텍스트 데이터를 학습하여 자연어를 이해하고 생성할 수 있는 AI모델이다. 기본적으로 자연어 처리(NLP)의 다양한 작업, 예를 들면 번역, 질문 응답, 텍스트 생성(소스코드 등) 등을 할 수 있다. 

 

 

 

▼ 주요 기능

  • 자연어 이해(NLU) : 질문이나 명령을 이해하고 적절히 응답하는 능력
  • 텍스트 생성 : 기존 데이터를 바탕으로 자연스러운 텍스트를 생성
  • 번역 및 요약 : 다른 언어로 번역하거나 긴 텍스트를 요약 
  • 질문 응답 시스템(Q&A) : 사용자의 질문에 정확하게 답변하는 기능 

 

▼ 동작 원리

  • 학습 (Training)
    LLM은 대규모 텍스트 데이터셋을 이용해 학습한다. 여기서 중요한 것은 '패턴 인식'이다. 수많은 텍스트에서 단어와 문장의 패턴을 찾아내어, 새로운 문장이나 답변을 생성할 때 그 패턴을 적용한다. 
  • 추론 (Inference)
    학습된 LLM은 질문이나 입력을 받으면, 그에 맞는 추론을 통해 답변을 생성한다. 이때, 이전의 맥락을 기억하고 활용하면서 답을 만들어낸다. 
  • 미세 조정 (Fine-tuning)
    LLM은 특정 도메인이나 용도에 맞춰 추가 학습(미세 조정)할 수 있다. 예를 들어, 의료나 법률과 같은 특수한 분야에 맞는 데이터를 추가로 학습시키면 해당 분야에 대한 답변의 정확성이 높아진다. 

 

▼ 랜덤성과 조건성

 

√  랜덤성 (Randomness)

LLM은 기본적으로 확률에 기반하여 문장을 생성한다. 즉, 같은 질문을 하더라도 매번 동일한 답변을 주지 않는다. 이 랜덤성이 모델은 새로운 문장을 만들어내는 능력을 키워주는 핵심 요소이다. 결과를 생성할 때, 토큰의 확률 분포를 계산하여 그 중에서 높은 확률을 가진 토큰을 선택해 문장을 만든다. 이때 '온도(temperature)'라는 매개변수가 랜덤성에 영향을 미치게 되는데 

  • 온도 값이 낮으면 : 모델은 더 일관되고 예측 가능한 답변을 생성한다.(더 적은 랜덤성)
  • 온도 값이 높으면 : 답변이 창의적이고 예측하기 어려운 결과가 나올 수 있다.(더 많은 랜덤성)

▶ 예시 

질문 : "오늘 날씨는 어때?"

- 온도 낮음 : "오늘 날씨는 맑습니다."

- 온도 높음 : "오늘은 하늘이 쾌청하고, 약간의 바람이 불어요."

 

 

√  조건성 (Conditioning)

LLM은 조건부 확률을 기반으로 결과를 만들어 낸다. 즉, 모델은 이전의 입력 내용에 따라 문장을 조건부로 생성하게 되는데, 이를 컨텍스트라고도 한다. 이 과정에서 중요한 두 가지 요소가 있다. 

  • 프롬프트 : 입력된 문장이나 질문이 무엇인지에 따라 결과가 달라진다. 
  • 맥락 기억 : LLM은 대화를 나누는 동안 이전 문장이나 대화 흐름을 기억하고 그에 맞춰 답변을 생성한다. 

▶ 예시 

- 프롬프트에 따른 차이 : "고양이에 대해 말해줘." -> "고양이는 애완동물로서 인기가 많습니다.""고양이의 장점에 대해 말해줘." -> "고양이는 혼자서도 잘 지내는 동물이어서 바쁜 사람들에게 적합합니다."

 

 

 

▼ 원리를 알아야 하는 이유

동작 원리를 이해하면 더 효율적으로 사용할 수 있다. 

  • 정확한 프롬프트를 작성할 수 있게 되어, 원하는 답변을 더 쉽게 얻을 수 있다. 
  • LLM의 한계를 알면, 적절한 상황에서 더 나은 도구를 선택할 수 있다. 
  • 성능 개선을 위한 기술 요소들(RAG, LangChain 등)을 효과적으로 도입할 수 있다 .

 

▼ 원리 요약 

  1. 대규모 데이터 학습으로 많은 데이터를 바탕으로 언어 패턴을 학습
  2. 문맥 기반 추론을 사용해 입력된 텍스트의 맥락을 파악해 가장 적절한 답변을 생성
  3. 랜덤성과 조건성으로 다양한 확률과 조건에 따라 결과가 달라짐
  4. 미세 조정으로 특정 용도나 도메인에 맞춰 추가 학습 가능

 

√  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