Von Azure OpenAI zur PaLM API migrieren

Auf dieser Seite werden die Schritte beschrieben, die zum Migrieren zur Vertex AI PaLM API von Microsoft Azure OpenAI erforderlich sind.

Lernziele

Die PaLM API ist ein vollständig verwalteter cloudbasierter Dienst, mit dem Sie generative Modelle mit der Google Cloud Console erstellen und trainieren können. Es bietet Zugriff auf Large Language Models (LLMs), mit denen Sie eine Vielzahl von Anwendungen erstellen können, einschließlich Chatbots, Inhaltsgeneratoren und Kreativtools.

Vorbereitung

Wenn Sie einen OpenAI-Dienst von Microsoft Azure OpenAI zur Vertex AI PaLM API migrieren möchten, müssen Sie zuerst ein Google Cloud-Projekt und eine Entwicklungsumgebung erstellen. Weitere Informationen finden Sie unter Google Cloud-Projekt und Entwicklungsumgebung einrichten.

Zur PaLM API migrieren

In den folgenden Themen erfahren Sie, wie Sie von einem OpenAI-Projekt in Microsoft Azure zur PaLM API migrieren.

Äquivalente PaLM API-Parameter verwenden

Im Folgenden finden Sie einige gängige Azure OpenAI-Parameter und die entsprechenden Parameter in der PaLM API:

OpenAI-Parameter PaLM API-Parameter Beschreibung Zulässige Werte
prompt prompt Eine Eingabeaufforderung ist eine Anfrage in natürlicher Sprache, die an ein Sprachmodell gesendet wird, um eine Antwort zu erhalten. Eingabeaufforderungen können Fragen, Anleitungen, Kontextinformationen, Beispiele und Text enthalten, die das Modell fertigstellen oder fortsetzen soll. Text
temperature temperature Die Temperatur wird für die Probenahme während der Antwortgenerierung verwendet. Dies passiert, wenn topP und topK angewendet werden. Die Temperatur bestimmt den Grad der Zufälligkeit bei der Tokenauswahl. Niedrigere Temperaturen eignen sich gut für Prompts, die eine weniger offene oder kreative Antwort erfordern, während höhere Temperaturen zu vielfältigeren oder kreativeren Ergebnissen führen können. Eine Temperatur von 0 bedeutet, dass immer die Tokens mit der höchsten Wahrscheinlichkeit ausgewählt werden. In diesem Fall sind die Antworten auf einen bestimmten Prompt größtenteils deterministisch, aber eine gewisse Variation ist dennoch möglich.

Wenn das Modell eine zu allgemeine oder zu kurze Antwort zurückgibt, oder wenn das Modell eine Fallback-Antwort ausgibt, versuchen Sie, die Temperatur zu erhöhen.

0.0 bis 1.0

max_tokens maxOutputTokens Maximale Anzahl an Tokens, die in der Antwort generiert werden können. Ein Token besteht aus etwa vier Zeichen. 100 Tokens entsprechen etwa 60–80 Wörtern.

Geben Sie kürzere Werte für kürzere Antworten und höhere Werte für längere Antworten an.

1-8192 (OpenAI)

18192 (PaLM API)

Nicht verfügbar topK Der Wert „Top-K“ ändert, wie das Modell Tokens für die Ausgabe auswählt. Ein „Top-K“ von 1 bedeutet, dass das nächste ausgewählte Token unter den Tokens im Modell-Vokabular (auch als gierige Decodierung bezeichnet) am wahrscheinlichsten ist, während ein „Top-K“ von 3 bedeutet, dass das nächste Token mithilfe der Temperatur aus den drei wahrscheinlichsten Tokens ausgewählt wird.

Für jeden Tokenauswahlschritt werden die „Top-K“-Tokens mit den höchsten Wahrscheinlichkeiten abgetastet. Anschließend werden Tokens weiter auf der Grundlage von „Top-P“ gefiltert, wobei das endgültige Token mithilfe von Temperaturproben ausgewählt wird.

Geben Sie einen niedrigeren Wert für weniger zufällige Antworten und einen höheren Wert für zufälligere Antworten an.

1 bis 40

top_p topP Der Wert „Top-P“ ändert, wie das Modell Tokens für die Ausgabe auswählt. Die Tokens werden von den wahrscheinlichsten (siehe „Top-K“) bis zu den unwahrscheinlichsten Werten ausgewählt, bis die Summe ihrer Wahrscheinlichkeiten dem „Top-P“-Wert entspricht. Beispiel: Wenn die Tokens A, B und C eine Wahrscheinlichkeit von 0,3, 0,2 und 0,1 haben und der „Top-P“-Wert 0.5 ist, wählt das Modell anhand der Temperatur entweder A oder B als das nächste Token und C als Kandidaten ausschließen.

Geben Sie einen niedrigeren Wert für weniger zufällige Antworten und einen höheren Wert für zufälligere Antworten an.

0.0 bis 1.0

Äquivalentes PaLM API-Modell verwenden

In der folgenden Tabelle werden die Basismodelle beschrieben.

Typ Beschreibung OpenAI-Endpunkte LLM-Endpunkte der PaLM API
Text Optimiert, um Anweisungen in natürlicher Sprache zu folgen, und für eine Vielzahl von Sprachaufgaben geeignet. gpt-3.5-turbo oder gpt-4 text-bison@002
Chat Bereit für Anwendungsfälle mit Multi-Turn-Unterhaltungen. gpt-3.5-turbo oder gpt-4 chat-bison@002
Einbettung Feinabstimmung von Modelleinbettungen für Texteingaben zurückgeben text-embedding-ada-002 textembedding-gecko@003

Generative AI in Vertex AI installieren, importieren und authentifizieren

Verwenden Sie das Vertex AI SDK für Python, um generative KI in Vertex AI zu installieren, zu importieren und zu authentifizieren. Im Folgenden finden Sie die entsprechenden Methoden für das Vertex AI SDK für Python und Azure OpenAI.

Vertex AI PaLM API installieren

Azure OpenAI

$ pip install --upgrade openai

Vertex AI PaLM API

$ pip install google-cloud-aiplatform

Vertex AI PaLM API importieren

Azure OpenAI

import openai

Vertex AI PaLM API

from vertexai.preview.language_models import TextGenerationModel

Vertex AI PaLM API authentifizieren

Azure OpenAI

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

Vertex AI PaLM API

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

Vertex AI PaLM API und Azure – Vergleiche und Beispielcode

Text mit dem Vertex AI SDK für Python generieren

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

Vertex AI PaLM API

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

Chatvervollständigung mit dem Vertex AI SDK für Python verwenden

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

Vertex AI PaLM API

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

Texteinbettung mit dem Vertex AI SDK für Python verwenden

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

Vertex AI PaLM API

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

Wie geht es weiter?