Eseguire la migrazione all'API PaLM da Azure OpenAI

Questa pagina illustra i passaggi necessari per eseguire la migrazione all'API Vertex AI PaLM da Microsoft Azure OpenAI.

Obiettivi

L'API PaLM è un servizio completamente gestito basato su cloud che consente di creare e addestrare modelli generativi utilizzando la console Google Cloud. Fornisce accesso ai modelli linguistici di grandi dimensioni (LLM), che puoi utilizzare per creare una serie di applicazioni, tra cui chatbot, generatori di contenuti e strumenti per le creatività.

Prerequisiti

Per eseguire la migrazione di un servizio OpenAI da Microsoft Azure Open AI all'API Vertex AI PaLM, devi prima creare un progetto Google Cloud e un ambiente di sviluppo. Per ulteriori informazioni, consulta Configurare un progetto e un ambiente di sviluppo.

Eseguire la migrazione all'API PaLM

Consulta i seguenti argomenti per scoprire come eseguire la migrazione all'API PaLM da un progetto OpenAI in Microsoft Azure.

Utilizzare i parametri dell'API PaLM equivalenti

Di seguito sono riportati alcuni parametri comuni di Azure OpenAI e i relativi parametri equivalenti nell'API PaLM:

Parametri OpenAI Parametri dell'API PaLM Descrizione Valori validi
prompt prompt Un prompt è una richiesta in linguaggio naturale presentata a un modello linguistico per ricevere una risposta. I prompt possono contenere domande, istruzioni, informazioni contestuali, esempi e testo da completare o proseguire dal modello. Testo
temperature temperature La temperatura viene utilizzata per il campionamento durante la generazione della risposta, che si verifica quando vengono applicati topP e topK. La temperatura controlla il grado di casualità nella selezione dei token. Le temperature più basse sono ideali per prompt che richiedono risposte meno aperte o creative, mentre le temperature più alte possono portare a risultati più diversificati o creativi. Con una temperatura pari a 0 viene sempre selezionato il token con la probabilità più alta. In questo caso, le risposte per un determinato prompt sono per lo più deterministiche, ma è comunque possibile una piccola variazione.

Se il modello restituisce una risposta troppo generica, troppo breve o fornisce una risposta di riserva, prova ad aumentare la temperatura.

0.0-1.0

max_tokens maxOutputTokens Numero massimo di token che possono essere generati nella risposta. Un token equivale a circa quattro caratteri. 100 token corrispondono a circa 60-80 parole.

Specifica un valore più basso per risposte più brevi e un valore più alto per risposte potenzialmente più lunghe.

1-8192 (OpenAI)

18192 (API PaLM)

Non disponibile topK Top-K cambia il modo in cui il modello seleziona i token per l'output. Un top-K pari a 1 indica che il token successivo selezionato è il più probabile tra tutti i token nel vocabolario del modello (chiamato anche decodifica greedy). Un top-K pari a 3 indica invece che il token successivo viene selezionato tra i tre token più probabili utilizzando la temperatura.

Per ogni fase di selezione dei token, vengono campionati i token Top-K con le probabilità più elevate. Quindi i token vengono ulteriormente filtrati in base a Top-P e il token finale viene selezionato utilizzando il campionamento con temperatura.

Specifica un valore più basso per risposte meno casuali e un valore più alto per risposte più casuali.

1-40

top_p topP Top-P cambia il modo in cui il modello seleziona i token per l'output. I token vengono selezionati dal più probabile (vedi Top-K) al meno probabile finché la somma delle loro probabilità non corrisponde al valore di Top-P. Ad esempio, se i token A, B e C hanno una probabilità di 0,3, 0,2 e 0,1 e il valore di top-P è 0.5, il modello seleziona A o B come token successivo utilizzando la temperatura ed esclude C come candidato.

Specifica un valore più basso per risposte meno casuali e un valore più alto per risposte più casuali.

0.0-1.0

Utilizza il modello dell'API PaLM equivalente

La seguente tabella descrive i modelli di base disponibili.

Tipo Descrizione Endpoint OpenAI Endpoint LLM dell'API PaLM
Testo Ottimizzato per seguire le istruzioni in linguaggio naturale ed è adatto per una serie di attività linguistiche. gpt-3.5-turbo o gpt-4 text-bison@002
Chat Ottimizzato per i casi d'uso delle conversazioni multi-turno. gpt-3.5-turbo o gpt-4 chat-bison@002
Incorporamento Ottimizzato per restituire gli incorporamenti del modello per gli input di testo. text-embedding-ada-002 textembedding-gecko@003

Installare, importare e autenticare l'IA generativa su Vertex AI

Utilizza l'SDK Vertex AI per Python per installare, importare e autenticare l'IA generativa su Vertex AI. Di seguito sono riportati i metodi equivalenti per l'SDK Vertex AI per Python e Azure OpenAI.

Installa l'API Vertex AI PaLM

Azure OpenAI

$ pip install --upgrade openai

API Vertex AI PaLM

$ pip install google-cloud-aiplatform

Importa l'API Vertex AI PaLM

Azure OpenAI

import openai

API Vertex AI PaLM

from vertexai.preview.language_models import TextGenerationModel

Configura l'autenticazione dell'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()

Confronti e codice campione dell'API Vertex AI PaLM e di Azure

Generare testo con l'SDK Vertex AI per 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}")

Utilizzare il completamento della chat con l'SDK Vertex AI per 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}")

Utilizzare l'embedding di testo con l'SDK Vertex AI per 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)}')

Passaggi successivi