본문 바로가기
프로젝트 개발 일지/AI

LLM이란?

by ballbig 2024. 9. 26.
728x90

 

왜 지금 AI가 뜨고 있는가?
  • 다층 신경망인 DL의 출현은 AI 모델의 선응과 능력에 중대한 전환점을 마련했다.
  • 흥미로운 점은 DL의 개념이 한동안 존재했음에도 불구하고, 생성 모델의 발전과 확장은 GPU와 같은 하드웨어의 중요한 발전과 관련이 있다. 특히, GPU는 AI 분야를 진전시키는 데 중요한 역할을 했다.
    • GPU는 DL 신경망을 훈련시키기에 필요한 행렬/벡터 계산에 특히 적절하다.
    • 특히 NVIDIA의 CUDA 플랫폼은 GPU를 직접 프로그래밍할 수 있게 해, 언어 모델 분야에서 개별적이고 복잡한 모델 싱험 및 배포가 더욱 용이해졌다.
  • 강력한 하드웨어의 가용성은 심층 모델의 개발에서 핵심 요인이다.
    • DL 모델이 훈련과 실행에 많은 계산 자원을 필요로 하기 때문 (처리 능력, 메모리, 디스크 공간 등 모든 측면과 관련된다.)
    • 하드웨어 비용이 감소함에 따라 훨씬 큰 데이터셋에서 더 큰 모델 훈련이 가능해졌다.
  • 뿐만 아니라, 텍스트, 이미지 및 기타 데이터의 대규모 데이터 셋 또한 AI 기술 발전의 핵심 역할을 했다.

 

 

LLM(Large Language Model)이란?
  • 언어 모델링 : 주어진 시퀀스에서 이전 단어, 문자 또는 문장을 기반으로 다음 단어, 문자 또는 문장을 예측하는 것을 목표로 함
    => 이를 위해 언어의 규칙과 구조를 기계가 이해할 수 있는 방식으로 인코딩해야한다!
  • LLM : 텍스트를 인식하고 생성하는 등의 작업을 수행할 수 있는 일종의 인공 지능(AI) 프로그램
    • LLM은 문자, 단어, 문장이 함께 작동하는 방식을 이해하기 위해 딥러닝이라는 일종의 머신 러닝을 사용한다.
    • 대규모 텍스트 말뭉치를 분석함으로써 문법, 구문 및 의미적 관계를 이해하여 일관성 있고 맥락에 적합한 응답을 생성할 수 있다.
    • 트랜스포머 모델을 사용하며, 방대한 데이터 세트를 사용하여 훈련된다.

 

 

트랜스포머 심층 신경망 아키텍처
  • 순환을 피하기 위해 설계된 트랜스포머 아키텍처는 병렬 계산을 허용하도록 하며, 다양한 변형을 통해 NLP와 생성형 AI분야에서 그 한계를 끊임없이 넓히고 있다.
  • 트랜스포머는 크게 인코더(Encoder)와 디코더(Decoder)로 구분된다.
  • 인코더와 디코더는 각각 여러 층으로 구성되어 있으며, 각 층은 셀프 어텐션과 피드포워드 신경망으로 이루어져 있습니다.

출처 : wikipidia

 

  • 인코더
    • 입력 시퀀스를 받아 의미 있는 표현(representation)을 생성한다.
    • 입력 문장을 어텐션 메커니즘을 통해 학습하며, 이 과정에서 입력 데이터 간의 관계(의미적 연관성)를 파악한다.
  • 디코더
    • 인코더에서 나온 정보를 바탕으로 원하는 출력 시퀀스를 생성한다.
    • 디코더는 이전의 출력과 인코더에서 받은 정보에 대해 어텐션을 수행하여 최종 출력을 생성합니다.

 

 

 

💡 Attention 메커니즘
더보기
Attention 메커니즘이란?
  • 모델이 입력 데이터의 모든 부분을 동일하게 처리하지 않고, 특정 부분에 더 집중할 수 있도록 하는 방법
  • 주어진 입력 시퀀스에서 중요한 정보에 "집중"하게 함으로써, 문맥 내에서 각 단어의 상대적 중요도를 학습한다.
  • 기존의 RNN, LSTM 등의 순차 모델들은 입력 시퀀스의 길이가 길어질수록 중요한 정보의 전달이 어려워지는 문제를 겪었는데, 이 문제를 해결하기 위해 Attention은 입력 시퀀스의 모든 단어(토큰)에 대해 각 단어가 얼마나 중요한지 계산하고, 중요한 단어에 더 많은 가중치를 부여하여 문맥을 더 잘 파악할 수 있도록 돕는 역할을 한다.

 

Attention 메커니즘의 주요 파라미터 (입력 데이터에서 각 단어를 벡터화한 결과)
  • Query(Q): 현재 처리 중인 단어가 "어떤 단어와 연관될지"에 대한 질문.
  • Key(K): 각 단어의 "특성"을 나타내는 벡터로, Query가 무엇과 연관되는지를 결정하기 위한 정보.
  • Value(V): 실제로 출력할 "값"으로, Key와 연관된 정보.

 

작동 원리

 

  • Query와 Key 간 유사도 계산:
    • Query 벡터와 Key 벡터 간의 유사도를 계산합니다. 이 유사도는 주로 두 벡터의 dot product를 통해 구한다.
    • 이 유사도는 각 단어가 현재 Query와 얼마나 관련이 있는지를 나타내며, 이를 통해 어떤 단어가 더 중요한지 알 수 있다.
  • 소프트맥스(Softmax)로 가중치 정규화:
    • 계산된 유사도를 소프트맥스 함수에 통과시켜 가중치로 변환한다.
      (소프트맥스 함수를 통과한 결과,  모든 단어에 대한 가중치가 0에서 1 사이의 값으로 변환되고, 그 합이 1이 된다.)
    • 가중치가 클수록 해당 단어가 더 중요한 것으로 간주된다.
  • 가중치 합산:
    • 계산된 가중치를 각 단어의 Value 벡터에 곱한 후, 이들을 모두 더해 최종 출력을 계산한다.
    • 즉, 각 단어의 중요도에 따라 값이 가중합되어 새로운 표현이 만들어집니다.

 

Attention 메커니즘의 수식

 

  • Q: Query 벡터
  • K: Key 벡터
  • V: Value 벡터
  • dk: Key 벡터의 차원 수 (정규화를 위해 사용)
  • softmax: 계산된 값들을 확률로 변환하는 함수
  • QK : dot product를 통한 유사도 측정
  • sqrt(dk) : 값이 너무 커지는걸 방지하기 위해 나눠줌
  • softmax()V : 소프트맥스를 통해 정규화된 가중치를 각 Value 벡터에 곱해 최종 결과를 산출

 

 

💡 피드포워드 신경망
어텐션을 통해 입력 간의 상호작용을 학습한 후, 피드포워드 네트워크는 각 위치에서의 어텐션 결과를 비선형적으로 변환하여 더 복잡한 표현을 학습할 수 있도록 한다.

 

 

 LLM의 한계 및 완화 방법

 

  • 한계
    • 오로지 훈련 데이터에 의존하기 때문에 최근의 실세계 정보를 제공하기 어렵다.
    • 이전 대화와 일관된 유용한 응답을 위해 필요한 보충적인 세부 정보와 같은 관련 맥악을 통합하는 데 어려움이 있다.
    • 특정 주제에 대한 지식이 부족해서 제대로 알지 못하는 경우 부정확하거나 비논리적인 콘텐츠를 생성할 수 있다.

 

  • 완화 방법
    • 검색증강 (Retrieval Augumentation) : 지식 베이스에 접근해 LLM의 오래된 훈련 데이터를 보완하며 외부 컨텍스트를 제공하고 환각의 위험을 줄인다.
    • 체이닝 (chaining) : 검색과 계산과 같은 다양한 동작을 순차적으로 또는 단계적으로 연결하여 하나의 작업 흐름으로 통합한다. (*NLP에서 체이닝 이란, 텍스트 데이터를 검색한 후 해당 텍스트에 대한 계산(예: 단어 빈도 계산, 의미 분석 등)을 하는 파이프라인을 하나의 흐름으로 만드는 것을 말한다.)
    • 프롬프트 공학 : 주요 컨텍스트를 제공해 적절한 응답을 안내하는 프롬프트를 신중하게 만든다.
    • 모니터링, 필터링, 리뷰 : 입/출력에 관한 신규 문제를 지속적이고 효과적으로 감시해 문제를 감지한다. 
    • 메모리 : 대화 데이터와 컨텍스트를 꾸준히 유지해 상호 작용 사이에서 대화 문맥을 유지한다.
    • 미세조정 : 애플리케이션 도메인 및 원칙에 더 적절한 데이터로 LLM을 훈련하고 조정한다.
    • 파인튜닝 (Fine-Tuning) : 사전 학습된 모델(Pretrained Model)을 기반으로, 특정한 작업이나 도메인에 맞게 추가 학습을 시킨다.

 

 

'프로젝트 개발 일지 > AI' 카테고리의 다른 글

[LLM with RAG] History  (0) 2024.09.26
[LLM with RAG] Retrieval 효율 개선  (2) 2024.09.26
LangChain 이란?  (0) 2024.09.26