트랜스포머 아키텍쳐, 챗GPT와 그 기반 기술인 정렬에 대해 알아보기
1.2.1 RNN에서 트랜스포머 아키텍쳐로
- 텍스트 : 단어가 연결된 문장 형태의 데이터
- 시퀀스(sequence) : 작은 단위(단어)의 데이터가 연결되고, 그 길이가 다양한 데이터의 형태 (e.g. 텍스트, 오디오, 시계열)
시퀀스 데이터 처리
✔️ 모델 아키텍쳐 : 딥러닝 모델이 갖는 구조
RNN은 트랜스포머 개발되기 전에 주로 사용됨
RNN 아키텍쳐
입력하는 텍스트를 순차적으로 처리해 다음 단어 예측
모델이 하나의 잠재 상태(hidden space)에 지금까지의 입력 텍스트의 맥락 압축
📍장점
여러 단어로 구성된 맥락을 하나의 잠재 상태로 압축하므로 메모리를 적게 사용
다음 단어 예측 시 잠재 상태와 입력 단어만 있으면 되므로 다음 단어를 빠르게 생성 가능
📍단점
순차적으로 입력되는 단어를 잠재 상태에 압축하므로 먼저 입력한 단어의 의미가 희석
입력이 길어지는 경우 의미를 충분히 담지 못해 성능이 떨어질 가능성 존재
트랜스포머 아키텍쳐
RNN의 순차적인 방식이 아닌 맥락을 참조하는 어텐션(attention) 사용해 RNN문제 대부분 해결
맥락 데이터를 모두 활용해 다음 단어를 예측
📍장점
맥락을 압축하지 않고 그대로 활용하므로 성능이 높음
📍단점
입력 텍스트가 길어진다면 맥락 데이터를 모두 저장하고 있어야 하므로 메모리 사용량 증가
다음 단어 예측 시 맥락 데이터를 모두 확인해야 하므로 입력이 길어지면 예측에 걸리는 시간 증가
❓ 성능이 높아지는 대신 무겁고 비효율적 연산 수행 (효율성 떨어짐)
❗️ RNN과 달리 병렬 처리가 가능해 학습 속도를 높일 수 있다.
1.2.2 GPT 시리즈로 보는 모델 크기와 성능의 관계
트랜스포머 아키텍쳐를 통해 맥락을 압축하지 않고 그대로 활용해 높은 성능을 기대할 수 있고 다음 단어 예측하는 언어 모델링이 사전 학습 방식으로 쓰임 ➡️ 더 큰 모델 학습시킬 수 있는 기반 마련
OpenAI의 GPT 시리즈는 모델 구조에는 큰 변화 없이 모델과 학습 데이터셋의 크기만 키웠는데도 언어 모델의 성능이 크게 높아졌다.
모델의 크기가 커지고 학습 데이터가 많을수록 모델의 성능이 높아지는 이유
언어 모델 : 학습 데이터와 언어 모델의 결과가 모두 생성된 언어
➡️ 언어 모델이 학습하는 과정 = 학습 데이터를 압축하는 과정 (무손실 압축이 아니고 공통되고 중요한 패턴을 남기는 손실 압축)
e.g. LLM인 메타의 라마 2(Llama 2) 모델은 10TB의 텍스트로 학습해 최종적으로 140GB 크기의 모델이 된다.
모델이 커지면 학습 데이터가 갖고 있는 언어 생성 패턴을 더 많이 학습하므로 모델의 성능이 높아진다.
✔️ 모델이 계속해서 커진다고 성능이 높아지지는 않고 학습 데이터의 크기가 최대 모델 크기의 상한
1.2.3 챗GPT의 등장
- GPT-3 : 사용자의 말을 이어서 작성하는 능력
- 챗GPT : 사용자의 요청사항을 이해하고 그에 맞춰 답변 생성
지도 미세 조정(supervised fine-tuning) ➕ RLHF(Reinforcement Learning from Human Feedback, 사람의 피드백을 활용한 강화 학습) 🟰 GPT-3 ➡️ 챗GPT
정렬(alignment)
LLM이 생성하는 답변을 사용자의 요청 의도에 맞추는 것
사용자가 LLM 답변에서 얻고자 하는 가치를 반영해 LLM 학습 후 LLM 사용자에게 도움이 되고 가치를 전달할 수 있도록 한다.
지도 미세 조정
언어 모델링으로 사전 학습한 언어 모델을 지시 데이터셋(instruction dataset)으로 추가 학습
지시 데이터셋
사용자가 요청 또는 지시한 사항과 그에 대한 적절한 응답을 정리한 데이터셋
➡️ OpenAI는 LLM이 받을 법한 질문과 그에 대한 답변이 담긴 데이터를 활용해 지도 미세 조정을 수행
선호 데이터셋(preference dataset)
두 가지 답변 중 사용자가 더 선호하는 답변을 선택한 데이터셋 구축
선호 데이터셋으로 LLM의 모델을 평가하는 리워드 모델(reward model)을 만들고 LLM이 높은 점수를 받을 수 있도록 추가 학습하는 과정에서 강화 학습(reinforcement learning)을 사용하므로 RLHF(사람의 피드백을 활용한 강화 학습)이라고 한다.
1.3.1 지식 사용법을 획기적으로 바꾼 LLM
기존의 자연어 처리 분야
언어 이해와 언어 생성 두 분야로 나눠 접근
LLM
언어 이해와 언어 생성 모두 높은 성능
1.3.2 sLLM: 더 작고 효율적인 모델 만들기
✔️ LLM 애플리케이션 개발 시 LLM 활용하는 방법
- 상업용 API 사용 : GPT-4나 구글의 제미나이 등
- 오픈소스 LLM 활용해 직접 LLM API 생성해 사용
📌 오픈소스 LLM은 원하는 도메인의 데이터, 작업을 위한 데이터로 자유롭게 추가 학습할 수 있다는 장점
sLLM
추가 학습을 하는 경우 모델 크기가 작으면서도 특정 도메인 데이터나 작업에서 높은 성능을 보이는 모델
1.3.3 더 효율적인 학습과 추론을 위한 기술
❓
- LLM의 기반인 트랜스포머 아키텍처 연산은 무겁다.
- 모델 성능을 높이기 위해 모델의 크기를 키우면서 LLM 학습과 추론에 필요한 연산량이 크게 증가
- LLM은 많은 연산을 빠르게 처리하기 위해 다른 딥러닝 모델처럼 GPU를 사용한다.
- GPU는 많은 연산을 병렬 처리가 가능한데, 고가이므로 LLM 사용위한 비용 중 상당 부분이 GPU 비용이다.
❗️
적은 GPU자원으로도 LLM 활용 연구 진행
- 모델 파라미터를 적은 비트로 표현하는 양자화(quantization)
- 모델 전체가 아닌 일부만 학습하는 LoRA(Low Rank Adaptation)
- 무거운 어텐션 연산을 개선해 효율적인 학습과 추론이 가능하게 하는 연구
1.3.4 LLM의 환각 현상을 대처하는 검색 증강 생성(RAG) 기술
✔️ 환각 현상
: LLM이 잘못된 정보나 실제로 존재하지 않는 정보를 만들어 내는 현상
- LLM은 학습 데이터를 압축해 그럴듯한 문장으로 만들 뿐 정보를 판단할 수 있는 능력은 없다.
- 학습 데이터 압축 과정에서 정보가 소실될 수 있으므로 부정확한 정보 생성의 원인이 될 수 있다.
- 지도 미세 조정 과정에서 LLM이 기존에 알지 못하는 정보가 포함된 경우도 문제가 된다.
➡️ RAG기술을 통해 프롬프트에 LLM이 답변할 때 필요한 정보를 미리 추가함으로써 환각 현상을 줄일 수 있다.
LLM의 현재와 미래
'AI > LLM을 활용한 실전 AI 애플리케이션 개발' 카테고리의 다른 글
[LLM의 기초 뼈대 세우기] 02 - LLM의 중추, 트랜스포머 아키텍쳐 살펴보기 : 트랜스포머 아키텍처란(2) (1) | 2025.03.01 |
---|---|
[LLM의 기초 뼈대 세우기] 01 - LLM 지도 : 딥러닝과 언어 모델링 (0) | 2025.02.11 |
[INTRO] (0) | 2025.02.11 |