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)
|
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
- Découvrez comment tester des requêtes dans Vertex AI Studio.
- En savoir plus sur la conception d'invites pour le texte et le chat
- En savoir plus sur l'embedding textuel.
- Découvrez comment régler les modèles de fondation.