이 페이지에서는 Microsoft Azure OpenAI에서 Vertex AI Gemini API로 마이그레이션하는 데 필요한 단계를 설명합니다.
Gemini API는 Google Cloud 콘솔을 사용하여 생성형 모델을 만들고 학습시킬 수 있게 해주는 완전 관리형 클라우드 기반 서비스입니다. 챗봇, 콘텐츠 생성기, 광고 소재 도구를 비롯한 다양한 애플리케이션을 만드는 데 사용할 수 있는 대규모 언어 모델(LLM)에 대한 액세스를 제공합니다.
기본 요건
Microsoft Azure OpenAI에서 Vertex AI Gemini API로 OpenAI를 마이그레이션하려면 먼저 Google Cloud 프로젝트와 개발 환경을 만들어야 합니다. 자세한 내용은 Google Cloud에서 설정 시작하기를 참조하세요.
Gemini API로 마이그레이션
다음 주제를 사용하여 Microsoft Azure의 OpenAI 프로젝트에서 Gemini API로 마이그레이션하는 방법을 알아봅니다.
동등한 Gemini API 파라미터 사용
다음은 몇 가지 일반적인 Azure OpenAI 매개변수와 Gemini API의 해당 매개변수입니다.
OpenAI 파라미터 | Gemini API 파라미터 | 설명 | 유효한 값 |
prompt |
prompt |
프롬프트는 응답을 받기 위해 언어 모델에 제출되는 자연어 요청입니다. 프롬프트에는 완료하거나 계속할 모델에 대한 질문, 안내, 상황별 정보, 예시, 텍스트가 포함될 수 있습니다. | 텍스트 |
temperature |
temperature |
온도(temperature)는 응답 생성 중 샘플링에 사용되며 topP 및 topK 가 적용될 때 발생합니다. 강도(temperature)는 토큰 선택의 무작위성 수준을 제어합니다.
강도(temperature)가 낮을수록 자유롭거나 창의적인 답변과 거리가 먼 응답이 필요한 프롬프트에 적합하고, 강도(temperature)가 높을수록 보다 다양하거나 창의적인 결과로 이어질 수 있습니다. 강도(temperature)가 0 이면 확률이 가장 높은 토큰이 항상 선택됩니다. 이 경우 특정 프롬프트에 대한 응답은 대부분 확정적이지만 여전히 약간의 변형이 가능합니다.
모델이 너무 일반적이거나, 너무 짧은 응답을 반환하거나 모델이 대체 응답을 제공할 경우에는 강도를 높여보세요. |
0.0 –1.0
|
max_tokens |
maxOutputTokens |
응답에서 생성될 수 있는 토큰의 최대 개수입니다. 토큰은 약 4자(영문 기준)입니다. 토큰 100개는 단어 약 60~80개에 해당합니다.
응답이 짧을수록 낮은 값을 지정하고 잠재적으로 응답이 길면 높은 값을 지정합니다. |
1-8192 (OpenAI)
|
해당 없음 | topK |
Top-K는 모델이 출력용 토큰을 선택하는 방식을 변경합니다. Top-K가 1 이면 선택된 토큰이 모델의 어휘에 포함된 모든 토큰 중에서 가장 확률이 높다는 의미입니다(그리디 디코딩이라고도 함). 반면에 Top-K가 3 이면 강도(temperature)를 사용하여 가장 확률이 높은 3개 토큰 중에서 다음 토큰이 선택된다는 의미입니다.
각 토큰 선택 단계에서 확률이 가장 높은 Top-K 토큰이 샘플링됩니다. 그런 다음 Top-P를 기준으로 토큰을 추가로 필터링하고 강도(temperature) 샘플링을 사용하여 최종 토큰을 선택합니다. 임의성이 낮은 응답에 낮은 값을 지정하고 임의성이 높은 응답에 높은 값을 지정합니다. |
1 –40
|
top_p |
topP |
Top-P는 모델이 출력용 토큰을 선택하는 방식을 변경합니다. 토큰은 확률의 합이 Top-P 값과 같아질 때까지 확률이 가장 높은 것부터(Top-K 참조) 가장 낮은 것까지 선택됩니다. 예를 들어 토큰 A, B, C의 확률이 0.3, 0.2, 0.1이고 Top-P 값이 0.5 이면 모델이 강도(temperature)를 사용해서 다음 토큰으로 A 또는 B를 선택하고 C는 후보에서 제외합니다.
임의성이 낮은 응답에 낮은 값을 지정하고 임의성이 높은 응답에 높은 값을 지정합니다. |
0.0 –1.0
|
stop |
stop_sequences |
중지 시퀀스는 모델에서 응답이 발생할 경우 응답 생성을 중지하는 일련의 문자(공백 포함)입니다. 이 시퀀스는 응답에 포함되지 않습니다. 최대 5개의 중지 시퀀스를 추가할 수 있습니다. | 배열의 중지 시퀀스입니다(예: ["###"] ).
|
동등한 Gemini API 모델 사용
다음 표에서는 사용 가능한 기반 모델을 설명합니다.
유형 | 설명 | OpenAI 엔드포인트 | Gemini API LLM 엔드포인트 |
텍스트 | 자연어 안내를 따르도록 미세 조정되며 다양한 언어 태스크에 적합합니다. | gpt-3.5-turbo 또는 gpt-4
|
gemini-1.0-pro
|
채팅 | 멀티턴 대화 사용 사례에 맞게 미세 조정됩니다. | gpt-3.5-turbo 또는 gpt-4
|
gemini-1.0-pro
|
Vertex AI Gemini API 설치, 가져오기, 인증
Vertex AI SDK for Python을 사용하여 Vertex AI Gemini API 설치, 가져오기, 인증을 수행합니다. 다음은 Vertex AI SDK for Python 및 Azure OpenAI에서 동등한 메서드를 보여줍니다.
Vertex AI Gemini API 설치
Azure OpenAI
$ pip install --upgrade openai
Vertex AI Gemini API
$ pip install google-cloud-aiplatform
Vertex AI Gemini API 가져오기
Azure OpenAI
import openai
Vertex AI Gemini API
from vertexai.preview.generative_models import GenerativeModel
Vertex AI Gemini API 인증
Azure OpenAI
openai.api_key = os.getenv("OPENAI_API_KEY")
Vertex AI Gemini API
from google.colab import auth as google_auth
google_auth.authenticate_user()
Vertex AI Gemini API와 Azure 비교 및 샘플 코드
Vertex AI SDK for Python으로 텍스트 생성
Azure OpenAI
from openai import OpenAI
client = OpenAI()
response = client.completions.create(
prompt="Write an article about the potential of AI",
max_tokens=8192,
temperature=0.3,
model="gpt-4")
print(f"Response from Model: {response['choices'][0]['text']}")
Vertex AI Gemini API
from vertexai.preview.generative_models import GenerativeModel
model = GenerativeModel("gemini-1.0-pro")
generation_config = {
"max_output_tokens": 8192,
"temperature": 0.9,
"top_p": 1}
responses = model.generate_content(
"Write an article about the potential of AI",
generation_config=generation_config,
stream=True)
for response in responses:
print(response.text)
Vertex AI SDK for Python으로 채팅 완성 사용
Azure OpenAI
from openai import OpenAI
client = OpenAI()
parameters = {
"model":"gpt-4",
"temperature": 0.2,
"max_tokens": 256,
"top_p": 0.95}
chat_completion = client.chat.completions.create(
messages=[
{"role": "user", "name":"example_user", "content": "Hello! Can you write a 300 word article on the history of AI?"}
]
,
**parameters)
response = chat_completion['choices'][0]
print(f"Response from Model: {response.text}")
chat_completion = client.chat.completions.create(
messages=[
{"role": "user", "name":"example_user", "content": "Could you give me a catchy title for the paper?"}
]
,
**parameters)
response = chat_completion['choices'][0]
print(f"Response from Model: {response.text}")
Vertex AI Gemini API
from vertexai.preview.generative_models import GenerativeModel
model = GenerativeModel("gemini-1.0-pro")
chat = model.start_chat()
responses = chat.send_message(
content="Hello! Can you write a 300 word article on the history of AI?",
stream=True)
for response in responses:
print(response.text)
responses = chat.send_message(
content="Could you give me a catchy title for the paper?",
stream=True)
for response in responses:
print(response.text)
Vertex AI SDK for Python으로 코드 생성
Azure OpenAI
from openai import OpenAI
client = OpenAI()
response = client.completions.create(
prompt="Write a Python code to read a CSV file in pandas, calculate the average for a specific column, and then sort the data in descending order for that column",
max_tokens=8192,
temperature=0.3,
model="gpt-4")
print(f"Response from Model: {response['choices'][0]['text']}")
Vertex AI Gemini API
from vertexai.preview.generative_models import GenerativeModel
model = GenerativeModel("gemini-1.0-pro")
generation_config = {
"max_output_tokens": 8192,
"temperature": 0.9,
"top_p": 1,
}
responses = model.generate_content(
contents="Write a Python code to read a CSV file in pandas, calculate the average for a specific column, and then sort the data in descending order for that column",
generation_config=generation_config,
stream=True)
for response in responses:
print(response.text)
다음 단계
- Vertex AI Studio에서 프롬프트 테스트 방법 알아보기
- 텍스트 및 채팅용 프롬프트 디자인에 대해 자세히 알아보기
- 멀티모달 모델 자세히 알아보기