Bermigrasi ke PaLM API dari Azure OpenAI

Halaman ini menguraikan langkah-langkah yang diperlukan untuk bermigrasi ke Vertex AI PaLM API dari OpenAI Microsoft Azure.

Tujuan

PaLM API adalah layanan berbasis cloud yang terkelola Anda dapat membuat dan melatih model generatif menggunakan konsol Google Cloud. Menyediakan akses ke model bahasa besar (LLM), yang dapat Anda gunakan untuk membuat aplikasi, termasuk chatbot, generator konten, dan alat kreatif.

Prasyarat

Untuk memigrasikan layanan OpenAI dari Microsoft Azure Open AI ke Vertex AI PaLM API, Anda harus membuat project dan lingkungan pengembangan Google Cloud terlebih dahulu. Sebagai informasi selengkapnya, lihat Menyiapkan project Google Cloud dan lingkungan pengembangan.

Bermigrasi ke PaLM API

Gunakan topik berikut untuk mempelajari cara bermigrasi ke PaLM API dari proyek OpenAI di Microsoft Azure.

Menggunakan parameter PaLM API yang setara

Berikut adalah beberapa parameter umum OpenAI Azure dan padanannya di PaLM API:

Parameter OpenAI Parameter PaLM API Deskripsi Nilai yang valid
prompt prompt Perintah adalah permintaan natural language yang dikirimkan ke model bahasa untuk menerima respons kembali. Perintah dapat berisi pertanyaan, petunjuk, informasi kontekstual, contoh, dan teks untuk diselesaikan atau dilanjutkan oleh model. Teks
temperature temperature Suhu digunakan untuk pengambilan sampel selama pembuatan respons, yang terjadi saat topP dan topK diterapkan. Suhu mengontrol tingkat keacakan dalam pemilihan token. Suhu yang lebih rendah cocok untuk perintah yang memerlukan respons yang kurang terbuka atau kreatif, sedangkan suhu yang lebih tinggi dapat memberikan hasil yang lebih beragam atau kreatif. Suhu 0 berarti token probabilitas tertinggi selalu dipilih. Dalam hal ini, respons untuk permintaan tertentu sebagian besar deterministik, tetapi sedikit variasi masih dapat dilakukan.

Jika model menampilkan respons yang terlalu umum, terlalu pendek, atau model memberikan fallback respons, coba tingkatkan suhunya.

0.01.0

max_tokens maxOutputTokens Jumlah maksimum token yang dapat dibuat dalam respons. Token terdiri dari sekitar empat karakter. 100 token setara dengan sekitar 60-80 kata.

Tentukan nilai yang lebih rendah untuk respons yang lebih singkat dan nilai yang lebih tinggi untuk respons yang berpotensi lebih lama yang dihasilkan.

1-8192 (OpenAI)

18192 (PaLM API)

Tidak tersedia topK Top-K mengubah cara model memilih token untuk output. Top-K 1 berarti token yang dipilih berikutnya adalah yang paling mungkin di antara semua token dalam kosakata model (juga disebut decoding greedy), sedangkan top-K 3 berarti token berikutnya dipilih di antara tiga token yang paling mungkin dengan menggunakan suhu.

Untuk setiap langkah pemilihan token, token top-K dengan probabilitas tertinggi akan diambil sampelnya. Kemudian token akan difilter lebih lanjut berdasarkan top-P dengan token akhir yang dipilih menggunakan pengambilan sampel suhu.

Tentukan nilai yang lebih rendah untuk respons acak yang lebih sedikit dan nilai yang lebih tinggi untuk respons acak yang lebih banyak.

140

top_p topP Top-P mengubah cara model memilih token untuk output. Token dipilih dari yang paling mungkin (lihat top-K) hingga yang paling tidak mungkin sampai jumlah probabilitasnya sama dengan nilai top-P. Misalnya, jika token A, B, dan C memiliki probabilitas 0,3, 0,2, dan 0,1 dengan nilai top-P 0.5, model akan memilih A atau B sebagai token berikutnya dengan menggunakan suhu dan mengecualikan C sebagai kandidat.

Tentukan nilai yang lebih rendah untuk respons acak yang lebih sedikit dan nilai yang lebih tinggi untuk respons acak yang lebih banyak.

0.01.0

Gunakan model PaLM API yang setara

Tabel berikut menjelaskan model dasar yang tersedia.

Jenis Deskripsi Endpoint OpenAI Endpoint LLM PaLM API
Teks Disesuaikan agar mengikuti petunjuk natural language dan cocok untuk berbagai tugas bahasa. gpt-3.5-turbo atau gpt-4 text-bison@002
Chat Disesuaikan untuk kasus penggunaan percakapan multi-giliran. gpt-3.5-turbo atau gpt-4 chat-bison@002
Embedding Disesuaikan untuk menampilkan embedding model untuk input teks. text-embedding-ada-002 textembedding-gecko@003

Menginstal, mengimpor, dan mengautentikasi Generative AI di Vertex AI

Menggunakan Vertex AI SDK untuk Python guna menginstal, mengimpor, dan mengautentikasi AI Generatif di Vertex AI. Yang berikut ini menunjukkan metode yang setara untuk Vertex AI SDK untuk Python dan Azure OpenAI.

Menginstal Vertex AI PaLM API

Azure OpenAI

$ pip install --upgrade openai

Vertex AI PaLM API

$ pip install google-cloud-aiplatform

Mengimpor Vertex AI PaLM API

Azure OpenAI

import openai

Vertex AI PaLM API

from vertexai.preview.language_models import TextGenerationModel

Mengautentikasi Vertex AI PaLM API

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()

Perbandingan dan kode contoh Vertex AI PaLM API dan Azure

Membuat teks dengan Vertex AI SDK untuk 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']}")

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

Menggunakan penyelesaian chat dengan Vertex AI SDK untuk 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}")

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

Menggunakan embedding teks dengan Vertex AI SDK untuk 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)}')

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

Langkah selanjutnya