Migrer vers l'API PaLM à partir d'Azure OpenAI

Cette page décrit les étapes requises pour migrer vers l'API Vertex AI PaLM à partir de Microsoft Azure OpenAI.

Objectifs

L'API PaLM est un service dans le cloud entièrement géré qui vous permet de créer et d'entraîner des modèles génératifs à l'aide de la console Google Cloud. Elle donne accès à de grands modèles de langage (LLM), qui vous permettent de créer diverses applications, y compris des chatbots, des générateurs de contenu et des outils de création.

Prérequis

Pour migrer un service OpenAI depuis Microsoft Azure OpenAI vers l'API Vertex AI PaLM, vous devez d'abord créer un projet Google Cloud et un environnement de développement. Pour en savoir plus, consultez la page Configurer un projet Google Cloud et un environnement de développement.

Migrer vers l'API PaLM

Utilisez les rubriques suivantes pour découvrir comment migrer vers l'API PaLM à partir d'un projet OpenAI dans Microsoft Azure.

Utiliser les paramètres équivalents de l'API PaLM

Voici quelques paramètres Azure OpenAI courants et leurs équivalents dans l'API PaLM :

Paramètres OpenAI Paramètres de l'API PaLM Description Valeurs valides
prompt prompt Une requête est une instruction en langage naturel envoyée à un modèle de langage pour recevoir une réponse. Les requêtes peuvent contenir des questions, des instructions, des informations contextuelles, des exemples et du texte que le modèle doit continuer ou compléter. Texte
temperature temperature La température est utilisée pour l'échantillonnage pendant la génération des réponses, qui se produit lorsque topP et topK sont appliqués. La température permet de contrôler le degré de hasard dans la sélection des jetons. Les températures inférieures sont idéales pour les requêtes qui nécessitent une réponse moins ouverte ou créative, tandis que des températures plus élevées peuvent conduire à des résultats plus diversifiés ou créatifs. Une température de 0 signifie que les jetons de probabilité les plus élevés sont toujours sélectionnés. Dans ce cas, les réponses pour une requête donnée sont principalement déterministes, mais une petite quantité de variation est toujours possible.

Si le modèle renvoie une réponse trop générique ou trop courte, ou s'il renvoie une réponse de remplacement, essayez d'augmenter la température.

0.0 – 1.0

max_tokens maxOutputTokens Nombre maximal de jetons pouvant être générés dans la réponse. Un jeton correspond environ à quatre caractères. 100 jetons correspondent à environ 60-80 mots.

Spécifiez une valeur inférieure pour obtenir des réponses plus courtes et une valeur supérieure pour des réponses potentiellement plus longues.

1-8192 (OpenAI)

1-8192 (API PaLM)

Non disponible topK Top-K modifie la façon dont le modèle sélectionne les jetons pour la sortie. Une valeur top-K de 1 signifie que le prochain jeton sélectionné est le plus probable parmi tous les jetons du vocabulaire du modèle (également appelé décodage glouton), tandis qu'une valeur top-K de 3 signifie que le jeton suivant est sélectionné parmi les trois jetons les plus probables en utilisant la température.

Pour chaque étape de sélection du jeton, les jetons top-K avec les probabilités les plus élevées sont échantillonnés. Les jetons sont ensuite filtrés en fonction du top-P avec le jeton final sélectionné à l'aide de l'échantillonnage de température.

Spécifiez une valeur inférieure pour les réponses moins aléatoires et une valeur plus élevée pour les réponses plus aléatoires.

1 – 40

top_p topP Top-P modifie la façon dont le modèle sélectionne les jetons pour la sortie. Les jetons sont sélectionnés de la valeur la plus élevée (voir top-K) à la moins probable jusqu'à ce que la somme de leurs probabilités soit égale à la valeur top-P. Par exemple, si les jetons A, B et C ont une probabilité de 0,3, 0,2 et 0,1 et que la valeur de top-P est supérieure à 0.5, le modèle sélectionne A ou B comme jeton suivant en utilisant la température et exclut C comme candidat.

Spécifiez une valeur inférieure pour les réponses moins aléatoires et une valeur plus élevée pour les réponses plus aléatoires.

0.0 – 1.0

Utiliser le modèle d'API PaLM équivalent

Le tableau suivant décrit les modèles de fondation disponibles.

Type Description Points de terminaison OpenAI Points de terminaison LLM de l'API PaLM
Texte Optimisé pour suivre les instructions en langage naturel et adapté à diverses tâches linguistiques. gpt-3.5-turbo ou gpt-4 text-bison@002
Chat Optimisé pour les cas d'utilisation de conversation multitours. gpt-3.5-turbo ou gpt-4 chat-bison@002
Embedding Optimisé pour renvoyer des embeddings de modèle à partir d'entrées textuelles. text-embedding-ada-002 textembedding-gecko@003

Installer, importer et authentifier Generative AI sur Vertex AI

Utilisez le SDK Vertex AI pour Python pour installer, importer et authentifier l'IA générative sur Vertex AI. Vous trouverez ci-dessous les méthodes équivalentes pour le SDK Vertex AI pour Python et Azure OpenAI.

Installer l'API Vertex AI PaLM

Azure OpenAI

$ pip install --upgrade openai

API Vertex AI PaLM

$ pip install google-cloud-aiplatform

Importer l'API Vertex AI PaLM

Azure OpenAI

import openai

API Vertex AI PaLM

from vertexai.preview.language_models import TextGenerationModel

Authentifier l'API Vertex AI PaLM

Azure OpenAI

openai.api_key = os.getenv("OPENAI_API_KEY")

API Vertex AI PaLM

from google.colab import auth as google_auth
google_auth.authenticate_user()

Exemples de code et comparaisons entre l'API Vertex AI PaLM et Azure

Générer du texte avec le SDK Vertex AI pour 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 Vertex AI PaLM

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}")

Utiliser la complétion de chat avec le SDK Vertex AI pour 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 Vertex AI PaLM

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}")

Utiliser l'embedding textuel avec le SDK Vertex AI pour 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 Vertex AI PaLM

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)}')

Étapes suivantes