이 페이지에서는 Microsoft Azure OpenAI에서 Vertex AI Gemini API로 마이그레이션하는 데 필요한 단계를 설명합니다.
Gemini API는 Google Cloud 콘솔을 사용하여 생성형 모델을 만들고 학습시킬 수 있게 해주는 완전 관리형 클라우드 기반 서비스입니다. 챗봇, 콘텐츠 생성기, 광고 소재 도구를 비롯한 다양한 애플리케이션을 만드는 데 사용할 수 있는 대규모 언어 모델(LLM)에 대한 액세스를 제공합니다.
기본 요건
Microsoft Azure OpenAI에서 Vertex AI Gemini API로 OpenAI를 마이그레이션하려면 먼저 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 가 적용될 때 발생합니다. 온도는 토큰 선택의 무작위성 수준을 제어합니다.
온도가 낮을수록 자유롭거나 창의적인 답변과 거리가 먼 응답이 필요한 프롬프트에 적합하고, 온도가 높을수록 보다 다양하거나 창의적인 결과로 이어질 수 있습니다. 온도가 0 이면 확률이 가장 높은 토큰이 항상 선택됩니다. 이 경우 특정 프롬프트에 대한 응답은 대부분 확정적이지만 여전히 약간의 변형이 가능합니다.
모델이 너무 일반적이거나, 너무 짧은 응답을 반환하거나 모델이 대체 응답을 제공할 경우에는 강도를 높여보세요. |
0.0 ~1.0
|
max_tokens |
maxOutputTokens |
응답에서 생성될 수 있는 토큰의 최대 개수입니다. 토큰은 약 4자(영문 기준)입니다. 토큰 100개는 단어 약 60~80개에 해당합니다.
응답이 짧을수록 낮은 값을 지정하고 잠재적으로 응답이 길면 높은 값을 지정합니다. |
1-8192 (OpenAI)
|
사용 불가능 | topK |
Top-K는 모델이 출력용 토큰을 선택하는 방식을 변경합니다. Top-K가 1 이면 선택된 토큰이 모델의 어휘에 포함된 모든 토큰 중에서 가장 확률이 높다는 의미입니다(그리디 디코딩이라고도 함). 반면에 Top-K가 3 이면 온도를 사용하여 가장 확률이 높은 3개 토큰 중에서 다음 토큰이 선택된다는 의미입니다.
각 토큰 선택 단계에서 확률이 가장 높은 Top-K 토큰이 샘플링됩니다. 그런 다음 Top-P를 기준으로 토큰을 추가로 필터링하고 온도 샘플링을 사용하여 최종 토큰을 선택합니다. 임의성이 낮은 응답에 낮은 값을 지정하고 임의성이 높은 응답에 높은 값을 지정합니다. |
1 ~40
|
top_p |
topP |
Top-P는 모델이 출력용 토큰을 선택하는 방식을 변경합니다. 토큰은 확률의 합이 Top-P 값과 같아질 때까지 확률이 가장 높은 것부터(Top-K 참조) 가장 낮은 것까지 선택됩니다. 예를 들어 토큰 A, B, C의 확률이 0.3, 0.2, 0.1이고 Top-P 값이 0.5 이면 모델이 온도를 사용해서 다음 토큰으로 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)
Gemini 모델로 프롬프트 마이그레이션
이전에 Azure OpenAI에서 사용한 프롬프트 세트가 있으면 Vertex AI 프롬프트 옵티마이저(미리보기)를 사용하여 Google 모델과 함께 사용할 수 있도록 최적화할 수 있습니다.
다음 단계
- Vertex AI Studio에서 프롬프트 테스트 방법 알아보기
- 텍스트 및 채팅용 프롬프트 디자인에 대해 자세히 알아보기
- 모델에 관해 자세히 알아보세요.