- Published on
AI 기반 채팅 서비스 비교와 단상
- Authors
- Name
- 신주용
ChatGPT? AI 기반 채팅 서비스란?
최근 가장 핫한 기술은 단연코 ChatGPT라 할 수 있을 것입니다. 이 AI 기술은 컴퓨터 공학과 학생이나 개발자가 아니더라도 수많은 뉴스와 기사를 통해 알려졌고, 출시한 지 몇 달이 채 지나지 않아 활성 사용자 수가 1억 명을 넘는 인기를 얻고 있습니다12. 이미 대부분은 알고 있겠지만 ChatGPT에 대해 먼저 소개하자면 (정확히는 자기 소개를 시켜보자면) “GPT-3.5 아키텍처에 기반한 OpenAI에 의해 학습된 대형 언어 모델“이라고 합니다.
이게 대체 무슨 소리일까요? 하나씩 뜯어보자면 GPT-3.5에서 GPT는 Generative(생성형) Pre-trained(사전 학습) Transformer(전이 학습) 모델이라는 뜻입니다. 조금 더 풀어보자면 수많은 데이터를 사용해 “사전 학습”한 모델이 있고, 이 모델을 기반으로 특정 분야의 데이터를 추가적으로 사용해 “전이 학습”을 한 모델을 사용해 결과물을 “생성”합니다34. 이를 OpenAI에서 연구하여 개발한 모델 중 하나인 GPT-3.5는 자연어나 소스코드를 이해하고 생성하는 데 초점을 맞추어 발전시킨 모델이고요5. (사전 학습, 전이 학습에 대한 자세한 정보는 딥러닝 전문가 분들을 찾아갑시다…😂)
대형 언어 모델이라고 했는데 어느 정도 대형이냐 하면 GPT-3의 경우 무려 1,750억 개의 파라미터가 학습에 사용이 되었으며, ChatGPT에서는 빠른 동작을 위해 모델의 크기를 줄였다고는 하지만 여전히 200억 개의 파라미터가 사용되었다고 합니다6.
이렇게 연구, 개발되어 세상으로 나온 ChatGPT를 처음 사용했을 때는 마냥 신기했습니다. 구글의 헤드쿼터가 긴급 회의에 들어갔다는 기사도 나오면서 이제는 정말로 대단한 인공지능이 출현한 것 같았고, 코딩할 때 여러 블로그를 찾아보지 않아도 되니 검색에 드는 시간을 훨씬 줄일 수 있지 않을까 싶었습니다. 하지만 기우였을까요, 제 모든 기대를 깨트리는 사건(?)이 발생했습니다.
이 글을 시작하게 된 계기
몇 달 전, 저는 ChatGPT에게 Faust에서 uvloop를 사용하는 방법에 대해 질문을 했고, ChatGPT는 실행 방법까지 정성스럽게(?) 알려주었습니다. 그래서 이를 따라 실행하니 없는 명령줄 옵션이라더군요…😂 물론 이 캡쳐는 지난 23년 1월에 찍은 것이고, 몇 달동안 수많은 사용자의 이용 피드백과 ChatGPT 개발진의 지속적인 업데이트가 있었으므로 지금은 조금 더 나아졌지만, 저는 이 이후로 ChatGPT를 검색에 활용하지 않았습니다.
그러면 왜 위와 같은 일이 발생한 것일까요? 제가 생각하는 이유는 처음 ChatGPT가 자신을 소개했던 것처럼 검색 엔진이 아니라 ‘언어 생성 모델’이기 때문입니다. 그러므로 모델 학습 후 일어난 최근의 일에 대해서는 제대로 설명하지 못하고 틀린 내용을 말하거나, 아무말 파티를 하는 것입니다. 특정 라이브러리에 대한 질문이나 조건에 맞는 코드 생성 작업에서도 위 계기에서 말했던 것처럼 잘못된 결과를 반환하는 경우가 많습니다. 이러한 이유로 개발자들이 많이 사용하는 질의응답 사이트인 Stack Overflow에서는 ChatGPT로 생성된 텍스트를 제한하고 있습니다7.
다른 서비스의 등장
최근 Microsoft는 자사의 검색 엔진 Bing에 Prometheus 모델을 결합한 ‘Bing Chat(이하 Bing)’을 선보였습니다8. 이는 사용자의 질문을 AI가 해석해 검색 키워드를 만들고 검색한 후, 검색 결과가 다시 언어 모델을 거쳐 답변으로 돌아옵니다. 그렇기 때문에 Bing의 답변 속도는 비록 ChatGPT에 비해 느리긴 하지만 ‘세종대왕의 맥북 프로 던짐 사건’이 없는 결과라고 분명하게 말해줄 수 있습니다9.
또다른 Bing의 장점으로는
- 최근 내용에 대한 검색이 가능하다는 점: ChatGPT는 2021년까지의 데이터를 사용해 “학습”한 모델을 사용해 결과물을 “생성”하는 모델인 반면, Bing은 그 기반이 검색 엔진이므로 (실제로 가능한지는 모르겠지만) 1분 전에 올라온 뉴스라도 검색이 된다면 답변으로 생성될 수 있을 것입니다.
- Reference를 보여주는 점: 위 Bing의 자기소개 캡쳐에서와 같이 Bing은 답변의 생성에 사용된 검색 결과의 소스 또한 알려줍니다. Bing 역시도 종종 부정확한 답변을 하기도 하는데10, 그런 경우 직접 소스에 들어가서 확인해 볼 수 있습니다.
- 다음 연관 질문을 추천해 준다는 점: 이 또한 장점이라고 생각되는데, Bing은 ChatGPT처럼 자세한 답변을 주지는 않으나, 방금 한 질문에서 더 넓게 또는 더 깊게 뻗어 나갈 수 있는 연관 질문을 세 가지 정도 추천해 줍니다.
등이 있습니다. 그 외에도 “개발자를 위한 AI 검색 엔진”이라는 슬로건을 내건 Phind11, 소스코드에 특화되었다는 YouCode12 등이 있습니다.
사용 예시
이들 서비스는 출시한 지 몇 달이 지나 많은 분들이 이미 다양한 비교글을 적었는데, 저는 이번 포스트에서는 ChatGPT, Bing, Phind 이 세 서비스를 대상으로 제가 주로 사용하는 분야인 소스 코드 검색과 생성 성능 면에서 사용 예시를 보여드리고 간단하게 비교를 해보려고 합니다.
첫 번째는 “I want to search a file name matching with regex pattern among the files in specific directory using python language. Can you show me some example?” 라고 질문을 해봤습니다.
이 질문에는 세 서비스 모두 적당한 답변을 생성한 것 같습니다. 하지만 답변이 지향하는 방향은 조금씩 다른 것 같은 느낌입니다. ChatGPT는 질문에 대한 답변을 하는 데 초점을 둔 느낌이고, Bing은 답변은 깔끔하게 하는 대신 뻗어나갈 수 있는 다음 질문의 퀄리티가 좋다고 생각됩니다. Phind는 다른 두 서비스에 비하면 복잡하다는 느낌이 많이 드는데, 답변의 내용만 보자면 이 서비스는 다양한 문제 해결 방법에 더 중점을 두는 듯 합니다. 코딩을 처음 배우는 분이라면 한 기능을 이렇게 다양한 방법으로 구현할 수 있다는 것을 배우는 것이 도움이 많이 될 것 같습니다.
첫 번째 질문은 검색에 가까운 소스 코드 생성이라는 느낌이 있습니다. 그럼 조금 더 구체적으로 입력 문자열을 주고 이를 분석해 정규식을 생성해 달라는 질문에는 어떻게 답변을 할까요? 이를 테스트하기 위해 다음과 같은 입력을 주었습니다.
우선… 기대한 정규식은 그룹을 활용한 더 자세한 결과물이었지만 아쉽게도 그런 답변은 돌아오지 않았습니다. 질문을 더 명확하게 하면 결과가 달라질까 싶습니다. 대신, 여기서도 이전 답변과 비슷한 경향을 보이는 것 같습니다. ChatGPT는 자연어, 소스코드 처리에 최적화한 모델 답게 소스코드 생성과 이를 설명하려는 답변을 했습니다. 그에 비해 Bing은 답변은 깔끔하게 하되 질문의 확장이 인상적입니다. 추천해주는 질문과 답변을 보면 왠지 어린 아이가 부모에게 묻고 배우는 느낌도 있는 것 같네요. Phind는 이번에도 역시 답변이 제일 깁니다.
마지막으로는 “how to make a python programme that can count the lines of codes?”를 물어봤고, 그 결과를 Hadoop 3.3.4 버전13의 소스코드를 scc14을 사용해 구한 LoC와 비교해봤습니다.
제가 원한 결과를 정확하게 구현해준 ChatGPT와는 달리 Bing은 현재 디렉토리에 있는 파일만을 대상으로 하는 코드를 작성해줬습니다. 애초에 질문 자체에 ‘모든 파일’이라던가 ‘재귀적으로’라는 단어가 포함되어있지 않으므로 틀린 답변이라고 할 수는 없긴 합니다. 그래서 후속 질문으로 “i want to count the lines of codes in all files recursively under the specific directory. can you rewrite a code?”을 해봤습니다. 이 코드는 실행은 됐으나, 값이 다릅니다. 소스코드를 보면 재귀적으로 들어가지는 않은 것 같네요.
Phind도 단순히 현재 디렉토리 내 파일에 대해서만 실행 가능한 코드를 반환했습니다. 그래서 이 서비스에도 동일한 후속 질문 “i want to count the lines of codes in all files recursively under the specific directory. can you rewrite a code?” 을 했더니 결과를 Bash 코드로 알려줬습니다. 이 서비스는 동일한 채팅 스레드여도 이전 채팅의 내용을 기억하지 못하는 듯 합니다.
마무리
이번 글에서는 최근 세상을 떠들썩하게 한 ChatGPT와 다른 AI 기반 채팅 서비스에 대해 소개하고, 제가 주로 사용하는 분야의 질문으로 간단한 비교를 해봤습니다. 사실 이렇게 답변 내용을 비교해보기 전까지는 그냥 단순히 ChatGPT는 문장의 생성은 정말 잘 하지만 정확하지 않으니 잘 손이 안가게 된다고만 생각했습니다. 하지만 이번 글을 적으면서 이들 챗봇의 답변 내용의 정확도가 게속 발전하고 있다고 느꼈고, 답변이 추구하는 방향이 다르다는 느낌을 받아서 신기했습니다.
답변 정확도의 문제는 처음 ChatGPT의 정의에서도 알 수 있듯 검색 엔진이 아니라 생성형 언어 모델이라는 설계 목표에서 비롯한 문제였습니다. MS는 이 문제를 해결하기 위해 자사의 검색 엔진 Bing을 활용했습니다.
또 한 가지 놀라운 점으로는, 이 글을 쓰기 위해 검색을 하던 중 얼마 전에 ChatGPT에 적용 가능한 플러그인이 출시되었다는 소식을 들었고, 이 중에는 Bing Search API를 활용한 ‘검색’ 플러그인도 포함되어 있다고 합니다15. 오늘 소식을 듣고 대기 목록을 신청하는 바람에 아직 사용을 해보지는 못했지만, 이를 통해 위에서 ChatGPT의 단점으로 언급되었던 최신 내용에 대한 검색과, 사실 검증을 거의 극복한 것으로 보입니다. 기술의 발전은 이제는 인간의 속도로는 따라잡기 힘든 정도로 빨라진 것 같습니다.
마지막으로, 얼마 전 ChatGPT를 사용하면서 정말 감동(?)스러운 적이 있었습니다.
한국어 데이터는 영어에 비해 학습 데이터가 부족함에도 불구하고 질문을 정확히 이해(…라고 하는게 맞을지는 모르겠지만… 해석?)했고, 제가 바라는 결과에 가까운 답변을 해주었습니다. 특히 채팅을 지속하는 중에도 그 내용을 계속 기억하고 다루는 능력이 대단했고, 한국인에게는 매우 느려보이는 답변 속도라도 1분 내에 이런 작업을 오타나 문맥 문제 없이 해낼 수 있는 사람을 찾는 것이 더 힘들 것 같다는 생각을 했습니다. 이렇게 ‘생성형 언어 모델’이라는 본연의 기능을 잘 활용한다면 현존하는 여러 AI 툴 중에 ChatGPT를 이길 툴은 없을 것 같습니다.
그렇기 때문에 우리는 결과적으로 사용자로서 우리는 이러한 도구를 잘 사용하는 방법을 익히고, 많이 사용하여 도구가 더 똑똑해지도록 하고, 더 똑똑해진 도구를 잘 사용하여 우리의 능력을 향상하는 것이 앞으로 가장 중요한 목표가 되지 않을까 싶습니다.
P.S. 제가 ChatGPT를 믿지 않는 두 번째 이유입니다…ㅎ
Footnotes
Wikipedia. “ChatGPT.” en.wikipedia.org. https://en.wikipedia.org/wiki/ChatGPT (accessed Mar. 19, 2023). ↩
Sabrina Ortiz. “What is ChatGPT and why does it matter? Here's everything you need to know.” www.zdnet.com. https://www.zdnet.com/article/what-is-chatgpt-and-why-does-it-matter-heres-everything-you-need-to-know/ (accessed Mar. 19, 2023). ↩
Wikipedia. “GPT-3.” en.wikipedia.org. https://en.wikipedia.org/wiki/GPT-3 (accessed Mar. 26, 2023). ↩
easter423. “GPT-3 vs GPT-3.5 vs ChatGPT.” velog.io. https://velog.io/@easter423/GPT-3-vs-GPT-3.5-vs-ChatGPT (accessed Mar. 26, 2023). ↩
OpenAI. “GPT-3.5.” platform.openai.com. https://platform.openai.com/docs/models/gpt-3-5 (accessed Mar. 26, 2023). ↩
Aleks Farseev. “Is Bigger Better? Why The ChatGPT Vs. GPT-3 Vs. GPT-4 'Battle' Is Just A Family Chat.” www.forbes.com. https://www.forbes.com/sites/forbestechcouncil/2023/02/17/is-bigger-better-why-the-chatgpt-vs-gpt-3-vs-gpt-4-battle-is-just-a-family-chat/?sh=7001b76b5b65 (accessed Mar. 19, 2023). ↩
Makyen and blackgreen. “Temporary policy: ChatGPT is banned.” https://meta.stackoverflow.com/questions/421831/temporary-policy-chatgpt-is-banned (accessed Mar. 19, 2023). ↩
Yusuf Mehdi. “Reinventing search with a new AI-powered Microsoft Bing and Edge, your copilot for the web.” blogs.microsoft.com. https://blogs.microsoft.com/blog/2023/02/07/reinventing-search-with-a-new-ai-powered-microsoft-bing-and-edge-your-copilot-for-the-web/ (accessed Mar. 26, 2023). ↩
오목교 전자상가. “Bing이 정말로 신이 됐습니다; ChatGPT는 애들 장난이고요, 구글은 정말 큰일났습니다 / 오목교 전자상가 EP.128.” www.youtube.com. https://youtu.be/ecsexOTHaVA (accessed Mar. 19, 2023). ↩
Bing. “새 Bing - 자세한 정보.” www.bing.com. https://www.bing.com/new#faq (accessed Mar. 26, 2023). ↩
Phind. “Phind: AI search engine.” www.phind.com. https://www.phind.com/ (accessed Mar. 26, 2023). ↩
YouCode. “YouCode.” https://you.com/code (accessed Mar. 19, 2023). ↩
The Apache Software Foundation. “Apache Hadoop Download.” hadoop.apache.org. https://hadoop.apache.org/releases.html (accessed Mar. 27, 2023). ↩
boyter. “scc.” github.com. https://github.com/boyter/scc (accessed Mar. 27, 2023). ↩
OpenAI. “ChatGPT plugins.” openai.com. https://openai.com/blog/chatgpt-plugins (accessed Mar. 27, 2023). ↩