1.1. Chatgpt 어떻게 생겼나 구경하자

ofohj·2023년 3월 10일
0
post-thumbnail

🤔

chatgpt는 어떻게 생겼길래 그렇게 오만가지 질문에 당당하게 빠르게 답을 내줄까? 틀린대답도 당당하게 할땐 열받지만 답변을 정말 깔끔하게 잘 풀어서 정리해준다. 짱!

그리고 이 지피티랑 디퓨전에 대한 실시간 무료 강의가 열려 당장.참여하게 되었다!!!

이번 강의는 첫번째 강의로 chatgpt의 기술적 원리와 그 활용을 쉽게 이해하는 것이 주제이며, 등장 배경(역사 및 유사 연구)과 원리 순으로 수업이 진행되었다.


등장배경

임베딩

컴퓨터가 이해하는 언어는 0과 1로만 이루어져 있다.
그래서 사람의 언어를 컴퓨터가 이해할 수 있도록 바꿔주어야 하는데, 이를 임베딩이라고 한다.

그러한 임베딩된 벡터를 기본 구성 요소로 사용하는 Language Model이 등장하였다!

Language Model

💡컴퓨터가 문맥(context)을 이해할 수 있을 것이다.

위와 같은 가정을 바탕으로 일련의 텍스트에서 다음 단어를 예측할 수 있는 모델을 만들었다.

언어모델의 동작 예시는 다음과 같다.

  1. 전체 문장이 제시된다. 👉 where are you going?
  2. 맞춰야 할 단어가 제거된 문장이 주어진다. 👉 where are you ()?
  3. 빈칸의 단어를 예측한다!

언어모델은!
📍 오류 최소화를 위해 신경망의 가중치를 조정하여 훈련 중 학습된다.
📍 단어의 의미와 문맥에서의 관계를 이해하여 자연스러운 문장을 생성할 수 있다.

word2vec

  • 출시년도: 2013년
  • 개발사: Google
  • 신경망을 사용하여 단어를 문장으로 전환하는 모델
  • 여기서 vec(vector)은 단어 하나하나를 의미
    ex. king, woman, meet

😀 word2vec 모델을 RNN으로 학습시킨 결과는 성공적이였다.
😭 하지만 번역 프로그램에 사용하니 실패하였는데, 이는 비효율적인 계산으로 인해 긴 문장 처리가 불가능하기 때문이였다.

이 문제를 해결하기 위해 새로운 모델이 개발되었다.

transformer

  • 출시년도: 2017년
  • 개발사: Google
  • 자연어를 인코딩, 디코딩할 때 모델이 문장에서 단어의 중요성을 평가할 수 있는 셀프 어텐션 메커니즘을 기반으로 한다.
  • 가성비 향상
  • 긴 문장도 처리 가능

GPT(Generative Pre-trained Transformer)

위의 transformer 모델을 기반으로 한 새로운 모델이 바로 우리의 GPT이다!

  • 출시년도: 2018
  • 개발사: OpenAI
  • transformer 모델의 일부와 디코더를 사용해 개발
  • 대량의 텍스트 데이터에 대해 사전 학습되어 자연어에 대한 일반적인 이해를 학습
  • 사전 훈련된 GPT 모델을 텍스트 분류 또는 질문 답변과 같은 특정 자연어 작업에서 활용

RLHF(Reinforcement Learning from Human Feedback)

개념

강화 학습과 인간 피드백을 결합하여 AI 모델의 성능을 향상시키는 ML 기법

목표

RLHF에서 AI 에이전트특정 작업에 대한 수행 능력 향상을 목표로 시행 착오와 인간 전문가의 피드백을 조합하여 훈련됩니다.

사용 범위

  • 게임 플레이
  • 로봇 공학
  • 자연어 처리 등

ChatGPT의 원리

chatgpt는 GPT 3.5로 만들어졌다. 그리고 미세한 부분을 조정하고 개선하기 위해 강화학습의 한 종류인 PPO가 사용되었다.

GPT

GPT는 ML 학습방법 중 비지도학습으로 만들어졌다.
unlabeled된 데이터가 더 많고 쉽게 구할 수 있기 때문에, label 없이 학습할 수 있는 비지도 학습을 채택했다!

아래의 하늘색 부분이 gpt에 해당하는 학습방법이다.

🤓 현재 gpt는 버전 3.5까지 개발되었다. 다음주에 4가 나온다고 들었는데 또 얼마나 어떻게 한층 더 사람보다 똑똑한 애가 나올지 너무너무궁금하다.

이 GPT 3.5는 아래와 같은 기술, 모델로 개발되었다.

1. In-context Learning

같은 규칙을 가진 입력값을 넣어주면 이를 학습시키는 것을 의미한다.

예를 들어
1 + 2 = 3
5 + 7 = 12
6 + 18 = 24
라는 규칙을 제시해 주었을 때,

2 + 5 = ?
에 대한 답을 찾아내는 학습을 하는 것이다.
이는 숫자 외에 글자에도 적용시킬 수 있다.

fshi -> fish
ogta -> goat
anbaan -> banana
와 같이 무작위로 나열된 텍스트를 옳은 단어로 재정렬해주거나, 영어에서 한국어 등으로 번역해주는 기능도 학습할 수 있다.

즉, 집어 넣은 텍스트를 이해하는 것이 목표이다!!

2. Few shot Learning

데이터를 학습시키려면 수만개 이상의 많은 데이터들이 필요하다.
하지만 Few shot Learning을 통해 이름 그대로 조금의 데이터로도 학습할 수 있다.

Few shot Learning은 명령입력, 예시, 프롬프트 코드로 이루어져 있다.
예시는 다음과 같다.

# 📢task description
Translate english to korean:
	
# 📄examples
cheese -> 치즈
teddy bear -> 곰인형
mirror -> 거울
    
# 🪄prompt: 제공하는 질문 또는 명령
hospital -> ________

3. codex & InstructGPT

GPT3는 이전 모델들에 비해 훨씬 좋은 성능을 보여주었지만 상용화하기에 부적합하고 실용적이지 못했다.

그렇게 생겨난 것이 OpenAI의 codex와 InstructGPT이다!!

  • Codex
    : 프로그래밍 코드를 생성해주는 모델

  • InstructGPT
    : 사람이 대답하는 듯한 답변 가능

PPO(Proximal Policy Optimization)

  • 특정 작업을 수행하도록 AI 에이전트를 교육
  • 환경(states)에서 관찰한 내용을 에이전트가 취할 수 있는 조치(action)로 매핑하는 "정책" 기능을 최적화하여 작동
  • PPO는 각 단계에서 정책 기능을 약간 조정하여 변경이 너무 급격하지 않고 정책이 비교적 안정적으로 유지되도록 함

❓ChatGPT에 강화학습이 어떻다고?

내가 정말 강의를 필기하면서 질문하면서 열심히 들으면서
"chatgpt는 간단히 말해, PPO라는 강화학습과 few shot learning으로 이루어집니다." 라고 똑똑히 들었다. 정말로.

그런데 자꾸 짚티가 자기는 그런거안썼다고 하는거야~~

그래서 다시 똑똑히 정확히 정리한다.
결론부터 말하자면

💡 chatgpt에는 강화학습이 활용된다!

다만, 개발 툴이라기보다는 학습하는 방법론 자체에 사용되어 저렇게 답변한 듯 싶다. 아님 그냥 틀렸을수도. 분발해지피티

ChatGPT는 GPT3에 비해 더 사람답게 대답한다는 점이 크게 개선되었다.
많은 언어 모델이 있지만, ChatGPT는 정밀도나 세부 사항 및 일관성이 높다. 이처럼 성능을 높이기 위해 사용된 것이 지도학습과 강화학습이다!!

인간 피드백을 통한 강화 학습(RLHF)을 사용하여 유해하거나, 진실하지 않거나, 편향된 출력을 최소화한다. 그럼에도 위와 같은 상황 또는 질문자가 전혀 원하지 않는 답을 내놓기도 하는 이유는 chatgpt는 검색 결과를 추천하기보다는 정답일 확률이 높은 문장을 생성하는 생성모델이기 때문이다.

🤤 그래서 chatgpt의 결과를 무작정 믿고 이것만 사용해야지~는 위험하다!
나는 요즘 냅다 지피티에 검색하고있긴 하는데 지피티가 준 정보가 맞는지 판단할 수 있는 능력을 스스로 키워야겠다고 생각했다~

위 사진은 OpenAI의 홈페이지에 소개되어있는 chatgpt의 학습에 대한 세부 내용이다. 핵심은, step3의 미세조정 단계에서 PPO 강화학습이 사용되었다는 것이다!! 사용이!! 되었다!!


정리

chatgpt의 성공

지금까지 소개된 기술과 모델들은 다음과 같다.

  1. GPT 3
  2. In-context Learning
  3. Few Shot Learning
  4. codex
  5. instruct GPT
  6. RLHF
  7. PPO

정리하자면,

💡 ChatGPT는!
비지도 학습, In-context Learning, Few Shot Learning, codex, instruct GPT로 이루어진 GPT 3.5와 별도의 엔지니어링 및 강화학습을 사용해 개발되었다.


[참고 및 출처]
https://www.assemblyai.com/blog/how-chatgpt-actually-works/
https://openai.com/blog/chatgpt?ref=news-tutorials-ai-research
강의: https://event-us.kr/pgdai/event/58478

0개의 댓글