1. Google gemini 소개
1.1 Gemini 개요
제미나이는 구글 AI에서 개발한 멀티모달 기반 대규모 언어 모델입니다.
텍스트, 이미지, 오디오, 동영상, 코드 등 다양한 형태의 정보를 이해하고 처리할 수 있는 능력을 가지고 있습니다
* Gemini 1.0은 3가지 모델로 제공됩니다.
- Gemini Ultra - 매우 복잡한 작업을 위한 가장 크고 성능이 뛰어난 모델
- Gemini Pro - 다양한 작업에 걸쳐 확장할 수 있는 모델
- Gemini Nano - 온디바이스 작업에 가장 효율적인 모델
Gemini 1.0 성능 벤치 마크 결과는 다음과 같다고 구글에서 발표했습니다. 수치상으로는 GPT-4를 앞지르는 것으로 보이지만
수치와 달리 실제 사용자 평가는 그다지 좋지 못했습니다.
구글에서 발표한 gemini에 대한 소개를 요약해서 옮기자면 아래와 같습니다.
지금까지 멀티모달 모델을 만드는 표준 접근 방식은 서로 다른 모달리티에 대해 별도의 구성 요소를 학습시킨 다음 이를 서로 연결하여 일부 기능을 대략적으로 모방하는 것이었지만 gemini는 처음부터 다양한 모달리티에 대해 사전 학습된 기본 멀티모달로 설계했습니다.
*정교한 추론
Gemini 1.0의 정교한 멀티모달 추론 기능은 복잡한 서면 및 시각적 정보를 이해하는 데 도움을 줍니다.
따라서 방대한 양의 데이터 속에서 식별하기 어려운 지식을 찾아내는 데 탁월한 능력을 발휘합니다.
*텍스트, 이미지, 오디오 등 이해
Gemini 1.0은 텍스트, 이미지, 오디오 등을 동시에 인식하고 이해하도록 학습되어 따라서 수학이나 물리와 같은 복잡한 과목의 추론을 설명하는 데 특히 능숙합니다.
*고급 코딩
Gemini의 첫 번째 버전은 Python, Java, C++, Go 등 세계에서 가장 인기 있는 프로그래밍 언어를 이해하고 설명하며 고품질 코드를 생성할 수 있습니다.
*책임과 안전을 핵심으로 구축
Google의 AI 원칙과 제품 전반에 걸친 강력한 안전 정책을 기반으로 Gemini의 복합적인 기능을 고려한 새로운 보호 기능을 추가하고 있습니다.
개발의 각 단계에서 잠재적인 위험을 고려하고 이를 테스트하고 완화하기 위해 노력하고 있습니다.
Gemini는 편향성 및 독성을 포함하여 지금까지 출시된 Google AI 모델 중 가장 포괄적인 안전성 평가를 거쳤습니다.
사이버 공격, 설득, 자율성과 같은 잠재적 위험 영역에 대한 새로운 연구를 수행했으며, Google Research의 업계 최고 수준의 적대적 테스트 기술을 적용하여 Gemini를 배포하기 전에 중요한 안전 문제를 식별하는 데 도움을 주고 있습니다.
1.2 Gemini 모델 개요
24년 4월 현재 gemini 1.5가 preview 된 상태입니다. 개발자 사이트에서 Google AI Studio를 이용하면 성능을 시험해볼수 있습니다.
현재 사이트에는 24년 5월 2일 부터 과금/오픈 예정이라고 쓰여 있습니다.
하지만 테스트를 해보니 API level에서는 아직 모델목록에 1.0 pro와 pro-vision만 사용가능한 것으로 보입니다.
다음은 모델 설명입니다.
1.3 gemini API 사용 해보기
1.3.1 API Key 준비 하기
Google AI Studio에서 생성 가능 합니다.
https://aistudio.google.com/app/apikey
구글 클라우드 프로젝트에 key를 연결하게 되어 있습니다.
없으면 기본적으로 Generative Language Client를 선택하도록 되어 있네요
지정 후 Create 하면 키가 생성됩니다.
이 키는 개발시 계속 사용하게 되므로 주의.
1.3.2 개발환경 준비
(1) 파이썬 설치
2024. 04월 현재 Python 3.9 이상 요구
> yum install python39-devel
(rocky 기준 설치)
(2) Google Python SDK for the Gemini API 패키지 설치
https://pypi.org/project/google-generativeai/
> pip3 install google-generativeai
>pip3 freeze |grep google
google-ai-generativelanguage==0.4.0
google-api-core==2.18.0
google-auth==2.29.0
google-generativeai==0.4.1
googleapis-common-protos==1.63.0
혹시 설치중 protobuf 패키지 버전이 너무 높아서 에러나면 5.0 이하로 재설치 해줄것
> pip3 install protobuf==4.25.3
(3) 환경 변수에 API Key 등록
리눅스 .bashrc 에 등록하면 매번 할 필요 없음,
외부 공개 안되도록 소스에 넣을때는 주의 할 것
.bashrc 파일에 생성된 key 값을 아래와 같이 추가하고 반영
> vi ~/.bashrc
export GOOGLE_API_KEY='your-api-key-here'
> source ~/.bashrc
소스에서는 아래처럼 하드코딩 해도 되지만 권장안함, 가능하면 환경 변수 사용할 것
OPENAI_API_KEY= your-api-key-here
# Or use `os.getenv('GOOGLE_API_KEY')` to fetch an environment variable.
GOOGLE_API_KEY=userdata.get('GOOGLE_API_KEY')
genai.configure(api_key=GOOGLE_API_KEY)
1.3.3 API 동작 시험 (API key 연동, 모델 목록보기)
(1) API 키 연동 확인
import google.generativeai as genai
import os
GOOGLE_API_KEY = os.getenv('GOOGLE_API_KEY')
genai.configure(api_key=GOOGLE_API_KEY)
print(genai)
혹시 이 단계에서 다음과 같은 에러가 나면 grpcio 설치할 것
No module named 'grpc'
File "/root/share/source/geminiAPI/00_api_check.py", line 1, in <module> import google.generativeai as genai ModuleNotFoundError: No module named 'grpc'
>pip3 install grpcio
Downloading grpcio-1.62.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (5.6 MB)
|████████████████████████████████| 5.6 MB 1.6 MB/s
Installing collected packages: grpcio
Successfully installed grpcio-1.62.1
(2) 사용가능한 모델 확인
list_models를 사용하여 사용 가능한 Gemini 모델을 확인
* gemini-pro: 텍스트 전용 프롬프트에 최적화
* gemini-pro-vision: 텍스트 및 이미지 프롬프트에 최적화
1.5는 아직 API 목록에서 표시안됨(5월2일 이후 예정)
import google.generativeai as genai
import os
GOOGLE_API_KEY = os.getenv('GOOGLE_API_KEY')
genai.configure(api_key=GOOGLE_API_KEY)
for m in genai.list_models():
if 'generateContent' in m.supported_generation_methods:
print(m.name)
다음처럼 6개의 모델이 현재 지원됩니다. (1.5는 유료)
models/gemini-1.0-pro
models/gemini-1.0-pro-001
models/gemini-1.0-pro-latest
models/gemini-1.0-pro-vision-latest
models/gemini-pro
models/gemini-pro-vision
여기까지 진행되면 사용준비가 끝난것입니다.
다음에는 실제 Text 모델과 Vision 모델을 호출하여 기능을 테스트해보도록 하겠습니다.
https://yongeekd01.tistory.com/180
https://yongeekd01.tistory.com/181
** 참고 :
https://ai.google.dev/docs?hl=ko
'IT > 개발' 카테고리의 다른 글
google gemini API vision 모델을 이용한 이미지 해석 기초(제미나이, gemini-pro-vision) (0) | 2024.04.04 |
---|---|
google gemini API text 모델을 이용한 개발 기초(제미나이, gemini-pro) (0) | 2024.04.04 |
youtube-dl을 사용해서 유투브 컨텐츠를 다운로드 해보자 (0) | 2024.03.20 |
youtube 컨텐츠 다운로드 하여 일부분만 저장하기(python, pytube, moviepy) (0) | 2024.03.20 |
파이썬으로 날자별로 생성되는 로그 파일 만들기(logging 모듈) (0) | 2024.03.14 |