LLM(Large Language Model)
: 모델 크기가 큰 딥러닝 기반의 언어 모델
- 자연어 처리(Natural Language Processing)분야에 속하며, 자연어 생성(Natural Language Generation)에 속한다.
* NLP: 사람의 언어를 컴퓨터가 이해하고 생성할 수 있도록 연구
* NLG: 사람과 비슷하게 텍스트를 생성하는 방법을 연구
- LLM은 다음에 올 단어가 무엇일지 예측하면서 문장을 하나씩 만들어 가는 방식으로 텍스트를 생성한다.
* 언어모델(Language Model): 다음에 올 단어를 예측하는 모델
딥러닝과 머신러닝의 차이점
: 모델이 스스로 데이터의 특징을 찾고 분류하는 모든 과정을 학습한다.
* 딥러닝 모델은 학습 과정에서, 데이터의 특징을 추출하는 방법도 함께 배운다. 컴퓨터는 숫자만 처리할 수 있기 때문에 데이터의 의미를 숫자의 집합으로 표현한다.
임베딩(embedding): 데이터의 의미와 특징을 포착해 숫자로 표현한 것
- 데이터 사이의 거리를 계산할 수 있다.
ex) 검색 및 추천(검색어와 관련 있는 상품 추천), 클러스터링 및 분류(유사하고 관련 있는 데이터 하나로 묶는다), 이상치 탐지
* 단어 임베딩(Word embedding): 단어를 임베딩으로 변환한 것
언어 모델링: 딥러닝 모델의 언어 학습법
언어 모델링: 모델이 입력받은 텍스트의 다음 단어를 예측해 텍스트를 생성하는 방식
- 텍스트를 생성하는 모델을 학습시키는 방법, 대량의 데이터에서 언어의 특성을 학습하는 사전 학습(pre-training) 과제로도 많이 사용
* 언어 모델: 다음 단어를 예측하는 방식으로 훈련한 모델
전이 학습(transfer learning)
: 딥러닝 분야에서는 하나의 문제를 해결하는 과정에서 얻은 지식과 정보를 다른 문제를 풀 때 사용하는 방식을 많이 활용
- 이 학습에서는 사전 학습과 미세 조정(fine-tuning) 두 단계로 나눠 학습을 진행
* 사전 학습: 대량의 데이터로 모델을 학습
* 미세 조정(fine-tuning): 특정한 문제를 해결하기 위한 데이터로 추가 학습
* downstream 과제: 사전 학습 모델을 미세 조정해 풀고자 하는 과제
* 언어 모델링은 자연어 처리 분야에서 사전 학습을 위한 과제로 사용된다.
RNN에서 트랜스포머 아키텍처로
- 딥러닝이나 머신러닝 분야에서 텍스트란?
: 단어가 연결된 문장 형태의 데이터를 일컫는다.
- 시퀀스 데이터를 처리하기 위해 크게 순환신경망이나 트랜스포머의 두 가지 아키텍처로 대표되는 다양한 모델 사용
* 시퀀스(sequence): 작은 단위(단어)의 데이터가 연결되고, 그 길이가 다양한 데이터의 형태
ex) 텍스트, 오디오, 시계열과 같은 데이터
* 모델 아키텍처: 딥러닝 모델이 갖는 구조
[RNN]
- 입력하는 텍스트를 순차적으로 처리해서 다음 단어를 예측
- 모델이 '하나의 잠재 상태(hidden state)에 지금까지의 입력 텍스트의 맥락을 압축'한다는 점
장점)
- 여러 단어로 구성된 맥락을 하나의 잠재 상태에 압축하기 때문에 메모리를 적게 사용한다.
- 다음 단어를 예측할 때 지금까지 계산을 통해 만들어진 잠재 상태와 입력 단어만 있으면 되므로 다음 단어를 빠르게 생성할 수 있다.
단점)
- 순차적으로 입력되는 단어를 하나의 잠재 상태에 압축하다 보니 먼저 입력한 단어의 의미가 점차 희속되며, 입력이 길어지는 경우 의미를 충분히 담지 못하고 성능이 떨어지는 문제 발생
[트랜스포머 아키텍처]
- 맥락을 모두 참조하는 어텐션(attention) 연산을 사용해 RNN 문제 대부분 해결
- 맥락 데이터를 모두 활용해 다음 단어를 예측한다.
장점)
- 병렬 처리를 통해 학습 속도를 높일 수 있어 현재 대부분의 LLM이 트랜스포머 아키텍처 기반임
단점)
- 입력 텍스트가 길어지면 맥락 데이터를 모두 저장하고 있어야 하기 때문에 메모리 사용량이 증가한다.
- 다음 단어를 예측할 때마다 맥락 데이터를 모두 확인해야 하기 때문에 입력이 길어지면 예측에 걸리는 시간도 증가한다.
>> 최근 뛰어난 성능과 효율성을 갖춘 새로운 아키텍처 공개됨 -> 맘바(ex. Mamba)
모델 크기와 성능의 관계
* OpenAI GPT 시리즈는 모델 구조에는 큰 병경 없이 오직 모델과 학습 데이터셋의 크기만 키웠는데, 언어 모델의 성능이 크게 높아져 GPT-3에 와서는 사람의 언어 생성 능력과 유사하다는 평가를 받았다.
🧐 왜 모델의 크기가 커지고 학습 데이터가 많을수록 모델의 성능이 높아질까?
>> 압축의 관점에서 봤을 때, 모델이 커지면 학습 데이터가 갖고 있는 언어 생성 패턴을 더 많이 학습할 수 있기 때문에 모델 성능이 높아진다고 이해할 수 있다.
* 하지만 모델이 계속해서 커진다고 성능이 높아지지는 않고 학습 데이터의 크기가 최대 모델의 크기의 상한이라고 볼 수 있다.
챗GPT 등장
- 지도 미세 조정(supervised fine-tuning)과 RLHF 기술: 챗GPT는 이 기술을 통해 그저 사용자가 한 말 다음에 이어질 말을 생성하는 것이 아니라 사용자의 요청을 해결할 수 있는 텍스트를 생성하게 되었다.
* 정렬(alignment): LLM이 생성하는 답변을 사용자의 요청 의도에 맞추는 것
* 지도 미세 조정: 정렬을 위한 가장 핵심적인 학습 과정으로서, 언어 모델링으로 사전 학습한 언어 모델을 지시 데이터셋으로 추가 학습하는 것
* 지시 데이터셋(Instruction dataset): 사용자가 요청 또는 지시한 사항과 그에 대한 적절한 응답을 정리한 데이터셋
* 선호 데이터셋(preference dataset): 두 가지 답변 중 사용자가 더 선호하는 답변을 선택한 데이터셋
* RLHF(Reinforement Learning from Human Feedback): 사람의 피드백을 활용한 강화 학습
- 선호 데이터셋으로 LLM의 답변을 평가하는 리워드 모델(reward model)을 만들고 LLM이 점점 더 높은 점수를 받을 수 있도록 추가 학습하는데, 이때 강화 학습(reinforcement learning)을 사용
LLM 활용하는 방법
1. 상업용 API를 사용하는 방법 ex) OpenAI의 GPT-4나 구글의 제미나이
2. 오픈소스 LLM을 활용해 직접 LLM API를 생성해 사용하는 방법
- 일반적으로 상업용 모델은 오픈소스 LLM에 비해 모델이 크고 범용 텍스트 생성 능력이 뛰어나다.
- 하지만, 오픈 소스 LLM은 원하는 도메인의 데이터, 작업을 위한 데이터로 자유롭게 추가 학습을 할 수 있다.
더 효율적인 학습과 추론을 위한 기술
배경:
- LLM의 기반이 되는 트랜스포머 아키텍처 연산은 무겁고 또 모델 성능을 높이기 위해 모델의 크기를 키우면서 LLM의 학습과 추론에 필요한 연산량이 크게 증가했다.
>> GPU 사용량 증가하며 품귀 현상 발생
해결 방안:
- GPU를 효율적으로 사용해 적은 GPU 자원으로도 LLM을 활용할 수 있도록 돕는 연구 활발히 진행
- 대표적으로 모델 파라미터를 더 적은 비트로 표현하는 양자화(quantization)와 모델 전체를 학습하는 것이 아니라 모델의 일부만 학습하는 LoRA(Low Rank Adaptation) 방식이 있다.
- 무거운 어텐션 연산을 개선해 효율적인 학습과 추론을 가능하게 하는 연구도 있다.
LLM의 환각 현상 대처: 검색 증강 생성(RAG) 기술
환각 현상이란?
: LLM이 잘못된 정보나 실제로 존재하지 않는 정보를 만들어 내는 현상
환각 현상 발생 이유
: OpenA의 존 슐면은 2023년 4월 EECS 콜로키움에서 발표한 '사람의 피드백을 활용한 강화 학습: 발전과 과제'에서 지시 데이터셋으로 LLM을 지도 미세 조정하는 과정에서 LLM이 기존에 알지 못하는 정보가 포함된 경우 환각 현상을 유발할 수 있다고 제안했다.
- RAG 기술은 프롬프트에 LLM이 답변할 때 필요한 정보를 미리 추가함으로써 잘못된 정보를 생성하는 문제를 줄인다.
LLM의 미래
1. multi modal LLM
: 다양한 형식의 데이터를 입력으로 받을 수 있고 출력으로도 여러 형태의 데이터를 생성할 수 있도록 발전시킨 모델
2. 에이전트(agent)
: LLM이 텍스트 생성 능력을 사용해 계획을 세우거나 의사결정을 내리고 필요한 행동까지 수행
3. 트랜스포머 아키텍처를 새로운 아키텍처로 변경
: 더 긴 입력을 효율적으로 처리하려는 연구