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

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

L'API Gemini 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 Gemini, vous devez d'abord créer un projet Google Cloud et un environnement de développement. Pour en savoir plus, consultez la page Lancez-vous dans Google Cloud.

Migrer vers l'API Gemini

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

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

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

Paramètres OpenAI Paramètres de l'API Gemini Description Valeurs valides
prompt prompt Une invite est une requête en langage naturel envoyée à un modèle de langage pour recevoir une réponse. Les invites 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 invites 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 invite 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)

18192 (API Gemini)

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

stop stop_sequences Une séquence d'arrêt est une série de caractères (espaces compris) qui arrête la génération de réponse si le modèle la rencontre. La séquence n'est pas incluse dans la réponse. Vous pouvez ajouter jusqu'à cinq séquences d'arrêt. Votre séquence d'arrêt dans un tableau (par exemple, ["###"]).

Utiliser le modèle d'API Gemini é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 Gemini
Texte Optimisé pour suivre les instructions en langage naturel et adapté à diverses tâches linguistiques. gpt-3.5-turbo ou gpt-4 gemini-1.0-pro
Chat Optimisé pour les cas d'utilisation de conversation multitours. gpt-3.5-turbo ou gpt-4 gemini-1.0-pro

Installer, importer et authentifier l'API Vertex AI Gemini

Utilisez le SDK Vertex AI pour Python pour installer, importer et authentifier l'API Gemini de 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 Gemini

Azure OpenAI

$ pip install --upgrade openai

API Gemini Vertex AI

$ pip install google-cloud-aiplatform

Importer l'API Vertex AI Gemini

Azure OpenAI

import openai

API Gemini Vertex AI

from vertexai.preview.generative_models import GenerativeModel

Authentifier l'API Vertex AI Gemini

Azure OpenAI

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

API Gemini Vertex AI

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

Exemples de code et comparaisons entre l'API Vertex AI Gemini 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="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 Gemini 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)

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_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 Gemini 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)

Écrire du code avec le SDK Vertex AI pour 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 Gemini 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)

Étapes suivantes