챗GPT, 알파고 이후 최대 임팩트
2022년 11월 30일에 공개된 ChatGPT는 5일만에 100만 사용자를 달성하였고, 40일만에 1000만, 2달만에 월 사용자 1억을 달성하였다. 틱톡(TikTok)이 9개월만에 달성했던 것에 비교하면 상당히 빠른 시일내에 많은 사용자를 달성했음을 알 수 있다.
챗GPT, 흥행 성공의 이유
- 쉬운 사용 방법 : 누구나 쉽게 가입 가능하며, 기존 프롬프트 엔지니어링에서 필요했던 명령어에 대한 지식 없이 일반인도 누구나 질의 응답이 가능하다.
- 자연스러운 답변 : 무엇보다도 질문에 대한 답변이 상당히 자연스럽다는 것이다. 여기서 자연스럽다는 것은 마치 인간과 대화를 하는 것처럼 느껴진다는 것이다.
- 강력한 성능 : 광범위한 부분에서 굉장히 강력한 성능을 보인다. 논문을 작성해주기도 하며, 프로그래밍, 언어 변역 등 다양한 콘텐츠를 창의적인 방식으로 제작 가능하다.
챗GPT란?
그렇다면 ChatGPT란 도대체 무엇일까?
챗봇 서비스를 의미하는 Chat과 Generative Pre-trained transformer라고 하는 언어 모델의 약자인 GPT를 이어붙인 합성어이다. 여기서 GPT는 OpenAI가 만든 대형언어모델(LLM, Large Language Model)이다. OpenAI는 일론 머스크 등이 인간 친화적 AI 개발을 목적으로 2015년 설립된 회사이다. OpenAI에서는 GPT 뿐만 아니라 Codex나 Dall-E 등을 개발하였다.
언어 처리 AI 기술의 발전
- Transformer (2017) : 어텐션 모델, 병렬 학습에 유리
- GPT-1 (2018) : 질문에 어울리는 답변 생성, 학습 파라미터 (1.17억개)
- GPT-2 (2019) : 파라미터 (15억개), 다양한 스타일과 어조의 답변 생성
- GPT-3 (2020) : 파라미터 (1750억개), 다양한 자연어 처리 가능
- Codex (2021) : 파라미터 (60억), 프로그래밍 언어 중심
- ChatGPT (2022.11.30) : 대화에 특화된 GPT 모델
- GPT-4 (2023.3.14)
ChatGPT의 학습
인공지능 모델에서 학습(training)은 빼놓을 수 없는 과정이다. 그렇다면 ChatGPT는 대체 어떠한 방식으로 학습시켰을까?
ChatGPT의 training 과정은 크게 세 가지 단계(Pre-training, Fine-tuning, In-Context Learning)로 나눌 수 있다.
1. Pre-training(사전 훈련)
이 단계에서는 대규모의 비지도 학습 데이터를 사용하여 모델을 사전 훈련한다. 이때의 학습 데이터는 책, 웹페이지, 논문 등의 다양한 데이터를 포함하고, 약 45TB(미국 의회 도서관 4.5배에 해당)의 대용량 데이터이다. 이러한 사전 훈련된 모델은 문장에서의 다음 단어를 예측하도록 최적화된다. 예를 들어, "나는 공원에 갔다"라는 문장이 주어졌을 때, 모델은 "나는 공원에" 다음에 올 단어로 "갔다"를 예측하도록 학습되는 것이다. 이 단계에서는 레이블이 없는 데이터를 사용(비지도 학습)하기 때문에 큰 규모의 데이터를 활용하여 모델이 언어의 패턴과 통계를 학습하도록 한다.
2. Fine-tuning(미세 조정)
Pre-training 후에는 모델을 미세하게 조정하는 단계를 거친다. ChatGPT의 경우 프롬프트 샘플링과 40명이 작성한 정답을 기반으로 지도 학습을 진행한다. Fine-tuning은 보다 구체적인 작업에 맞게 모델을 특화시키는 데 도움이 된다.
3. In-context learning(문맥 학습)
마지막으로 GPT 모델은 대화식 환경에서 적합한 응답을 생성하기 위해서 추가적인 문맥 학습을 수행한다. 즉, 특정 사용자와의 대화 내에서 발생한 문맥을 사용하여 모델을 조정한다. 이를 통해 GPT 모델이 사용자의 질문이나 대화 히스토리에 따라 적합한 응답을 생성할 수 있도록 개선된다.
ChatGPT 학습에서 사람의 역할
흔히 인공지능이라고 하면 마치 사람의 개입이 전혀 없이 스스로 학습하는 것으로 생각된다. 하지만, ChatGPT 또한 사람, 전문가의 개입이 필수적이라고 할 수 있다.
Reviewer Instructions(리뷰어 지침)은 GPT 모델의 Fine-tuning 단계에서 사용되는 데이터셋을 개발하기 위해 OpenAI employees (직원)이 작성한 지침이다. 이 지침은 리뷰어에게 어떤 종류의 데이터를 수집하고 어떤 방식으로 모델을 조정해야 하는지에 대한 가이드를 제공한다. 리뷰어들은 이 지침을 참고하여 Fine-tuning 데이터셋을 구성하고, 모델을 특정 작업에 맞게 조정하는 것이다.
Fine-tuning 데이터셋은 리뷰어들이 조정 작업을 위해 사용하는 데이터입니다. 일반적으로, 이 데이터셋은 특정 작업에 관련된 문장 쌍이 포함되어 있다. 예를 들어, 질문 응답 작업을 위한 Fine-tuning 데이터셋에는 질문과 해당 질문에 대한 정답이 포함될 수 있는 것이다. 리뷰어들은 이 데이터셋을 사용하여 모델을 조정하고 성능을 향상시키는 역할을 한다.
이처럼 GPT의 학습에는 전문가들과 리뷰어들이 개입하여 모델의 조정과 품질 평가에 참여하며, 이를 통해 모델의 성능을 개선하는데 기여한다.
프롬프트 엔지니어링
프롬프트 엔지니어링(Prompt Engineering)이란 자연어 처리 모델인 GPT와 같은 언어 모델을 사용할 때, 원하는 결과를 얻기 위하여 프롬프트를 설계하고 조정하는 기술을 말한다. GPT는 사용자가 제공한 프롬프트(명령어나 지시 사항)을 기반으로 문맥을 이해하고 답변을 생성하는데, 프롬프트 엔지니어링은 이 프로세스를 효율적으로 이끌기 위한 방법들을 연구하고 개발하는 것을 의미한다. 즉, ChatGPT와 제대로 대화하고 이해하기 위해서는 프롬프트 엔지니어링에 대한 이해가 필수적이다.
ChatGPT와 제대로 대화하는 요령
그렇다면 ChatGPT와 제대로 대화하는 요령에 대해서 알아보자. 우선, ChatGPT에게 "ChatGPT와 제대로 대화할 수 있는 요령"을 물어보았다. 답변은 다음과 같았다.
위의 답변에 나오는 요령들도 모두 다 중요한 요령이다. 하지만, 내가 지금까지 ChatGPT를 사용해보면서 알아낸 좋은 답변을 위한 요령을 정리하면 다음과 같다.
1. 시작은 간결하고 뚜렷하게.
처음부터 너무 많은 것을 한꺼번에 해결하려고 하면 안 된다. 이것은 마치 사람에게 1시간짜리 강의를 쉴 틈 없이 하는 것과 마찬가지이다. 시작 질문은 질의응답의 목적이나 정의 등으로 시작하자.
2. 확장 가능한 질의.
ChatGPT는 위의 설명과 같이 In-context learning(문맥 학습)을 한다. 즉, 사람과 대화하듯 대화의 문맥과 질문의 방향성 등으로 학습을 진행하며 답변을 생성해낸다. 그렇기 때문에 유연하고 관련성 높은 답변을 위해서는 확장이 가능한 질문을 던지는 것이 좋다.
3. 불필요한 정보 제거, 프롬프트 간소화.
사람도 나에게 불필요한 정보에는 관심이 없고, 혼란을 야기한다. ChatGPT도 마찬가지이다. 불필요한 단어, 모호한 단어, 이해할 수 없는 단어 등의 사용은 지양해야 한다.
"Act as~" Hack
"Act as~" hack는 ChatGPT에게 특정 인물이나 캐릭터, 역할을 취하도록 지시하는 기술을 말한다. 이를 통하여 특정 역할을 수행하는 "척" 하도록 유도하여 더 구체적이고 일관된 답변을 얻을 수 있다.
아래 깃허브 링크에서 이 "Act as~" hack를 활용한 예시들을 확인할 수 있다.
Act as a Stand-up Comedian (스탠드업 코미디언으로서 행동하기)
"I want you to act as a stand-up comedian. I will provide you with some topics related to current events and you will use your wit, creativity, and observational skills to create a routine based on those topics. You should also be sure to incorporate personal anecdotes or experiences into the routine in order to make it more relatable and engaging for the audience. My first request is "I want an humorous take on politics."
- I want you to act as a stand-up comedian. : 앞으로 스탠드업 코미디언으로서 행동하도록 변경
- I will provide you with some topics related to current events and you will use your wit, creativity, and observational skills to create a routine based on those topics. : 사용자가 어떤 역할을 할 것인지 명시
- You should also be sure to incorporate personal anecdotes or experiences into the routine in order to make it more relatable and engaging for the audience. : 답변에 대한 추가적인 조건 제시
- My first request is "I want an humorous take on politics." : 첫 번째 요청 제시
'인공지능 > NLP' 카테고리의 다른 글
[NLP] 간단하게 인공지능 챗봇 만들기 (8) | 2023.06.29 |
---|