Bagikan melalui


Mengaktifkan tabel inferensi pada model yang melayani titik akhir menggunakan API

Penting

Fitur ini ada di Pratinjau Publik.

Artikel ini menjelaskan cara menggunakan Databricks API untuk mengaktifkan tabel inferensi untuk model yang melayani titik akhir. Untuk informasi umum tentang menggunakan tabel inferensi, termasuk cara mengaktifkannya menggunakan antarmuka pengguna Databricks, lihat Tabel inferensi untuk model pemantauan dan penelusuran kesalahan.

Anda dapat mengaktifkan tabel inferensi saat membuat titik akhir baru atau di titik akhir yang sudah ada. Databricks merekomendasikan agar Anda membuat titik akhir dengan perwakilan layanan sehingga tabel inferensi tidak terpengaruh jika pengguna yang membuat titik akhir dihapus dari ruang kerja.

Pemilik tabel inferensi adalah pengguna yang membuat titik akhir. Semua daftar kontrol akses (ACL) pada tabel mengikuti izin Katalog Unity standar dan dapat dimodifikasi oleh pemilik tabel.

Persyaratan

  • Ruang kerja Anda harus mengaktifkan Katalog Unity.
  • Pembuat titik akhir dan pengubah harus memiliki izin Dapat Mengelola pada titik akhir. Lihat Daftar kontrol akses.
  • Pembuat titik akhir dan pengubah harus memiliki izin berikut di Katalog Unity:
    • USE CATALOG izin pada katalog yang ditentukan.
    • USE SCHEMA izin pada skema yang ditentukan.
    • CREATE TABLE izin dalam skema.

Mengaktifkan tabel inferensi pada pembuatan titik akhir menggunakan API

Anda dapat mengaktifkan tabel inferensi untuk titik akhir selama pembuatan titik akhir menggunakan API. Untuk petunjuk tentang membuat titik akhir, lihat Membuat model kustom yang melayani titik akhir.

Dalam API, isi permintaan memiliki auto_capture_config untuk menentukan:

  • Katalog Unity Catalog: string yang mewakili katalog untuk menyimpan tabel
  • Skema Unity Catalog: string yang mewakili skema untuk menyimpan tabel
  • (opsional) awalan tabel: string yang digunakan sebagai awalan untuk nama tabel inferensi. Jika ini tidak ditentukan, nama titik akhir digunakan.
  • (opsional) diaktifkan: nilai boolean yang digunakan untuk mengaktifkan atau menonaktifkan tabel inferensi. Ini benar secara default.

Setelah menentukan katalog, skema, dan prefiks tabel opsional, tabel dibuat di <catalog>.<schema>.<table_prefix>_payload. Tabel ini secara otomatis membuat tabel terkelola Katalog Unity. Pemilik tabel adalah pengguna yang membuat titik akhir.

Catatan

Menentukan tabel yang ada tidak didukung karena tabel inferensi selalu dibuat secara otomatis pada pembuatan titik akhir atau pembaruan titik akhir.

Peringatan

Tabel inferensi bisa menjadi rusak jika Anda melakukan salah satu hal berikut:

  • Ubah skema tabel.
  • Ubah nama tabel.
  • Hapus tabel.
  • Kehilangan izin ke katalog atau skema Katalog Unity.

Dalam hal ini, auto_capture_config status titik akhir menunjukkan status FAILED untuk tabel payload. Jika ini terjadi, Anda harus membuat titik akhir baru untuk terus menggunakan tabel inferensi.

Contoh berikut menunjukkan cara mengaktifkan tabel inferensi selama pembuatan titik akhir.

POST /api/2.0/serving-endpoints

{
  "name": "feed-ads",
  "config":{
    "served_entities": [
      {
       "entity_name": "ads1",
       "entity_version": "1",
       "workload_size": "Small",
       "scale_to_zero_enabled": true
      }
    ],
    "auto_capture_config":{
       "catalog_name": "ml",
       "schema_name": "ads",
       "table_name_prefix": "feed-ads-prod"
    }
  }
}

Responsnya seperti berikut:

{
  "name": "feed-ads",
  "creator": "customer@example.com",
  "creation_timestamp": 1666829055000,
  "last_updated_timestamp": 1666829055000,
  "state": {
    "ready": "NOT_READY",
    "config_update": "IN_PROGRESS"
  },
  "pending_config": {
    "start_time": 1666718879000,
    "served_entities": [
      {
        "name": "ads1-1",
        "entity_name": "ads1",
        "entity_version": "1",
        "workload_size": "Small",
        "scale_to_zero_enabled": true,
        "state": {
          "deployment": "DEPLOYMENT_CREATING",
          "deployment_state_message": "Creating"
        },
        "creator": "customer@example.com",
        "creation_timestamp": 1666829055000
    }
   ],
   "config_version": 1,
   "traffic_config": {
     "routes": [
       {
         "served_model_name": "ads1-1",
         "traffic_percentage": 100
       }
      ]
   },
   "auto_capture_config": {
     "catalog_name": "ml",
     "schema_name": "ads",
     "table_name_prefix": "feed-ads-prod",
     "state": {
       "payload_table": {
         "name": "feed-ads-prod_payload"
       }
     },
     "enabled": true
   }
  },
  "id": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
  "permission_level": "CAN_MANAGE"
}

Setelah pengelogan ke tabel inferensi diaktifkan, tunggu hingga titik akhir Anda siap. Kemudian Anda dapat mulai memanggilnya.

Setelah Anda membuat tabel inferensi, evolusi skema dan menambahkan data harus ditangani oleh sistem.

Operasi berikut tidak berdampak pada integritas tabel:

  • Menjalankan OPTIMIZE, ANALYZE, dan VACUUM terhadap tabel.
  • Menghapus data lama yang tidak digunakan.

Jika Anda tidak menentukan auto_capture_config, secara default konfigurasi pengaturan dari versi konfigurasi sebelumnya digunakan kembali. Misalnya, jika tabel inferensi sudah diaktifkan, pengaturan yang sama digunakan pada pembaruan titik akhir berikutnya atau jika tabel inferensi dinonaktifkan, maka tabel tersebut terus dinonaktifkan.

{
  "served_entities": [
    {
      "name":"current",
      "entity_name":"model-A",
      "entity_version":"1",
      "workload_size":"Small",
      "scale_to_zero_enabled":true
    }
  ],
  "auto_capture_config": {
    "enabled": false
  }
}

Mengaktifkan tabel inferensi pada titik akhir yang ada menggunakan API

Anda juga dapat mengaktifkan tabel inferensi pada titik akhir yang ada menggunakan API. Setelah tabel inferensi diaktifkan, lanjutkan menentukan isi yang sama auto_capture_config dalam panggilan API titik akhir pembaruan di masa mendatang untuk terus menggunakan tabel inferensi.

Catatan

Mengubah lokasi tabel setelah mengaktifkan tabel inferensi tidak didukung.

PUT /api/2.0/serving-endpoints/{name}/config

{
  "served_entities": [
    {
      "name":"current",
      "entity_name":"model-A",
      "entity_version":"1",
      "workload_size":"Small",
      "scale_to_zero_enabled":true
    },
    {
      "name":"challenger",
      "entity_name":"model-B",
      "entity_version":"1",
      "workload_size":"Small",
      "scale_to_zero_enabled":true
    }
  ],
  "traffic_config":{
    "routes": [
      {
        "served_model_name":"current",
        "traffic_percentage":"50"
      },
      {
        "served_model_name":"challenger",
        "traffic_percentage":"50"
      }
    ]
  },
  "auto_capture_config":{
   "catalog_name": "catalog",
   "schema_name": "schema",
   "table_name_prefix": "my-endpoint"
  }
}

Menonaktifkan tabel inferensi

Saat menonaktifkan tabel inferensi, Anda tidak perlu menentukan katalog, skema, atau awalan tabel. Satu-satunya bidang yang diperlukan adalah enabled: false.

POST /api/2.0/serving-endpoints

{
  "name": "feed-ads",
  "config":{
    "served_entities": [
      {
       "entity_name": "ads1",
       "entity_version": "1",
       "workload_size": "Small",
       "scale_to_zero_enabled": true
      }
    ],
    "auto_capture_config":{
       "enabled": false
    }
  }
}

Untuk mengaktifkan kembali tabel inferensi yang dinonaktifkan, ikuti instruksi di Mengaktifkan tabel inferensi pada titik akhir yang ada. Anda dapat menggunakan tabel yang sama atau menentukan tabel baru.

Langkah berikutnya

Setelah mengaktifkan tabel inferensi, Anda dapat memantau model yang dilayani dalam model Anda yang melayani titik akhir dengan Databricks Lakehouse Monitoring. Untuk detailnya, lihat Alur Kerja: Memantau performa model menggunakan tabel inferensi.