Bermigrasi dari PaLM API ke Gemini API di Vertex AI

Panduan ini menunjukkan cara memigrasikan kode Vertex AI SDK untuk Python dari penggunaan PaLM API ke penggunaan Gemini API. Anda dapat membuat teks, percakapan multi-giliran (chat), dan kode dengan Gemini. Setelah bermigrasi, periksa respons Anda karena output Gemini mungkin berbeda dengan output PaLM. Untuk mengetahui informasi selengkapnya, lihat Pengantar class multimodal di Vertex AI SDK.

Perbedaan Gemini dari PaLM

Berikut adalah beberapa perbedaan antara model Gemini dan PaLM:

  • Struktur responsnya berbeda. Untuk mempelajari struktur respons Gemini, lihat isi respons referensi model Gemini API.

  • Kategori keamanannya berbeda. Untuk mempelajari perbedaan antara setelan keamanan Gemini dan PaLM, lihat Perbedaan utama antara Gemini dan keluarga model lainnya.

  • Gemini tidak dapat melakukan penyelesaian kode. Jika Anda perlu membuat aplikasi penyelesaian kode, gunakan model code-gecko. Untuk mengetahui informasi selengkapnya, lihat Model penyelesaian kode Codey.

  • Untuk pembuatan kode, Gemini memiliki kecepatan blok pembacaan yang lebih tinggi.

  • Skor keyakinan dalam model pembuatan kode Codey yang menunjukkan tingkat keyakinan model dalam responsnya tidak ditampilkan di Gemini.

Mengupdate kode PaLM untuk menggunakan model Gemini

Metode di class GenerativeModel sebagian besar sama dengan metode di class PaLM. Misalnya, gunakan GenerativeModel.start_chat untuk mengganti ChatModel.start_chat yang setara dengan PaLM. Namun, karena Google Cloud selalu meningkatkan dan mengupdate Gemini, Anda mungkin mengalami beberapa perbedaan. Untuk informasi selengkapnya, lihat Referensi Python SDK

Untuk bermigrasi dari PaLM API ke Gemini API, modifikasi kode berikut diperlukan:

  • Untuk semua class model PaLM, Anda menggunakan class GenerativeModel di Gemini.

  • Untuk menggunakan class GenerativeModel, jalankan pernyataan impor berikut:

    from vertexai.generative_models import GenerativeModel

  • Untuk memuat model Gemini, gunakan konstruktor GenerativeModel, bukan menggunakan metode from_pretrained. Misalnya, untuk memuat model Gemini 1.0 Pro, gunakan GenerativeModel(gemini-1.0-pro).

  • Untuk membuat teks di Gemini, gunakan metode GenerativeModel.generate_content, bukan metode predict yang digunakan pada model PaLM. Contoh:

   model = GenerativeModel("gemini-1.0-pro-002")
   response = model.generate_content("Write a short poem about the moon")

Perbandingan class Gemini dan PaLM

Setiap class model PaLM diganti dengan class GenerativeModel di Gemini. Tabel berikut menunjukkan class yang digunakan oleh model PaLM dan class yang setara di Gemini.

Model PaLM Class model PaLM Class model Gemini
text-bison TextGenerationModel GenerativeModel
chat-bison ChatModel GenerativeModel
code-bison CodeGenerationModel GenerativeModel
codechat-bison CodeChatModel GenerativeModel

Petunjuk penyiapan umum

Untuk PaLM API dan Gemini API di Vertex AI, proses penyiapannya sama. Untuk mengetahui informasi selengkapnya, lihat Pengantar Vertex AI SDK untuk Python. Berikut adalah contoh kode singkat yang menginstal Vertex AI SDK untuk Python.

pip install google-cloud-aiplatform
import vertexai
vertexai.init(project="PROJECT_ID", location="LOCATION")

Dalam kode contoh ini, ganti PROJECT_ID dengan project ID Google Cloud Anda, dan ganti LOCATION dengan lokasi project Google Cloud Anda (misalnya, us-central1).

Contoh kode Gemini dan PaLM

Setiap pasangan contoh kode berikut menyertakan kode PaLM dan, di sampingnya, kode Gemini yang telah dimigrasikan dari kode PaLM.

Pembuatan teks: dasar

Contoh kode berikut menunjukkan perbedaan antara PaLM API dan Gemini API untuk membuat model pembuatan teks.

PaLM Gemini
from vertexai.language_models import TextGenerationModel

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

response = model.predict(prompt="The opposite of hot is")
print(response.text) #  'cold.'
        
from vertexai.generative_models import GenerativeModel

model = GenerativeModel("gemini-1.0-pro")

responses = model.generate_content("The opposite of hot is")

for response in responses:
    print(response.text)
        

Pembuatan teks dengan parameter

Contoh kode berikut menunjukkan perbedaan antara PaLM API dan Gemini API untuk membuat model pembuatan teks, dengan parameter opsional.

PaLM Gemini
from vertexai.language_models import TextGenerationModel

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

prompt = """
You are an expert at solving word problems.

Solve the following problem:

I have three houses, each with three cats.
each cat owns 4 mittens, and a hat. Each mitten was
knit from 7m of yarn, each hat from 4m.
How much yarn was needed to make all the items?

Think about it step by step, and show your work.
"""

response = model.predict(
    prompt=prompt,
    temperature=0.1,
    max_output_tokens=800,
    top_p=1.0,
    top_k=40
)

print(response.text)
        
from vertexai.generative_models import GenerativeModel

model = GenerativeModel("gemini-1.0-pro")

prompt = """
You are an expert at solving word problems.

Solve the following problem:

I have three houses, each with three cats.
each cat owns 4 mittens, and a hat. Each mitten was
knit from 7m of yarn, each hat from 4m.
How much yarn was needed to make all the items?

Think about it step by step, and show your work.
"""

responses = model.generate_content(
    prompt,
    generation_config={
        "temperature": 0.1,
        "max_output_tokens": 800,
        "top_p": 1.0,
        "top_k": 40,
    }
  )

for response in responses:
    print(response.text)
        

Chat

Contoh kode berikut menunjukkan perbedaan antara PaLM API dan Gemini API untuk membuat model chat.

PaLM Gemini
from vertexai.language_models import ChatModel

model = ChatModel.from_pretrained("chat-bison@002")

chat = model.start_chat()

print(
    chat.send_message(
        """
Hello! Can you write a 300 word abstract for a research paper I need to write about the impact of AI on society?
"""
    )
)

print(
    chat.send_message(
        """
Could you give me a catchy title for the paper?
"""
    )
)
        
from vertexai.generative_models import GenerativeModel

model = GenerativeModel("gemini-1.0-pro")

chat = model.start_chat()


responses = chat.send_message(
        """
Hello! Can you write a 300 word abstract for a research paper I need to write about the impact of AI on society?
"""
    )

for response in responses:
   print(response.text)


responses = chat.send_message(
        """
Could you give me a catchy title for the paper?
"""
    )

for response in responses:
   print(response.text)
        

Pembuatan kode

Contoh kode berikut menunjukkan perbedaan antara PaLM API dan Gemini API untuk membuat fungsi yang memprediksi apakah tahun adalah tahun kabisat.

Codey Gemini
from vertexai.language_models import CodeGenerationModel

model = CodeGenerationModel.from_pretrained("code-bison@002")

response = model.predict(
        prefix="Write a function that checks if a year is a leap year."
    )

print(response.text)
        
from vertexai.generative_models import GenerativeModel

model = GenerativeModel("gemini-1.0-pro-002")

response = model.generate_content("Write a function that checks if a year is a leap year.")

print(response.text)
        

Memigrasikan perintah ke model Gemini

Jika memiliki kumpulan perintah yang sebelumnya digunakan dengan model PaLM 2, Anda dapat mengoptimalkannya untuk digunakan dengan model Gemini dengan menggunakan Vertex AI prompt optimizer (Pratinjau).

Langkah berikutnya

  • Lihat halaman Model Google untuk mengetahui detail selengkapnya tentang model dan fitur terbaru.