본문 바로가기

세미나

ChatGPT 체험 후기

728x90

안녕하세요 유저인사이트 박준호 선임입니다.

 

저는 이번에 많이 언급되는 ChatGPT에 대해 간략히 알아보고 실습해 보았습니다.

 

 

ChatGPT 선정 이유

이번 세미나의 주제로 ChatGPT를 선정한 데에는 단순히 신기하고 재미있겠다는 이유뿐만 아니라, ChatGPT를 잘 사용하면 도움을 받을 수도 있고 언젠가는 개발자가 인공지능에 밀리는 날이 올 수도 있겠다는 생각을 했기 때문입니다.

 

그리고 https://openai.com/api/ 에서 ChatGPT를 개발하는데 이용한 GPT-3, GPT-3.5를 간접적으로 이용할 수 있는 api를 제공중 이어서 개발에 이용할 수 있을 것 같습니다. 추후에는 ChatGPT의 api도 제공될 예정이라고 합니다.

 

OpenAI API

OpenAI is an AI research and deployment company. Our mission is to ensure that artificial general intelligence benefits all of humanity.

openai.com

 

추가로 현재 Github에 Copilot 이라는 자동 코드 완성 인공지능이 있는데, 해당 인공지능도 GPT-3을 이용하여 만들어졌다고 합니다. 해당 인공지능을 이용하여 코딩하는데 도움을 받을 수 있는데 아직은 많이 부족하다고 합니다.

 

해당 인공지능과 관련한 여러 가지 내용이 있지만, 이번 주제와는 맞지 않는 내용이니 궁금하시면 한번 찾아보시는 것도 좋다고 생각합니다.

 

https://github.com/features/copilot/

 

GitHub Copilot · Your AI pair programmer

GitHub Copilot works alongside you directly in your editor, suggesting whole lines or entire functions for you.

github.com

 

ChatGPT?

ChatGPT는 OpenAI가 개발한 GPT-3.5를 기반으로 한 챗봇입니다.

여기서 GPT-3.5가 무엇인지 궁금하실 텐데 저도 궁금해서 당사자에게 직접 물어봤습니다.

 

 

2021년 10월 이후의 정보는 얻어 올 수 없는데 GPT-3.5는 ChatGPT를 위한 대화형 모델로 2022년 11월에 출시되어 모르는 것 같습니다.

 

간략하게 설명하자면 일단 언어 모델에는 통계학적 모델과 인공신경망적 모델이 있는데 GPT-3은 인공신경망적 모델이고, 이보다 더 나아간 언어 예측 모델입니다.

 

GPT-3?

GPT-3의 언어 예측 모델을 간략하게 설명하고 넘어가겠습니다.

 

모델에 방대한 양의 텍스트를 훈련 시킵니다. 그러면 모델은 텍스트 일부의 이후를 예측하고 해당 텍스트를 이어갑니다. 만약 예측이 틀렸다면 해당 내용을 자율학습하여 정확도를 높입니다.

 

출처) Alammar, J의 블로그

 

출처) Alammar, J의 블로그

 

이러한 방식으로 만들어진 GPT-3을 대화가 가능하도록 발전시킨 모델이 GPT-3.5입니다.

 

 

 

ChatGPT 시작하기

 

https://openai.com/blog/chatgpt/ 에서 하단의 버튼을 누르고 계정생성  또는 로그인 후에 시작하면 됩니다.

 

ChatGPT: Optimizing Language Models for Dialogue

We’ve trained a model called ChatGPT which interacts in a conversational way. The dialogue format makes it possible for ChatGPT to answer followup questions, admit its mistakes, challenge incorrect premises, and reject inappropriate requests. ChatGPT is

openai.com

 

 

ChatGPT 실습

 

ChatGPT를 직접 사용해 보기에 앞서 ChatGPT에는 여러 가지 특징이 있습니다.

 

- 대화형이기 때문에 전에 이야기했던 내용과 연관 지어 다음 대답을 한다.

- 틀린 부분은 정정할 수 있다.

- 학습시킬 수 있다.

...

 

다른 특징들도 있지만, 위의 3가지 특징들을 기준으로 직접 실습해봤습니다.

 

1. Multi Tenancy 환경에 Remember-Me를 적용하는 방법을 알려줘.

제가 작성한 글 중 Multi Tenancy 환경에 Remember-Me 적용하기 글이 있습니다.

해당 작업을 할 때 관련된 글도 거의 없고, 저와 같은 문제를 겪은 내용도 찾을 수가 없어서 Remember-Me 구조를 파악하며 직접 오버라이딩 하며 코딩을 했었습니다.

 

 

[Spring Security] Multi Tenancy 환경에 Remember Me 적용하기

Remember-Me 기능은 Spring Scurity에서 제공하는 자동로그인 기능입니다. 하지만 Multi Tenancy 환경에서 User 데이터를 Tenant 별로 관리하고 있다면 자동로그인 기능이 작동하지 않는 현상이 발생합니다.

blog.userinsight.co.kr

 

 

ChatGPT가 조금만 더 일찍 나왔다면 정말 많은 도움이 되었을 텐데 정말 아쉽다고 생각했습니다.

 

 

2. React에 MobX나 Redux를 사용하면 Prop Drilling이 줄어드는 이유가 뭐야?

 

세미나에 나왔던 주제인 부분에서 궁금했지만 해소되지 않았던 부분을 물어봤습니다.

 

단순히 요약해 줘라고 했지만, 위의 내용을 요약해서 잘 알려주는 모습입니다.

 

3. QueryDSL에서 객체를 업데이트하고 업데이트된 객체를 리턴하는 방법이 뭐야?

QueryDSL에서 update() - execute()를 하면 return 타입이 long인데, 방금 업데이트한 객체를 그대로 가져오는 방법이 궁금했었습니다. 지금은 필요 없어진 내용이지만 궁금해서 물어봤습니다.

 

 

저희는 EntityManager를 쓰지 않아서 정정 요청을 했습니다.

 

 

JPAQueryFactory도 쓰지 않아서 정정 요청을 했습니다.

 

 

해당 대답에서 저는 충분한 대답을 얻었습니다. 실제로 해당 대답을 토대로 코딩해본 결과 제가 원하는 결과를 얻을 수 있었습니다.

제가 원하는 대답이 나오지 않아 여러 번 대답 수정 요청을 했는데 잘 반응하는 모습입니다.

 

하지만 여기서 업데이트될 행이 하나일 때는 어떻게 해야 할지 궁금해 한 번 더 물어봤습니다.

 

 

ChatGPT가 executeWithResult()라는 메서드를 사용했는데 실제로는 존재하지 않는 메서드였습니다.

 

해당 내용을 고민할 때 여러 가지 존재하는 메서드들을 알아봤는데 해당 메서드가 존재하지 않다는 것을 알고 있었는데, ChatGPT가 있다고 하니 "엥? 이런 게 있었어?" 하며 다시 찾아보긴 했습니다. 

 

ChatGPT도 거짓말을 하긴 하나 봅니다.

 

후기

위에 물어본 내용 말고도 ChatGPT에게 여러 가지를 많이 물어봤었습니다.

JavaScript로 canvas에 그림 그리는 방법, OpenLayers로 위경도 좌표 사이의 거리 구하는 법 등 개발과 관련된 내용을 많이 물어봤는데 구글링 할 때보다 정보를 빠르게 얻을 수 있었고 대답을 제가 원하는 방향으로 수정할 수도 있었습니다.

 

하지만 종종 이상한 대답을 할 때도 있었고 특히 사용되지 않고 있는 메서드를 예시로 보여줄 때도 있었습니다.

ChatGPT를 사용하는 건 굉장히 편리하고 좋지만 맹신하고 사용할 정도는 아니라고 생각했습니다.

그래도 유료화되기 전에는 자주 사용하게 될 것 같습니다.

 

추가로 Google에서 ChatGPT에 대항할 Bard를 출시했다고 합니다. 해당 내용도 따로 찾아보면 좋을 것 같습니다.

 

 

 

 

출처: Alammar, J의 블로그 https://jalammar.github.io/how-gpt3-works-visualizations-animations/ 

 

How GPT3 Works - Visualizations and Animations

Discussions: Hacker News (397 points, 97 comments), Reddit r/MachineLearning (247 points, 27 comments) Translations: German, Korean, Chinese (Simplified), Russian The tech world is abuzz with GPT3 hype. Massive language models (like GPT3) are starting to s

jalammar.github.io

 

 


박준호 / 선임연구원

Junho Park / 서비스R&D팀

 

 

junho@userinsight.co.kr

728x90