AI
ChatGPT : 새로운 자연어 처리기술의 발전과 가능성
쉬엄쉬엄블로그
2023. 5. 22. 17:37
728x90
ChatGPT 그 이전
RNN - 자연어 처리 모델의 시초
- 1997년 개발 이후 2010년대까지 사용
- LSTM, GRU 등 다양한 Variant
- 특징 : 한 번에 한 단어만 모델에 넣을 수 있음
- 단점 : 병렬화가 불가능해서, 학습 시간이 오래 걸림
Transformer - 대 LLM 시대의 시초
- LLM : Large Language Model (ChatGPT처럼 Language를 이해하는 모든 Large Model을 일컬음)
- 병렬화를 가능하게 하는 self-attention을 사용
- attention : 단어와 단어 사이의 관계 정도를 숫자로 표현
- self-attention : 입력으로 들어온 모든 단어들끼리의 attention을 병렬화를 통해 한 번에 계산
- → 훈련 시간 감소 + 성능 향상
Pretraining - Finetuning Paradigm
기존의 모델 학습 방법
- 문제, 정답 데이터셋을 최대한 많이 만들어서 모델 학습
- 단점 : 고품질의 정답이 있는 데이터를 다량으로 만들기 어려움
- → 정답이 없는 데이터에서 무엇인가 배울 수 없을까?
Pretraining - Finetuning
- 정답이 있는 소량의 데이터로 모델을 학습시키기 전에, → Finetuning 정답이 없는 다량의 데이터를 통해 언어를 잘 이해하게 시키자 → Pretrainig
- 정답이 없는 다량의 데이터는 어디에서 얻는가? → 인터넷!
두 갈래로 나뉜 Pretrainig - BERT
Masked Language Model (MLM)
- 문장의 단어 중 일부를 지움 (Masking)
- 지운 단어를 복원하도록 모델을 학습 시킴
Causual Language Model (CLM)
- 주어진 문장에 대해 바로 다음 단어를 생성하도록 모델을 학습
두 갈래로 나뉜 연구 방향 - 모델 구조, 학습 방식 개선
- 같은 크기의 모델이라도, 모델의 구조와 학습 방식 개선을 통해 잘 학습시켜보자
두 갈래로 나뉜 연구 방향 - 모델을 키우자 (OpenAI)
- Pretraining 할 때, 모델을 키우고, 데이터를 많이 사용하자
- → GPT, GPT2, GPT3
모델을 키우다 보면, 어느 순간 Few-shot 성능이 올라가는 순간이 온다
- 파라미터 수
- GPT - 117M
- GPT-2 - 1.5B
- GPT-3 - 175B
Few-Shot, Zero-shot
- Pretraining Finetuning Paradigm에서는 여전히 Finetuning을 위해 데이터 구축과 모델 학습 과정이 필요
- 모델의 크기를 키우다 보니 Finetuning 없이, Pretraining 만으로도 처음 보는 문제에 대해 정답을 맞히기 시작
- Prompt : ChatGPT에 넣는 질문처럼, 모델에 넣어주는 입력 텍스트
- Zero-shot : 설명만 주고, 예제 없이 문제를 풀게 시킨다
- One-shot : 설명과 예제를 하나만 주고, 문제를 풀게 시킨다
- Few-shot : 설명과 몇 개의 예제를 주고, 문제를 풀게 시킨다
모델 크기를 키우니 생기는 문제
175B의 Parameter를 가진 GPT-3의 문제
- 생생해내는 답변이 untruthful, toxic, or simply not helpful
- 사용자의 목적에 맞는 답변이 나오지 않음
ChatGPT
InstructGPT
- Reinforcement Learning with Human Feedback (RLHF)
- 다양한 Prompt에 대해서 알맞은 정답을 사람이 직접 만들고 이를 통해 모델을 (강화) 학습
- RLHF - Step 1
- GPT 3 (3.5) 훈련을 위한 데이터 구축
- 사람이 직접 다양한 Prompt에 알맞은 답변 생성
- 이를 통해, GPT-3.5 (GPT-3에서 데이터 추가) Finetuning
- RLHF - Step 2
- GPT 3 (3.5) 평가를 위한 데이터 구축
- 사람이 직접 다양한 답변에 대한 순위 매김
- 이를 통해, GPT-3.5의 답변을 평가하는 모델 Finetuning
- RLHF - Step 3
- Step 1, 2 모델을 사용해서 (강화) 학습
- Step 1 : Prompt가 들어왔을 때, 사람에게 알맞은 답변을 내뱉는 모델
- Step 2 : Prompt와 답변이 들어왔을 때, 평가하는 모델
- 모델의 학습 과정
- 임의의 Prompt 선택
- Step 1 모델이 답변을 생성
- Step 2 모델이 답변을 평가
- 평가 결과를 바탕으로 Step 1 모델 학습
InstructGPT vs GPT-3
- 사람의 손길을 거치자 1.3B의 InstructGPT가 175B의 GPT-3보다 더 좋은 평가를 받음
ChatGPT
- InstructGPT가 Chat 목적으로 진화
- 다른 것은 오직 데이터
- InstructGPT
- 한 쌍의 Prompt - Answer
- ChatGPT
- InstructGPT 데이터를 대화 형식으로 변환
- 대화 형식의 Step1, Step 2 모델 학습 데이터를 구축
- 학습 방법은 동일 (RLHF)
ChatGPT를 더 잘 사용하고 싶다면? - Prompt Engineering
- 좋은 Prompt = 좋은 답변
- 요구 사항을 구체적으로 적기
- 예시와 함께 적기
- 원하는 답변이 않았을 경우, 추가로 요청하기 (ex. 위의 답변에서 ~~한 부분은 빼고 다시 작성해 줘.)
- 영어로 질문하기 (주로 영어 데이터를 사용해 학습했기 때문에, 한국어 능력이 부족)
- 주의사항
- 사실이 아닌 답을 내뱉을 수 있음
- 최신 정보에 취약 (2021년까지의 데이터로 학습)
- 장기 기억 X (하나의 chat session이 끝나면, 나눴던 대화를 기억하지 못함)
- 한국어 능력 부족
ChatGPT 그 이후
Big Tech - LLM 내재화
- LLM을 직접 학습할 수 있는 Big Tech들은 내재화
- LLM 주권 경쟁
- Google - BARD
- Meta - LLaMa
- Naver - 서치 GPT
- Baidu - Ernie Bot
승자는 Microsoft?
- BingChat
- 기존에 Microsoft가 가지고 있는 검색엔진 Bing + ChatGPT
- 검색 엔진과 ChatGPT를 결합함으로써, ChatGPT가 가지고 있는 신뢰성, 최신성의 문제를 완화
- Copilot
- ChatGPT + Microsoft 365
- Microsoft 365와 ChatGPT를 결합한 형태의 AI 비서
Big Tech가 아니라면?
- 빠른 적용
- 모든 기업이 LLM을 내재화하는 것은 현실적으로 어려움
- 이미 나와있는 LLM을 바탕으로, 사용자에게 빠르게 가치를 제공하자
사회적 이슈
- ChatGPT를 허용할 것인가
- 허용한다면 어디까지 허용할 것인가
- 허용하지 않는다면 어떻게 막을 것인가
OpenAI의 끝나지 않은 질주 : GPT-4 (OpenAI, 2023)
- 2023년 3월 27일 GPT-4 공개
- GPT-3.5에 비해 성능 향상
- 이미지를 입력으로 넣을 수 있음 (Multi-Modal)
- 한 번에 처리할 수 있는 Prompt의 길이가 4000 토큰에서 32000 토큰으로 증가 (책 반권 분량)
What’s Next?
- 음성 인식
- 비언어적 표현
- 3D, 4D
- 경제적인 LLM (슈퍼컴 필요 없는 소형 언어모델 ‘sLLM’ 급부상)
- …
LLM의 한계
높은 비용
- 훈련, 추련을 위해서는 GPU를 많이 사용
- 전력, 환경 문제
Hallucination
- 사실이 아니거나, 질문과 관련 없는 답변을 생성
Ethics & Bias
- 종종 성별, 인종, 종교에 따른 편향된 답변을 생성
그렇다면 우리는 무엇을 해야 하나?
- 거대한 LLM의 파도가 오고 있거나, 이미 온 것으로 보임
- 파도에 올라타기 위해, 계속해서 쏟아져 나올 기술들을 빠르게 사용해 보고
- 무엇이 잘되고, 무엇이 안되고, 그러면 나는 무엇을 해야 하는지에 대한 지속적인 고민이 필요
- ChatGPT와 같은 새로운 기술들을 연구, 개발하는 업무뿐만 아니라 새로운 기술들의 문제점을 파악하고 보완하기 위한 업무도 중요할 것 같다.
출처 : 네이버 커넥트재단 부스트캠프 AI Tech Alumni (신수원 - 업스테이지 AI Researcher)