Halaman ini memberikan pemahaman tentang konsep utama yang harus Anda ketahui sebelum mendaftarkan endpoint model AI dan memanggil prediksi dengan Pengelolaan endpoint model.
Untuk mendaftarkan endpoint model jarak jauh dengan AlloyDB, lihat Mendaftarkan dan memanggil model AI jarak jauh di AlloyDB.
Ringkasan
Pengelolaan endpoint model memungkinkan Anda mendaftarkan endpoint model, mengelola metadata endpoint model di
cluster database, dan melakukan panggilan ke endpoint model jarak jauh menggunakan kueri SQL. Library ini menyediakan ekstensi google_ml_integration
yang menyertakan fungsi yang memungkinkan Anda mendaftarkan metadata yang terkait dengan model AI dengan AlloyDB. Metadata terdaftar ini digunakan untuk membuat penyematan vektor atau memanggil prediksi.
Beberapa contoh jenis model yang dapat Anda daftarkan menggunakan pengelolaan endpoint model adalah sebagai berikut:
- Embedding teks dan model generik Vertex AI
- Model penyematan yang disediakan oleh penyedia pihak ketiga, seperti Hugging Face atau OpenAI
- Model penyematan teks yang dihosting secara kustom, termasuk model yang dihosting sendiri atau model yang tersedia melalui endpoint pribadi
- Model generik dengan API berbasis JSON—misalnya, model
facebook/bart-large-mnli
yang dihosting di Hugging Face, modelgemini-pro
dari Model Garden Vertex AI, atau modelclaude
oleh Anthropic
Cara kerjanya
Anda dapat menggunakan pengelolaan endpoint model untuk mendaftarkan endpoint model yang mematuhi hal berikut:
- Input dan output model mendukung format JSON.
- Model dapat dipanggil menggunakan protokol REST.
Saat Anda mendaftarkan endpoint model dengan pengelolaan endpoint model, pengelolaan endpoint model akan mendaftarkan setiap endpoint dengan ID model unik yang Anda berikan sebagai referensi ke model.
Anda dapat menggunakan ID endpoint model untuk membuat kueri model guna:
Buat embedding untuk menerjemahkan perintah teks menjadi vektor numerik. Anda dapat menyimpan penyematan yang dihasilkan sebagai data vektor saat ekstensi
vector
diaktifkan di database. Untuk mengetahui informasi selengkapnya, lihat Mengkueri dan mengindeks penyematan dengan pgvector.Memanggil prediksi menggunakan sql.
Aplikasi Anda dapat mengakses pengelolaan endpoint model menggunakan ekstensi google_ml_integration
. Ekstensi ini menyediakan fungsi berikut:
- Fungsi SQL
google_ml.create_model()
, yang digunakan untuk mendaftarkan endpoint model yang digunakan dalam fungsi prediksi atau penyematan. - Fungsi SQL
google_ml.create_sm_secret()
, yang menggunakan secret di Secret Manager Google Cloud, tempat kunci API disimpan. - Fungsi SQL
google_ml.embedding()
, yang merupakan fungsi prediksi yang menghasilkan penyematan teks. Jenis nilai yang ditampilkan dari fungsi penyematan adalahREAL[]
. - Fungsi SQL
google_ml.predict_row()
yang menghasilkan prediksi saat Anda memanggil model umum yang mendukung format input dan output JSON. - Fungsi bantuan lainnya yang menangani pembuatan URL kustom, pembuatan header HTTP, atau meneruskan fungsi transformasi.
- Fungsi untuk mengelola endpoint dan secret model terdaftar.
Konsep utama
Sebelum mulai menggunakan pengelolaan endpoint model, pahami konsep yang diperlukan untuk terhubung dan menggunakan model.
Penyedia model
Penyedia model menunjukkan penyedia hosting model yang didukung. Menyetel penyedia model bersifat opsional, tetapi membantu pengelolaan endpoint model dalam mengidentifikasi penyedia, dan memformat header secara otomatis untuk model yang didukung. Tabel berikut menunjukkan nilai penyedia model yang dapat Anda tetapkan berdasarkan penyedia model yang Anda gunakan:
Penyedia model | Tetapkan dalam fungsi sebagai… |
---|---|
Vertex AI | google |
Model Hugging Face | hugging_face |
Model anthropic | anthropic |
OpenAI | open_ai |
Model lainnya | custom |
Penyedia model default-nya adalah custom
.
Berdasarkan jenis penyedia, metode autentikasi yang didukung akan berbeda. Model Vertex AI menggunakan akun layanan yang digunakan untuk menginstal AlloyDB Omni untuk melakukan autentikasi, sedangkan penyedia lain dapat menggunakan Pengelola Rahasia atau meneruskan detail autentikasi melalui header. Untuk informasi selengkapnya, lihat Menyiapkan autentikasi.
Jenis model
Jenis model menunjukkan jenis model AI. Ekstensi ini mendukung penyematan teks serta jenis model umum. Jenis model yang didukung yang dapat Anda tetapkan saat mendaftarkan endpoint model adalah text-embedding
dan generic
.
Menetapkan jenis model bersifat opsional saat mendaftarkan endpoint model generik karena generic
adalah jenis model default.
- Model Vertex AI yang terdaftar sebelumnya
- Pengelolaan endpoint model mendukung beberapa penyematan teks dan model Vertex AI generik sebagai ID model yang terdaftar sebelumnya. Anda dapat langsung menggunakan ID model untuk membuat penyematan atau memanggil prediksi, berdasarkan jenis model.
Untuk informasi selengkapnya tentang model terdaftar sebelumnya yang didukung, lihat Model Vertex AI terdaftar sebelumnya.
Misalnya, untuk memanggil modeltextembedding-gecko
terdaftar sebelumnya, Anda dapat langsung memanggil model menggunakan fungsi penyematan:SELECT google_ml.embedding( model_id => 'textembedding-gecko', content => 'AlloyDB is a managed, cloud-hosted SQL database service');
- Model dengan dukungan bawaan
- Pengelolaan endpoint model menyediakan dukungan bawaan untuk beberapa model oleh Vertex AI, Anthropic, dan OpenAI. Untuk model penyematan teks dengan dukungan bawaan, AlloyDB akan otomatis menyiapkan fungsi transformasi default.
- Saat mendaftarkan endpoint model ini, tetapkan nama yang memenuhi syarat secara eksplisit. Untuk informasi selengkapnya tentang daftar model dengan dukungan bawaan, lihat Model dengan dukungan bawaan.
- Jenis model untuk model ini dapat berupa
text-embedding
ataugeneric
. - Model embedding teks lainnya
- Untuk mendaftarkan endpoint model penyematan teks tanpa dukungan bawaan, sebaiknya Anda membuat fungsi transformasi untuk menangani format input dan output yang didukung model. Secara opsional, bergantung pada persyaratan model, Anda mungkin juga perlu membuat fungsi header kustom untuk menentukan header.
- Jenis model untuk model ini adalah
text-embedding
. - Model generik
- Pengelolaan endpoint model juga mendukung pendaftaran semua jenis model lainnya selain model penyematan teks. Untuk
memanggil prediksi untuk model generik, gunakan
fungsi
google_ml.predict_row()
. Anda dapat menetapkan metadata endpoint model, seperti endpoint permintaan dan header HTTP yang khusus untuk model Anda. - Anda tidak dapat meneruskan fungsi transformasi saat mendaftarkan endpoint model generik. Pastikan bahwa saat Anda memanggil prediksi, input ke fungsi dalam format JSON, dan Anda mengurai output JSON untuk mendapatkan output akhir.
- Jenis model untuk model ini adalah
generic
.
Autentikasi
Jenis autentikasi menunjukkan jenis autentikasi yang dapat Anda gunakan untuk terhubung ke
pengelolaan endpoint model menggunakan ekstensi google_ml_integration
. Menetapkan autentikasi bersifat opsional dan hanya diperlukan jika Anda perlu melakukan autentikasi untuk mengakses model.
Untuk model Vertex AI, akun layanan AlloyDB digunakan untuk autentikasi. Untuk model lain,
kunci API atau token pembawa yang disimpan sebagai secret di
Secret Manager dapat digunakan dengan fungsi SQL
google_ml.create_sm_secret()
. Jika meneruskan autentikasi melalui header, Anda dapat melewati penetapan metode autentikasi.
Tabel berikut menunjukkan jenis autentikasi yang dapat Anda tetapkan:
Metode autentikasi | Tetapkan dalam fungsi sebagai… | Penyedia model |
---|---|---|
Agen layanan AlloyDB | alloydb_service_agent_iam |
Penyedia Vertex AI |
Secret Manager | secret_manager |
penyedia pihak ketiga, seperti Anthropic, Hugging Face, atau OpenAI |
Fungsi prediksi
Ekstensi google_ml_integration
mencakup fungsi prediksi berikut:
google_ml.embedding()
- Digunakan untuk memanggil endpoint model penyematan teks terdaftar untuk membuat penyematan.
- Untuk model penyematan teks tanpa dukungan bawaan, parameter input dan output bersifat unik untuk model dan perlu ditransformasikan agar fungsi dapat memanggil model. Anda harus membuat fungsi input transformasi untuk mengubah input fungsi prediksi menjadi input khusus model, dan fungsi output transformasi untuk mengubah output khusus model menjadi output fungsi prediksi.
google_ml.predict_row()
- Digunakan untuk memanggil endpoint model generik terdaftar, selama model mendukung API berbasis JSON, untuk memanggil prediksi.
Fungsi transformasi
Fungsi transformasi mengubah input ke format yang dipahami model, dan
mengonversi respons model ke format yang diharapkan fungsi prediksi. Fungsi transformasi digunakan saat mendaftarkan endpoint model text-embedding
tanpa dukungan bawaan. Tanda tangan fungsi transformasi bergantung pada
input yang diharapkan oleh model.
Anda tidak dapat menggunakan fungsi transformasi saat mendaftarkan endpoint model generic
.
Berikut ini menunjukkan tanda tangan untuk fungsi prediksi untuk model penyematan teks:
// define custom model specific input/output transform functions.
CREATE OR REPLACE FUNCTION input_transform_function(model_id VARCHAR(100), input_text TEXT) RETURNS JSON;
CREATE OR REPLACE FUNCTION output_transform_function(model_id VARCHAR(100), response_json JSON) RETURNS real[];
Untuk informasi selengkapnya tentang cara membuat fungsi transformasi, lihat Contoh fungsi transformasi.
Fungsi pembuatan header HTTP
Fungsi pembuatan header HTTP menghasilkan output dalam key-value pair JSON yang digunakan sebagai header HTTP. Tanda tangan fungsi prediksi menentukan tanda tangan fungsi pembuatan header.
Contoh berikut menunjukkan tanda tangan untuk fungsi prediksi google_ml.embedding()
.
CREATE OR REPLACE FUNCTION generate_headers(model_id VARCHAR(100), input TEXT) RETURNS JSON;
Untuk fungsi prediksi google_ml.predict_row()
, tanda tangannya adalah sebagai berikut:
CREATE OR REPLACE FUNCTION generate_headers(model_id VARCHAR(100), input JSON) RETURNS JSON;
Untuk mengetahui informasi selengkapnya tentang cara membuat fungsi pembuatan header, lihat Contoh fungsi pembuatan header.
Langkah selanjutnya
- Siapkan autentikasi untuk penyedia model.
- Mendaftarkan endpoint model dengan pengelolaan endpoint model.
- Pelajari referensi pengelolaan endpoint model.