본문 바로가기
파이썬

제미나이 Gemini ai API 강의 #001. by 파이썬 & 구글 클라우드

by 진심블로그 2024. 3. 4.

안녕하세요. 파이신입니다.

 

구글의  제미나이 AI의 API 강의, 그 첫 번째입니다.

앞으로 본 강의를 순서대로 따라 하면서 제미나이 앱을 만드는 기회가 되기 바랍니다.

 

- 본 글은 파이썬 중급자 이상이 읽기 적합합니다.

 

우선,

openAI의 chatGPT 3.5와 google의 gemini 1.0, gemini 울트라의 사용비교를 말하자면,

'제미나이가 좋다' 입니다.

 

최근에는 AI의 성능을 비교할 때 LLM뿐만 아니라 이미지생성등의 발전분야까지 함께

평가하고 있지만, 자연어 처리 부분만 놓고 본다면,

일반인이 사용할 때도 제미나이가 나은 성능을 보여주고 있고,

프로그래머가 API를 활용할 때도 더 나은 성능을 보여 줍니다.

 

제미나이가 chatGpt보다 보다 익숙한 한국어 결과물을 내어 주는 것도

제미나이가 chatGPT보다 나은 부분 중의 하나입니다.

물론 결과물의 '수준'을 떠나서, 결과물의 한국어 완성도만 놓고 본다면,

네이버의 클로바X(Clova X)가 뛰어나기는 합니다.

 

본 블로그에서는 openAI의 chatGPT, 구글의 Gemini, 네이버의 Clova X의 API를

모두 다룰 예정입니다.

 

어떤 AI를 선택할지는 프로그래머의 몫입니다.

모든 AI를 먼저 UX차원에서 먼저 경험해 보고, 그 다음에 API를 선택해도 됩니다.

 

다만, 현존하는 대부분의 AI API를 경험해 본 결과,

일반 사용자에게 제공하는 결과물과 API를 통해 만들어지는 결과물에는 차이가

있습니다. 

LLM에서의 GPT, 즉 Generative, 매번 생성되는 것이기에 차이가 있다는 뜻이 아니라,

결과물의 수준에서 차이가 있습니다.

API를 사용할 때 AI모델이 일반 사용자의 그것과 동일하다고는 하지만,

분명히 차이가 있습니다.

이 부분은 프로그램을 만들다 보면 자연스럽게 느껴지는 부분입니다.

 

제미나이는 현재 1.5를 발표한 상태이고, 일반에게 공개하기 전의 '사전등록'을

받고 있는 상태입니다. 당연히 API도 제미나이 1.0을 기준으로 합니다.

 

제미나이 울트라는, 1.0과 1.5 사이에 발표된, 지금은 딱히 이용하는 사람도 없고

우리도 이용할 필요가 없기에 다루지 않습니다.

 

이제 제미나이 AI API를 시작해 보겠습니다.

우리가 다룰 제미나이 API는 정확하게는 Gemini 1.0 Pro API입니다.

 

일반인이 사용하는 제미나이는 다음의 주소에서 사용합니다.

 

우리는 다음의 주소에서 시작합니다.

 

구글의 AI Studio에서 시작합니다.

 

로그인 과정을 거치고 나면 구글의 AI Studio가 나타납니다.

 

여기에서 먼저 시작하는 이유는,

우선 본 화면에서 프로그래머의 시선으로 사용해 봐야 하기 때문입니다.

 

지금 당장 동작하는 코드를 만드는 것보다,

내가 앞으로 사용하게 될 '제품'을 먼저 충분히 알아보고 기능을 이해하고 있어야만

API에서 제공하는 기능과 옵션에 대해 빠르게 적응할 수 있습니다.

 

화면의 모든 '기능', 설명이 아닌 '기능'들을 충분히 이것저것 사용해 보고,

코딩으로 들어가겠습니다.

 

화면에 보이는 몇 가지 중요한 내용만 체크해 봅니다.

 

대한민국의 국민은 몇 명이야?라는 질문에 2023년 1월 기준 약 5,126만 명이라고 답합니다.

Gemini 1.0 Pro는 2023년 1월까지의 데이터를 보여주고 있습니다.

이것은 chatGTP4가 2023년 1월까지 학습되었다고 말하는 것과 동일한 수준의 내용입니다.

다만, 실제로 사용해 보면, 2개의 차이가 분명히 있습니다. 앞으로 하나 하나 알아보겠습니다.

 

메인 화면 좌측 상단에 있는 화면에서는 Get API Key가 프로그래머들에게 중요합니다.

 

여기서 API 키를 발급받습니다.

발급받은 키는 여러분의 프로그램에 필수값으로 입력되어야 합니다.

발급받은 키를 메모장에 복사해 두거나 프로그램 안에 상수값으로 저장해 두세요.

 

 

- 모델은 Gemini 1.0 Pro를 선택합니다. 옵션 중에 있는 tuning은 별 의미가 없습니다.

 

- Temperatue는 0.9가 기본으로 세팅됩니다.

1에 가까울수록 AI가 상상력을 발휘해 글을 지어냅니다.

(할루시네이션을 고의로 만들려면 설정을 1로 해놓고, 황당한 질문을 해보면 됩니다.)

0에 가까울수록 사실(이라고 쓰지만, 수집된 데이터에 근거)에 가까운 답을 합니다.

 

- stop sequence는 복합적이기는 하지만, '생성'을 멈추는 조건을 설정합니다.

출력 글자수가 정해진 한도를 넘어섰다거나 하는 등의 내용입니다.

코딩에서 다뤄봅니다.

 

- Safety settings는 결과물에 나타나는 표현의 수위를 나타냅니다.

성적인 표현, 폭력적인 표현등의 수위를 낮추거나 높입니다.

정확하게는, 결과물을 보여줄 때 정해진 조건에 따라 텍스트를 걸러냅니다.

 

-Top K 와 Top P는, 복잡한 내용으로, 경험으로 비추어 볼 때,

프로그래머가 실제 코딩에서 사용할 일은 거의 없을 것 같지만, 개념정도만 말하자면,

 

AI의 기본이 된다고도 할 수 있는 심층신경망(보통 신경망이라고 하는,

인간의 뇌와 흡사하다 내지는 그것을 흉내 내고자 하는)을 통해서 만들어지는

거대언어모델은 계속 발전하고 있지만,

실제 결과물에서는 이상하게도 NTD현상(신경망 텍스트 퇴화라고 일컬어지는,

결과물의 수준이 더 떨어지는 현상)이 자주 일어난다는 겁니다.

 

AI를 만든 사람도 AI가 어떻게 동작하는지 모른다라고 할 때 말하는 것이,

바로 이런 현상과 관련이 있습니다.

 

인간이 아직 인간의 뇌를 알지 못하듯이,

자신들이 만든 AI의 신경망에 대해서 자신들도 모르겠다는 겁니다.

 

이것을 해결하고자 Nucleus Sampling(핵샘플링)이라는 것을 통해 LLM에서 나타나는

텍스트들의 분포에서 질문에 가장 근접하는 분포도를 만들어(또는 분포도에서)

그것을 결과물로 보여주겠다는 겁니다.

 

Top K와 Top P는 위의 분포도에서 상위 결과물을 추출해 낼 때(샘플링) 사용하는

최대 토큰수와 그에 대응하는 최대 누적확률을 정합니다.

 

즉, 자신들도 결과물에 확신이 없으니(프롬프트 자체의 문제가 더 많습니다)

일반사용자와는 다른 목적으로 AI를 사용하는 프로그래머들에게 이런 저런 방법으로

자기에 맞는 결과물을 만들어 볼 수 있는 옵션을 추가로 제공한다는 뜻입니다.

 

프로그래머(와 그 고용주)입장에서는 좋은 옵션입니다.

 

이해하지 못한 상태에서 숫자를 변경하면 예상밖의 결과물을 만나게 됩니다.

그런다고 컴퓨터가 고장 나는 것은 아니니,

꼭 숫자를 바꿔가면서 실행해 보기 바랍니다.

API코딩에서도 몇 차례 시도해 볼 것이니, '감'을 잡아 보세요.

 

 

화면 좌측 하단에는 위와 같은 Vertex AI on Google Cloud가 보입니다.

VertexAI는,

텍스트기반의 AI사용을 넘어서서 이미지 등을 다루는 멀티모달 AI,

데이터과학등 개별수요에 특화된 AI를 Google cloud기반으로,

종합적으로 제공하는 서비스입니다.

개인보다는 기업사용자를 위한 서비스라고 생각하면 됩니다.

물론 개인도 사용할 수 있습니다.

 

제미나이 API를 사용할 때, 구글클라우드를 빼놓고 사용할 수 없습니다.

 

위의 모든 내용은 앞으로 다룰 제미나이 API에서 모두 사용이 가능합니다.

 

다음 시간에는 구글 클라우드에 관해 필수 부분만 설명하겠습니다.