오뚝이개발자

OpenAI ChatGPT에 대한 소개와 능력 및 한계 본문

NLP

OpenAI ChatGPT에 대한 소개와 능력 및 한계

땅어 2023. 2. 8. 16:54
728x90
300x250

 

 

OpenAI의 ChatGPT가 공개되었다. 사실 공개된지 좀 되었지만.... 논문쓰고 제출하느라 이제야 사용해본 나...  이미 미디어에 많이 노출이 되어서 다들 알겠지만 간단히 설명하자면 ChatGPT는 챗봇 형식의 AI이다. 구글, 네이버, 다음에 검색하듯이 키워드나 명사형으로 검색을 하는 것이 아니라 그냥 사람과 대화하듯이 질문하면 답을 찾아주는 것이다. 음... 좀 더 쉽게 비유하자면 미래를 그린 SF 영화에 나오는 AI 비서 같은 거라고 생각하면 된다. "이거이거 찾아줘~", "이거이거 알려줘~"와 같은 질문에 대답해주는 AI이다.

관련된 분야를 연구하고 있어서 한 번 사용해보았는데 성능이 꽤 괜찮은 것 같았다. 내가 놀랐던 점은 말을 꽤나 잘한다는 것이다. 지금까지의 챗봇들은 response를 잘 생성하긴 했지만 생성한 말이 syntactic한 측면에서 오류가 있거나 어색한 경우가 있었는데, ChatGPT는 해당 response가 팩트인지와는 별개로 정말 자연스럽게 말을 생성한다는 점이었다. 이 포스팅에서는 지금 한창 많은 관심을 받고 있는 ChatGPT에 대해서 실제로 사용해본 결과를 바탕으로 자세히 설명해보고자 한다.

 

ChatGPT FAQ


OpenAI 홈페이지에 올라온 ChatGPT 관련 FAQ

위 사진은 OpenAI 홈페이지에 올라온 ChatGPT와 관련된 FAQ의 일부를 발췌한 것이다. ChatGPT는 현재 OpenAI 홈페이지에서 무료로 사용이 가능하다. FAQ 1번을 보면 initial research preview 기간 동안 무료로 사용이 가능하다고 한다. 알파고 급의 AI 쇼크에 현재 이용자수가 폭증하고 있다고 하는데 조만간 유료로 전환될 것 같다(이미 전환 얘기가 나오기도 했지만). ChatGPT 모델 크기도 매우 큰데 이를 이용해 inference를 돌려 response를 생성하는데에도 어마어마한 computing cost가 들 것이다. 이를 기업이 그냥 모두에게 언제까지고 개방해둘리가 없다...

6번 문항을 보면 user들의 대화 기록이 AI trainer들에 의해 review 될거라고 한다. 11번 문항에선 OpenAI라는 기업이 preview 기간 동안 strength와 weakness를 파악하기 위해 현재 이용 가능하도록 만들어두었다고 한다. 이를 통해서 추측해보건데, 아마 OpenAI가 엄청난 성능의 ChatGPT를 무료로 풀어둔 이유는 폭발적인 user들로부터 생성된 방대한 conversation data를 이용해 further training에 사용하고, feedback을 반영해 다음 release 때에 반영하기 위한게 아닌가 싶다. 실제로 사용해보면 각각의 답변에 대해 feedback을 할 수 있는 버튼이 우측에 있다.

현재 API로는 사용할 수 없다고 하는데 이는 추후 나온다고 하니 기다려보면 될 듯하다. API 사용 신청 form을 작성하고 waitlist에 이름을 넣어두면 된다. 개발자 커뮤니티의 무수한 요청에 의해 곧 API를 만들 예정이라고 한다.

 

ChatGPT API Waitlist

 

ChatGPT introduction on site UI


아래는 홈페이지에 공개된 ChatGPT와 관련된 소개이다. "occasionally generate incorrect or misleading information"이라고 되어있는데, 때때로 틀린(사실과 다른) 혹은 오해의 소지가 있는 정보를 제공하기도 한다고 소개하고 있다. 이는 뒤에서 한계점을 설명할 때 더 자세히 언급하겠다.  

OpenAI 홈페이지에 공개된 ChatGPT 소개
User data를 수집하는 OpenAI

OpenAI는 user data를 수집한다고 한다. 이를 아마 차후의 release 때에 성능 개선을 위한 추가 데이터로 사용할 생각인 것 같다. 위 사진에 보면 "Please don't share any sensitive information in your conversations."라고 되어있는데 아마도 data collection 과정에서 user의 input text에 대한 privacy filtering이 되지는 않는 것 같다...(혹은 filtering 과정을 거치더라도 완벽함을 보장할 수 없거나)

 

Examples & Capabilities


홈페이지에 소개된 ChatGPT의 사용 예시, 능력, 한계

Examples

위 사진은 홈페이지에 소개된 ChatGPT의 사용 예시, 능력, 한계점이다. Examples를 보면 다음과 같은 것들이 가능하다는 것을 알 수 있다.

  • Information : "Explain quantum computing in simple terms"
  • Brainstorming : "Got any creative ideas for a 10 year old's birthday?"
  • Nocode AI : "How do I make an HTTP request in Javascript?"

먼저 사용자에게 정보를 제공해주는 information 기능은 기존의 챗봇과 큰 차별점은 아니다. coverage가 큰 방대한 데이터로 학습을 했다면 사용자가 요구하는 것에 대한 정보를 제공해줄 수 있으니까. "Javascript로 HTTP request를 보내는 코드르 짜줘."와 같은 nocode AI도 요즘 이와 관련된 기능을 탑재한 AI 모델들이 많이 출시되고 있어서 크게 놀랍지는 않다. 개인적으로는 idea를 제시해주는 brainstorming 기능이 흥미로웠다. 마치 사람이 생각하는 것과 같이 특정 상황이나 문제해결에 대해 여러 아이디어를 제시해준다.

Capabilities

소개된 능력들을 보면 대략 아래와 같다.

  • Dialogue history : "Remember what user said earlier in the conversation."
  • Follow-up correction : "Allow user to provide follow-up corrections"
  • Safety : "Trained to decline inappropriate requests"

첫째로, 이전의 대화 기록을 메모리에 기억해두고 대화를 생성한다는 점이다. conversational AI 모델의 문제로 많이 거론되었던 것이 바로 이전 대화 기록을 가지고 가는 장기기억 문제이다. 사람의 경우 이전에 대화한 내용을 기억하고 다음 대화를 이어나갈 수 있지만 이를 AI 모델에 적용하기는 쉽지 않은 문제이다. ChatGPT와 같이 모델의 크기가 커지면 input size도 자연스레 커지게 되니 이전 대화의 내용을 기억하도록 함께 input으로 주어 답변을 생성하도록 만들 수 있을 것이다.

둘째로, 추가 질의를 통한 답변 개선이 가능하다는 점이다. 이 부분이 흥미로웠는데 아마 기존 챗봇들과의 가장 큰 차별점이 아닌가 싶다. 기존 챗봇들의 경우 단순히 해당 질문에 대한 답변만을 생성하고 만약 해당 답변이 틀렸다면 사용자가 다른 방식으로 질문을 다시 던져야만 했다. 하지만 ChatGPT는 추가적인 질의를 통해 (마치 사람과 대화하듯이) 답변을 점진적으로 개선해 나아가는 것이 가능하다.

셋째로, safety 기능인데 부적절한 질문에 대해서는 decline할 수 있도록 학습되었다는 것이다. 얼마전부터 대화형 AI의 윤리의식과 관련된 문제들이 많이 제기되어 왔다. AI가 사용자로부터 부적절한 단어들을 학습하거나 위험한 질문에 대해 답해주는 경우 등이 있다. ChatGPT는 이러한 문제를 해결하기 위해 safety를 고려한 training을 통해 부적절한 질문에 대한 답변을 생성하지 못하도록 했다고 한다. 아마 내부적으로 user input에 대한 safety scoring을 통해 점수를 메기거나 혹은 부적절하다고 판단될 수 있는 질문들에 대해 binary classfication으로 학습을 해둔 것이 아닐까 싶다.

 

Brainstorming


아래 사진은 ChatGPT에게 내가 현재 연구하고 있는 분야인 conversational AI에 대한 창의적인 아이디어를 몇 가지 제시해달라고 요청한 결과이다.

대화형 AI에 대한 연구 주제를 제시해주는 ChatGPT

꽤나 reliable하고 trend를 반영하는 답변을 내놓는 것을 알 수 있다. 사실 매우 놀랐다. 특히 sarcasm이나 humor를 이해하는 AI, multi-lingual dialog model, knowledge graph 기반의 dialog model, ethical issue와 같은 것들은 conversational AI 분야의 최근 나온 conference papersurvey paper들에서도 많이 언급되는 것들이다. 그런데 문득, 이러한 것들이 AI가 (마치 생각을 하는 사람처럼) 내부적인 로직을 통해 내놓는 brainstorming이 아니라 방대한 데이터에서 학습한 정보들을 정보를 알려주는 information 기능과 같이 답변으로 생성하는 것일 수도 있겠다는 생각이 들었다. 즉, 위 예시 같은 경우는 AI가 여러 아이디어를 제시해주는 것 같아 보이지만 실제로는 여러 학술 정보들을 학습한 결과를 단순히 요약해서 보여주는 것일 수도 있는 것이다. 이를 확인하기 위해 '정보가 매우 적거나 혹은 없을법한 주관적인 질문'을 해보았다.

아래와 같이 "인간관계에 스트레스를 많이 받을 수 있는 방법" 그리고 "공부를 못하는 방법"을 물어보았다. 대부분의 정보들은 아마 인간관계에서 스트레스를 덜 받는 방법 그리고 공부를 잘하는 방법에 초점이 맞추어 구성되었을 거라고 생각했다. 생성한 답변을 보면 꽤나 말이 된다는 것을 알 수 있다. (답변이 재미있으니 한 번 읽어보길 바란다) 아마 단순한 정보의 학습 외에도 reasoning을 할 수 있는 능력도 함께 학습된 게 아닌가 싶다.

인간관계에서 스트레스를 많이 받는 방법을 알려주는 ChatGPT

공부를 못하는 방법을 알려주는 ChatGPT

 

Probability-based Generation model


ChatGPT는 기본적으로 text generation model이다. 많은 text generation language model들은 확률 기반의 토큰 생성 방식으로 text를 generation 한다. 그래서인지 ChatGPT 역시도 같은 input에 대해서도 매 running마다 조금은 다른 답변을 내놓았다.

같은 답변에 대해 매 running마다 조금씩 다른 답변을 내놓는 ChatGPT

 

Dialogue history


ChatGPT의 capability에서 언급된 대화 기록 저장 기능을 시험해보기 위해 아래와 같은 질의를 던져보았다.

일부러 여러 의미를 가진 단어를 선택해 물어보았다. GIST는 위장관 기질종양, geographically-weighted inverse squared time, 어떤 말이나 글의 핵심 그리고 마지막으로 내가 다니고 있는 광주과학기술원 등과 같이 여러 의미를 갖고 있다. 아마 ChatGPT가 처음에는 이러한 것을 구분하지 못할거라고 생각해서 해당 단어에 대해 물어보았다. 그리고 다음 질문으로 내가 의도하는 광주과학기술원에 대해 설명해달라고 하였고, 그 다음으로 GIST에 대해 다시 물어보았다. 결과적으로 ChatGPT는 이전 대화 기록을 기억해 사용자가 의도하는 GIST가 광주과학기술원임을 인지하고 이에 대해 설명해주었다.

 

Follow-up correction


다음으로는 ChatGPT의 follow-up correction 기능을 테스트해보기 위해 야간 소음에 대한 경고문을 작성해달라고 요청하였다. 그 후, 해당 경고문을 좀 더 짧게 작성해달라고 하였고 마지막으로 좀 더 강한 어조로 작성해달라고 순차적으로 요청하였다. 아래는 그 결과이다.

ChatGPT에게 야간 소음에 대한 경고문 작성 요청
좀 더 짧은 경고문 작성을 요청
좀 더 강한 어조로 경고문 작성을 요청

두 번째 경고문은 첫 번째 작성한 경고문보다 짧아졌다. 이는 단순히 summarization 기능을 사용해서도 구현할 수 있다고 생각이 되어서 좀 더 강한 어조로 작성해 달라는 마지막 질문을 추가적으로 던져보았다. 첫 번째 경고문과 비교해보면 "unacceptable", "thoughtless actions", "immediate action"과 같은 강한 어조의 단어들이 사용된 것을 알 수 있다. 이 같은 추가질의를 통한 답변개선 기능이 ChatGPT 모델의 차별성이기도 하지만 더더욱 사람과의 대화같이 느껴졌다. 우리들도 대화를 하는 상대방의 의도를 처음부터 파악하기도 하지만 이런저런 추가적인 대화를 이어나가면서 알아가기도 하고 더 나은 답변을 하기도 하니까 말이다.

 

Nocode AI


Examples에 마지막으로 소개된 기능은 nocode AI 기능이다. ChatGPT에게 주어진 숫자가 소수인지를 판별하는 함수를 파이썬으로 짜달라고 해보았다. 

ChatGPT가 작성해준 소수판별 파이썬 함수 코드

공식 문서에는 해당 코드, 코드에 대한 설명 그리고 에러에 대한 설명을 함께 input으로 제공하면 debugging 기능도 수행할 수 있다고 한다. 그래서 위 코드에서 빨간 밑줄 부분을 바꾸어서 일부러 잘못된 코드(자연수 1은 소수가 아님에도 아래 코드는 1에 대해 True를 return하므로)를 만든 뒤 수정해달라고 요청해보았다. 

debugging을 수행하는 ChatGPT

ChatGPT는 해당 코드의 잘못된 부분을 정확히 지적하여 수정하였고, 심지어 추가질의를 통해 시간복잡도가 더 개선된 코드를 알려주었다....ㄷㄷ(?? : 인간시대의 끝이 도래했다...)

 

Limitations


하지만 이런 완벽해 보이는 ChatGPT에도 아직 한계점이 존재한다. 바로 사실관계와 무관하게 잘못된 정보를 마치 그럴듯한 문장으로 지어내 제공한다는 점이다. 학계에서는 본 적도, 들은 적도 없는 정보를 마치 사실인 양 제공한다고 하여 이를 챗봇의 Hallucination(환상, 환청) 문제라고 부른다. ChatGPT도 바로 이같은 Hallucination 문제를 갖고 있다. 

BART는 NLP 분야에서 많이 사용되는 대표적인 Language model이다. 이를 오인하도록 아래와 같이 "BART가 왜 NLP가 아닌 Vision 분야에서 성공을 거두었는지"에 대해 물어보았다. 그러자 ChatGPT는 마치 BART 모델이 NLP가 아닌 Vision 분야에서 큰 성공을 거둔 것이 사실인 것처럼 해당 이유에 대해 설명하였다.

설명한 성공의 이유들을 읽어보면 꽤나 그럴듯하다. BART가 language model이라는 사전지식이 없는 사람이 검색을 했다면 충분히 오해를 불러 일으킬 수 있는 것이다. 바로 이러한 점들이 Conversational AI의 Hallucination이 문제시 되는 이유이다. 잘못된 정보를 마치 사실인양 제공하니까 말이다.

ChatGPT hallucination example 1

추가적으로 이제는 모든딥러닝 분야에서 사용 중인 back-propagation 논문을 내가 언제 작성했는지 물어보았다. 그랬더니 아래와 같이 답변해주었다. 하지만...나는 물론이고, Sung-Bae Cho와 Se-Young Yun은(누군진 모르겠지만) back-propagation paper를 작성한 사람들이 아니다...몇 가지 질문을 던져본 결과, ChatGPT는 false prompt에 약한 듯하다. 사용자가 input으로 주는 질문에 대해 어느 정도 True라고 사실관계를 생각하고 답변을 생성하는 것 같다.

ChatGPT hallucination example 2

 

글을 마치며...


ChatGPT가 정말 많은 화제를 낳고 있는 것 같다. 미디어에서도 온통 ChatGPT에 대한 소개들이 주를 이루고 있다. 실제로 사용해본 결과 정말 놀라운 성능을 보여주고 무엇보다도 정말 자연스러운 글을 작성한다는 점이 신기했다. 하지만 마지막에 언급한 Hallucination은 어찌보면 매우 큰 문제일 수도 있다. 오해를 불러일으키지 않기 위해선 잘못된 정보나 AI가 학습하지 않아 모르는 정보의 경우 사용자에게 제공하지 않는 것이 최선일 것이다. 어쩌면 앞으로는 챗봇, AI비서 등이 제공하는 정보의 신뢰성과 관련한 fact-checking이나 reponse의 reliability를 scoring하거나 AI가 스스로 incorrectness를 판별하도록 하는 학습과 같은 분야에서의 연구가 많이 등장할 것 같다. 나도 연구를 하고 있는 입장이지만 AI의 발전 속도가 점점 무서워지기 시작했다 ㅋㅋㅋ

 

 

 

728x90
300x250

'NLP' 카테고리의 다른 글

최신 NLP 연구 트렌드(ACL2023 회고록)  (0) 2023.08.20
NLP 분야 Data augmentation  (0) 2022.05.28
Comments