Migra a la API de PaLM desde Azure OpenAI

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.

de 0.0 a 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)

18192 (API de PaLM)

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.

de 1 a 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