본문 바로가기

Tech/Generative AI

GPTs, 나의 과거 프로젝트를 구현하다.

또 다른 패러다임의 전환, GPTs

패러다임 : 한 시대의 보편적 사고의 틀이나 인식의 체계

 

AI계에서, 2023년은 ChatGPT의 해였다고 해도 과언이 아닙니다.

개발자는 물론 디자인과 기획, 의료, 법, 등 분야를 막론하고 ChatGPT의 기술을 도입하려 하고 있죠.

아마 ChatGPT에 영향을 받지 않은 분야는 단 하나도 남지 않았을 것입니다.

 

이러한 전환을 가속화할 새로운 녀석이 나타났습니다.

바로 GPTs입니다.

이제 자신만의 ChatGPT를 아주 손쉽게 만들어낼 수 있게 되었습니다.

이모티콘 생성기, 법률 비서, 의료 비서, 논문 요약기 등 ChatGPT를 베이스로 한 다양한 서비스들을 아주 쉽게 만들 수 있게 되었죠.

더군다나 이렇게 만든 GPTs를 세상에 공유할 수 있는 플랫폼도 탄생했습니다.

아마 ChatGPT로 파생될 수 있는 대부분의 서비스들이 GPTs형태로 접근이 가능할 것입니다.

이는 큰 패러다임의 전환점입니다.

 

오늘은 제가 진행했던 과거 AI프로젝트를 GPTs로 재 구현하는 과정을 소개하려 합니다.

이 과정을 통해, GPTs가 가지는 파급력을 직접 체험하고, 이를 바탕으로 앞으로의 개발 방향에 대해 함께 생각해 보고자 합니다.

 

HashTagGenerator, 과거의 나는 이렇게 구현했다.

작년 7월, 한국관광공사에서 주최한 생성형AI 해커톤에 참여했습니다.

개발자와 디자이너, 기획자가 모여 아래의 서비스를 만들었죠.

 

 

저는 해당 서비스의 기능 중, 사진을 입력하면 SNS용 해시태그를 생성해 주는 API를 개발하였습니다.

외국인들은 한국 여행에 왔을 때, 경복궁이나 남산타워 같은 한국의 특정 지명 보다는,

전통적인, 바다 와 같은 컨셉을 위주로 여행지를 검색할 거라는 가정이 있었죠.

여행사진에 이러한 컨셉단어를 해시태그로 함께 공유되면,

여행지 탐색 시 검색 생태계가 좋아질 것이란 가설을 세웠습니다.

 

하지만, 사용자가 매번 여행 사진에 적절한 태그를 달기란 쉽지 않습니다.

귀찮음 뿐 아니라, 사람의 주관성이 개입되기 때문에 객관적인 해시태그가 구성되지 않을 수 있기 때문이죠.

저희는 AI모델이 직접 사진으로부터 적합한 해시태그를 생성해 주기로 했습니다.

 

 

위의 로직을 구상하기 위해선, 아래와 같은 고려사항들이 있었죠.

 

  • 모델
    • Image로 부터 Text를 추출할 수 있는 생성형모델 중에서, mplug-owl이라는 생성 모델을 활용
  • 튜닝
    • 동일 키워드가 반복되어 생성되는 문제점을 해소하고자, transformer의 파라미터 튜닝

  • 프롬프트
    • 입력 사진으로 부터 SNS용 해시태그를 생성해 줄 수 있도록 프롬프트 작성
    • 이때 후처리 로직에 적용될 수 있도록 동일한 형태로 출력을 유도

  • 후처리
    • 생성된 해시태그를 데이터 베이스에 저장하기 위한 후처리
  • 서버 API 배포
    • FastAPI로 api를 구현
    • 추론시간이 길고, 단일 GPU를 사용하고 있었기에 python의 celery로 처리

 

이렇게 해시태그를 생성하는 api를 개발하였습니다.

하지만, 이 로직에는 여러 문제점들이 있었죠

 

  • 후처리가 용이하지 않았습니다.
    • 언어모델 기반으로 만들어진 모델이기 때문에, 매 답변마다 다른 형태(format)로 출력물이 나왔습니다.
    • 이는 API내의 함수에서 후처리하기에는 한계가 있었고, 불안정한 요소가 됩니다.
  • 해시태그라기보다는, 단순 ImageCaptioning에 가까워, SNS에 어울리지 않는 해시태그들이 많이 생성되었습니다.

과정이 길었네요.

기존에는 하나의 기능에 대한 프로토타입을 완성하는데 그만큼 많은 작업이 필요했습니다.

 

HashTagGenerator V2, 현재의 나는 이렇게 구현한다.

위와 동일한 기능을 하는 해시태그 생성기를, 이제는 GPTs로 다시 구현을 해보겠습니다.

놀랍게도 GPTs로 구현하려면, 아래의 프롬프트만 있으면 됐습니다. 작성한 프롬프트는 너무 길어, 간소화하였습니다.

더보기

[역할]

너는 사용자가 특정 사진을 업로드 하면, 그 사진에 적합한 sns용 해시태그를 생성해 줄거야.

[출력해 줘야할 내용]

- "Hashtag"

"Hashtag"라는 키워드로 너가 생성한 해시태그들을 나열해 줄거야. 이때, 아무런 해시태그가 아니라 인스타그램에서 인기가 있을만한 해시태그를 생성해 줄거야.

...

...

[규칙]

- 입력되는 사진 형태

...

...

- 답변 형식(format)

...

...

...

핵심은, GPTs에게 내가 원하는 입력과 출력에 대한 설명을 자세히 해주는 것입니다.

설명도 한 번에 끝낼 필요가 없습니다.

만드는 과정에서 수정했으면 하는 사항에 대해서 계속 프롬프트로 날려줄 수 있습니다.

GPTs는 내가 하는 말을 귀담아듣고, 원하는 출력 해주려고 노력합니다.

아래는 GPTs로 만든 HashtagGenerator의 출력물입니다.

 

 

 

단순히 해시태그뿐 아니라, 왜 그런 해시태그를 생성했는지 description을 덧붙여 주었습니다.

사용자는 이 description을 통해 생성된 해시태그에 신뢰성을 가질 수 있죠.

이렇게 다 만들어진 GPTs를 다른 사람들이 바로 사용할 수 있도록 Store에 올릴 수 있습니다.

해당 링크를 통해 누구나 접속하여 사용할 수 있죠.(아마 Plus구독을 한 사람들에 제한이 있을 것 같습니다.)

 

끝입니다!

아주 쉽게 해시태그 생성기를 만들어 봤습니다.

놀라운 점은, 위의 해시태그생성기를 구현하기 위해 저는 어떠한 코드와 AI지식을 필요로 하지 않았다는 것입니다.

기존 방법론 VS GPTs

기존에 HashtagGenerator를 구현하기 위해선 모델설계, 튜닝, API, 서버 등등 고려해야 할 것이 정말 많았습니다.

더구나 AI에 대한 전문지식이 많이 필요했죠.

 

하지만, GPTs에게는 이러한 전문지식을 알려줄 필요가 전혀 없습니다.

단지 필요한 기능과, 이를 잘 설명하기 위한 프롬프트만 날려주면 되는 것이죠.

심지어, 단 20분 만에 프로토타입을 구현하였습니다.

(그 20분도 달리는 기차 안에서의 시간이었습니다.)

 

 

 

 

구현과정뿐 아니라, 결과물에 대해서도 GPTs가 한수 앞섰습니다.

  • 단순 image captioning이 아닌, 사진의 맥락을 이해하고 해시태그를 생성함
  • 출력 형태물이 일관적 → 서비스 배포 시 용이(후처리가 안정적이거든요!)

이러한 GPTs 저게 큰 패러다임의 전환을 가져다주었습니다.

마무리

새로운 기술을 가장 잘 이해하는 방법은, 직접 사용해 보는 것입니다.

기회가 된다면 여러분들의 과거 프로젝트를 GPTs로 새로 리빌딩해보며, 프로젝트를 위한 새로운 구현력을 얻어가셨으면 좋겠습니다.

 

긴 글 읽어주셔서 감사합니다!