Nesta página, descrevemos as etapas necessárias para migrar do Microsoft Azure OpenAI para a API PaLM da Vertex AI.
Objetivos
A PaLM API é um serviço baseado na nuvem totalmente gerenciado que permite criar e treinar modelos generativos usando o console do Google Cloud. Ela fornece acesso a modelos de linguagem grandes (LLMs), que podem ser usados para criar diversos aplicativos, incluindo chatbots, geradores de conteúdo e ferramentas de criação.
Pré-requisitos
Para migrar um serviço OpenAI da Microsoft Azure Open AI para a API Vertex AI PaLM, crie primeiro um projeto do Google Cloud e um ambiente de desenvolvimento. Para mais informações, consulte Configurar um projeto do Google Cloud e um ambiente de desenvolvimento.
Migrar para a API PaLM
Use os tópicos a seguir para saber como migrar de um projeto da OpenAI no Microsoft Azure para a API PaLM.
Usar parâmetros da API PaLM equivalentes
Veja a seguir alguns parâmetros comuns do Azure OpenAI e os parâmetros equivalentes na API PaLM:
Parâmetros da OpenAI | Parâmetros da API PaLM | Descrição | Valores válidos |
prompt |
prompt |
Uma solicitação é uma solicitação de linguagem natural enviada a um modelo de linguagem para receber uma resposta. Os comandos podem conter perguntas, instruções, informações contextuais, exemplos e texto para que o modelo seja concluído ou continue. | Texto |
temperature |
temperature |
A temperatura é usada para amostragem durante a geração da resposta, que ocorre quando topP e topK são aplicados. A temperatura controla o grau de aleatoriedade na seleção do token.
Temperaturas mais baixas são boas para solicitações que exigem uma resposta menos aberta ou criativa, enquanto temperaturas mais altas podem levar a resultados mais diversos ou criativos. Uma temperatura de 0 significa que os tokens de maior probabilidade são sempre selecionados. Nesse caso, as respostas para uma determinada solicitação são, na maioria das vezes, deterministas, mas uma pequena variação ainda é possível.
Se o modelo retornar uma resposta muito genérica, muito curta ou se o modelo fornecer uma resposta alternativa, tente aumentar a temperatura. |
0.0 –1.0
|
max_tokens |
maxOutputTokens |
Número máximo de tokens que podem ser gerados na resposta. Um token tem cerca de quatro caracteres. 100 tokens correspondem a cerca de 60 a 80 palavras.
Especifique um valor mais baixo para respostas mais curtas e um valor mais alto para respostas potencialmente mais longas. |
1-8192 (OpenAI)
|
Indisponível | topK |
O Top-K muda a forma como o modelo seleciona tokens para saída. Um top-K de
1 significa que o próximo token selecionado é o mais provável entre todos
os tokens no vocabulário do modelo (também chamado de decodificação gananciosa), enquanto um top-K de
3 significa que o próximo token está selecionado entre os três tokens mais
prováveis usando a temperatura.
Para cada etapa da seleção de tokens, são amostrados os tokens top-K com as maiores probabilidades. Em seguida, os tokens são filtrados com base no valor de top-P com o token final selecionado por meio da amostragem de temperatura. Especifique um valor mais baixo para respostas menos aleatórias e um valor mais alto para respostas mais aleatórias. |
1 –40
|
top_p |
topP |
O top-p muda a forma como o modelo seleciona tokens para saída. Os tokens são selecionados
do mais provável (veja o top-K) para o menos provável até que a soma das probabilidades
seja igual ao valor do top-P. Por exemplo, se os tokens A, B e C tiverem uma probabilidade de 0,3, 0,2 e 0,1 e o valor de top-P for 0.5 , o modelo selecionará A ou B como token seguinte usando temperatura e exclui C como
candidato.
Especifique um valor mais baixo para respostas menos aleatórias e um valor mais alto para respostas mais aleatórias. |
0.0 –1.0
|
Use o modelo equivalente da API PaLM
A tabela a seguir descreve os modelos básicos disponíveis.
Tipo | Descrição | Endpoints da OpenAI | Endpoints de LLM da API PaLM |
Texto | Ajustado para seguir instruções de linguagem natural e adequado para várias tarefas de linguagem. | gpt-3.5-turbo ou gpt-4
|
text-bison@002
|
Chat | Sintonizado para casos de uso de conversa com vários turnos. | gpt-3.5-turbo ou gpt-4
|
chat-bison@002
|
Incorporação | Ajustado para retornar embeddings de modelo para entradas de texto. | text-embedding-ada-002
|
textembedding-gecko@003
|
Instalar, importar e autenticar a IA generativa na Vertex AI
Use o SDK da Vertex AI para Python para instalar, importar e autenticar a IA generativa na Vertex AI. Confira a seguir os métodos equivalentes do SDK da Vertex AI para Python e do Azure OpenAI.
Instalar a API Vertex AI PaLM
OpenAI Azure
$ pip install --upgrade openai
API Vertex AI PaLM
$ pip install google-cloud-aiplatform
Importar a API Vertex AI PaLM
OpenAI Azure
import openai
API PaLM da Vertex AI
from vertexai.preview.language_models import TextGenerationModel
Autenticar a API Vertex AI PaLM
OpenAI Azure
openai.api_key = os.getenv("OPENAI_API_KEY")
API PaLM da Vertex AI
from google.colab import auth as google_auth
google_auth.authenticate_user()
Comparações da API Vertex AI PaLM e do Azure e código de amostra
Gerar texto com o SDK Vertex AI para Python
OpenAI Azure
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 PaLM da Vertex AI
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}")
Usar a conclusão de chat com o SDK da Vertex AI para Python
OpenAI Azure
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 PaLM da Vertex AI
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}")
Usar a incorporação de texto com o SDK Vertex AI para Python
OpenAI Azure
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 PaLM da Vertex AI
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)}')
A seguir
- Saiba como testar comandos no Vertex AI Studio.
- Saiba mais sobre o design de comandos para textos e chats.
- Saiba mais sobre o embedding de texto.
- Saiba como ajustar modelos de base.