회원가입을 하면 원하는 문장을
저장할 수 있어요!
다음
AWS 이용 중이라면 최대 700만 원 지원받으세요
최근 구글의 주가를 하루 만에 5%나 올린 빅이벤트가 있었습니다. 바로 구글의 멀티모달 생성형 AI 서비스 제미나이(Gemini)가 공개됐기 때문인데요. 이번 글에서는 제미나이의 성능이나 비즈니스적 관점보다는 개발자로서 제미나이를 개발에 어떻게 활용할 수 있을지, 직접 제미나이 API를 써보고 느낀 점을 공유하고자 합니다.
회원가입을 하면 원하는 문장을
저장할 수 있어요!
다음
회원가입을 하면
성장에 도움이 되는 콘텐츠를
스크랩할 수 있어요!
확인
최근 구글의 주가를 하루 만에 5%나 올린 빅이벤트가 있었습니다. 바로 구글의 멀티모달 생성형 AI 서비스 제미나이(Gemini)가 공개됐기 때문인데요. 이번 글에서는 제미나이의 성능이나 비즈니스적 관점보다는 개발자로서 제미나이를 개발에 어떻게 활용할 수 있을지, 직접 제미나이 API를 써보고 느낀 점을 공유하고자 합니다.
구글이 제미나이 API를 공개하기까지 채 일주일도 걸리지 않았는데요. 경쟁 모델인 ChatGPT에 비하면 매우 빠른 편입니다. (ChatGPT의 경우 AI 모델은 22년 11월에, API는 23년 3월에 공개되었습니다. 참고: OpenAI 블로그)
이뿐만 아니라 주요 프로그래밍 언어로 파이썬(Python), 고(GO), 노드(Node.js), 자바스크립트(Web: Javascript SDK), 그리고 모바일 앱 개발자를 위한 스위프트(Swift)와 안드로이드(Android: Kotlin & Java)까지 사용 방법을 문서로 제공했습니다.
아쉽게도 저는 R을 사용하고 있어서 준비된 문서는 없었지만, REST API를 제공하므로 이를 다듬어서 사용해 보았습니다.
제미나이 API 발급은 먼저 구글 로그인 후, Google AI Studio에서 별도 비용 없이 이용할 수 있습니다. 아직 프리뷰 단계이기 때문에 사용량이 많은 프로덕션 레벨의 사용은 어려울 수 있지만, 개인이 사용하기에는 충분합니다.
발급 직후 터미널을 실행하고, API 키를 대체한 공식 문서의 예시 코드를 입력하여 작동을 확인할 수 있습니다.
공식 문서에 따르면 글에서 다루는 v1 beta API에서는 다양한 기능을 제공하지만, 저는 텍스트를 입력하여 글을 만들어내는 모델(gemini-pro)과 이미지와 텍스트를 같이 입력하여 글을 만들어내는 모델(gemini-pro-vison)을 사용했습니다.
제가 사용하는 R의 경우 언어의 주 역할이 데이터를 입력받고 통계 계산한 결과를 만들어내는 것인데요. 샤이니(shiny)라는 프레임워크를 사용하면 웹 애플리케이션을 쉽게 만들어 낼 수 있습니다. 또는 이전에 글로 다뤘던파이썬 스트림릿(streamlit)을 사용하는 것도 좋은 방법입니다.
R로 웹 애플리케이션을 만들기 전, 간단하게 키노트로 그려본 전반적인 그림은 이렇습니다.
그리고 실제 R을 활용해 웹 애플리케이션으로 만든 결과는 다음과 같습니다. (이미지를 올리기 전의 모습입니다)
이제 본격적으로 API를 위한 함수를 만들 차례입니다. 이 웹 애플리케이션에서는 한 번의 작동(Ask!)에 POST 방식의 API를 사용할 것이고, 이때 입력값으로는 모델 쿼리(URL)와 API키, 입력 콘텐츠가 필요합니다.
아래 코드는 위 REST API 코드를 R로 바꾼 것입니다.
이를 좀 더 다듬어서 “gemini”라는 함수로 만들고 실행한 결과는 다음과 같습니다.
gemini pro의 API 사용을 확인했으니, 다음으로는 본래 목적이었던 이미지와 텍스트를 같이 입력하는 gemini-pro-vision API를 사용해 보겠습니다.
공식 문서에 따르면 이미지는 “inline_data”라는 이름으로 사용하며, 동시에 이미지를 전달하기 위해 Base64 인코딩 이후 사용해야 합니다. 마찬가지로 다듬어서 “gemini_image”라는 함수로 만들어 보겠습니다.
여기서 저는 요즘IT의 마스코트 ‘요고’ 캐릭터를 이미지로 업로드한 후, 제미나이 API를 사용했습니다. 결과는 다음과 같습니다.
이제 아까 만들어 둔 웹 애플리케이션에 gemini 함수를 심고 사용한 결과를 보여드리겠습니다. (gemini와 gemini_image를 포함한 R 패키지는 제 깃허브에서 확인할 수 있습니다)
다음으로 최근 요즘IT에 발행된 ‘2023년 회고와 2024년 웹 개발 트렌드 전망’의 그래프도 사용해 보았습니다.
결과적으로 처음 구상했던 웹 애플리케이션을 몇 시간 만에 빠르게 만들 수 있었는데요. 애플리케이션에서 제미나이 API를 사용해 그래프를 해석하는 것 외에도 추가 맥락이 필요한 웹 어셈블리에 대해 설명해주는 것을 확인할 수 있었습니다. (이 웹 애플리케이션 또한 R에서 웹 어셈블리로 만들 수 있습니다)
또한 이번 글에선 다루지 않았지만, 제미나이 API에서 사용자와 AI가 대화하는 채팅(멀티턴 대화), 텍스트 임베딩 기능 또한 제공하고 있습니다.
이렇게 여러 기능을 제공하는 제미나이는 구글에서 먼저 공개한 생성형 AI ‘바드’에도 적용되었는데요. 제미나이 API를 쓰거나, 바드를 사용하는 두 가지 방법 모두 거의 동일한 수준의 결과를 만들어낼 수 있습니다.
그렇다면 제미나이 API와 제미나이가 업데이트된 바드 사용에는 어떤 차이점이 있을까요? 두 서비스를 비교해 보니 다음 4가지 정도로 추려졌습니다.
위 내용을 정리해 보면 ‘사용 대상’에 따라 차이점이 생기는데요. 개인이 사용하기엔 바드로도 충분하지만, AI 스타트업처럼 서비스를 만들어 제공하기 위한 목적으로는 제미나이 API를 사용하는 것이 좋습니다.
지금까지 R에서 간단하게 제미나이 API를 활용해 보았는데요. 실제로 웹 애플리케이션을 만들어본 결과 개인이 작업하기엔 무리가 없었습니다. 다만 아직 초창기 서비스인만큼 규모가 큰 제품에서는 어떻게 활용할 수 있을지 좀 더 고민이 필요할 것 같습니다. 이미 구글은 제미나이가 성능 면에서 경쟁 LLM보다 우위에 있다고 발표하기도 했는데요. 사실 모델 자체의 퍼포먼스만큼이나 사용자의 프롬프트가 큰 영향을 줄 것이라 생각합니다.
제미나이로 시작된 멀티모달 생성형 AI가 앞으로 어떤 혁신적인 서비스로 등장하게 될지 기대해 봐도 좋겠습니다.
요즘IT의 모든 콘텐츠는 저작권법의 보호를 받는 바, 무단 전재와 복사, 배포 등을 금합니다.