Bermigrasi ke Gemini API dari Azure OpenAI

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

Gemini API adalah layanan berbasis cloud yang terkelola sepenuhnya dan dapat digunakan untuk membuat dan melatih model generatif menggunakan Konsol Google Cloud. LLM memberikan akses ke model bahasa besar (LLM), yang dapat Anda gunakan untuk membuat berbagai aplikasi, termasuk chatbot, generator konten, dan alat kreatif.

Prasyarat

Untuk memigrasikan layanan OpenAI dari Microsoft Azure OpenAI ke Vertex AI Gemini API, Anda harus membuat project dan lingkungan pengembangan Google Cloud terlebih dahulu. Untuk mengetahui informasi selengkapnya, lihat Melakukan penyiapan di Google Cloud.

Bermigrasi ke Gemini API

Gunakan topik berikut untuk mempelajari cara bermigrasi ke Gemini API dari project OpenAI di Microsoft Azure.

Menggunakan parameter Gemini API yang setara

Berikut adalah beberapa parameter Azure OpenAI umum dan parameter yang setara di Gemini API:

Parameter OpenAI Parameter Gemini 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. Text
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 respons penggantian, coba tingkatkan suhu.

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 pendek dan nilai yang lebih tinggi untuk respons yang berpotensi lebih lama.

1-8192 (AI Open)

18192 (Gemini 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

stop stop_sequences Urutan perhentian adalah serangkaian karakter (termasuk spasi) yang menghentikan pembuatan respons jika ditemukan oleh model. Urutan tidak disertakan sebagai bagian dari respons. Anda dapat menambahkan hingga lima urutan perhentian. Urutan perhentian Anda dalam array—misalnya, ["###"].

Menggunakan model Gemini API yang setara

Tabel berikut menjelaskan model dasar yang tersedia.

Jenis Deskripsi Endpoint OpenAI Endpoint LLM Gemini API
Text Disesuaikan untuk mengikuti petunjuk bahasa alami dan cocok untuk berbagai tugas bahasa. gpt-3.5-turbo atau gpt-4 gemini-1.0-pro
Chat Disesuaikan untuk kasus penggunaan percakapan multi-giliran. gpt-3.5-turbo atau gpt-4 gemini-1.0-pro

Menginstal, mengimpor, dan mengautentikasi Vertex AI Gemini API

Gunakan Vertex AI SDK untuk Python guna menginstal, mengimpor, dan mengautentikasi Vertex AI Gemini API. Berikut ini adalah metode yang setara untuk Vertex AI SDK untuk Python dan Azure OpenAI.

Menginstal Vertex AI Gemini API

Azure OpenAI

$ pip install --upgrade openai

Vertex AI Gemini API

$ pip install google-cloud-aiplatform

Mengimpor Vertex AI Gemini API

Azure OpenAI

import openai

Vertex AI Gemini API

from vertexai.preview.generative_models import GenerativeModel

Mengautentikasi Vertex AI Gemini API

Azure OpenAI

openai.api_key = os.getenv("OPENAI_API_KEY")

Vertex AI Gemini API

from google.colab import auth as google_auth
google_auth.authenticate_user()

Perbandingan dan kode contoh Vertex AI Gemini API dan Azure

Membuat teks dengan Vertex AI SDK untuk Python

Azure OpenAI

from openai import OpenAI

client = OpenAI()

response = client.completions.create(
    prompt="Write an article about the potential of AI",
    max_tokens=8192,
    temperature=0.3,
    model="gpt-4")

print(f"Response from Model: {response['choices'][0]['text']}")

Vertex AI Gemini API

from vertexai.preview.generative_models import GenerativeModel

model = GenerativeModel("gemini-1.0-pro")
generation_config = {
    "max_output_tokens": 8192,
    "temperature": 0.9,
    "top_p": 1}

responses = model.generate_content(
    "Write an article about the potential of AI",
    generation_config=generation_config,
    stream=True)

for response in responses:
    print(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_completion = client.chat.completions.create(
    messages=[
      {"role": "user", "name":"example_user", "content": "Hello! Can you write a 300 word article on the history of AI?"}
      ]
    ,
    **parameters)
response = chat_completion['choices'][0]
print(f"Response from Model: {response.text}")

chat_completion = client.chat.completions.create(
    messages=[
      {"role": "user", "name":"example_user", "content": "Could you give me a catchy title for the paper?"}
      ]
    ,
    **parameters)
response = chat_completion['choices'][0]
print(f"Response from Model: {response.text}")

Vertex AI Gemini API

from vertexai.preview.generative_models import GenerativeModel

model = GenerativeModel("gemini-1.0-pro")
chat = model.start_chat()

responses = chat.send_message(
    content="Hello! Can you write a 300 word article on the history of AI?",
    stream=True)

for response in responses:
    print(response.text)

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

for response in responses:
    print(response.text)

Membuat kode dengan Vertex AI SDK untuk Python

Azure OpenAI

from openai import OpenAI

client = OpenAI()

response = client.completions.create(
    prompt="Write a Python code to read a CSV file in pandas, calculate the average for a specific column, and then sort the data in descending order for that column",
    max_tokens=8192,
    temperature=0.3,
    model="gpt-4")

print(f"Response from Model: {response['choices'][0]['text']}")

Vertex AI Gemini API

from vertexai.preview.generative_models import GenerativeModel

model = GenerativeModel("gemini-1.0-pro")
generation_config = {
    "max_output_tokens": 8192,
    "temperature": 0.9,
    "top_p": 1,
    }

responses = model.generate_content(
    contents="Write a Python code to read a CSV file in pandas, calculate the average for a specific column, and then sort the data in descending order for that column",
    generation_config=generation_config,
    stream=True)

for response in responses:
    print(response.text)

Langkah selanjutnya