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.
Dalam artikel ini, Anda akan mempelajari cara membuat ujung layanan model yang menerapkan dan melayani model fondasi.
Mosaic AI Model Serving mendukung model berikut:
- Model eksternal. Ini adalah model dasar yang dihosting di luar Databricks. Titik akhir yang melayani model eksternal dapat diatur secara terpusat dan pelanggan dapat menetapkan batas tarif dan kontrol akses untuk mereka. Contohnya termasuk model fondasi seperti GPT-4 OpenAI dan Claude Anthropic.
- Model fondasi terbuka terkini yang disediakan oleh API Model Fondasi. Model ini adalah arsitektur model fondasi yang dikumpulkan yang mendukung inferensi yang dioptimalkan. Model dasar, seperti Meta-Llama-3.1-70B-Instruct, GTE-Large, dan Mistral-7B tersedia untuk digunakan segera dengan harga bayar per token . Beban kerja produksi, menggunakan model dasar atau yang disempurnakan, dapat disebarkan dengan jaminan performa menggunakan throughput yang disediakan.
Model Serving menyediakan opsi berikut untuk model yang melayani pembuatan titik akhir:
- Antarmuka Pengguna Pelayanan
- REST API
- SDK Penyebaran MLflow
Untuk membuat titik akhir yang melayani model ML atau Python tradisional, lihat Membuat model kustom yang melayani titik akhir.
Persyaratan
- Ruang kerja Databricks di wilayah yang didukung.
- Wilayah API Model Dasar
- Wilayah model eksternal
- Untuk membuat titik akhir menggunakan SDK Penyebaran MLflow, Anda harus menginstal klien Penyebaran MLflow. Untuk menginstalnya, jalankan:
import mlflow.deployments
client = mlflow.deployments.get_deploy_client("databricks")
Membuat model fondasi yang melayani titik akhir
Anda dapat membuat endpoint yang melayani varian model dasar yang telah disesuaikan dan tersedia melalui API Model Foundation tingkat throughput yang telah disediakan. Lihat Buat titik akhir throughput yang sudah ditentukan menggunakan REST API.
Untuk model fondasi yang tersedia menggunakan Foundation Model API pay-per-token, Databricks secara otomatis menyediakan endpoint spesifik untuk mengakses model yang didukung di ruang kerja Databricks Anda. Untuk mengaksesnya, pilih tab Layanan di bilah sisi kiri antar muka kerja. API Model Foundation terletak di bagian atas tampilan daftar Titik Akhir.
Untuk mengkueri titik akhir ini, lihat Menggunakan model fondasi.
Membuat model eksternal yang melayani titik akhir
Berikut ini menjelaskan cara membuat titik akhir yang meminta model fondasi yang disediakan menggunakan model eksternal Databricks.
Menyajikan Antarmuka Pengguna
- Di bidang Nama berikan nama untuk titik akhir Anda.
- Di bagian Entitas yang dilayani
- Klik ke bidang Entitas untuk membuka formulir Pilih entitas yang dilayani.
- Pilih model Foundation.
- Di bidang Pilih model fondasi, pilih penyedia model yang ingin Anda gunakan dari yang tercantum di bawah Penyedia model eksternal. Formulir diperbarui secara dinamis berdasarkan pilihan penyedia model Anda.
- Klik Konfirmasi.
- Berikan detail konfigurasi untuk mengakses penyedia model yang dipilih. Ini biasanya rahasia yang mengacu pada token akses pribadi yang Anda ingin digunakan oleh titik akhir untuk mengakses model ini.
- Pilih tugas. Tugas yang tersedia adalah obrolan, penyelesaian, dan penyematan.
- Pilih nama model eksternal yang ingin Anda gunakan. Daftar model diperbarui secara dinamis berdasarkan pilihan tugas Anda. Lihat model eksternal yang tersedia.
- Klik Buat. Halaman Endpoint Penyajian muncul dengan status Endpoint Penyajian ditampilkan sebagai Belum Siap.
REST API
Penting
Parameter REST API untuk membuat titik akhir penyajian yang melayani model eksternal berada di Pratinjau Umum.
Contoh berikut ini membuat sebuah endpoint yang menyajikan versi pertama dari model text-embedding-ada-002
yang disediakan oleh OpenAI.
Lihat POST /api/2.0/serving-endpoints untuk parameter konfigurasi titik akhir.
{
"name": "openai_endpoint",
"config":
{
"served_entities":
[
{
"name": "openai_embeddings",
"external_model":{
"name": "text-embedding-ada-002",
"provider": "openai",
"task": "llm/v1/embeddings",
"openai_config":{
"openai_api_key": "{{secrets/my_scope/my_openai_api_key}}"
}
}
}
]
},
"rate_limits": [
{
"calls": 100,
"key": "user",
"renewal_period": "minute"
}
],
"tags": [
{
"key": "team",
"value": "gen-ai"
}
]
}
Berikut ini adalah contoh respons.
{
"name": "openai_endpoint",
"creator": "user@email.com",
"creation_timestamp": 1699617587000,
"last_updated_timestamp": 1699617587000,
"state": {
"ready": "READY"
},
"config": {
"served_entities": [
{
"name": "openai_embeddings",
"external_model": {
"provider": "openai",
"name": "text-embedding-ada-002",
"task": "llm/v1/embeddings",
"openai_config": {
"openai_api_key": "{{secrets/my_scope/my_openai_api_key}}"
}
},
"state": {
"deployment": "DEPLOYMENT_READY",
"deployment_state_message": ""
},
"creator": "user@email.com",
"creation_timestamp": 1699617587000
}
],
"traffic_config": {
"routes": [
{
"served_model_name": "openai_embeddings",
"traffic_percentage": 100
}
]
},
"config_version": 1
},
"tags": [
{
"key": "team",
"value": "gen-ai"
}
],
"id": "69962db6b9db47c4a8a222d2ac79d7f8",
"permission_level": "CAN_MANAGE",
"route_optimized": false
}
SDK Penyebaran MLflow
Berikut ini membuat endpoint untuk embedding dengan OpenAI text-embedding-ada-002
.
Untuk titik akhir model eksternal, Anda harus menyediakan kunci API untuk penyedia model yang ingin Anda gunakan. Lihat POST /api/2.0/serving-endpoints di REST API untuk detail skema permintaan dan respons. Untuk panduan langkah demi langkah, lihat Tutorial: Membuat titik akhir model eksternal untuk mengkueri model OpenAI.
Anda juga dapat membuat titik akhir untuk penyelesaian dan tugas obrolan, seperti yang ditentukan oleh kolom task
di bagian external_model
konfigurasi. Lihat Model eksternal di Mosaic AI Model Serving untuk model dan penyedia yang didukung untuk setiap tugas.
from mlflow.deployments import get_deploy_client
client = get_deploy_client("databricks")
endpoint = client.create_endpoint(
name="chat",
config={
"served_entities": [
{
"name": "completions",
"external_model": {
"name": "gpt-4",
"provider": "openai",
"task": "llm/v1/chat",
"openai_config": {
"openai_api_key": "{{secrets/scope/key}}",
},
},
}
],
},
)
assert endpoint == {
"name": "chat",
"creator": "alice@company.com",
"creation_timestamp": 0,
"last_updated_timestamp": 0,
"state": {...},
"config": {...},
"tags": [...],
"id": "88fd3f75a0d24b0380ddc40484d7a31b",
}
Memperbarui model yang melayani titik akhir
Setelah mengaktifkan titik akhir model, Anda dapat mengatur konfigurasi komputasi sesuai keinginan. Konfigurasi ini sangat membantu jika Anda memerlukan sumber daya tambahan untuk model Anda. Ukuran beban kerja dan konfigurasi komputasi memainkan peran kunci dalam sumber daya apa yang dialokasikan untuk melayani model Anda.
Hingga konfigurasi baru siap, konfigurasi lama terus melayani lalu lintas prediksi. Meskipun ada pembaruan yang sedang berlangsung, pembaruan lain tidak dapat dilakukan. Di Antarmuka Penayangan, Anda dapat membatalkan pembaruan konfigurasi yang sedang berlangsung dengan memilih Batalkan pembaruan di kanan atas halaman rincian endpoint. Fungsionalitas ini hanya tersedia di UI Penyajian.
Saat external_model
ada dalam konfigurasi titik akhir, daftar entitas yang dilayani hanya dapat memiliki satu objek served_entity. Titik akhir yang sudah ada dengan external_model
tidak dapat diperbarui untuk tidak lagi memiliki external_model
. Jika titik akhir dibuat tanpa external_model
, Anda tidak dapat memperbaruinya untuk menambahkan external_model
.
REST API
Untuk memperbarui titik akhir Anda, lihat dokumentasi konfigurasi pembaruan REST API untuk detail skema permintaan dan respons.
{
"name": "openai_endpoint",
"served_entities":
[
{
"name": "openai_chat",
"external_model":{
"name": "gpt-4",
"provider": "openai",
"task": "llm/v1/chat",
"openai_config":{
"openai_api_key": "{{secrets/my_scope/my_openai_api_key}}"
}
}
}
]
}
SDK Penyebaran MLflow
Untuk memperbarui titik akhir Anda, lihat dokumentasi konfigurasi pembaruan REST API untuk detail skema permintaan dan respons.
from mlflow.deployments import get_deploy_client
client = get_deploy_client("databricks")
endpoint = client.update_endpoint(
endpoint="chat",
config={
"served_entities": [
{
"name": "chats",
"external_model": {
"name": "gpt-4",
"provider": "openai",
"task": "llm/v1/chat",
"openai_config": {
"openai_api_key": "{{secrets/scope/key}}",
},
},
}
],
},
)
assert endpoint == {
"name": "chats",
"creator": "alice@company.com",
"creation_timestamp": 0,
"last_updated_timestamp": 0,
"state": {...},
"config": {...},
"tags": [...],
"id": "88fd3f75a0d24b0380ddc40484d7a31b",
}
rate_limits = client.update_endpoint(
endpoint="chat",
config={
"rate_limits": [
{
"key": "user",
"renewal_period": "minute",
"calls": 10,
}
],
},
)
assert rate_limits == {
"rate_limits": [
{
"key": "user",
"renewal_period": "minute",
"calls": 10,
}
],
}