안녕하세요.

이번 techup blog를 통해 ChatGPT에 대한 내용을 공유하고자 합니다.

ChatGPT는 Open AI에서 대화에 최적화 된 LLM의 GPT3.5를 기반으로 ChatGPT를 공개 했습니다. 심플한 이론, 활용 방법, 간략한 예제를 통해 ChatGPT에 대해 알아 보겠습니다.

ChatGPT란 무엇인가요?

ChatGPT는 OpenAI에서 개발한 대화형 인공지능 기술입니다. 이 모델은 GPT-3.5 (Generative Pre-trained Transformer 3) 기술을 기반으로 하며, 2020년 6월 발표된 GPT-3보다 훨씬 큰 모델이라고 할 수 있습니다. ChatGPT는 대화를 주도하는 인공지능 모델로, 자연어 처리(Natural Language Processing, NLP) 분야에서 매우 높은 성능을 보여줍니다.

ChatGPT의 구조는 어떻게 되나요?

ChatGPT

ChatGPT는 대화 형식을 통해 일련의 후속 질문에 답하고, 자신의 실수를 인정할 수 있을 뿐만 아니라, 잘못된 전제에 이의를 제기할 수도 있으며 부적절한 요청을 거부할 수도 있습니다. ChatGPT는 InstructGPT과 동일한 방법을 사용하여 학습하지만 생성한 문장을 crowd-worker들이 평가하고, 피드백에 따른 RLHF로 재 학습함으로써 AI 윤리성도 개선할 수 있다고 합니다. (crowd-worker는 주어진 질문에 대한 답변 작성과 model이 생성한 답변에 대해 순위를 평가했다고 합니다)

ChatGPT의 주요 특징은 무엇인가요?

ChatGPT의 가장 큰 특징은 대화형 모델임과 동시에 다양한 분야에 대한 지식을 갖추고 있기 때문에 다양한 주제에 대해 자연스럽게 대화를 이어갈 수 있다는 것입니다. 예를 들어 ChatGPT에게 “태양은 무엇인가요?”라고 물어보면 “태양은 별 중 하나로, 지구 주변을 공전하면서 태양계의 행성들에게 빛과 열을 제공합니다.”와 같은 대답을 받을 수 있습니다. 또한 ChatGPT는 이전 대화의 문맥을 파악하여 대화를 이어나갈 수 있기 때문에 자연스러운 대화가 가능합니다.

ChatGPT를 활용할 수 있는 방법은 무엇이 있나요?

ChatGPT는 다양한 분야에서 활용될 수 있습니다. 예를 들어, 인터넷 검색 엔진에서 ChatGPT를 사용하면 검색어를 입력한 후 자연스럽게 대화하듯 검색 결과를 얻을 수 있습니다. 또한, ChatGPT를 이용하여 상담원 대신 고객과 대화를 나누는 챗봇을 개발할 수도 있습니다. 이외에도, ChatGPT를 이용하여 자동 번역, 요약,문장 생성 등의 자연어 처리 작업을 수행할 수 있습니다.

ChatGPT의 한계는 무엇인가요?

ChatGPT는 인간의 언어 처리 능력에 가깝지만, 아직 완벽하지는 않습니다. 예를 들어, ChatGPT가 일부러 잘못된 정보를 제공할 수 있으며, 대화의 흐름을 파악하지 못하고 적절하지 않은 답변을 제공할 수도 있습니다. 또한, ChatGPT는 인간과 같이 감정을 가지지 않으며, 일정한 패턴을 따르는 대화를 하는 경향이 있습니다. 한국어도 지원하기는 하지만, 가끔 대화의 답변 출력이 느리고, 오류가 있거나, 내용이 맞지 않을 때가 있습니다. 이는 학습데이터 중 영어 데이터는 90%인데, 한국어 데이터는 0.2%만을 사용하기 때문이다.

요약

ChatGPT는 자연어 처리 분야에서 매우 높은 성능을 보이고 있으며, 다양한 분야에서 활용될 수 있는 대화형 인공지능 모델입니다. 하지만 아직 완벽하지 않기 때문에, (AI윤리 문제, 거짓 데이터 생성 등) 사용 시 주의해야 합니다.

</br>

ChatGPT는 어디서 사용할 수 있나요?

</br>

예제1: 인터넷 검색 엔진

일반적인 인터넷 검색 엔진은 검색어를 입력하면 해당하는 검색 결과를 리스트 형태로 반환합니다. 하지만 ChatGPT를 사용하면 검색어를 입력한 후 자연스럽게 대화하듯 검색 결과를 얻을 수 있습니다.

사용자: "노래 추천 좀 해줘."

ChatGPT: "어떤 장르의 노래를 원하시나요?"

사용자: "팝송으로 부탁해."

ChatGPT: "최근에 인기 있는 팝송은 무엇인지 궁금하신가요?"

사용자: "네, 그것도 괜찮아요."

ChatGPT: "방탄소년단의 'Butter', 브루노 마스의 'Leave The Door Open', 에드 시런의 'Shape of You' 등이 최근에 인기 있는 팝송입니다. 이 중에서 원하시는 노래가 있으신가요?"

사용자: "네, 'Butter' 듣고 싶어요."

ChatGPT: "네, 'Butter'입니다. 'Butter'는 방탄소년단의 새로운 싱글입니다. 해당 곡을 듣기 위해서는 유튜브나 음원 사이트에서 검색해보세요."

예제 2: 상담원 챗봇


ChatGPT를 이용하여 상담원 대신 고객과 대화를 나누는 챗봇을 개발할 수 있습니다.

사용자: "전화 상담이 어렵다면 챗봇으로 상담을 받을 수 있나요?"

ChatGPT: "네, 챗봇으로 상담을 받으실 수 있습니다. 어떤 문제가 있으신가요?"

사용자: "제품이 제대로 작동하지 않아요."

ChatGPT: "어떤 제품이 있는지 알려주세요."

사용자: "무선 이어폰이에요."

ChatGPT: "무선 이어폰이 작동하지 않는다는 것이 맞나요? 다시 한 번 확인해보시고, 문제가 해결되지 않을 경우 회사의 AS 센터로 문의해주세요."

예제 3: 자동 요약

ChatGPT를 이용하여 긴 글을 요약할 수 있습니다.

원문: "제가 가장 좋아하는 음식은 파스타입니다. 파스타는 이탈리아의 전통 음식 중 하나로, 면과 소스, 그리고 추가 재료들로 이루어져 있습니다. 파스타 종류도 다양한데, 저는 특히 토마토 소스가 들어간 스파게티나 페네 파스타를 가장 좋아합니다. 파스타를 먹을 때는 반드시 와인과 함께 즐기는 것이 좋습니다."

ChatGPT: "파스타는 이탈리아의 전통 음식 중 하나로, 면과 소스, 그리고 추가 재료들로 이루어져 있습니다. 특히 토마토 소스가 들어간 스파게티나 페네 파스타를 가장 좋아합니다. 파스타를 먹을 때는 와인과 함께 즐기는 것이 좋습니다."

위 예제에서 ChatGPT는 원문에서 핵심적인 정보를 추출하여 간결하게 요약하였습니다.

예제 4: 작문 보조

ChatGPT는 작문 보조 도구로도 사용될 수 있습니다. 사용자가 입력한 문장을 바탕으로 자연스러운 문장을 생성하여 제안합니다.

사용자: "오늘은 봄날씨가 좋네요."

ChatGPT: "그렇죠! 봄이라서 그런지 공기도 맑고 따뜻한 느낌이 드는 것 같아요."

위 예제에서 ChatGPT는 사용자의 문장을 바탕으로 자연스러운 문장을 생성하였습니다. 문장을 generation 하기 때문에 다른 문장들이 나올 수 있습니다.

</br> </br>

모델 학습 방법

ChatGPT 모델은 대규모 자연어 처리 데이터셋을 이용하여 사전 훈련된 모델입니다. 그러나 때로는 사용자가 직접 자신이 원하는 목적에 맞는 모델을 만들어야 할 필요가 있습니다. 이를 위해, 다음과 같은 방법을 사용하여 ChatGPT를 커스터마이징할 수 있습니다.

  1. Fine-tuning

    Fine-tuning은 사전 훈련된 모델의 전체를 사용자의 목적에 맞게 추가로 훈련하는 방법입니다. 이를 통해 사용자는 대규모 데이터셋으로 미리 훈련된 모델을 기반으로 자신의 목적에 맞는 모델을 만들 수 있습니다. 데이터에 맞게 모델 전체를 업데이트 합니다. Fine-tuning은 다음과 같은 방법으로 수행할 수 있습니다.

    대규모 데이터셋 준비: Fine-tuning을 위해 사용자는 자신이 원하는 목적에 맞는 대규모 데이터셋을 준비해야 합니다.

    모델 파라미터 초기화: Fine-tuning을 위해 사전 훈련된 모델을 가져온 후, 이를 사용자의 데이터셋에 맞게 pre-trained model parameter로 초기화하여 fine-tuning을 합니다.

  2. Transfer learning

    Transfer learning은 사전 훈련된 모델을 다른 자연어 처리 작업에 사용하는 방법입니다. 예를 들어, 이미 사전 훈련된 ChatGPT 모델을 사용하여 대화 생성 작업을 수행할 수 있었다면, 이 모델 일부를 업데이트 하면서 새로운 자연어 처리 작업인 문서 요약 작업을 수행할 수도 있습니다. 이를 위해 다음과 같은 방법을 사용할 수 있습니다.

    대규모 데이터셋 준비: Transfer learning을 위해 사용자는 자신이 원하는 목적에 맞는 대규모 데이터셋을 준비해야 합니다.

    사전 훈련된 모델 가져오기: 사용자는 사전 훈련된 모델을 가져와서 이를 사용하여 자신의 목적에 맞게 추가 훈련합니다.

  3. 모델 아키텍처 수정

    ChatGPT 모델은 Transformer 모델을 기반으로 하고 있으며, 이 모델의 아키텍처를 수정함으로써 사용자의 목적에 맞게 모델을 커스터마이징할 수 있습니다. 예를 들어, 입력 시퀀스의 길이를 늘리거나 줄이거나, 레이어 수를 변경하거나, 다른 형태의 활성화 함수를 사용하는 등의 수정을 통해 모델을 커스터마이징할 수 있습니다. 이를 위해서는 다음과 같은 단계를 거쳐야 합니다.

    모델 아키텍처 분석: 사용자는 모델 아키텍처를 분석하여 어떤 부분을 수정할지 결정합니다. 모델 아키텍처 수정: 사용자는 모델 아키텍처를 수정하고, 이를 학습시키기 위한 코드를 작성합니다. 학습: 수정된 모델을 사용하여 학습을 수행합니다.

  4. 데이터 전처리

    ChatGPT 모델은 대규모 자연어 처리 데이터셋을 사용하여 사전 훈련되었습니다. 그러나 사용자가 자신의 목적에 맞게 모델을 커스터마이징할 때, 자신의 데이터셋이 모델에 맞는 형식으로 전처리되어야 합니다. 예를 들어, 모델이 다국어 처리를 지원하지 않는다면, 사용자는 자신의 데이터셋을 해당 언어로 변환해야 합니다. 또한, 모델의 입력 형식에 따라 데이터셋을 수정해야 할 수도 있습니다.

이처럼 ChatGPT 모델을 커스터마이징해 학습하는 방법은 다양합니다. 사용자는 자신의 목적에 맞게 적절한 방법을 선택하여 모델을 학습하는 방법이 중요합니다.

</br>

마치며

ChatGPT는 자연어 처리 분야에서 매우 유용한 모델 중 하나입니다. 위 예제처럼 검색 엔진, 챗봇, 요약, 작문 보조 등 다양한 분야에서 활용될 수 있습니다. 앞으로 더욱 발전하여 사람과 더욱 가까워지는 대화형 인공지능 모델이 우리의 삶을 더욱 편리하게 만들어 줄 것으로 기대해 봅니다.