공지
Desci 관련 소식 및 뉴스 공유

일반

크리스마스에 AI x 정치 서비스 만든 이야기

남자 셋이서 크리스마스 이브, 크리스마스 당일, 설 연휴 이틀 동안 뭐 만든 이야기

2024.02.10 | 조회 470 |
2
|

플레이버 by 모예드

취향 기르는 훈련하기

1. 들어가며

이 글은 ‘정치보여줘닷컴’이라는 사이드 프로젝트에 대한 것이다. 해당 프로젝트는 은성준, 이수찬, 박찬우 총 3명이 크리스마스 이브, 크리스마스 당일, 설연휴 이틀을 포함한 총 4일을 투자하였으며, 전체 코드는 해당 깃허브에서 확인할 수 있다.

2. 왜 만들었는가?

모든 것은 나의 유튜브 알고리즘에 정치 컨텐츠가 등장하면서 시작되었다.

작년 12월부터 정치적 현안들에 대해서 관심을 갖기 시작하여서 자연스럽게 여러 방송사에서 전문가들이나 정치인들을 불러서 진행하는 정치 컨텐츠들을 팟캐스트 형식으로 듣게 되었다. 그러다보니 점자 내(여기도) 알고리즘은 잠식당하기 시작하였는데, 나는 1) 방송사를 제외하고도 굉장히 다양한 정치 뉴미디어 채널과 컨텐츠들이 존재하고, 2) 그 컨텐츠들의 조회수들에 놀랄 수 밖에 없었다. 여의도 정치가 장년층의 ‘마블 유니버스’라는 것은 어렴풋이 알 수 있었지만, 그 열기는 예상보다도 더 뜨거웠다.

당시 내가 느낀 니즈는 다음과 같았다.

  • 밸런스 있는 정보 습득을 위한 시간 부족: 각 이슈에 대해서 다양한 정치인들의 입장과 논리를 들어보고 싶은데, 1) 투자할 수 있는 나의 시간은 한정되어 있고, 2) 알고리즘은 나를 자꾸 한 쪽으로 몰려고 하기 때문에 현실적으로 이는 쉽지 않다.
  • 의미있는 정책에 대한 논의 부족: 상대적으로 소비하기에 좋은 정치적 가십이 아닌, 실제로 유의미한 정책들에 전문가 및 정치인들의 의견이나 토론 등은 알고리즘에 밀려서인지, 상대적으로 찾아보기 힘들었다.

당시에 내가 가졌던 니즈와 별개로, 우리는 AI를 이용한 간단한 프로젝트를 해보고자하는 욕구가 있었다. 이전에 인터체인 해커톤을 함꼐 나가면서 MVP를 만들어보는 과정에서 많은 것을 배웠던 경험이 있기에 계속해서 우리끼리 AI를 이용한 사이드 프로젝트를 시간될 때 많이 만들어보자는 얘기가 나왔다.

마지막으로, 우리 모두 크리스마스에 할 것이 없었다. 원래 우리는 크리스마스 이브와 크리스마스 당일 안에 이를 완성하는 것이 목표였지만, 끝내지 못하여서 설 연휴 이틀을 추가로 사용하게 되었다.

3. 그래서 뭔데?

3.1 개요

정치보여줘닷컴은 유튜브 상의 다양한 정치 인터뷰와 토론 영상들을 분석하여서 각 안건별로 정치인과 전문가들의 의견을 한 눈에 보기 쉽게 모아서 보여주는 서비스이다. 서버를 실행하면 지정한 주기(디폴트: 24시간)마다, 유저가 명시한 플레이리스트에 새롭게 업데이트된 영상을 받아서 해당 영상에 등장한 화자들의 의견을 추출한다.

해당 서비스를 사용해서 실제로 어떤 식으로 활용할 수 있는지 보여주기 위해서 직접 PoC나 v0 격의 간단한 웹 어플리케이션을 제작하였는데, 현재 ‘선거제도 개편’, ‘의사 증원’, ‘노인 지하철 무임승차’라는 3가지 현안에 대한 다양한 사람들의 의견을 보여주고 있다. 예를 들어, 선거제도 개편의 경우, 해당 플레이리스트에 관련 컨텐츠들을 업데이트하는 방식을 통하여 모았다.

3.2 구현 예시

터미널

배속으로 보여준 실제 작동 방식
배속으로 보여준 실제 작동 방식
결과값
결과값

PoC 웹사이트

해당 링크에서 직접 확인할 수 있다. 

다른 전문가들의 의견은 오른쪽으로 스와이프하여서 볼 수 있다. 

실제 작동 모습
실제 작동 모습

4. 어떻게 만들었는가?

4.1 프레임워크

4.2 사용한 API들

우리는 빠른 프로젝트 완성을 위하여 거인의 어꺠를 레버리지하는 방식을 사용해서 제작하였는데, 쉽게 얘기하면 그냥 기존에 존재하는 API들을 최대한 엮어서 사용하였다. 사용한 API들은 다음과 같다.

  •   구글의 YouTube Data API : 최근 24시간 내에 리스팅한 플레이리스트에서 새롭게 업데이트된 영상 URL을 받아오는데 사용
  •    하이퍼 클로바의 Object Storage API : 네이버 클라우드 플랫폼의 스토리지 관리 및 사용  
  •   하이퍼클로바의 CLOVA Speech API : 변환한 영상을 텍스트로 변환하는데 사용  
  •   OpenAI의 GPT4 API (gpt-4-1106-preview 모델) : 변환한 텍스트에서 각 화자들의 의견을 요약해서 추출하는데 사용

4.3 하이퍼클로바 관련

왜 Whisper가 아닌 CLOVA Speech인가?

솔직히 얘기하여서 명확한 이유가 있었던 것은 아니었고, 이러한 의사결정의 기저에는 다음과 같은 이유들이 존재하였다.

  • 일단 두 모델 중에서 어느 것이 더 우월한지 명확하게 찾지 못하였다. 하지만, 아무래도 한국어 영상을 변환하는 것이다보니, 하이퍼클로바의 성능도 충분히 좋을 것이라고 생각하였다.
  • 구글에 검색해보니 Whisper를 사용한 예시에 비해서 CLOVA Speech를 사용한 예시는 매우 적었다. 그러다보니, 왠지 한번 CLOVA Speech를 사용해보고 싶었다.

또한, 하이퍼클로바의 경우, 신규 개발자들을 대상으로 무료 100,000 크레딧을 제공하여서 우리처럼 작은 프로젝트에 사용하기에 적합하였다.

그렇다면, 텍스트 추출에서는 왜 GPT API를 사용하였는가?

일단, 해당 프로젝트를 진행한 시점에서 하이퍼클로바의 서비스 중에서 프롬프팅을 통해서 원하는 텍스트를 추출할 수 있는 것을 찾지 못하였다. 해당 글을 작성하는 시점인 2024년 2월을 기준으로 이를 지원하는 서비스로 보이는 [CLOVA Studio](https://www.ncloud.com/product/aiService/clovaStudio)가 클로즈드 베타 중인 것으로 보인다.

CLOVA Speech 사용에서 불편하였던 점

CLOVA Speech 장문 인식 API 문서를 보면, 크게 3가지 방법으로 API를 사용할 수 있는데, 이 중에서 가장 직관적인 방법이 ‘object storage 파일 url로 인식 요청’ 방법이다. 문제는, 해당 방식을 사용하기 위해서는 Object Storage 경로에 접근하기 위한 Key인 ‘dataKey’라는 것을 알아야하는데, 아무리 문서를 읽어봐도, 코드 결과값을 봐도, 이 dataKey를 알 수 없었다. 결국 다른 방식을 통하여 API를 사용하였지만, 이 dataKey에 대한 설명을 문서에 추가해준다면 훨씬 더 사용하기 용이할 것 같다. 우리 외에도 같은 문제를 겪는 사람들이 많은 것 같으니, 주변에 하이퍼클로바에서 일하시는 분이 계신다면 전달을 부탁드린다.

5. 부족한 부분들

5.1 영상 선정 기준

원래의 계획은 각 안건과 관련된 최대한 다양한 영상들을 선정하는 것이였는데, 여러가지 현실적인 이유로 이는 쉽지 않다는 것을 알 수 있었다.

  • 일단, 특정 영상들은 한 영상에서 여러 현안은 다루는 경우가 있고, 이러한 경우에는 프롬프트를 통해서 각 안건에 대한 화자의 의견을 추출하는 것이 쉽지 않았다. 따라서, 각 안건에 따라서 선정할 수 있는 영상의 한계가 명확하였다.
  • 어떠한 정치 채널까지 포함시킬지에 대한 기준이 부족하였다. 해당 PoC에서는 주로, SBS, YTN, KBS, MBC 등과 같은 방송사들을 위주로 선정하였는데, 진정한 균형과 의견의 다양성을 위해선 더 다양한 채널의 컨텐츠들도 포함시키면 좋을 것 같다. 이때, 어떠한 기준으로 채널을 선정할지에 대한 기준이 중요할 것 같다.

5.2 비용

우리는 해당 서비스를 상용화시킬 생각은 없었지만, 만약 상용화한다고 가정하였을 때, API 사용에 따른 비용을 고려하지 않을 수가 없다.

  예시를 위해서 26분 25초의 길이에 해당하는 다음 영상을 해당 서비스를 통해서 처리한다고 가정하자.  

  •   Object Storage API의 경우, 데이터 저장량, 네트워크 전송량, API 호출 수 등을 고려하여서 월당 비용을 청구하는데, 요금 계산기를 사용해보면, 해당 영상을 인하여 약 20원의 비용이 발생한다고 볼 수 있다.
  •  CLOVA Speech API의 경우,15초당 4원의 비용을 청구하기 떄문에, 해당 영상의 경우 약 528원의 비용이 발생한다.
  • GPT-4 API의 경우, 1000 토큰당 0.01$의 비용을 청구하고, 해당 영상은 12000 토큰을 필요로 하기 때문에, 약 160원의 비용이 발생한다. 

따라서, 한 영상을 처리하는데, 약 700~800원이 든다고 볼 수 있고, 이는 상용화시키기에는 큰 비용이라고 볼 수 있다.

5.3 영상 추가 메커니즘

현재 새롭게 영상을 반영하기 위해선 수동으로 플레이리스트에 영상을 직접 추가해줘야 한다. 원래 계획 한 것은 각 현안 별로 하나의 공용 플레이리스트를 만들고, 누구나 해당 현안과 관련된 인터뷰나 토론 컨텐츠를 발견하면, 그것을 해당 플레이리스트에 추가하는 방향을 생각하였다. 즉, 어떻게 보면, 유튜브 플레이리스트를 하나의 공용 데이터베이스처럼 사용하는 것이다. 하지만, 현실적으로 유튜브 플레이리스트의 경우, 명시적으로 공동 작업자로 추가한 사람만 해당 플레이리스트에 추가할 수 있어서 기존에 계획하였던 방식이 불가능하다는 사실을 만들면서 알게 되었다.

따라서,현재 PoC 단계에서 벗어나서 더 다양한 현안들에 대한 다양한 의견들을 모으기 위해선 더 나은 영상 추가 메커니즘이 필요할 것으로 보인다.

6. 추가되었으면 하는 기능들

  • 업보트/다운보트 기능: 각 이슈에 대한 정치인 및 전문가들의 의견에 유저들이 업보트/다운보트를 할 수 있는 기능을 넣는다면, 누구의 의견이 현재 대중에게 가장 많은 지지를 받고 있는지 한 눈에 알 수 있을 것 같다.
  • 원 클릭 청원 메일 기능: 각 이슈에 대한 정치인 및 전문가들의 의견 옆에 메일 버튼을 추가하여서, 해당 버튼을 누르면 해당 정치인 및 전문가에게 청원 메일을 쓸 수 있는 기능을 넣으면 좋을 것 같다. 이때, AI를 통해서 청원 메일의 본문은 자동화시킬 수 있을 것 같다.

후기

내년 미국 대선에서 AI의 역할은 안 좋은 쪽으로 매우 중요해질 것으로 보인다. 하지만, 나는 우리 정치보여줘닷컴과 같이 간단한 AI 기술이 정보의 양극화를 막고, 더 많은 사람들이 현안에 관심을 가질 수 있도록 진입장벽을 낮추는데 도움을 줄 수 있다고 생각한다. 올해 총선이 얼마 남지 않은 만큼, 개인적으로 네이버 포털 탭 중 하나로, 우리 서비스를 도입하면 어떨까 싶다(네이버 연락주세요). 하이퍼클로바의 성능도 뽐낼 겸, 잃어버린 정보 제공 플랫폼으로써의 위상도 되찾고 좋지 않은가? 나는 해당 서비스의 사업성도 나름 있다고 본다. 물론, 비용적으로 봤을 떄 경제성이 없다고 볼 수도 있지만, 늘어나는 디지털 네이티브 장년층을 타겟으로 한, 과장하자면 '노인정 바이럴'이 가능한 서비스가 바로 정치 서비스가 아닐까 싶다. 정치 유튜브 컨텐츠의 조회수와 슈퍼챗 통계를 보면, 이미 pmf는 존재하고도 남는다. 

친구들과 해커톤과 같이 작은 프로젝트를 만든 것이 지난 Fully Onchain 미연시 게임에 이어서 벌써 두 번째인데, 소규모 프로젝트만의 중독성이 분명히 있다. 물론, 4일이란 시간이 짧기 때문에, 앞서 언급한 것처럼, 부족한 부분도 많고, 추가하고 싶지만 못한 기능들도 많다. 하지만, 나처럼, 성격이 급하고, 무언가를 빠르고 간단하게 만들어보고 싶은 사람에게 지금과 같이 좋은 때는 또 없을 것이다. 그리고 우리는 벌써, 다음 소규모 프로젝트의 아이디어들을 떠올리고 있다. 언제가 될지는 모르겠지만, 그때는 더 신박하고, 더 뜬금없는 것을 만든 후기 글로 찾아뵐 것이다.

마지막으로 함께 4일동안 엄청나게 고생해준 이수찬, 박찬우에게 감사의 말을 전한다. 

 

 

다가올 뉴스레터가 궁금하신가요?

지금 구독해서 새로운 레터를 받아보세요

✉️

이번 뉴스레터 어떠셨나요?

플레이버 by 모예드 님에게 ☕️ 커피와 ✉️ 쪽지를 보내보세요!

댓글 2개

의견을 남겨주세요

확인
  • timelearner

    0
    10 months 전

    비공개 댓글 입니다. (메일러와 댓글을 남긴이만 볼 수 있어요)

    ㄴ 답글 (1)
© 2024 플레이버 by 모예드

취향 기르는 훈련하기

뉴스레터 문의samoyedali@gmail.com

자주 묻는 질문 서비스 소개서 오류 및 기능 관련 제보

서비스 이용 문의admin@team.maily.so

메일리 사업자 정보

메일리 (대표자: 이한결) | 사업자번호: 717-47-00705 | 서울 서초구 강남대로53길 8, 8층 11-7호

이용약관 | 개인정보처리방침 | 정기결제 이용약관