Bermigrasi dari PaLM API ke Gemini API di Vertex AI

Panduan ini menunjukkan cara memigrasikan Vertex AI SDK untuk kode Python dari penggunaan PaLM APi ke Gemini API. Anda dapat menghasilkan teks, percakapan multi-giliran (chat), dan kode dengan Gemini. Setelah melakukan migrasi, 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 dengan PaLM

Berikut adalah beberapa perbedaan antara model Gemini dan PaLM:

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

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

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

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

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

Memperbarui 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 yang setara PaLM, ChatModel.start_chat. Namun, karena Google Cloud selalu meningkatkan dan mengupdate Gemini, Anda mungkin akan menemukan beberapa perbedaan. Untuk mengetahui informasi selengkapnya, lihat Referensi Python SDK

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

  • 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 metode from_pretrained. Misalnya, untuk memuat model Gemini 1.0 Pro, gunakan GenerativeModel(gemini-1.0-pro).

  • Untuk menghasilkan 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 menampilkan class yang digunakan oleh model PaLM dan class yang setara di Gemini.

model PaLM Class model PaLM Kelas 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 mencakup 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 menghasilkan fungsi yang memprediksi apakah sebuah 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)
        

Langkah berikutnya