En esta página se describen los pasos necesarios para migrar a la API de Gemini en Vertex AI desde Microsoft Azure OpenAI.
La API de Gemini es un servicio totalmente gestionado basado en la nube que te permite crear y entrenar modelos generativos mediante la Google Cloud consola. Proporciona acceso a modelos de lenguaje extensos (LLMs), que puedes usar para crear una gran variedad de aplicaciones, como chatbots, generadores de contenido y herramientas creativas.
Requisitos previos
Para migrar un servicio de OpenAI de Microsoft Azure OpenAI a la API de Gemini en Vertex AI, primero debes crear un Google Cloud proyecto y un entorno de desarrollo. Para obtener más información, consulta Configurar un proyecto y un entorno de desarrollo.
Migrar a la API de Gemini
Consulta los siguientes temas para saber cómo migrar a la API de Gemini desde un proyecto de OpenAI en Microsoft Azure.
Usar parámetros equivalentes de la API de Gemini
A continuación, se muestran algunos parámetros comunes de Azure OpenAI y sus equivalentes en la API de Gemini:
Parámetros de OpenAI | Parámetros de la API de Gemini | Descripción | Valores válidos |
prompt |
prompt |
Una petición es una solicitud en lenguaje natural que se envía a un modelo de lenguaje para recibir una respuesta. Las peticiones pueden contener preguntas, instrucciones, información contextual, ejemplos y texto para que el modelo lo complete o lo continúe. | Texto |
temperature |
temperature |
La temperatura se usa para el muestreo durante la generación de respuestas, que se produce cuando se aplican topP y topK . La temperatura controla el grado de aleatoriedad en la selección de tokens.
Las temperaturas más bajas son adecuadas para las peticiones que requieren una respuesta menos abierta o creativa, mientras que las temperaturas más altas pueden dar lugar a resultados más diversos o creativos. Una temperatura de 0
significa que siempre se seleccionan los tokens con la probabilidad más alta. En este caso, las respuestas a una petición determinada son mayormente deterministas, pero sigue siendo posible que haya una pequeña variación.
Si el modelo devuelve una respuesta demasiado genérica o demasiado corta, o bien una respuesta alternativa, prueba a aumentar la temperatura. |
0.0 -1.0
|
max_tokens |
maxOutputTokens |
Número máximo de tokens que se pueden generar en la respuesta. Un token tiene aproximadamente cuatro caracteres. 100 tokens corresponden aproximadamente a entre 60 y 80 palabras.
Especifica un valor inferior para las respuestas más cortas y un valor superior para las respuestas que puedan ser más largas. |
1-8192 (OpenAI)
|
No disponible | topK |
Top-K cambia la forma en que el modelo selecciona los tokens de salida. Un valor de K superior de 1 significa que el siguiente token seleccionado es el más probable de todos los tokens del vocabulario del modelo (también llamado decodificación voraz), mientras que un valor de K superior de 3 significa que el siguiente token se selecciona de entre los tres tokens más probables mediante la temperatura.
En cada paso de selección de tokens, se muestrean los K tokens principales con las probabilidades más altas. Después, los tokens se filtran en función de la probabilidad P máxima y el token final se selecciona mediante un muestreo de temperatura. Especifica un valor más bajo para obtener respuestas menos aleatorias y un valor más alto para obtener respuestas más aleatorias. |
1 -40
|
top_p |
topP |
Top-P cambia la forma en que el modelo selecciona los tokens de salida. Los tokens se seleccionan
de más probable a menos probable hasta que la suma de sus probabilidades
sea igual al valor de top-P. Por ejemplo, si los tokens A, B y C tienen una probabilidad de 0,3, 0,2 y 0,1, y el valor de top_p es 0.5 , el modelo seleccionará A o B como el siguiente token usando la temperatura y excluirá C como candidato.
Especifica un valor más bajo para obtener respuestas menos aleatorias y un valor más alto para obtener respuestas más aleatorias. |
0.0 -1.0
|
stop |
stop_sequences |
Una secuencia de parada es una serie de caracteres (incluidos los espacios) que detiene la generación de respuestas si el modelo la encuentra. La secuencia no se incluye en la respuesta. Puedes añadir hasta cinco secuencias de paradas. | La secuencia de parada en una matriz, por ejemplo, ["###"] .
|
Usar el modelo de la API de Gemini equivalente
En la siguiente tabla se describen los modelos fundacionales disponibles.
Tipo | Descripción | Endpoints de OpenAI | Puntos de conexión de LLMs de la API de Gemini |
Texto | Se ha optimizado para seguir instrucciones en lenguaje natural y es adecuada para una gran variedad de tareas lingüísticas. | gpt-3.5-turbo o gpt-4
|
gemini-1.0-pro
|
Chat | Afinado para casos prácticos de conversaciones de varias interacciones. | gpt-3.5-turbo o gpt-4
|
gemini-1.0-pro
|
Instalar, importar y autenticar la API de Gemini en Vertex AI
Usa el SDK de Vertex AI para Python para instalar, importar y autenticar la API de Gemini en Vertex AI. A continuación, se muestran los métodos equivalentes para el SDK de Vertex AI para Python y Azure OpenAI.
Instalar la API de Gemini en Vertex AI
Azure OpenAI
$ pip install --upgrade openai
API de Gemini en Vertex AI
$ pip install google-cloud-aiplatform
Importar la API de Gemini en Vertex AI
Azure OpenAI
import openai
API de Gemini en Vertex AI
from vertexai.preview.generative_models import GenerativeModel
Autenticar la API de Gemini en Vertex AI
Azure OpenAI
openai.api_key = os.getenv("OPENAI_API_KEY")
API de Gemini en Vertex AI
from google.colab import auth as google_auth
google_auth.authenticate_user()
Comparaciones y código de ejemplo de la API de Gemini en Vertex AI y Azure
Generar texto con el SDK de Vertex AI para 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']}")
API de Gemini en Vertex AI
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)
Usar la finalización de chat con el SDK de Vertex AI para 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}")
API de Gemini en Vertex AI
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)
Generar código con el SDK de Vertex AI para 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']}")
API de Gemini en Vertex AI
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)
Migrar peticiones a modelos de Gemini
Si tienes conjuntos de peticiones que has usado anteriormente con Azure OpenAI, puedes optimizarlos para usarlos con modelos de Google mediante el optimizador de peticiones de Vertex AI (vista previa).
Siguientes pasos
- Consulta cómo probar peticiones en Vertex AI Studio.
- Consulta más información sobre el diseño de peticiones para texto y chat.
- Más información sobre los modelos