En esta página, se describen los pasos necesarios para migrar a la API de PaLM de Vertex AI desde Microsoft Azure OpenAI.
Objetivos
La API de PaLM 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 Open AI a la API de PaLM de Vertex AI, primero debes crear un proyecto y un entorno de desarrollo de Google Cloud. Para obtener más información, consulta Configura un proyecto de Google Cloud y un entorno de desarrollo.
Migra a la API de PaLM
Usa los siguientes temas para aprender a migrar a la API de PaLM desde un proyecto de OpenAI en Microsoft Azure.
Usa parámetros de API de PaLM equivalentes
A continuación, se muestran algunos parámetros comunes de Azure OpenAI y sus parámetros equivalentes en la API de PaLM:
Parámetros de OpenAI | Parámetros de la API de PaLM | 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. |
de 0.0 a 1.0
|
Usa el modelo de API de PaLM equivalente
En la siguiente tabla, se describen los modelos de base disponibles.
Tipo | Descripción | Extremos de OpenAI | Extremos de LLM de la API de PaLM |
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
|
text-bison@002
|
Chat | Ajustado para casos de uso de conversaciones de varios turnos. | gpt-3.5-turbo o gpt-4
|
chat-bison@002
|
Incorporación | Ajustado para mostrar incorporaciones de modelo para entradas de texto. | text-embedding-ada-002
|
textembedding-gecko@003
|
Instala, importa y autentica la IA generativa en Vertex AI
Usa el SDK de Vertex AI para Python para instalar, importar y autenticar la IA generativa en Vertex AI. A continuación, se muestran los métodos equivalentes del SDK de Vertex AI para Python y Azure OpenAI.
Instala la API de PaLM de Vertex AI
Azure OpenAI
$ pip install --upgrade openai
API de PaLM de Vertex AI
$ pip install google-cloud-aiplatform
Importa la API de PaLM de Vertex AI
Azure OpenAI
import openai
API de PaLM de Vertex AI
from vertexai.preview.language_models import TextGenerationModel
Autentica la API de PaLM de Vertex AI
Azure OpenAI
openai.api_key = os.getenv("OPENAI_API_KEY")
API de PaLM 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 PaLM 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="Hello",
max_tokens=256,
temperature=0.3,
model="gpt-4")
print(f"Response from Model: {response['choices'][0]['text']}")
API de PaLM de Vertex AI
from vertexai.preview.language_models import TextGenerationModel
model = TextGenerationModel.from_pretrained("text-bison@002")
response = model.predict(
"Hello",
max_output_tokens=256,
temperature=0.3,)
print(f"Response from Model: {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 = client.chat.completions.create(
messages=[
{"role": "system", "content": "My name is Miles. You are an astronomer, knowledgeable about the solar system."},
{"role": "user", "name":"example_user", "content": "How many planets are there in the solar system?"}
],
**parameters)
response = chat['choices'][0]
print(f"Response from Azure OpenAI Model: {response.text}")
API de PaLM de Vertex AI
from vertexai.preview.language_models import ChatModel
chat_model = ChatModel.from_pretrained("chat-bison@002")
parameters = {
"temperature": 0.2,
"max_output_tokens": 256,
"top_p": 0.95}
chat = chat_model.start_chat(context="My name is Miles. You are an astronomer, knowledgeable about the solar system.")
response = chat.send_message(
"How many planets are there in the solar system?",
**parameters)
print(f"Response from Google GenAI Model: {response.text}")
Usa la incorporación de texto con el SDK de Vertex AI para Python
Azure OpenAI
import openai
embeddings = openai.Embedding.create(
deployment_id="text-embedding-ada-002",
#engine="text-embedding-ada-002",
input="What is life?"
)["data"][0]["embedding"]
print(f'Length of Embedding Vector: {len(embeddings)}')
API de PaLM de Vertex AI
from vertexai.preview.language_models import TextEmbeddingModel
model = TextEmbeddingModel.from_pretrained("textembedding-gecko@003")
embeddings = model.get_embeddings(["What is life?"])
for embedding in embeddings:
vector = embedding.values
print(f'Length of Embedding Vector: {len(vector)}')
Próximos pasos
- 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 sobre la incorporación de texto.
- Obtén información sobre cómo ajustar los modelos de base.