En esta página, se describen los pasos necesarios para migrar a la API de Gemini de Vertex AI desde Microsoft Azure OpenAI.
La API de Gemini es un servicio completamente administrado basado en la nube que te permite crear y entrenar modelos generativos con la consola de Google Cloud. Proporciona acceso a modelos de lenguaje grande (LLM), que puedes usar para crear una variedad de aplicaciones, incluidos chatbots, generadores de contenido y herramientas de creatividades.
Requisitos previos
Para migrar un servicio de OpenAI de Microsoft Azure OpenAI a la API de Gemini en Vertex AI, primero debes crear un proyecto y un entorno de desarrollo de Google Cloud. Para obtener más información, consulta Configuración en Google Cloud
Migra a la API de Gemini
Usa los siguientes temas para aprender a migrar a la API de Gemini desde un proyecto de OpenAI en Microsoft Azure.
Usa parámetros equivalentes de la API de Gemini
A continuación, se muestran algunos parámetros comunes de Azure OpenAI y sus parámetros equivalentes en la API de Gemini.
Parámetros de OpenAI | Parámetros de la API de Gemini | Descripción | Valores válidos |
prompt |
prompt |
Un mensaje es una solicitud de lenguaje natural enviada a un modelo de lenguaje para recibir una respuesta. Los mensajes pueden contener preguntas, instrucciones, información contextual, ejemplos y texto para que el modelo se complete o continúe. | Texto |
temperature |
temperature |
La temperatura se usa para las muestras durante la generación de respuesta, que se genera cuando se aplican topP y topK . La temperatura controla el grado de aleatorización en la selección de tokens.
Las temperaturas más bajas son buenas para los mensajes que requieren una respuesta menos abierta o de creativa, mientras que
las temperaturas más altas pueden generar resultados más diversos o creativos. Una temperatura de 0
significa que siempre se seleccionan los tokens de probabilidad más alta. En este caso, las respuestas para un mensaje determinado
son, en su mayoría, deterministas, pero es posible que haya una pequeña cantidad de variación.
Si el modelo muestra una respuesta demasiado genérica, demasiado corta o el modelo proporciona una respuesta de resguardo, intenta aumentar la temperatura. |
0.0 –1.0
|
max_tokens |
maxOutputTokens |
Cantidad máxima de tokens que se pueden generar en la respuesta. Un token tiene casi cuatro caracteres. 100 tokens corresponden a casi 60 u 80 palabras.
Especifica un valor más bajo para las respuestas más cortas y un valor más alto para las respuestas potencialmente más largas. |
1-8192 (OpenAI)
|
No disponible | topK |
El parámetro Top-K cambia la manera en la que el modelo selecciona los tokens para el resultado. K superior a 1 significa que el siguiente token seleccionado es el más probable entre todos los tokens en el vocabulario del modelo (también llamado decodificación voraz), mientras que el K superior a 3 significa que el siguiente token se selecciona de los tres tokens más probables mediante la temperatura.
Para cada paso de selección de tokens, se muestran los tokens de K superior con las probabilidades más altas. Luego, los tokens se filtran según el superior con el token final seleccionado mediante el muestreo de temperatura. Especifica un valor más bajo para respuestas menos aleatorias y un valor más alto para respuestas más aleatorias. |
1 –40
|
top_p |
topP |
P superior cambia la manera en la que el modelo selecciona tokens para la salida. Los tokens se seleccionan desde el más alto (consulta K superior) hasta el menos probable, hasta que la suma de sus probabilidades sea igual al valor de P superior. Por ejemplo, si los tokens A, B y C tienen una probabilidad de 0.3, 0.2 y 0.1, y el valor P superior es 0.5 , el modelo elegirá A o B como el siguiente token mediante la temperatura y excluirá a C como candidato.
Especifica un valor más bajo para respuestas menos aleatorias y un valor más alto para respuestas más aleatorias. |
0.0 –1.0
|
stop |
stop_sequences |
Una secuencia de detención es una serie de caracteres (incluidos los espacios) que detienen la generación de respuesta si el modelo la encuentra. La secuencia no se incluye como parte de la respuesta. Puedes agregar hasta cinco secuencias de detención. | La secuencia de detención en un array, por ejemplo, ["###"] .
|
Usa el modelo equivalente de la API de Gemini
En la siguiente tabla, se describen los modelos de base disponibles.
Tipo | Descripción | Extremos de OpenAI | Extremos de LLM de la API de Gemini |
Texto | Se ajustó para seguir las instrucciones de lenguaje natural y es adecuado para una variedad de tareas de lenguaje. | gpt-3.5-turbo o gpt-4
|
gemini-1.0-pro
|
Chat | Ajustado para casos de uso de conversaciones de varios turnos. | gpt-3.5-turbo o gpt-4
|
gemini-1.0-pro
|
Instala, importa y autentica la API de Gemini de Vertex AI
Usa el SDK de Vertex AI para Python para instalar, importar y autenticar la API de Vertex AI Gemini. A continuación, se muestran los métodos equivalentes del SDK de Vertex AI para Python y Azure OpenAI.
Instala la API de Gemini de Vertex AI
Azure OpenAI
$ pip install --upgrade openai
API de Gemini de Vertex AI
$ pip install google-cloud-aiplatform
Importa la API de Gemini de Vertex AI
Azure OpenAI
import openai
API de Gemini de Vertex AI
from vertexai.preview.generative_models import GenerativeModel
Autentica la API de Gemini de Vertex AI
Azure OpenAI
openai.api_key = os.getenv("OPENAI_API_KEY")
API de Gemini de Vertex AI
from google.colab import auth as google_auth
google_auth.authenticate_user()
Comparaciones y código de muestra de la API de Gemini de Vertex AI y Azure
Genera 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 de 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)
Usa 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 de 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)
Genera 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 de 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)
Cómo migrar instrucciones a modelos de Gemini
Si tienes conjuntos de instrucciones que usaste anteriormente con Azure OpenAI, puedes optimizarlos para usarlos con modelos de Google con el Optimizador de instrucciones de Vertex AI (versión preliminar).
¿Qué sigue?
- Aprende a probar los mensajes en Vertex AI Studio.
- Obtén más información sobre el diseño de instrucciones para texto y chat.
- Obtén más información acerca de los modelos multimodales.