Bagikan melalui


Menyajikan beberapa model ke titik akhir Model Serving

Artikel ini menjelaskan cara menyajikan beberapa model ke titik akhir penyajian CPU yang menggunakan Azure Databricks Model Serving.

Untuk melayani beberapa model AI generatif, seperti yang disediakan oleh model eksternal, lihat Menyajikan beberapa model eksternal ke titik akhir.

Persyaratan

Lihat Persyaratan untuk model yang melayani pembuatan titik akhir.

Untuk memahami opsi kontrol akses untuk model yang melayani titik akhir dan panduan praktik terbaik untuk manajemen titik akhir, lihat Menyajikan ACL titik akhir.

Membuat titik akhir dan mengatur pemisahan lalu lintas awal

Anda dapat membuat model yang melayani titik akhir dengan Databricks Pembelajaran Mesin melayani API atau Databricks Pembelajaran Mesin UI. Titik akhir dapat melayani model Python MLflow terdaftar yang terdaftar di Model Registry.

Contoh API berikut membuat satu titik akhir dengan dua model dan mengatur pemisahan lalu lintas titik akhir di antara model tersebut. Model yang dilayani, current, host versi 1 dan model-A mendapatkan 90% dari lalu lintas titik akhir, sementara model lain yang dilayani, challenger, menghosting versi 1 dari model-B dan mendapatkan 10% dari lalu lintas titik akhir.

POST /api/2.0/serving-endpoints

{
   "name":"multi-model"
   "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":"90"
            },
            {
               "served_model_name":"challenger",
               "traffic_percentage":"10"
            }
         ]
      }
   }
}

Memperbarui pemisahan lalu lintas antara model yang dilayani

Anda juga dapat memperbarui pemisahan lalu lintas antara model yang dilayani. Contoh API berikut mengatur model yang dilayani, current, untuk mendapatkan 50% dari lalu lintas titik akhir dan model lainnya, challenger, untuk mendapatkan 50% lalu lintas yang tersisa.

Anda juga dapat membuat pembaruan ini dari tab Sajikan di UI Databricks Pembelajaran Mesin menggunakan tombol Edit konfigurasi.

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"
         }
      ]
   }
}

Mengkueri model individual di belakang titik akhir

Dalam beberapa skenario, Anda mungkin ingin mengkueri model individual di belakang titik akhir.

Anda dapat melakukannya dengan menggunakan:

POST /serving-endpoints/{endpoint-name}/served-models/{served-model-name}/invocations

Di sini model khusus yang dilayani dikueri. Format permintaan sama dengan mengkueri titik akhir. Saat mengkueri model yang dilayani individu, pengaturan lalu lintas diabaikan.

Dalam konteks multi-model contoh titik akhir, jika semua permintaan dikirim ke /serving-endpoints/multi-model/served-models/challenger/invocations, maka semua permintaan dilayani oleh model yang challenger dilayani.