Merujuk respons untuk model PaLM 2

Untuk memulai perumusan model di Generative AI di Vertex AI, Anda harus menyelesaikan beberapa prasyarat. Hal ini mencakup pembuatan sumber data Vertex AI Search, mengaktifkan edisi Enterprise untuk datastore, dan menautkan datastore ke aplikasi di Vertex AI Search. Sumber data berfungsi sebagai dasar untuk me-grounding text-bison dan chat-bison di Vertex AI.

Vertex AI Search membantu Anda memulai penelusuran atau rekomendasi berkualitas tinggi berdasarkan data yang Anda berikan. Untuk mempelajari Vertex AI Search lebih lanjut, lihat Pengantar Vertex AI Search.

Mengaktifkan Vertex AI Search

  1. Di konsol Google Cloud, buka halaman Penelusuran & Percakapan.

    Search & Conversation

  2. Baca dan setujui persyaratan layanan, lalu klik Lanjutkan dan aktifkan API.

Membuat datastore di Vertex AI Search

Untuk melandaskan model ke data sumber, Anda harus menyiapkan dan menyimpan data ke Vertex AI Search. Untuk melakukannya, Anda perlu membuat penyimpanan data di Vertex AI Search.

Jika memulai dari awal, Anda perlu menyiapkan data untuk diserap ke Vertex AI Search. Lihat Menyiapkan data untuk penyerapan untuk memulai. Bergantung pada ukuran data Anda, proses transfer dapat memerlukan waktu beberapa menit hingga beberapa jam. Hanya penyimpanan data tidak terstruktur yang didukung untuk grounding. Setelah menyiapkan data untuk penyerapan, Anda dapat Membuat penyimpanan data penelusuran. Setelah berhasil membuat penyimpanan data, Buat aplikasi penelusuran untuk menautkan ke penyimpanan data tersebut dan Aktifkan edisi Enterprise.

Membumikan model text-bison

Grounding tersedia untuk model text-bison dan chat-bison. Contoh berikut menggunakan model dasar text-bison.

Jika menggunakan API, Anda akan me-ground text-bison saat memanggil predict. Untuk melakukannya, Anda menambahkan groundingConfig opsional dan mereferensikan lokasi datastore, dan ID datastore Anda.

Jika Anda tidak mengetahui ID datastore, ikuti langkah-langkah berikut:

  1. Di konsol Google Cloud, buka halaman Vertex AI Search dan di menu navigasi, klik Data stores. Buka halaman Repositori data
  2. Klik nama datastore Anda.
  3. Di halaman Data untuk datastore Anda, dapatkan ID datastore.

REST

Untuk menguji prompt teks menggunakan Vertex AI API, kirim permintaan POST ke endpoint model penayang.

Sebelum menggunakan data permintaan mana pun, lakukan penggantian berikut:

  • PROJECT_ID: Project ID Anda.
  • 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. (Jangan tambahkan tanda kutip di sekitar perintah di sini.)
  • 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 respons pengganti, coba tingkatkan suhunya.

  • MAX_OUTPUT_TOKENS: 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 panjang.

  • TOP_P: 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 adalah 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.

  • TOP_K: Top-K mengubah cara model memilih token untuk output. Top-K dari 1 berarti token yang dipilih berikutnya adalah yang paling mungkin di antara semua token dalam kosakata model (juga disebut decoding greedy), sedangkan nilai top-K dari 3 berarti token berikutnya dipilih di antara tiga token yang paling mungkin 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.

  • SOURCE_TYPE Jenis sumber data yang menjadi dasar model. Hanya Vertex AI Search yang didukung.
  • VERTEX_AI_SEARCH_DATA_STORE: Jalur ID penyimpanan data Vertex AI Search.

    VERTEX_AI_SEARCH_DATA_STORE harus menggunakan format berikut. Gunakan nilai yang diberikan untuk lokasi dan koleksi: projects/{project_id}/locations/global/collections/default_collection/dataStores/{data_store_id}

    Catatan: Project ID di jalur ID penyimpanan data ini adalah project ID Vertex AI Search Anda.

Metode HTTP dan URL:

POST https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/text-bison:predict

Isi JSON permintaan:

{
  "instances": [
    { "prompt": "PROMPT"}
  ],
  "parameters": {
    "temperature": TEMPERATURE,
    "maxOutputTokens": MAX_OUTPUT_TOKENS,
    "topP": TOP_P,
    "topK": TOP_K,
    "groundingConfig": {
      "sources": [
          {
              "type": "VERTEX_AI_SEARCH",
              "vertexAiSearchDatastore": "VERTEX_AI_SEARCH_DATA_STORE"
          }
      ]
    }
  }
}

Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:

curl

Simpan isi permintaan dalam file bernama request.json, dan jalankan perintah berikut:

curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/text-bison:predict"

PowerShell

Simpan isi permintaan dalam file bernama request.json, dan jalankan perintah berikut:

$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }

Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://us-central1-aiplatform.googleapis.com/v1/projects/PROJECT_ID/locations/us-central1/publishers/google/models/text-bison:predict" | Select-Object -Expand Content

Anda akan melihat respons JSON yang mirip seperti berikut:

Konsol

Untuk melakukan grounding model dari Vertex AI Studio, ikuti petunjuk berikut.

  1. Pilih kartu model PaLM 2 for Text Bison atau PaLM 2 for Chat Bison di Model Garden.

    Buka Model Garden
  2. Dari kartu model, klik Open prompt design. Vertex AI Studio akan terbuka.
  3. Dari panel parameter, pilih Advanced.
  4. Alihkan opsi Aktifkan Grounding dan pilih Sesuaikan.
  5. Dari dropdown sumber grounding, pilih Vertex AI Search.
  6. Masukkan jalur penyimpanan data Vertex AI Search ke konten Anda. Jalur harus mengikuti format ini: projects/{project_id}/locations/global/collections/default_collection/dataStores/{data_store_id}.
  7. Masukkan perintah Anda, lalu klik Kirim.

Python

Untuk mempelajari cara menginstal atau mengupdate Vertex AI SDK untuk Python, lihat Menginstal Vertex AI SDK untuk Python. Untuk mengetahui informasi selengkapnya, lihat Dokumentasi referensi Python API.

import vertexai

from vertexai.language_models import GroundingSource, TextGenerationModel

# TODO(developer): Update and un-comment below line
# PROJECT_ID = "your-project-id"
vertexai.init(project=PROJECT_ID, location="us-central1")

# TODO developer - override these parameters as needed:
parameters = {
    "temperature": 0.1,  # Temperature controls the degree of randomness in token selection.
    "max_output_tokens": 256,  # Token limit determines the maximum amount of text output.
    "top_p": 0.8,  # Tokens are selected from most probable to least until the sum of their probabilities equals the top_p value.
    "top_k": 20,  # A top_k of 1 means the selected token is the most probable among all tokens.
}

model = TextGenerationModel.from_pretrained("text-bison@002")

# TODO(developer): Update and un-comment below lines
# data_store_id = "datastore_123456789012345"
# data_store_location = "global"
if data_store_id and data_store_location:
    # Use Vertex AI Search data store
    grounding_source = GroundingSource.VertexAISearch(
        data_store_id=data_store_id, location=data_store_location
    )
else:
    # Use Google Search for grounding (Private Preview)
    grounding_source = GroundingSource.WebSearch()

response = model.predict(
    "What are the price, available colors, and storage size options of a Pixel Tablet?",
    grounding_source=grounding_source,
    **parameters,
)
print(f"Response from Model: {response.text}")
print(f"Grounding Metadata: {response.grounding_metadata}")

Langkah selanjutnya