Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Artikel ini menjelaskan cara mengelola model yang melayani titik akhir menggunakan Antarmuka Pengguna Penyajian dan REST API. Lihat Menyajikan titik akhir dalam referensi REST API.
Untuk membuat titik akhir penyajian model, gunakan salah satu hal berikut:
- Membuat model kustom yang melayani titik akhir.
- Membuat model fondasi yang melayani titik akhir.
Dapatkan status titik akhir model
Anda dapat memeriksa status titik akhir menggunakan Antarmuka Pengguna penyajian atau secara terprogram menggunakan REST API, Klien Ruang Kerja Databricks, atau SDK Penyebaran MLflow.
Status titik akhir dapat berupa Ready, , Ready (Update failed), Not ready (Updating)Not ready (Update failed), atau Not ready (Stopped). Kesiapan mengacu pada apakah endpoint dapat diakses atau tidak. Pembaruan gagal menandakan bahwa perubahan terbaru pada titik akhir belum berhasil. Dihentikan berarti titik akhir dihentikan.
Antarmuka Pengguna
Indikator Status titik akhir penyajian di bagian atas halaman detail titik akhir:
REST API
GET /api/2.0/serving-endpoints/{name}
Dalam contoh respons berikut, state.ready bidangnya adalah "SIAP", yang berarti titik akhir siap untuk menerima lalu lintas. Bidang state.update_state adalah NOT_UPDATING dan pending_config tidak lagi dikembalikan karena pembaruan berhasil diselesaikan.
{
"name": "unity-model-endpoint",
"creator": "customer@example.com",
"creation_timestamp": 1666829055000,
"last_updated_timestamp": 1666829055000,
"state": {
"ready": "READY",
"update_state": "NOT_UPDATING"
},
"config": {
"served_entities": [
{
"name": "my-ads-model",
"entity_name": "myCatalog.mySchema.my-ads-model",
"entity_version": "1",
"workload_size": "Small",
"scale_to_zero_enabled": false,
"state": {
"deployment": "DEPLOYMENT_READY",
"deployment_state_message": ""
},
"creator": "customer@example.com",
"creation_timestamp": 1666829055000
}
],
"traffic_config": {
"routes": [
{
"served_model_name": "my-ads-model",
"traffic_percentage": 100
}
]
},
"config_version": 1
},
"id": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"permission_level": "CAN_MANAGE"
}
Klien Ruang Kerja Databricks
from databricks.sdk import WorkspaceClient
w = WorkspaceClient()
endpoint = w.serving_endpoints.get(name="my-endpoint")
print(f"Endpoint state: {endpoint.state.ready}")
print(f"Update state: {endpoint.state.config_update}")
SDK Penggelaran MLflow
from mlflow.deployments import get_deploy_client
client = get_deploy_client("databricks")
endpoint = client.get_endpoint(endpoint="my-endpoint")
print(f"Endpoint state: {endpoint['state']}")
print(f"Endpoint config: {endpoint['config']}")
Menghentikan model yang melayani titik akhir
Anda dapat menghentikan sementara model yang melayani titik akhir dan memulainya nanti. Saat titik akhir dihentikan:
- Sumber daya yang disediakan untuknya dimatikan.
- Endpoint tidak dapat melayani kueri sampai dimulai ulang.
- Hanya titik akhir yang melayani model kustom dan tidak memiliki pembaruan yang sedang berlangsung dapat dihentikan.
- Titik akhir yang dihentikan tidak dihitung terhadap kuota sumber daya.
- Kueri yang dikirim ke endpoint yang dihentikan mengembalikan kesalahan 400.
Menghentikan titik akhir
Antarmuka Pengguna
Klik Berhenti di sudut kanan atas.
REST API
POST /api/2.0/serving-endpoints/{name}/config:stop
Memulai titik akhir
Memulai sebuah titik akhir membuat versi konfigurasi baru dengan properti yang sama seperti konfigurasi yang telah dihentikan sebelumnya.
Ketika Anda siap untuk memulai ulang layanan titik akhir dari model yang sebelumnya dihentikan:
Antarmuka Pengguna
Klik Mulai di sudut kanan atas.
REST API
POST /api/2.0/serving-endpoints/{name}/config:start
Menghapus titik akhir pengoperasian model
Menghapus titik akhir menonaktifkan penggunaan dan menghapus semua data yang terkait dengan titik akhir. Anda tidak dapat membatalkan penghapusan.
Antarmuka Pengguna
Klik menu kebab di bagian atas dan pilih Hapus.
REST API
DELETE /api/2.0/serving-endpoints/{name}
SDK Penggelaran MLflow
from mlflow.deployments import get_deploy_client
client = get_deploy_client("databricks")
client.delete_endpoint(endpoint="chat")
Men-debug model yang melayani titik akhir
Dua jenis log tersedia untuk membantu men-debug masalah dengan titik akhir:
- Log build kontainer server model: Dihasilkan selama proses inisialisasi endpoint ketika kontainer sedang dalam proses dibuat. Log ini menangkap fase penyiapan termasuk mengunduh model, menginstal dependensi, dan mengonfigurasi lingkungan runtime. Gunakan log ini untuk men-debug mengapa titik akhir gagal dimulai atau macet selama penyebaran.
- Model server logs: Dihasilkan selama runtime ketika server model secara aktif melayani prediksi. Log ini menangkap permintaan masuk, eksekusi inferensi model, kesalahan runtime, dan pengelogan tingkat aplikasi dari kode model Anda. Gunakan log ini untuk men-debug masalah dengan prediksi atau menyelidiki kegagalan kueri.
Kedua jenis log juga dapat diakses dari antarmuka pengguna Titik Akhir di tab Log .
Mendapatkan log build kontainer
Untuk log build dari model yang dilayani, Anda dapat menggunakan permintaan berikut. Lihat Panduan Debugging untuk Penyajian Model untuk informasi lebih lanjut.
GET /api/2.0/serving-endpoints/{name}/served-models/{served-model-name}/build-logs
{
"config_version": 1 // optional
}
Mendapatkan log server model
Untuk log server model untuk model layanan, Anda dapat menggunakan permintaan berikut:
GET /api/2.0/serving-endpoints/{name}/served-models/{served-model-name}/logs
{
"config_version": 1 // optional
}
Mengelola izin pada titik akhir penyajian model
Anda harus memiliki setidaknya izin CAN MANAGE pada titik akhir penyajian untuk mengubah izin. Untuk informasi selengkapnya tentang tingkat izin, lihat ACL pada titik akhir.
Dapatkan daftar izin di titik akhir layanan.
Antarmuka Pengguna
Klik tombol Izin di kanan atas UI.
Databricks CLI (antarmuka baris perintah)
databricks permissions get serving-endpoints <endpoint-id>
Berikan pengguna jsmith@example.com izin CAN QUERY pada titik akhir penyajian.
databricks permissions update serving-endpoints <endpoint-id> --json '{
"access_control_list": [
{
"user_name": "jsmith@example.com",
"permission_level": "CAN_QUERY"
}
]
}'
Anda juga dapat memodifikasi izin titik akhir penyajian menggunakan API Izin.
Menambahkan kebijakan penggunaan tanpa server untuk model yang melayani titik akhir
Penting
Fitur ini ada di Pratinjau Umum dan tidak tersedia untuk titik akhir yang melayani model Eksternal.
Kebijakan penggunaan tanpa server memungkinkan organisasi Anda menerapkan tag kustom pada penggunaan tanpa server untuk atribusi penagihan terperinci. Jika ruang kerja Anda menggunakan kebijakan penggunaan tanpa server untuk mengaitkan penggunaan tanpa server, Anda dapat menambahkan kebijakan penggunaan tanpa server ke titik akhir penyajian model Anda. Lihat Penggunaan atribut dengan kebijakan penggunaan tanpa server.
Selama pembuatan titik akhir penyajian model, Anda dapat memilih kebijakan penggunaan tanpa server titik akhir anda dari menu Kebijakan anggaran di Antarmuka Pengguna penayangan. Jika Anda memiliki kebijakan penggunaan tanpa server yang ditetapkan untuk Anda, semua titik akhir yang Anda buat diberi kebijakan penggunaan tanpa server tersebut, bahkan jika Anda tidak memilih kebijakan dari menu Kebijakan anggaran .
Jika Anda memiliki MANAGE izin untuk titik akhir yang sudah ada, Anda dapat mengedit dan menambahkan kebijakan penggunaan tanpa server ke titik akhir tersebut dari halaman Detail titik akhir di UI.
Nota
Jika Anda telah diberi kebijakan penggunaan tanpa server, titik akhir yang ada tidak secara otomatis ditandai dengan kebijakan Anda. Anda harus memperbarui titik akhir yang ada secara manual jika Anda ingin melampirkan kebijakan penggunaan tanpa server ke titik akhir tersebut.
Mendapatkan model yang melayani skema titik akhir
Penting
Dukungan untuk melayani skema kueri titik akhir ada di Pratinjau Umum. Fungsionalitas ini tersedia di wilayah Model Serving.
Skema kueri titik akhir penyajian adalah deskripsi formal tentang titik akhir penyajian menggunakan spesifikasi OpenAPI standar dalam format JSON. Ini berisi informasi tentang titik akhir termasuk jalur titik akhir, detail untuk mengkueri titik akhir seperti format isi permintaan dan respons, dan jenis data untuk setiap bidang. Informasi ini dapat membantu untuk skenario reproduksi atau ketika Anda memerlukan informasi tentang titik akhir, tetapi Anda bukan pembuat atau pemilik titik akhir asli.
Untuk mendapatkan skema titik akhir penyajian model, model yang disajikan harus memiliki tanda tangan model yang dicatat dan titik akhir harus dalam keadaan READY.
Contoh berikut menunjukkan cara mendapatkan model yang melayani skema titik akhir secara terprogram menggunakan REST API. Untuk fitur yang melayani skema titik akhir, lihat Fitur Melayani titik akhir.
Skema yang dikembalikan oleh API dalam format objek JSON yang mengikuti spesifikasi OpenAPI.
ACCESS_TOKEN="<endpoint-token>"
ENDPOINT_NAME="<endpoint name>"
curl "https://example.databricks.com/api/2.0/serving-endpoints/$ENDPOINT_NAME/openapi" -H "Authorization: Bearer $ACCESS_TOKEN" -H "Content-Type: application/json"
Detail-detail tanggapan skema
Responsnya adalah spesifikasi OpenAPI dalam format JSON, biasanya termasuk bidang seperti openapi, info, servers dan paths. Karena respons skema adalah objek JSON, Anda dapat mengurainya menggunakan bahasa pemrograman umum, dan menghasilkan kode klien dari spesifikasi menggunakan alat pihak ketiga.
Anda juga dapat memvisualisasikan spesifikasi OpenAPI menggunakan alat pihak ketiga seperti Swagger Editor.
Bidang utama respons meliputi:
- Bidang
info.titlememperlihatkan nama titik akhir penyajian. - Bidang
serversselalu berisi satu objek, biasanyaurlbidang yang merupakan url dasar titik akhir. - Objek
pathsdalam respons berisi semua jalur yang didukung untuk titik akhir. Kunci dalam objek adalah URL jalur. Masing-masingpathdapat mendukung beberapa format input. Input ini tercantum dioneOfbidang .
Berikut ini adalah contoh respons skema titik akhir:
{
"openapi": "3.1.0",
"info": {
"title": "example-endpoint",
"version": "2"
},
"servers": [{ "url": "https://example.databricks.com/serving-endpoints/example-endpoint" }],
"paths": {
"/served-models/vanilla_simple_model-2/invocations": {
"post": {
"requestBody": {
"content": {
"application/json": {
"schema": {
"oneOf": [
{
"type": "object",
"properties": {
"dataframe_split": {
"type": "object",
"properties": {
"columns": {
"description": "required fields: int_col",
"type": "array",
"items": {
"type": "string",
"enum": ["int_col", "float_col", "string_col"]
}
},
"data": {
"type": "array",
"items": {
"type": "array",
"prefixItems": [
{
"type": "integer",
"format": "int64"
},
{
"type": "number",
"format": "double"
},
{
"type": "string"
}
]
}
}
}
},
"params": {
"type": "object",
"properties": {
"sentiment": {
"type": "number",
"format": "double",
"default": "0.5"
}
}
}
},
"examples": [
{
"columns": ["int_col", "float_col", "string_col"],
"data": [
[3, 10.4, "abc"],
[2, 20.4, "xyz"]
]
}
]
},
{
"type": "object",
"properties": {
"dataframe_records": {
"type": "array",
"items": {
"required": ["int_col", "float_col", "string_col"],
"type": "object",
"properties": {
"int_col": {
"type": "integer",
"format": "int64"
},
"float_col": {
"type": "number",
"format": "double"
},
"string_col": {
"type": "string"
},
"becx_col": {
"type": "object",
"format": "unknown"
}
}
}
},
"params": {
"type": "object",
"properties": {
"sentiment": {
"type": "number",
"format": "double",
"default": "0.5"
}
}
}
}
}
]
}
}
}
},
"responses": {
"200": {
"description": "Successful operation",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"predictions": {
"type": "array",
"items": {
"type": "number",
"format": "double"
}
}
}
}
}
}
}
}
}
}
}
}